From 1c554d9964516c9b590e5c84c0a71cf522f9a9bc Mon Sep 17 00:00:00 2001 From: Josh Dover Date: Sun, 10 May 2020 14:00:49 -0600 Subject: [PATCH 01/67] Mount ui/new_platform applications in same div structure as Core (#63930) --- .../public/new_platform/new_platform.test.ts | 19 ++++++++++++++++--- .../ui/public/new_platform/new_platform.ts | 3 ++- 2 files changed, 18 insertions(+), 4 deletions(-) diff --git a/src/legacy/ui/public/new_platform/new_platform.test.ts b/src/legacy/ui/public/new_platform/new_platform.test.ts index 1629aac588a6..21e7b559f71f 100644 --- a/src/legacy/ui/public/new_platform/new_platform.test.ts +++ b/src/legacy/ui/public/new_platform/new_platform.test.ts @@ -22,6 +22,7 @@ jest.mock('history'); import { setRootControllerMock, historyMock } from './new_platform.test.mocks'; import { legacyAppRegister, __reset__, __setup__, __start__ } from './new_platform'; import { coreMock } from '../../../../core/public/mocks'; +import { AppMount } from '../../../../core/public'; describe('ui/new_platform', () => { describe('legacyAppRegister', () => { @@ -33,7 +34,7 @@ describe('ui/new_platform', () => { const registerApp = () => { const unmountMock = jest.fn(); - const mountMock = jest.fn(() => unmountMock); + const mountMock = jest.fn, Parameters>(() => unmountMock); legacyAppRegister({ id: 'test', title: 'Test', @@ -62,13 +63,25 @@ describe('ui/new_platform', () => { controller(scopeMock, elementMock); expect(mountMock).toHaveBeenCalledWith({ - element: elementMock[0], + element: expect.any(HTMLElement), appBasePath: '/test/base/path/app/test', onAppLeave: expect.any(Function), history: historyMock, }); }); + test('app is mounted in new div inside containing element', () => { + const { mountMock } = registerApp(); + const controller = setRootControllerMock.mock.calls[0][1]; + const scopeMock = { $on: jest.fn() }; + const elementMock = [document.createElement('div')]; + + controller(scopeMock, elementMock); + + const { element } = mountMock.mock.calls[0][0]; + expect(element.parentElement).toEqual(elementMock[0]); + }); + test('controller calls deprecated context app.mount when invoked', () => { const unmountMock = jest.fn(); // Two arguments changes how this is called. @@ -84,7 +97,7 @@ describe('ui/new_platform', () => { controller(scopeMock, elementMock); expect(mountMock).toHaveBeenCalledWith(expect.any(Object), { - element: elementMock[0], + element: expect.any(HTMLElement), appBasePath: '/test/base/path/app/test', onAppLeave: expect.any(Function), history: historyMock, diff --git a/src/legacy/ui/public/new_platform/new_platform.ts b/src/legacy/ui/public/new_platform/new_platform.ts index a15c7cce5511..1eb46e1a4389 100644 --- a/src/legacy/ui/public/new_platform/new_platform.ts +++ b/src/legacy/ui/public/new_platform/new_platform.ts @@ -176,7 +176,8 @@ export const legacyAppRegister = (app: App) => { legacyAppRegistered = true; require('ui/chrome').setRootController(app.id, ($scope: IScope, $element: JQLite) => { - const element = $element[0]; + const element = document.createElement('div'); + $element[0].appendChild(element); // Root controller cannot return a Promise so use an internal async function and call it immediately (async () => { From faaa12729e3d1d6752f4b40c1dd973db2705031c Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Sun, 10 May 2020 22:50:43 +0200 Subject: [PATCH 02/67] Point 7.x to 7.9.0 in .backportrc.json --- .backportrc.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.backportrc.json b/.backportrc.json index 0894909d2aac..87bc3a1be583 100644 --- a/.backportrc.json +++ b/.backportrc.json @@ -25,7 +25,7 @@ ], "targetPRLabels": ["backport"], "branchLabelMapping": { - "^v7.8.0$": "7.x", + "^v7.9.0$": "7.x", "^v(\\d+).(\\d+).\\d+$": "$1.$2" } } From e5b4054a8e8899d9e4353d077464bb840d4b067e Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Mon, 11 May 2020 09:36:45 +0200 Subject: [PATCH 03/67] fix double flyouts in add panel flow (#65861) Co-authored-by: Elastic Machine --- .../add_panel/add_panel_flyout.test.tsx | 4 ++++ .../panel_actions/add_panel/add_panel_flyout.tsx | 12 +++--------- .../add_panel/open_add_panel_flyout.tsx | 3 ++- 3 files changed, 9 insertions(+), 10 deletions(-) diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.test.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.test.tsx index 282b0f05891e..3894d6fbed38 100644 --- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.test.tsx +++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.test.tsx @@ -18,6 +18,7 @@ */ import * as React from 'react'; +import { EuiFlyout } from '@elastic/eui'; import { AddPanelFlyout } from './add_panel_flyout'; import { ContactCardEmbeddableFactory, @@ -75,6 +76,9 @@ test('createNewEmbeddable() add embeddable to container', async () => { /> ) as ReactWrapper; + // https://github.com/elastic/kibana/issues/64789 + expect(component.exists(EuiFlyout)).toBe(false); + expect(Object.values(container.getInput().panels).length).toBe(0); component.instance().createNewEmbeddable(CONTACT_CARD_EMBEDDABLE); await new Promise(r => setTimeout(r, 1)); diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx index 5bf3f69a95c3..4c23916675e8 100644 --- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx +++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/add_panel_flyout.tsx @@ -21,13 +21,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import React, { ReactElement } from 'react'; import { CoreSetup } from 'src/core/public'; -import { - EuiContextMenuItem, - EuiFlyout, - EuiFlyoutBody, - EuiFlyoutHeader, - EuiTitle, -} from '@elastic/eui'; +import { EuiContextMenuItem, EuiFlyoutBody, EuiFlyoutHeader, EuiTitle } from '@elastic/eui'; import { EmbeddableStart } from 'src/plugins/embeddable/public'; import { IContainer } from '../../../../containers'; @@ -152,7 +146,7 @@ export class AddPanelFlyout extends React.Component { ); return ( - + <>

@@ -161,7 +155,7 @@ export class AddPanelFlyout extends React.Component { {savedObjectsFinder} - + ); } } diff --git a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/open_add_panel_flyout.tsx b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/open_add_panel_flyout.tsx index a452e07b5157..867092b78ef7 100644 --- a/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/open_add_panel_flyout.tsx +++ b/src/plugins/embeddable/public/lib/panel/panel_header/panel_actions/add_panel/open_add_panel_flyout.tsx @@ -55,7 +55,8 @@ export async function openAddPanelFlyout(options: { /> ), { - 'data-test-subj': 'addPanelFlyout', + 'data-test-subj': 'dashboardAddPanel', + ownFocus: true, } ); } From 387e28a6a419eab942fd4b6088a2523719242d00 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Mon, 11 May 2020 10:12:59 +0200 Subject: [PATCH 04/67] [Drilldowns][chore] import dashboard url generator from plugin contract (#64628) Co-authored-by: Elastic Machine --- src/plugins/dashboard/public/index.ts | 2 +- src/plugins/dashboard/public/plugin.tsx | 19 ++++++++--- .../dashboard/public/url_generator.test.ts | 24 ++++++------- src/plugins/dashboard/public/url_generator.ts | 2 +- .../url_generator_service.test.ts | 18 ++++++++-- .../url_generators/url_generator_service.ts | 11 +++--- .../dashboard_enhanced/public/plugin.ts | 2 ++ .../dashboard_drilldowns_services.ts | 11 +++++- .../drilldown.test.tsx | 34 ++++++++----------- .../drilldown.tsx | 9 +++-- 10 files changed, 82 insertions(+), 50 deletions(-) diff --git a/src/plugins/dashboard/public/index.ts b/src/plugins/dashboard/public/index.ts index 44733499cdcb..e093342f9573 100644 --- a/src/plugins/dashboard/public/index.ts +++ b/src/plugins/dashboard/public/index.ts @@ -31,7 +31,7 @@ export { } from './application'; export { DashboardConstants, createDashboardEditUrl } from './dashboard_constants'; -export { DashboardStart } from './plugin'; +export { DashboardStart, DashboardUrlGenerator } from './plugin'; export { DASHBOARD_APP_URL_GENERATOR } from './url_generator'; export function plugin(initializerContext: PluginInitializerContext) { diff --git a/src/plugins/dashboard/public/plugin.tsx b/src/plugins/dashboard/public/plugin.tsx index b28822120b31..894440cfa9cb 100644 --- a/src/plugins/dashboard/public/plugin.tsx +++ b/src/plugins/dashboard/public/plugin.tsx @@ -42,7 +42,11 @@ import { DataPublicPluginSetup, esFilters, } from '../../../plugins/data/public'; -import { SharePluginSetup, SharePluginStart } from '../../../plugins/share/public'; +import { + SharePluginSetup, + SharePluginStart, + UrlGeneratorContract, +} from '../../../plugins/share/public'; import { UiActionsSetup, UiActionsStart } from '../../../plugins/ui_actions/public'; import { Start as InspectorStartContract } from '../../../plugins/inspector/public'; @@ -77,7 +81,7 @@ import { import { DashboardAppLinkGeneratorState, DASHBOARD_APP_URL_GENERATOR, - createDirectAccessDashboardLinkGenerator, + createDashboardUrlGenerator, } from './url_generator'; import { createSavedDashboardLoader } from './saved_dashboards'; import { DashboardConstants } from './dashboard_constants'; @@ -89,6 +93,8 @@ declare module '../../share/public' { } } +export type DashboardUrlGenerator = UrlGeneratorContract; + interface SetupDependencies { data: DataPublicPluginSetup; embeddable: EmbeddableSetup; @@ -111,8 +117,10 @@ interface StartDependencies { } export type Setup = void; + export interface DashboardStart { getSavedDashboardLoader: () => SavedObjectLoader; + dashboardUrlGenerator?: DashboardUrlGenerator; } declare module '../../../plugins/ui_actions/public' { @@ -130,6 +138,8 @@ export class DashboardPlugin private appStateUpdater = new BehaviorSubject(() => ({})); private stopUrlTracking: (() => void) | undefined = undefined; + private dashboardUrlGenerator?: DashboardUrlGenerator; + public setup( core: CoreSetup, { share, uiActions, embeddable, home, kibanaLegacy, data, usageCollection }: SetupDependencies @@ -140,8 +150,8 @@ export class DashboardPlugin const startServices = core.getStartServices(); if (share) { - share.urlGenerators.registerUrlGenerator( - createDirectAccessDashboardLinkGenerator(async () => { + this.dashboardUrlGenerator = share.urlGenerators.registerUrlGenerator( + createDashboardUrlGenerator(async () => { const [coreStart, , selfStart] = await startServices; return { appBasePath: coreStart.application.getUrlForApp('dashboard'), @@ -325,6 +335,7 @@ export class DashboardPlugin }); return { getSavedDashboardLoader: () => savedDashboardLoader, + dashboardUrlGenerator: this.dashboardUrlGenerator, }; } diff --git a/src/plugins/dashboard/public/url_generator.test.ts b/src/plugins/dashboard/public/url_generator.test.ts index 248a3f991d6c..68d447c4a133 100644 --- a/src/plugins/dashboard/public/url_generator.test.ts +++ b/src/plugins/dashboard/public/url_generator.test.ts @@ -17,7 +17,7 @@ * under the License. */ -import { createDirectAccessDashboardLinkGenerator } from './url_generator'; +import { createDashboardUrlGenerator } from './url_generator'; import { hashedItemStore } from '../../kibana_utils/public'; // eslint-disable-next-line import { mockStorage } from '../../kibana_utils/public/storage/hashed_item_store/mock'; @@ -55,7 +55,7 @@ describe('dashboard url generator', () => { }); test('creates a link to a saved dashboard', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -67,7 +67,7 @@ describe('dashboard url generator', () => { }); test('creates a link with global time range set up', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -83,7 +83,7 @@ describe('dashboard url generator', () => { }); test('creates a link with filters, time range, refresh interval and query to a saved object', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -123,7 +123,7 @@ describe('dashboard url generator', () => { }); test('if no useHash setting is given, uses the one was start services', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: true, @@ -137,7 +137,7 @@ describe('dashboard url generator', () => { }); test('can override a false useHash ui setting', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -152,7 +152,7 @@ describe('dashboard url generator', () => { }); test('can override a true useHash ui setting', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: true, @@ -195,7 +195,7 @@ describe('dashboard url generator', () => { }; test('attaches filters from destination dashboard', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -224,7 +224,7 @@ describe('dashboard url generator', () => { }); test("doesn't fail if can't retrieve filters from destination dashboard", async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -246,7 +246,7 @@ describe('dashboard url generator', () => { }); test('can enforce empty filters', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -270,7 +270,7 @@ describe('dashboard url generator', () => { }); test('no filters in result url if no filters applied', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, @@ -288,7 +288,7 @@ describe('dashboard url generator', () => { }); test('can turn off preserving filters', async () => { - const generator = createDirectAccessDashboardLinkGenerator(() => + const generator = createDashboardUrlGenerator(() => Promise.resolve({ appBasePath: APP_BASE_PATH, useHashedUrl: false, diff --git a/src/plugins/dashboard/public/url_generator.ts b/src/plugins/dashboard/public/url_generator.ts index 6f121ceb2d37..9d66f2df6577 100644 --- a/src/plugins/dashboard/public/url_generator.ts +++ b/src/plugins/dashboard/public/url_generator.ts @@ -75,7 +75,7 @@ export type DashboardAppLinkGeneratorState = UrlGeneratorState<{ preserveSavedFilters?: boolean; }>; -export const createDirectAccessDashboardLinkGenerator = ( +export const createDashboardUrlGenerator = ( getStartServices: () => Promise<{ appBasePath: string; useHashedUrl: boolean; diff --git a/src/plugins/share/public/url_generators/url_generator_service.test.ts b/src/plugins/share/public/url_generators/url_generator_service.test.ts index 4a377db03376..d256dcf5f7aa 100644 --- a/src/plugins/share/public/url_generators/url_generator_service.test.ts +++ b/src/plugins/share/public/url_generators/url_generator_service.test.ts @@ -30,11 +30,11 @@ test('Asking for a generator that does not exist throws an error', () => { }); test('Registering and retrieving a generator', async () => { - setup.registerUrlGenerator({ + const generator = setup.registerUrlGenerator({ id: 'TEST_GENERATOR', createUrl: () => Promise.resolve('myurl'), }); - const generator = start.getUrlGenerator('TEST_GENERATOR'); + expect(generator).toMatchInlineSnapshot(` Object { "createUrl": [Function], @@ -47,6 +47,20 @@ test('Registering and retrieving a generator', async () => { new Error('You cannot call migrate on a non-deprecated generator.') ); expect(await generator.createUrl({})).toBe('myurl'); + + const retrievedGenerator = start.getUrlGenerator('TEST_GENERATOR'); + expect(retrievedGenerator).toMatchInlineSnapshot(` + Object { + "createUrl": [Function], + "id": "TEST_GENERATOR", + "isDeprecated": false, + "migrate": [Function], + } + `); + await expect(generator.migrate({})).rejects.toEqual( + new Error('You cannot call migrate on a non-deprecated generator.') + ); + expect(await generator.createUrl({})).toBe('myurl'); }); test('Registering a generator with a createUrl function that is deprecated throws an error', () => { diff --git a/src/plugins/share/public/url_generators/url_generator_service.ts b/src/plugins/share/public/url_generators/url_generator_service.ts index 332750671cee..13c1b94acdd0 100644 --- a/src/plugins/share/public/url_generators/url_generator_service.ts +++ b/src/plugins/share/public/url_generators/url_generator_service.ts @@ -28,7 +28,9 @@ export interface UrlGeneratorsStart { } export interface UrlGeneratorsSetup { - registerUrlGenerator: (generator: UrlGeneratorsDefinition) => void; + registerUrlGenerator: ( + generator: UrlGeneratorsDefinition + ) => UrlGeneratorContract; } export class UrlGeneratorsService implements Plugin { @@ -43,10 +45,9 @@ export class UrlGeneratorsService implements Plugin( generatorOptions: UrlGeneratorsDefinition ) => { - this.urlGenerators.set( - generatorOptions.id, - new UrlGeneratorInternal(generatorOptions, this.getUrlGenerator) - ); + const generator = new UrlGeneratorInternal(generatorOptions, this.getUrlGenerator); + this.urlGenerators.set(generatorOptions.id, generator); + return generator.getPublicContract(); }, }; return setup; diff --git a/x-pack/plugins/dashboard_enhanced/public/plugin.ts b/x-pack/plugins/dashboard_enhanced/public/plugin.ts index 772e032289bc..c258a4148f84 100644 --- a/x-pack/plugins/dashboard_enhanced/public/plugin.ts +++ b/x-pack/plugins/dashboard_enhanced/public/plugin.ts @@ -11,6 +11,7 @@ import { DashboardDrilldownsService } from './services'; import { DataPublicPluginStart } from '../../../../src/plugins/data/public'; import { AdvancedUiActionsSetup, AdvancedUiActionsStart } from '../../advanced_ui_actions/public'; import { DrilldownsSetup, DrilldownsStart } from '../../drilldowns/public'; +import { DashboardStart } from '../../../../src/plugins/dashboard/public'; export interface SetupDependencies { advancedUiActions: AdvancedUiActionsSetup; @@ -25,6 +26,7 @@ export interface StartDependencies { drilldowns: DrilldownsStart; embeddable: EmbeddableStart; share: SharePluginStart; + dashboard: DashboardStart; } // eslint-disable-next-line diff --git a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_drilldowns_services.ts b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_drilldowns_services.ts index 0161836b2c5b..f5926cd6961c 100644 --- a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_drilldowns_services.ts +++ b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_drilldowns_services.ts @@ -44,6 +44,12 @@ export class DashboardDrilldownsService { { advancedUiActions: uiActions }: SetupDependencies ) { const start = createStartServicesGetter(core.getStartServices); + const getDashboardUrlGenerator = () => { + const urlGenerator = start().plugins.dashboard.dashboardUrlGenerator; + if (!urlGenerator) + throw new Error('dashboardUrlGenerator is required for dashboard to dashboard drilldown'); + return urlGenerator; + }; const actionFlyoutCreateDrilldown = new FlyoutCreateDrilldownAction({ start }); uiActions.addTriggerAction(CONTEXT_MENU_TRIGGER, actionFlyoutCreateDrilldown); @@ -51,7 +57,10 @@ export class DashboardDrilldownsService { const actionFlyoutEditDrilldown = new FlyoutEditDrilldownAction({ start }); uiActions.addTriggerAction(CONTEXT_MENU_TRIGGER, actionFlyoutEditDrilldown); - const dashboardToDashboardDrilldown = new DashboardToDashboardDrilldown({ start }); + const dashboardToDashboardDrilldown = new DashboardToDashboardDrilldown({ + start, + getDashboardUrlGenerator, + }); uiActions.registerDrilldown(dashboardToDashboardDrilldown); } } diff --git a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.test.tsx b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.test.tsx index 18ee95cb57b3..d8465562f930 100644 --- a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.test.tsx +++ b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.test.tsx @@ -5,8 +5,7 @@ */ import { DashboardToDashboardDrilldown } from './drilldown'; -import { UrlGeneratorContract } from '../../../../../../../src/plugins/share/public'; -import { savedObjectsServiceMock } from '../../../../../../../src/core/public/mocks'; +import { savedObjectsServiceMock, coreMock } from '../../../../../../../src/core/public/mocks'; import { dataPluginMock } from '../../../../../../../src/plugins/data/public/mocks'; import { ActionContext, Config } from './types'; import { @@ -19,15 +18,16 @@ import { import { esFilters } from '../../../../../../../src/plugins/data/public'; // convenient to use real implementation here. -import { createDirectAccessDashboardLinkGenerator } from '../../../../../../../src/plugins/dashboard/public/url_generator'; +import { createDashboardUrlGenerator } from '../../../../../../../src/plugins/dashboard/public/url_generator'; +import { UrlGeneratorsService } from '../../../../../../../src/plugins/share/public/url_generators'; import { VisualizeEmbeddableContract } from '../../../../../../../src/plugins/visualizations/public'; import { RangeSelectTriggerContext, ValueClickTriggerContext, } from '../../../../../../../src/plugins/embeddable/public'; +import { StartDependencies } from '../../../plugin'; import { SavedObjectLoader } from '../../../../../../../src/plugins/saved_objects/public'; import { StartServicesGetter } from '../../../../../../../src/plugins/kibana_utils/public/core'; -import { StartDependencies } from '../../../plugin'; describe('.isConfigValid()', () => { const drilldown = new DashboardToDashboardDrilldown({} as any); @@ -105,23 +105,19 @@ describe('.execute() & getHref', () => { data: { actions: dataPluginActions, }, - share: { - urlGenerators: { - getUrlGenerator: () => - createDirectAccessDashboardLinkGenerator(() => - Promise.resolve({ - appBasePath: 'test', - useHashedUrl: false, - savedDashboardLoader: ({} as unknown) as SavedObjectLoader, - }) - ) as UrlGeneratorContract, - }, - }, }, self: {}, - })) as unknown) as StartServicesGetter< - Pick - >, + })) as unknown) as StartServicesGetter>, + getDashboardUrlGenerator: () => + new UrlGeneratorsService().setup(coreMock.createSetup()).registerUrlGenerator( + createDashboardUrlGenerator(() => + Promise.resolve({ + appBasePath: 'test', + useHashedUrl: false, + savedDashboardLoader: ({} as unknown) as SavedObjectLoader, + }) + ) + ), }); const selectRangeFiltersSpy = jest .spyOn(dataPluginActions, 'createFiltersFromRangeSelectAction') diff --git a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.tsx b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.tsx index 848e77384f7f..6d83b8443a82 100644 --- a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.tsx +++ b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/dashboard_to_dashboard_drilldown/drilldown.tsx @@ -6,7 +6,7 @@ import React from 'react'; import { reactToUiComponent } from '../../../../../../../src/plugins/kibana_react/public'; -import { DASHBOARD_APP_URL_GENERATOR } from '../../../../../../../src/plugins/dashboard/public'; +import { DashboardUrlGenerator } from '../../../../../../../src/plugins/dashboard/public'; import { ActionContext, Config } from './types'; import { CollectConfigContainer } from './components'; import { DASHBOARD_TO_DASHBOARD_DRILLDOWN } from './constants'; @@ -22,7 +22,8 @@ import { StartServicesGetter } from '../../../../../../../src/plugins/kibana_uti import { StartDependencies } from '../../../plugin'; export interface Params { - start: StartServicesGetter>; + start: StartServicesGetter>; + getDashboardUrlGenerator: () => DashboardUrlGenerator; } export class DashboardToDashboardDrilldown @@ -142,9 +143,7 @@ export class DashboardToDashboardDrilldown } } - const { plugins } = this.params.start(); - - return plugins.share.urlGenerators.getUrlGenerator(DASHBOARD_APP_URL_GENERATOR).createUrl({ + return this.params.getDashboardUrlGenerator().createUrl({ dashboardId: config.dashboardId, query: config.useCurrentFilters ? query : undefined, timeRange, From af102afb7a524531fc97a5be96e8a7b3afa9908f Mon Sep 17 00:00:00 2001 From: James Gowdy Date: Mon, 11 May 2020 10:00:44 +0100 Subject: [PATCH 05/67] [ML] Fixing watch creation (#65956) --- .../components/create_watch_flyout/create_watch_service.js | 1 + 1 file changed, 1 insertion(+) diff --git a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/create_watch_flyout/create_watch_service.js b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/create_watch_flyout/create_watch_service.js index 29e89022a550..2a65ee06f2c2 100644 --- a/x-pack/plugins/ml/public/application/jobs/jobs_list/components/create_watch_flyout/create_watch_service.js +++ b/x-pack/plugins/ml/public/application/jobs/jobs_list/components/create_watch_flyout/create_watch_service.js @@ -157,6 +157,7 @@ class CreateWatchService { id, type: 'json', isNew: false, // Set to false, as we want to allow watches to be overwritten. + isActive: true, watch, }, }; From e148eb4437cb890c93ee328ea424d2d67584de50 Mon Sep 17 00:00:00 2001 From: Walter Rafelsberger Date: Mon, 11 May 2020 11:41:01 +0200 Subject: [PATCH 06/67] [ML] Anomaly Detection: Fix test to reflect model memory limit change. (#65967) Adapt jest test mocks to consider update introduced in #65652. --- .../models/job_validation/job_validation.test.ts | 13 ++++++++++--- 1 file changed, 10 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts b/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts index ca127f43d08a..d907677855c1 100644 --- a/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts +++ b/x-pack/plugins/ml/server/models/job_validation/job_validation.test.ts @@ -14,6 +14,13 @@ const callWithRequest: APICaller = (method: string) => { if (method === 'fieldCaps') { resolve({ fields: [] }); return; + } else if (method === 'ml.info') { + resolve({ + limits: { + effective_max_model_memory_limit: '100MB', + max_model_memory_limit: '1GB', + }, + }); } resolve({}); }) as Promise; @@ -291,7 +298,7 @@ describe('ML - validateJob', () => { }); // Failing https://github.com/elastic/kibana/issues/65865 - it.skip('basic validation passes, extended checks return some messages', () => { + it('basic validation passes, extended checks return some messages', () => { const payload = getBasicPayload(); return validateJob(callWithRequest, payload).then(messages => { const ids = messages.map(m => m.id); @@ -305,7 +312,7 @@ describe('ML - validateJob', () => { }); // Failing https://github.com/elastic/kibana/issues/65866 - it.skip('categorization job using mlcategory passes aggregatable field check', () => { + it('categorization job using mlcategory passes aggregatable field check', () => { const payload: any = { job: { job_id: 'categorization_test', @@ -372,7 +379,7 @@ describe('ML - validateJob', () => { }); // Failing https://github.com/elastic/kibana/issues/65867 - it.skip('script field not reported as non aggregatable', () => { + it('script field not reported as non aggregatable', () => { const payload: any = { job: { job_id: 'categorization_test', From ae38c6ba4c3fed23be12085a9032073d3cfe79c9 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Mon, 11 May 2020 12:38:39 +0200 Subject: [PATCH 07/67] [Drilldowns] Copy improvements (#65838) * update toast messages * update HelloBar text Co-authored-by: Elastic Machine --- .../connected_flyout_manage_drilldowns.tsx | 12 +-- .../i18n.ts | 75 +++++++++---------- .../components/drilldown_hello_bar/i18n.ts | 2 +- 3 files changed, 43 insertions(+), 46 deletions(-) diff --git a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx index 0d4a67e325e4..5ebda079a15b 100644 --- a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx +++ b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx @@ -289,8 +289,8 @@ function useDrilldownsStateManager( await run(async () => { await actionManager.createEvent(action, selectedTriggers); notifications.toasts.addSuccess({ - title: toastDrilldownCreated.title, - text: toastDrilldownCreated.text(action.name), + title: toastDrilldownCreated.title(action.name), + text: toastDrilldownCreated.text, }); }); } @@ -303,8 +303,8 @@ function useDrilldownsStateManager( await run(async () => { await actionManager.updateEvent(drilldownId, action, selectedTriggers); notifications.toasts.addSuccess({ - title: toastDrilldownEdited.title, - text: toastDrilldownEdited.text(action.name), + title: toastDrilldownEdited.title(action.name), + text: toastDrilldownEdited.text, }); }); } @@ -320,8 +320,8 @@ function useDrilldownsStateManager( text: toastDrilldownDeleted.text, } : { - title: toastDrilldownsDeleted.title, - text: toastDrilldownsDeleted.text(drilldownIds.length), + title: toastDrilldownsDeleted.title(drilldownIds.length), + text: toastDrilldownsDeleted.text, } ); }); diff --git a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/i18n.ts b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/i18n.ts index 31384860786e..851439eccbe7 100644 --- a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/i18n.ts +++ b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/i18n.ts @@ -7,35 +7,41 @@ import { i18n } from '@kbn/i18n'; export const toastDrilldownCreated = { - title: i18n.translate( - 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownCreatedTitle', + title: (drilldownName: string) => + i18n.translate( + 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownCreatedTitle', + { + defaultMessage: 'Drilldown "{drilldownName}" created', + values: { + drilldownName, + }, + } + ), + text: i18n.translate( + 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownCreatedText', { - defaultMessage: 'Drilldown created', + // TODO: remove `Save your dashboard before testing.` part + // when drilldowns are used not only in dashboard + // or after https://github.com/elastic/kibana/issues/65179 implemented + defaultMessage: 'Save your dashboard before testing.', } ), - text: (drilldownName: string) => - i18n.translate('xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownCreatedText', { - defaultMessage: 'You created "{drilldownName}". Save dashboard before testing.', - values: { - drilldownName, - }, - }), }; export const toastDrilldownEdited = { - title: i18n.translate( - 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownEditedTitle', - { - defaultMessage: 'Drilldown edited', - } - ), - text: (drilldownName: string) => - i18n.translate('xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownEditedText', { - defaultMessage: 'You edited "{drilldownName}". Save dashboard before testing.', + title: (drilldownName: string) => + i18n.translate('xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownEditedTitle', { + defaultMessage: 'Drilldown "{drilldownName}" updated', values: { drilldownName, }, }), + text: i18n.translate( + 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownEditedText', + { + defaultMessage: 'Save your dashboard before testing.', + } + ), }; export const toastDrilldownDeleted = { @@ -48,28 +54,26 @@ export const toastDrilldownDeleted = { text: i18n.translate( 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownDeletedText', { - defaultMessage: 'You deleted a drilldown.', + defaultMessage: 'Save your dashboard before testing.', } ), }; export const toastDrilldownsDeleted = { - title: i18n.translate( - 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownsDeletedTitle', - { - defaultMessage: 'Drilldowns deleted', - } - ), - text: (n: number) => + title: (n: number) => i18n.translate( - 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownsDeletedText', + 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownsDeletedTitle', { - defaultMessage: 'You deleted {n} drilldowns', - values: { - n, - }, + defaultMessage: '{n} drilldowns deleted', + values: { n }, } ), + text: i18n.translate( + 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownsDeletedText', + { + defaultMessage: 'Save your dashboard before testing.', + } + ), }; export const toastDrilldownsCRUDError = i18n.translate( @@ -79,10 +83,3 @@ export const toastDrilldownsCRUDError = i18n.translate( description: 'Title for generic error toast when persisting drilldown updates failed', } ); - -export const toastDrilldownsFetchError = i18n.translate( - 'xpack.drilldowns.components.flyoutDrilldownWizard.toast.drilldownsFetchErrorTitle', - { - defaultMessage: 'Error fetching drilldowns', - } -); diff --git a/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/i18n.ts b/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/i18n.ts index 63dc95dabc0f..622376c5b40a 100644 --- a/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/i18n.ts +++ b/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/i18n.ts @@ -10,7 +10,7 @@ export const txtHelpText = i18n.translate( 'xpack.drilldowns.components.DrilldownHelloBar.helpText', { defaultMessage: - 'Drilldowns provide the ability to define a new behavior when interacting with a panel. You can add multiple options or simply override the default filtering behavior.', + 'Drilldowns enable you to define new behaviors for interacting with panels. You can add multiple actions and override the default filter.', } ); From f4ba630da0e1ad4cea94820770263a9a3806b026 Mon Sep 17 00:00:00 2001 From: Sonja Krause-Harder Date: Mon, 11 May 2020 13:29:13 +0200 Subject: [PATCH 08/67] [EPM] Don't crash on invalid characters in integration search bar (#65872) * Catch and hide EuiSearchBar parse errors in package search. * Fix typo. * Remove unnecesary type cast. Co-authored-by: Elastic Machine --- .../epm/components/package_list_grid.tsx | 26 ++++++++++++++++--- 1 file changed, 22 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/epm/components/package_list_grid.tsx b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/epm/components/package_list_grid.tsx index 818b365d5be1..2f06d1d8703c 100644 --- a/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/epm/components/package_list_grid.tsx +++ b/x-pack/plugins/ingest_manager/public/applications/ingest_manager/sections/epm/components/package_list_grid.tsx @@ -13,6 +13,7 @@ import { // @ts-ignore EuiSearchBar, EuiText, + Query, } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -35,9 +36,28 @@ export function PackageListGrid({ list, showInstalledBadge, }: ListProps) { + const initialQuery = EuiSearchBar.Query.MATCH_ALL; + + const [query, setQuery] = useState(initialQuery); const [searchTerm, setSearchTerm] = useState(''); const localSearchRef = useLocalSearch(list); + const onQueryChange = ({ + // eslint-disable-next-line no-shadow + query, + queryText: userInput, + error, + }: { + query: Query | null; + queryText: string; + error: { message: string } | null; + }) => { + if (!error) { + setQuery(query); + setSearchTerm(userInput); + } + }; + const controlsContent = ; let gridContent: JSX.Element; @@ -59,16 +79,14 @@ export function PackageListGrid({ {controlsContent} { - setSearchTerm(userInput); - }} + onChange={onQueryChange} /> {gridContent} From c3a1b24ea09b2ed4238110b37b895083f1042bdd Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Mon, 11 May 2020 14:06:10 +0200 Subject: [PATCH 09/67] [ML] api integration tests for get anomaly detectors (#65828) --- .../apis/ml/anomaly_detectors/get.ts | 222 ++++++++++++++++++ .../apis/ml/anomaly_detectors/index.ts | 1 + 2 files changed, 223 insertions(+) create mode 100644 x-pack/test/api_integration/apis/ml/anomaly_detectors/get.ts diff --git a/x-pack/test/api_integration/apis/ml/anomaly_detectors/get.ts b/x-pack/test/api_integration/apis/ml/anomaly_detectors/get.ts new file mode 100644 index 000000000000..255afecde74c --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/anomaly_detectors/get.ts @@ -0,0 +1,222 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { USER } from '../../../../functional/services/machine_learning/security_common'; + +const COMMON_HEADERS = { + 'kbn-xsrf': 'some-xsrf-token', +}; + +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + const jobId = `fq_single_${Date.now()}`; + + async function createJobs() { + const mockJobConfigs = [ + { + job_id: `${jobId}_1`, + description: + 'Single metric job based on the farequote dataset with 30m bucketspan and mean(responsetime)', + groups: ['automated', 'farequote', 'single-metric'], + analysis_config: { + bucket_span: '30m', + detectors: [{ function: 'mean', field_name: 'responsetime' }], + influencers: [], + summary_count_field_name: 'doc_count', + }, + data_description: { time_field: '@timestamp' }, + analysis_limits: { model_memory_limit: '11MB' }, + model_plot_config: { enabled: true }, + }, + { + job_id: `${jobId}_2`, + description: + 'Another single metric job based on the farequote dataset with 30m bucketspan and mean(responsetime)', + groups: ['automated', 'farequote', 'single-metric'], + analysis_config: { + bucket_span: '30m', + detectors: [{ function: 'mean', field_name: 'responsetime' }], + influencers: [], + summary_count_field_name: 'doc_count', + }, + data_description: { time_field: '@timestamp' }, + analysis_limits: { model_memory_limit: '11MB' }, + model_plot_config: { enabled: false }, + }, + ]; + + for (const jobConfig of mockJobConfigs) { + await ml.api.createAnomalyDetectionJob(jobConfig); + } + } + + describe('GET anomaly_detectors', () => { + before(async () => { + await esArchiver.loadIfNeeded('ml/farequote'); + await ml.testResources.setKibanaTimeZoneToUTC(); + + await createJobs(); + }); + + after(async () => { + await ml.api.cleanMlIndices(); + }); + + describe('GetAnomalyDetectors', () => { + it('should fetch all anomaly detector jobs', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .expect(200); + + expect(body.count).to.eql(2); + expect(body.jobs.length).to.eql(2); + expect(body.jobs[0].job_id).to.eql(`${jobId}_1`); + expect(body.jobs[1].job_id).to.eql(`${jobId}_2`); + }); + + it('should not allow to retrieve jobs for the user without required permissions', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors`) + .auth(USER.ML_UNAUTHORIZED, ml.securityCommon.getPasswordForUser(USER.ML_UNAUTHORIZED)) + .set(COMMON_HEADERS) + .expect(404); + + expect(body.error).to.eql('Not Found'); + expect(body.message).to.eql('Not Found'); + }); + }); + + describe('GetAnomalyDetectorsById', () => { + it('should fetch single anomaly detector job by id', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/${jobId}_1`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .expect(200); + + expect(body.count).to.eql(1); + expect(body.jobs.length).to.eql(1); + expect(body.jobs[0].job_id).to.eql(`${jobId}_1`); + }); + + it('should fetch anomaly detector jobs based on provided ids', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/${jobId}_1,${jobId}_2`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .expect(200); + + expect(body.count).to.eql(2); + expect(body.jobs.length).to.eql(2); + expect(body.jobs[0].job_id).to.eql(`${jobId}_1`); + expect(body.jobs[1].job_id).to.eql(`${jobId}_2`); + }); + + it('should not allow to retrieve a job for the user without required permissions', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/${jobId}_1`) + .auth(USER.ML_UNAUTHORIZED, ml.securityCommon.getPasswordForUser(USER.ML_UNAUTHORIZED)) + .set(COMMON_HEADERS) + .expect(404); + + expect(body.error).to.eql('Not Found'); + expect(body.message).to.eql('Not Found'); + }); + }); + + describe('GetAnomalyDetectorsStats', () => { + it('should fetch jobs stats', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/_stats`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .expect(200); + + expect(body.count).to.eql(2); + expect(body.jobs.length).to.eql(2); + expect(body.jobs[0].job_id).to.eql(`${jobId}_1`); + expect(body.jobs[0]).to.keys( + 'timing_stats', + 'state', + 'forecasts_stats', + 'model_size_stats', + 'data_counts' + ); + expect(body.jobs[1].job_id).to.eql(`${jobId}_2`); + }); + + it('should not allow to retrieve jobs stats for the user without required permissions', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/_stats`) + .auth(USER.ML_UNAUTHORIZED, ml.securityCommon.getPasswordForUser(USER.ML_UNAUTHORIZED)) + .set(COMMON_HEADERS) + .expect(404); + + expect(body.error).to.eql('Not Found'); + expect(body.message).to.eql('Not Found'); + }); + }); + + describe('GetAnomalyDetectorsStatsById', () => { + it('should fetch single job stats', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/${jobId}_1/_stats`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .expect(200); + + expect(body.count).to.eql(1); + expect(body.jobs.length).to.eql(1); + expect(body.jobs[0].job_id).to.eql(`${jobId}_1`); + expect(body.jobs[0]).to.keys( + 'timing_stats', + 'state', + 'forecasts_stats', + 'model_size_stats', + 'data_counts' + ); + }); + + it('should fetch multiple jobs stats based on provided ids', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/${jobId}_1,${jobId}_2/_stats`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .expect(200); + + expect(body.count).to.eql(2); + expect(body.jobs.length).to.eql(2); + expect(body.jobs[0].job_id).to.eql(`${jobId}_1`); + expect(body.jobs[0]).to.keys( + 'timing_stats', + 'state', + 'forecasts_stats', + 'model_size_stats', + 'data_counts' + ); + expect(body.jobs[1].job_id).to.eql(`${jobId}_2`); + }); + + it('should not allow to retrieve a job stats for the user without required permissions', async () => { + const { body } = await supertest + .get(`/api/ml/anomaly_detectors/${jobId}_1/_stats`) + .auth(USER.ML_UNAUTHORIZED, ml.securityCommon.getPasswordForUser(USER.ML_UNAUTHORIZED)) + .set(COMMON_HEADERS) + .expect(404); + + expect(body.error).to.eql('Not Found'); + expect(body.message).to.eql('Not Found'); + }); + }); + }); +}; diff --git a/x-pack/test/api_integration/apis/ml/anomaly_detectors/index.ts b/x-pack/test/api_integration/apis/ml/anomaly_detectors/index.ts index fb8acaf5c3ae..3985cd39e4d1 100644 --- a/x-pack/test/api_integration/apis/ml/anomaly_detectors/index.ts +++ b/x-pack/test/api_integration/apis/ml/anomaly_detectors/index.ts @@ -8,5 +8,6 @@ import { FtrProviderContext } from '../../../ftr_provider_context'; export default function({ loadTestFile }: FtrProviderContext) { describe('anomaly detectors', function() { loadTestFile(require.resolve('./create')); + loadTestFile(require.resolve('./get')); }); } From d005a55d163bbb550af4b8ba6eac75572b11cd20 Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Mon, 11 May 2020 14:06:54 +0200 Subject: [PATCH 10/67] [ML] API integration tests for fetching anomalies table data (#65844) --- x-pack/test/api_integration/apis/ml/index.ts | 1 + .../ml/results/get_anomalies_table_data.ts | 136 ++++++++++++++++++ .../api_integration/apis/ml/results/index.ts | 12 ++ 3 files changed, 149 insertions(+) create mode 100644 x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts create mode 100644 x-pack/test/api_integration/apis/ml/results/index.ts diff --git a/x-pack/test/api_integration/apis/ml/index.ts b/x-pack/test/api_integration/apis/ml/index.ts index 58356637c63a..df99b125e6ad 100644 --- a/x-pack/test/api_integration/apis/ml/index.ts +++ b/x-pack/test/api_integration/apis/ml/index.ts @@ -37,5 +37,6 @@ export default function({ getService, loadTestFile }: FtrProviderContext) { loadTestFile(require.resolve('./fields_service')); loadTestFile(require.resolve('./job_validation')); loadTestFile(require.resolve('./jobs')); + loadTestFile(require.resolve('./results')); }); } diff --git a/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts b/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts new file mode 100644 index 000000000000..9f34a3c63956 --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/results/get_anomalies_table_data.ts @@ -0,0 +1,136 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import expect from '@kbn/expect'; +import { USER } from '../../../../functional/services/machine_learning/security_common'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { Datafeed, Job } from '../../../../../plugins/ml/common/types/anomaly_detection_jobs'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + const COMMON_HEADERS = { + 'kbn-xsrf': 'some-xsrf-token', + }; + + const JOB_CONFIG: Job = { + job_id: `fq_multi_1_ae`, + description: + 'mean/min/max(responsetime) partition=airline on farequote dataset with 1h bucket span', + groups: ['farequote', 'automated', 'multi-metric'], + analysis_config: { + bucket_span: '1h', + influencers: ['airline'], + detectors: [ + { function: 'mean', field_name: 'responsetime', partition_field_name: 'airline' }, + { function: 'min', field_name: 'responsetime', partition_field_name: 'airline' }, + { function: 'max', field_name: 'responsetime', partition_field_name: 'airline' }, + ], + }, + data_description: { time_field: '@timestamp' }, + analysis_limits: { model_memory_limit: '20mb' }, + model_plot_config: { enabled: true }, + }; + + const DATAFEED_CONFIG: Datafeed = { + datafeed_id: 'datafeed-fq_multi_1_se', + indices: ['ft_farequote'], + job_id: 'fq_multi_1_ae', + query: { bool: { must: [{ match_all: {} }] } }, + }; + + async function createMockJobs() { + await ml.api.createAndRunAnomalyDetectionLookbackJob(JOB_CONFIG, DATAFEED_CONFIG); + } + + describe('GetAnomaliesTableData', () => { + before(async () => { + await esArchiver.loadIfNeeded('ml/farequote'); + await ml.testResources.setKibanaTimeZoneToUTC(); + await createMockJobs(); + }); + + after(async () => { + await ml.api.cleanMlIndices(); + }); + + it('should fetch anomalies table data', async () => { + const requestBody = { + jobIds: [JOB_CONFIG.job_id], + criteriaFields: [{ fieldName: 'detector_index', fieldValue: 0 }], + influencers: [], + aggregationInterval: 'auto', + threshold: 0, + earliestMs: 1454889600000, // February 8, 2016 12:00:00 AM GMT + latestMs: 1454976000000, // February 9, 2016 12:00:00 AM GMT + dateFormatTz: 'UTC', + maxRecords: 500, + }; + + const { body } = await supertest + .post(`/api/ml/results/anomalies_table_data`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(200); + + expect(body.interval).to.eql('hour'); + expect(body.anomalies.length).to.eql(12); + }); + + it('should validate request body', async () => { + const requestBody = { + // missing jobIds + criteriaFields: [{ fieldName: 'detector_index', fieldValue: 0 }], + influencers: [], + aggregationInterval: 'auto', + threshold: 0, + // invalid earliest and latest instead of earliestMs and latestMs + earliest: 1454889600000, // February 8, 2016 12:00:00 AM GMT + latest: 1454976000000, // February 9, 2016 12:00:00 AM GMT + dateFormatTz: 'UTC', + maxRecords: 500, + }; + + const { body } = await supertest + .post(`/api/ml/results/anomalies_table_data`) + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(400); + + expect(body.error).to.eql('Bad Request'); + expect(body.message).to.eql( + '[request body.jobIds]: expected value of type [array] but got [undefined]' + ); + }); + + it('should not allow fetching of anomalies table data without required permissions', async () => { + const requestBody = { + jobIds: [JOB_CONFIG.job_id], + criteriaFields: [{ fieldName: 'detector_index', fieldValue: 0 }], + influencers: [], + aggregationInterval: 'auto', + threshold: 0, + earliestMs: 1454889600000, // February 8, 2016 12:00:00 AM GMT + latestMs: 1454976000000, // February 9, 2016 12:00:00 AM GMT + dateFormatTz: 'UTC', + maxRecords: 500, + }; + const { body } = await supertest + .post(`/api/ml/results/anomalies_table_data`) + .auth(USER.ML_UNAUTHORIZED, ml.securityCommon.getPasswordForUser(USER.ML_UNAUTHORIZED)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(404); + + expect(body.error).to.eql('Not Found'); + expect(body.message).to.eql('Not Found'); + }); + }); +}; diff --git a/x-pack/test/api_integration/apis/ml/results/index.ts b/x-pack/test/api_integration/apis/ml/results/index.ts new file mode 100644 index 000000000000..80197e6a32ad --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/results/index.ts @@ -0,0 +1,12 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { FtrProviderContext } from '../../../ftr_provider_context'; + +export default function({ loadTestFile }: FtrProviderContext) { + describe('ResultsService', () => { + loadTestFile(require.resolve('./get_anomalies_table_data')); + }); +} From 0830a8bd4c67c63ee08a10bce81ec8d6f766904b Mon Sep 17 00:00:00 2001 From: Nicolas Chaulet Date: Mon, 11 May 2020 08:11:17 -0400 Subject: [PATCH 11/67] [Ingest] Validate config_id when creating an enrollment API key (#65765) --- .../routes/enrollment_api_key/handler.ts | 6 + .../services/api_keys/enrollment_api_key.ts | 15 + .../apis/fleet/enrollment_api_keys/crud.ts | 19 +- .../es_archives/fleet/agents/data.json | 27 + .../es_archives/fleet/agents/mappings.json | 678 ++++++++++-------- 5 files changed, 458 insertions(+), 287 deletions(-) diff --git a/x-pack/plugins/ingest_manager/server/routes/enrollment_api_key/handler.ts b/x-pack/plugins/ingest_manager/server/routes/enrollment_api_key/handler.ts index 9d3eb5360dbe..94fc6de60961 100644 --- a/x-pack/plugins/ingest_manager/server/routes/enrollment_api_key/handler.ts +++ b/x-pack/plugins/ingest_manager/server/routes/enrollment_api_key/handler.ts @@ -58,6 +58,12 @@ export const postEnrollmentApiKeyHandler: RequestHandler< return response.ok({ body }); } catch (e) { + if (e.isBoom) { + return response.customError({ + statusCode: e.output.statusCode, + body: { message: e.message }, + }); + } return response.customError({ statusCode: 500, body: { message: e.message }, diff --git a/x-pack/plugins/ingest_manager/server/services/api_keys/enrollment_api_key.ts b/x-pack/plugins/ingest_manager/server/services/api_keys/enrollment_api_key.ts index 1ac812c3380c..3b003f47eb6f 100644 --- a/x-pack/plugins/ingest_manager/server/services/api_keys/enrollment_api_key.ts +++ b/x-pack/plugins/ingest_manager/server/services/api_keys/enrollment_api_key.ts @@ -5,6 +5,7 @@ */ import uuid from 'uuid'; +import Boom from 'boom'; import { SavedObjectsClientContract, SavedObject } from 'src/core/server'; import { EnrollmentAPIKey, EnrollmentAPIKeySOAttributes } from '../../types'; import { ENROLLMENT_API_KEYS_SAVED_OBJECT_TYPE } from '../../constants'; @@ -106,6 +107,9 @@ export async function generateEnrollmentAPIKey( ) { const id = uuid.v4(); const { name: providedKeyName } = data; + if (data.configId) { + await validateConfigId(soClient, data.configId); + } const configId = data.configId ?? (await agentConfigService.getDefaultAgentConfigId(soClient)); const name = providedKeyName ? `${providedKeyName} (${id})` : id; const key = await createAPIKey(soClient, name, { @@ -143,6 +147,17 @@ export async function generateEnrollmentAPIKey( return getEnrollmentAPIKey(soClient, so.id); } +async function validateConfigId(soClient: SavedObjectsClientContract, configId: string) { + try { + await agentConfigService.get(soClient, configId); + } catch (e) { + if (e.isBoom && e.output.statusCode === 404) { + throw Boom.badRequest(`Agent config ${configId} does not exist`); + } + throw e; + } +} + function savedObjectToEnrollmentApiKey({ error, attributes, diff --git a/x-pack/test/api_integration/apis/fleet/enrollment_api_keys/crud.ts b/x-pack/test/api_integration/apis/fleet/enrollment_api_keys/crud.ts index 602ec6ca9d9e..9d0629a7b32e 100644 --- a/x-pack/test/api_integration/apis/fleet/enrollment_api_keys/crud.ts +++ b/x-pack/test/api_integration/apis/fleet/enrollment_api_keys/crud.ts @@ -25,6 +25,7 @@ export default function(providerContext: FtrProviderContext) { after(async () => { await esArchiver.unload('fleet/agents'); }); + describe('GET /fleet/enrollment-api-keys', async () => { it('should list existing api keys', async () => { const { body: apiResponse } = await supertest @@ -54,7 +55,7 @@ export default function(providerContext: FtrProviderContext) { .post(`/api/ingest_manager/fleet/enrollment-api-keys`) .set('kbn-xsrf', 'xxx') .send({ - config_id: 'policy1', + config_id: 'config1', }) .expect(200); keyId = apiResponse.item.id; @@ -89,12 +90,22 @@ export default function(providerContext: FtrProviderContext) { .expect(400); }); - it('should allow to create an enrollment api key with a policy', async () => { + it('should not allow to create an enrollment api key for a non existing agent config', async () => { + await supertest + .post(`/api/ingest_manager/fleet/enrollment-api-keys`) + .set('kbn-xsrf', 'xxx') + .send({ + config_id: 'idonotexistsconfig', + }) + .expect(400); + }); + + it('should allow to create an enrollment api key with an agent config', async () => { const { body: apiResponse } = await supertest .post(`/api/ingest_manager/fleet/enrollment-api-keys`) .set('kbn-xsrf', 'xxx') .send({ - config_id: 'policy1', + config_id: 'config1', }) .expect(200); @@ -107,7 +118,7 @@ export default function(providerContext: FtrProviderContext) { .post(`/api/ingest_manager/fleet/enrollment-api-keys`) .set('kbn-xsrf', 'xxx') .send({ - config_id: 'policy1', + config_id: 'config1', }) .expect(200); expect(apiResponse.success).to.eql(true); diff --git a/x-pack/test/functional/es_archives/fleet/agents/data.json b/x-pack/test/functional/es_archives/fleet/agents/data.json index d22e3cd3fecd..1739f583b2e8 100644 --- a/x-pack/test/functional/es_archives/fleet/agents/data.json +++ b/x-pack/test/functional/es_archives/fleet/agents/data.json @@ -199,3 +199,30 @@ } } } + +{ + "type": "doc", + "value": { + "id": "ingest-agent-configs:config1", + "index": ".kibana", + "source": { + "type": "ingest-agent-configs", + "ingest-agent-configs": { + "name": "Test config", + "namespace": "default", + "description": "Config 1", + "status": "active", + "datasources": [], + "is_default": true, + "monitoring_enabled": [ + "logs", + "metrics" + ], + "revision": 2, + "updated_on": "2020-05-07T19:34:42.533Z", + "updated_by": "system", + "id": "config1" + } + } + } +} diff --git a/x-pack/test/functional/es_archives/fleet/agents/mappings.json b/x-pack/test/functional/es_archives/fleet/agents/mappings.json index 409cc3c689ea..15e5a5524107 100644 --- a/x-pack/test/functional/es_archives/fleet/agents/mappings.json +++ b/x-pack/test/functional/es_archives/fleet/agents/mappings.json @@ -9,39 +9,42 @@ "dynamic": "strict", "_meta": { "migrationMappingPropertyHashes": { - "ingest-outputs": "aee9782e0d500b867859650a36280165", "ml-telemetry": "257fd1d4b4fdbb9cb4b8a3b27da201e9", "visualization": "52d7a13ad68a150c4525b292d23e12cc", "references": "7997cf5a56cc02bdc9c93361bde732b0", "graph-workspace": "cd7ba1330e6682e9cc00b78850874be1", + "epm-packages": "92b4b1899b887b090d01c033f3118a85", "type": "2f4316de49999235636386fe51dc06c1", - "infrastructure-ui-source": "ddc0ecb18383f6b26101a2fadb2dab0c", "space": "c5ca8acafa0beaa4d08d014a97b6bc6b", + "infrastructure-ui-source": "ddc0ecb18383f6b26101a2fadb2dab0c", + "ingest_manager_settings": "c5b0749b4ab03c582efd4c14cb8f132c", "application_usage_totals": "c897e4310c5f24b07caaff3db53ae2c1", "action": "6e96ac5e648f57523879661ea72525b7", - "agent_configs": "38abaf89513877745c359e7700c0c66a", "dashboard": "d00f614b29a80360e1190193fd333bab", - "metrics-explorer-view": "53c5365793677328df0ccb6138bf3cdd", - "siem-detection-engine-rule-actions": "90eee2e4635260f4be0a1da8f5bc0aa0", - "fleet-agent-events": "3231653fafe4ef3196fe3b32ab774bf2", + "metrics-explorer-view": "428e319af3e822c80a84cf87123ca35c", + "siem-detection-engine-rule-actions": "6569b288c169539db10cb262bf79de18", "query": "11aaeb7f5f7fa5bb43f25e18ce26e7d9", "file-upload-telemetry": "0ed4d3e1983d1217a30982630897092e", "application_usage_transactional": "965839e75f809fefe04f92dc4d99722a", "action_task_params": "a9d49f184ee89641044be0ca2950fa3a", + "fleet-agent-events": "3231653fafe4ef3196fe3b32ab774bf2", + "ingest-datasources": "2346514df03316001d56ed4c8d46fa94", "apm-indices": "9bb9b2bf1fa636ed8619cbab5ce6a1dd", - "inventory-view": "9ecce5b58867403613d82fe496470b34", - "fleet-enrollment-api-keys": "28b91e20b105b6f928e2012600085d8f", - "upgrade-assistant-reindex-operation": "a53a20fe086b72c9a86da3cc12dad8a6", + "inventory-view": "5299b67717e96502c77babf1c16fd4d3", + "upgrade-assistant-reindex-operation": "296a89039fc4260292be36b1b005d8f2", "cases-comments": "c2061fb929f585df57425102fa928b4b", + "fleet-enrollment-api-keys": "28b91e20b105b6f928e2012600085d8f", "canvas-element": "7390014e1091044523666d97247392fc", - "datasources": "d4bc0c252b2b5683ff21ea32d00acffc", + "ingest-outputs": "0e57221778a7153c8292edf154099036", "telemetry": "36a616f7026dfa617d6655df850fe16d", "upgrade-assistant-telemetry": "56702cec857e0a9dacfb696655b4ff7b", "lens-ui-telemetry": "509bfa5978586998e05f9e303c07a327", + "namespaces": "2f4316de49999235636386fe51dc06c1", "server": "ec97f1c5da1a19609a60874e5af1100c", "siem-ui-timeline-note": "8874706eedc49059d4cf0f5094559084", "lens": "21c3ea0763beb1ecb0162529706b88c5", "sample-data-telemetry": "7d3cfeb915303c9641c59681967ffeb4", + "fleet-agent-actions": "e520c855577170c24481be05c3ae14ec", "search": "181661168bbadd1eff5902361e2a0d5c", "updated_at": "00da57df13e94e9d98437d13ace4bfe0", "cases-configure": "42711cbb311976c0687853f4c1354572", @@ -49,23 +52,22 @@ "alert": "7b44fba6773e37c806ce290ea9b7024e", "siem-detection-engine-rule-status": "ae783f41c6937db6b7a2ef5c93a9e9b0", "map": "23d7aa4a720d4938ccde3983f87bd58d", - "uptime-dynamic-settings": "b6289473c8985c79b6c47eebc19a0ca5", - "epm-packages": "75d12cd13c867fd713d7dfb27366bc20", + "uptime-dynamic-settings": "fcdb453a30092f022f2642db29523d80", + "cases": "32aa96a6d3855ddda53010ae2048ac22", "apm-telemetry": "3525d7c22c42bc80f5e6e9cb3f2b26a2", - "cases": "08b8b110dbca273d37e8aef131ecab61", - "siem-ui-timeline": "ac8020190f5950dd3250b6499144e7fb", + "siem-ui-timeline": "f2d929253ecd06ffbac78b4047f45a86", "kql-telemetry": "d12a98a6f19a2d273696597547e064ee", "ui-metric": "0d409297dc5ebe1e3a1da691c6ee32e3", - "url": "c7f66a0df8b1b52f17c28c4adb111105", - "fleet-agents": "c3eeb7b9d97176f15f6d126370ab23c7", + "ingest-agent-configs": "f4bdc17427437537ca1754d5d5057ad5", + "url": "b675c3be8d76ecf029294d51dc7ec65d", "migrationVersion": "4a1746014a75ade3a714e1db5763276f", "index-pattern": "66eccb05066c5a89924f48a9e9736499", - "maps-telemetry": "268da3a48066123fc5baf35abaa55014", + "fleet-agents": "864760267df6c970f629bd4458506c53", + "maps-telemetry": "bfd39d88aadadb4be597ea984d433dbe", "namespace": "2f4316de49999235636386fe51dc06c1", "cases-user-actions": "32277330ec6b721abe3b846cfd939a71", - "fleet-agent-actions": "ed270b46812f0fa1439366c428a2cf17", - "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "timelion-sheet": "9a2a2748877c7a7b582fef201ab1d4cf", + "siem-ui-timeline-pinned-event": "20638091112f0e14f0e443d512301c29", "config": "ae24d22d5986d04124cc6568f771066f", "tsvb-validation-telemetry": "3a37ef6c8700ae6fc97d5c7da00e9215" } @@ -107,145 +109,6 @@ } } }, - "fleet-agent-actions": { - "properties": { - "agent_id": { - "type": "keyword" - }, - "created_at": { - "type": "date" - }, - "data": { - "type": "flattened" - }, - "sent_at": { - "type": "date" - }, - "type": { - "type": "keyword" - } - } - }, - "agent_configs": { - "properties": { - "datasources": { - "type": "keyword" - }, - "description": { - "type": "text" - }, - "id": { - "type": "keyword" - }, - "is_default": { - "type": "boolean" - }, - "name": { - "type": "text" - }, - "namespace": { - "type": "keyword" - }, - "revision": { - "type": "integer" - }, - "status": { - "type": "keyword" - }, - "updated_by": { - "type": "keyword" - }, - "updated_on": { - "type": "keyword" - } - } - }, - "fleet-agent-events": { - "properties": { - "action_id": { - "type": "keyword" - }, - "agent_id": { - "type": "keyword" - }, - "config_id": { - "type": "keyword" - }, - "data": { - "type": "text" - }, - "message": { - "type": "text" - }, - "payload": { - "type": "text" - }, - "stream_id": { - "type": "keyword" - }, - "subtype": { - "type": "keyword" - }, - "timestamp": { - "type": "date" - }, - "type": { - "type": "keyword" - } - } - }, - "fleet-agents": { - "properties": { - "access_api_key_id": { - "type": "keyword" - }, - "active": { - "type": "boolean" - }, - "config_id": { - "type": "keyword" - }, - "config_newest_revision": { - "type": "integer" - }, - "config_revision": { - "type": "integer" - }, - "current_error_events": { - "type": "text" - }, - "default_api_key": { - "type": "keyword" - }, - "enrolled_at": { - "type": "date" - }, - "last_checkin": { - "type": "date" - }, - "last_updated": { - "type": "date" - }, - "local_metadata": { - "type": "flattened" - }, - "shared_id": { - "type": "keyword" - }, - "type": { - "type": "keyword" - }, - "updated_at": { - "type": "date" - }, - "user_provided_metadata": { - "type": "flattened" - }, - "version": { - "type": "keyword" - } - } - }, "alert": { "properties": { "actions": { @@ -1355,6 +1218,9 @@ } } }, + "connector_id": { + "type": "keyword" + }, "created_at": { "type": "date" }, @@ -1630,137 +1496,180 @@ } } }, - "datasources": { + "epm-packages": { "properties": { - "config_id": { - "type": "keyword" - }, - "description": { - "type": "text" - }, - "enabled": { - "type": "boolean" + "es_index_patterns": { + "type": "object", + "dynamic": "false" }, - "inputs": { + "installed": { "type": "nested", "properties": { - "config": { - "type": "flattened" - }, - "enabled": { - "type": "boolean" - }, - "processors": { + "id": { "type": "keyword" }, - "streams": { - "type": "nested", - "properties": { - "config": { - "type": "flattened" - }, - "dataset": { - "type": "keyword" - }, - "enabled": { - "type": "boolean" - }, - "id": { - "type": "keyword" - }, - "processors": { - "type": "keyword" - } - } - }, "type": { "type": "keyword" } } }, + "internal": { + "type": "boolean" + }, "name": { "type": "keyword" }, - "namespace": { - "type": "keyword" + "removable": { + "type": "boolean" }, - "output_id": { + "version": { "type": "keyword" - }, - "package": { - "properties": { - "name": { - "type": "keyword" - }, - "title": { - "type": "keyword" - }, - "version": { - "type": "keyword" - } - } - }, - "revision": { - "type": "integer" } } }, - "fleet-enrollment-api-keys": { + "file-upload-telemetry": { "properties": { - "active": { - "type": "boolean" - }, - "api_key": { - "type": "binary" - }, - "api_key_id": { - "type": "keyword" - }, - "config_id": { + "filesUploadedTotalCount": { + "type": "long" + } + } + }, + "fleet-agent-actions": { + "properties": { + "agent_id": { "type": "keyword" }, "created_at": { "type": "date" }, - "expire_at": { - "type": "date" + "data": { + "type": "binary" }, - "name": { - "type": "keyword" + "sent_at": { + "type": "date" }, "type": { "type": "keyword" - }, - "updated_at": { - "type": "date" } } }, - "epm-packages": { + "fleet-agent-events": { "properties": { - "installed": { - "type": "nested", - "properties": { - "id": { - "type": "keyword" - }, - "type": { - "type": "keyword" - } - } - }, - "name": { + "action_id": { + "type": "keyword" + }, + "agent_id": { + "type": "keyword" + }, + "config_id": { + "type": "keyword" + }, + "data": { + "type": "text" + }, + "message": { + "type": "text" + }, + "payload": { + "type": "text" + }, + "stream_id": { + "type": "keyword" + }, + "subtype": { + "type": "keyword" + }, + "timestamp": { + "type": "date" + }, + "type": { + "type": "keyword" + } + } + }, + "fleet-agents": { + "properties": { + "access_api_key_id": { + "type": "keyword" + }, + "active": { + "type": "boolean" + }, + "config_id": { + "type": "keyword" + }, + "config_newest_revision": { + "type": "integer" + }, + "config_revision": { + "type": "integer" + }, + "current_error_events": { + "type": "text" + }, + "default_api_key": { + "type": "keyword" + }, + "default_api_key_id": { + "type": "keyword" + }, + "enrolled_at": { + "type": "date" + }, + "last_checkin": { + "type": "date" + }, + "last_updated": { + "type": "date" + }, + "local_metadata": { + "type": "flattened" + }, + "shared_id": { "type": "keyword" }, + "type": { + "type": "keyword" + }, + "updated_at": { + "type": "date" + }, + "user_provided_metadata": { + "type": "flattened" + }, "version": { "type": "keyword" } } }, - "file-upload-telemetry": { + "fleet-enrollment-api-keys": { "properties": { - "filesUploadedTotalCount": { - "type": "long" + "active": { + "type": "boolean" + }, + "api_key": { + "type": "binary" + }, + "api_key_id": { + "type": "keyword" + }, + "config_id": { + "type": "keyword" + }, + "created_at": { + "type": "date" + }, + "expire_at": { + "type": "date" + }, + "name": { + "type": "keyword" + }, + "type": { + "type": "keyword" + }, + "updated_at": { + "type": "date" } } }, @@ -1888,8 +1797,176 @@ } } }, + "ingest-agent-configs": { + "properties": { + "datasources": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "id": { + "type": "keyword" + }, + "is_default": { + "type": "boolean" + }, + "monitoring_enabled": { + "type": "keyword" + }, + "name": { + "type": "text" + }, + "namespace": { + "type": "keyword" + }, + "revision": { + "type": "integer" + }, + "status": { + "type": "keyword" + }, + "updated_by": { + "type": "keyword" + }, + "updated_on": { + "type": "keyword" + } + } + }, + "ingest-datasources": { + "properties": { + "config_id": { + "type": "keyword" + }, + "description": { + "type": "text" + }, + "enabled": { + "type": "boolean" + }, + "inputs": { + "type": "nested", + "properties": { + "config": { + "type": "flattened" + }, + "enabled": { + "type": "boolean" + }, + "processors": { + "type": "keyword" + }, + "streams": { + "type": "nested", + "properties": { + "agent_stream": { + "type": "flattened" + }, + "config": { + "type": "flattened" + }, + "dataset": { + "type": "keyword" + }, + "enabled": { + "type": "boolean" + }, + "id": { + "type": "keyword" + }, + "processors": { + "type": "keyword" + }, + "vars": { + "type": "flattened" + } + } + }, + "type": { + "type": "keyword" + }, + "vars": { + "type": "flattened" + } + } + }, + "name": { + "type": "keyword" + }, + "namespace": { + "type": "keyword" + }, + "output_id": { + "type": "keyword" + }, + "package": { + "properties": { + "name": { + "type": "keyword" + }, + "title": { + "type": "keyword" + }, + "version": { + "type": "keyword" + } + } + }, + "revision": { + "type": "integer" + } + } + }, + "ingest-outputs": { + "properties": { + "ca_sha256": { + "type": "keyword" + }, + "config": { + "type": "flattened" + }, + "fleet_enroll_password": { + "type": "binary" + }, + "fleet_enroll_username": { + "type": "binary" + }, + "hosts": { + "type": "keyword" + }, + "is_default": { + "type": "boolean" + }, + "name": { + "type": "keyword" + }, + "type": { + "type": "keyword" + } + } + }, + "ingest_manager_settings": { + "properties": { + "agent_auto_upgrade": { + "type": "keyword" + }, + "kibana_ca_sha256": { + "type": "keyword" + }, + "kibana_url": { + "type": "keyword" + }, + "package_auto_upgrade": { + "type": "keyword" + } + } + }, "inventory-view": { "properties": { + "accountId": { + "type": "keyword" + }, "autoBounds": { "type": "boolean" }, @@ -1983,8 +2060,11 @@ "nodeType": { "type": "keyword" }, + "region": { + "type": "keyword" + }, "time": { - "type": "integer" + "type": "long" }, "view": { "type": "keyword" @@ -2102,6 +2182,12 @@ "indexPatternsWithGeoFieldCount": { "type": "long" }, + "indexPatternsWithGeoPointFieldCount": { + "type": "long" + }, + "indexPatternsWithGeoShapeFieldCount": { + "type": "long" + }, "mapsTotalCount": { "type": "long" }, @@ -2156,6 +2242,9 @@ "filterQuery": { "type": "keyword" }, + "forceInterval": { + "type": "boolean" + }, "groupBy": { "type": "keyword" }, @@ -2211,36 +2300,8 @@ "namespace": { "type": "keyword" }, - "ingest-outputs": { - "properties": { - "api_key": { - "type": "keyword" - }, - "ca_sha256": { - "type": "keyword" - }, - "config": { - "type": "flattened" - }, - "fleet_enroll_password": { - "type": "binary" - }, - "fleet_enroll_username": { - "type": "binary" - }, - "hosts": { - "type": "keyword" - }, - "is_default": { - "type": "boolean" - }, - "name": { - "type": "keyword" - }, - "type": { - "type": "keyword" - } - } + "namespaces": { + "type": "keyword" }, "query": { "properties": { @@ -2346,7 +2407,7 @@ }, "params": { "type": "object", - "dynamic": "true" + "enabled": false } } }, @@ -2647,6 +2708,15 @@ } } }, + "templateTimelineId": { + "type": "text" + }, + "templateTimelineVersion": { + "type": "integer" + }, + "timelineType": { + "type": "keyword" + }, "title": { "type": "text" }, @@ -2827,11 +2897,48 @@ "type": "date" }, "upgrade-assistant-reindex-operation": { - "dynamic": "true", "properties": { + "errorMessage": { + "type": "keyword" + }, "indexName": { "type": "keyword" }, + "lastCompletedStep": { + "type": "integer" + }, + "locked": { + "type": "date" + }, + "newIndexName": { + "type": "keyword" + }, + "reindexOptions": { + "properties": { + "openAndClose": { + "type": "boolean" + }, + "queueSettings": { + "properties": { + "queuedAt": { + "type": "long" + }, + "startedAt": { + "type": "long" + } + } + } + } + }, + "reindexTaskId": { + "type": "keyword" + }, + "reindexTaskPercComplete": { + "type": "float" + }, + "runningReindexCount": { + "type": "integer" + }, "status": { "type": "integer" } @@ -2891,6 +2998,12 @@ }, "uptime-dynamic-settings": { "properties": { + "certAgeThreshold": { + "type": "long" + }, + "certExpirationThreshold": { + "type": "long" + }, "heartbeatIndices": { "type": "keyword" } @@ -2911,8 +3024,7 @@ "type": "text", "fields": { "keyword": { - "type": "keyword", - "ignore_above": 2048 + "type": "keyword" } } } From d4ae987dd40abec422d3d8a74c9c3d5a011b4f5c Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Mon, 11 May 2020 14:21:39 +0200 Subject: [PATCH 12/67] specify last known SO version (#65987) --- .../saved_objects/migrations/core/document_migrator.test.ts | 4 ++-- .../server/saved_objects/migrations/core/document_migrator.ts | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/src/core/server/saved_objects/migrations/core/document_migrator.test.ts b/src/core/server/saved_objects/migrations/core/document_migrator.test.ts index 3ec478e3ca28..bd10520ca1c5 100644 --- a/src/core/server/saved_objects/migrations/core/document_migrator.test.ts +++ b/src/core/server/saved_objects/migrations/core/document_migrator.test.ts @@ -293,7 +293,7 @@ describe('DocumentMigrator', () => { migrationVersion: { dog: '10.2.0' }, }) ).toThrow( - /Document "smelly" has property "dog" which belongs to a more recent version of Kibana \(10\.2\.0\)/i + /Document "smelly" has property "dog" which belongs to a more recent version of Kibana \[10\.2\.0\]\. The last known version is \[undefined\]/i ); }); @@ -315,7 +315,7 @@ describe('DocumentMigrator', () => { migrationVersion: { dawg: '1.2.4' }, }) ).toThrow( - /Document "fleabag" has property "dawg" which belongs to a more recent version of Kibana \(1\.2\.4\)/i + /Document "fleabag" has property "dawg" which belongs to a more recent version of Kibana \[1\.2\.4\]\. The last known version is \[1\.2\.3\]/i ); }); diff --git a/src/core/server/saved_objects/migrations/core/document_migrator.ts b/src/core/server/saved_objects/migrations/core/document_migrator.ts index 4ddb2b070d3a..07c1da558610 100644 --- a/src/core/server/saved_objects/migrations/core/document_migrator.ts +++ b/src/core/server/saved_objects/migrations/core/document_migrator.ts @@ -350,7 +350,7 @@ function nextUnmigratedProp(doc: SavedObjectUnsanitizedDoc, migrations: ActiveMi if (docVersion && (!latestVersion || Semver.gt(docVersion, latestVersion))) { throw Boom.badData( `Document "${doc.id}" has property "${p}" which belongs to a more recent` + - ` version of Kibana (${docVersion}).`, + ` version of Kibana [${docVersion}]. The last known version is [${latestVersion}]`, doc ); } From d29370207126fc8537aa7072de5cc599e47ae7f1 Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Mon, 11 May 2020 14:21:55 +0200 Subject: [PATCH 13/67] load VizOptions component lazily (#64778) Co-authored-by: Elastic Machine --- .../public/components/table_vis_options.tsx | 5 ++-- .../components/table_vis_options_lazy.tsx | 30 +++++++++++++++++++ .../vis_type_table/public/table_vis_type.ts | 2 +- 3 files changed, 34 insertions(+), 3 deletions(-) create mode 100644 src/plugins/vis_type_table/public/components/table_vis_options_lazy.tsx diff --git a/src/plugins/vis_type_table/public/components/table_vis_options.tsx b/src/plugins/vis_type_table/public/components/table_vis_options.tsx index 68348d5ef106..837d47853593 100644 --- a/src/plugins/vis_type_table/public/components/table_vis_options.tsx +++ b/src/plugins/vis_type_table/public/components/table_vis_options.tsx @@ -147,5 +147,6 @@ function TableOptions({ ); } - -export { TableOptions }; +// default export required for React.Lazy +// eslint-disable-next-line import/no-default-export +export { TableOptions as default }; diff --git a/src/plugins/vis_type_table/public/components/table_vis_options_lazy.tsx b/src/plugins/vis_type_table/public/components/table_vis_options_lazy.tsx new file mode 100644 index 000000000000..ca273aa771ef --- /dev/null +++ b/src/plugins/vis_type_table/public/components/table_vis_options_lazy.tsx @@ -0,0 +1,30 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +import React, { lazy, Suspense } from 'react'; +import { EuiLoadingSpinner } from '@elastic/eui'; +import { VisOptionsProps } from 'src/plugins/vis_default_editor/public'; +import { TableVisParams } from '../types'; + +const TableOptionsComponent = lazy(() => import('./table_vis_options')); + +export const TableOptions = (props: VisOptionsProps) => ( + }> + + +); diff --git a/src/plugins/vis_type_table/public/table_vis_type.ts b/src/plugins/vis_type_table/public/table_vis_type.ts index 26e5ac8cfd71..c3bc72497007 100644 --- a/src/plugins/vis_type_table/public/table_vis_type.ts +++ b/src/plugins/vis_type_table/public/table_vis_type.ts @@ -24,7 +24,7 @@ import { Vis } from '../../visualizations/public'; import { tableVisResponseHandler } from './table_vis_response_handler'; // @ts-ignore import tableVisTemplate from './table_vis.html'; -import { TableOptions } from './components/table_vis_options'; +import { TableOptions } from './components/table_vis_options_lazy'; import { getTableVisualizationControllerClass } from './vis_controller'; export function getTableVisTypeDefinition(core: CoreSetup, context: PluginInitializerContext) { From 92c6ffa909e26aa887b52ea2219197f94e9fdf1f Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Mon, 11 May 2020 14:22:09 +0200 Subject: [PATCH 14/67] stabilize async_dashboard test (#65976) --- x-pack/test/functional/apps/dashboard/_async_dashboard.ts | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/x-pack/test/functional/apps/dashboard/_async_dashboard.ts b/x-pack/test/functional/apps/dashboard/_async_dashboard.ts index 2c8abda999dd..82641db457ae 100644 --- a/x-pack/test/functional/apps/dashboard/_async_dashboard.ts +++ b/x-pack/test/functional/apps/dashboard/_async_dashboard.ts @@ -9,6 +9,7 @@ import { FtrProviderContext } from '../../ftr_provider_context'; export default function({ getService, getPageObjects }: FtrProviderContext) { const retry = getService('retry'); + const browser = getService('browser'); const kibanaServer = getService('kibanaServer'); const log = getService('log'); const pieChart = getService('pieChart'); @@ -93,6 +94,9 @@ export default function({ getService, getPageObjects }: FtrProviderContext) { ]`; await kibanaServer.uiSettings.update({ 'timepicker:quickRanges': SAMPLE_DATA_RANGE }); + // refresh page to make sure ui settings update is picked up + await browser.refresh(); + await PageObjects.header.waitUntilLoadingHasFinished(); await appMenu.clickLink('Discover'); await PageObjects.discover.selectIndexPattern('kibana_sample_data_flights'); await PageObjects.timePicker.setCommonlyUsedTime('sample_data range'); @@ -104,6 +108,7 @@ export default function({ getService, getPageObjects }: FtrProviderContext) { after(async () => { await PageObjects.common.navigateToUrl('home', 'tutorial_directory/sampleData'); + await PageObjects.header.waitUntilLoadingHasFinished(); await PageObjects.home.removeSampleDataSet('flights'); const isInstalled = await PageObjects.home.isSampleDataSetInstalled('flights'); expect(isInstalled).to.be(false); From b180fd378dbb622d01c8fefd0712a3c27ed59f39 Mon Sep 17 00:00:00 2001 From: Rudolf Meijering Date: Mon, 11 May 2020 15:00:48 +0200 Subject: [PATCH 15/67] Log error when encountering corrupt saved object during migration (#65829) * Log error when encountering corrupt saved object during migration * Fix documentation * Fix types --- ...re-server.savedobjectsmigrationlogger.error.md | 11 +++++++++++ ...gin-core-server.savedobjectsmigrationlogger.md | 1 + ...gins-data-server.iindexpattern.gettimefield.md | 15 +++++++++++++++ .../migrations/core/index_migrator.ts | 2 +- .../migrations/core/migrate_raw_docs.test.ts | 12 +++++++++--- .../migrations/core/migrate_raw_docs.ts | 8 +++++++- .../migrations/core/migration_coordinator.test.ts | 8 ++------ .../migrations/core/migration_logger.ts | 4 +++- .../migrations/kibana/kibana_migrator.ts | 2 +- src/core/server/saved_objects/migrations/mocks.ts | 5 +++-- src/core/server/server.api.md | 3 ++- src/plugins/data/server/server.api.md | 3 +-- 12 files changed, 56 insertions(+), 18 deletions(-) create mode 100644 docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.error.md create mode 100644 docs/development/plugins/data/server/kibana-plugin-plugins-data-server.iindexpattern.gettimefield.md diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.error.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.error.md new file mode 100644 index 000000000000..7536cd2b07ae --- /dev/null +++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.error.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-core-server](./kibana-plugin-core-server.md) > [SavedObjectsMigrationLogger](./kibana-plugin-core-server.savedobjectsmigrationlogger.md) > [error](./kibana-plugin-core-server.savedobjectsmigrationlogger.error.md) + +## SavedObjectsMigrationLogger.error property + +Signature: + +```typescript +error: (msg: string, meta: LogMeta) => void; +``` diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.md index 066643516b21..1b691ee8cb16 100644 --- a/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.md +++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectsmigrationlogger.md @@ -16,6 +16,7 @@ export interface SavedObjectsMigrationLogger | Property | Type | Description | | --- | --- | --- | | [debug](./kibana-plugin-core-server.savedobjectsmigrationlogger.debug.md) | (msg: string) => void | | +| [error](./kibana-plugin-core-server.savedobjectsmigrationlogger.error.md) | (msg: string, meta: LogMeta) => void | | | [info](./kibana-plugin-core-server.savedobjectsmigrationlogger.info.md) | (msg: string) => void | | | [warn](./kibana-plugin-core-server.savedobjectsmigrationlogger.warn.md) | (msg: string) => void | | | [warning](./kibana-plugin-core-server.savedobjectsmigrationlogger.warning.md) | (msg: string) => void | | diff --git a/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.iindexpattern.gettimefield.md b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.iindexpattern.gettimefield.md new file mode 100644 index 000000000000..a4d6abcf86a9 --- /dev/null +++ b/docs/development/plugins/data/server/kibana-plugin-plugins-data-server.iindexpattern.gettimefield.md @@ -0,0 +1,15 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-server](./kibana-plugin-plugins-data-server.md) > [IIndexPattern](./kibana-plugin-plugins-data-server.iindexpattern.md) > [getTimeField](./kibana-plugin-plugins-data-server.iindexpattern.gettimefield.md) + +## IIndexPattern.getTimeField() method + +Signature: + +```typescript +getTimeField?(): IFieldType | undefined; +``` +Returns: + +`IFieldType | undefined` + diff --git a/src/core/server/saved_objects/migrations/core/index_migrator.ts b/src/core/server/saved_objects/migrations/core/index_migrator.ts index c75fa68572c7..ef2a8870d78d 100644 --- a/src/core/server/saved_objects/migrations/core/index_migrator.ts +++ b/src/core/server/saved_objects/migrations/core/index_migrator.ts @@ -195,7 +195,7 @@ async function migrateSourceToDest(context: Context) { await Index.write( callCluster, dest.indexName, - migrateRawDocs(serializer, documentMigrator.migrate, docs) + migrateRawDocs(serializer, documentMigrator.migrate, docs, log) ); } } diff --git a/src/core/server/saved_objects/migrations/core/migrate_raw_docs.test.ts b/src/core/server/saved_objects/migrations/core/migrate_raw_docs.test.ts index 89f3fde38484..e55b72be2436 100644 --- a/src/core/server/saved_objects/migrations/core/migrate_raw_docs.test.ts +++ b/src/core/server/saved_objects/migrations/core/migrate_raw_docs.test.ts @@ -21,6 +21,7 @@ import _ from 'lodash'; import { SavedObjectTypeRegistry } from '../../saved_objects_type_registry'; import { SavedObjectsSerializer } from '../../serialization'; import { migrateRawDocs } from './migrate_raw_docs'; +import { createSavedObjectsMigrationLoggerMock } from '../../migrations/mocks'; describe('migrateRawDocs', () => { test('converts raw docs to saved objects', async () => { @@ -31,7 +32,8 @@ describe('migrateRawDocs', () => { [ { _id: 'a:b', _source: { type: 'a', a: { name: 'AAA' } } }, { _id: 'c:d', _source: { type: 'c', c: { name: 'DDD' } } }, - ] + ], + createSavedObjectsMigrationLoggerMock() ); expect(result).toEqual([ @@ -48,7 +50,8 @@ describe('migrateRawDocs', () => { expect(transform).toHaveBeenCalled(); }); - test('passes invalid docs through untouched', async () => { + test('passes invalid docs through untouched and logs error', async () => { + const logger = createSavedObjectsMigrationLoggerMock(); const transform = jest.fn((doc: any) => _.set(_.cloneDeep(doc), 'attributes.name', 'TADA') ); @@ -58,7 +61,8 @@ describe('migrateRawDocs', () => { [ { _id: 'foo:b', _source: { type: 'a', a: { name: 'AAA' } } }, { _id: 'c:d', _source: { type: 'c', c: { name: 'DDD' } } }, - ] + ], + logger ); expect(result).toEqual([ @@ -82,5 +86,7 @@ describe('migrateRawDocs', () => { }, ], ]); + + expect(logger.error).toBeCalledTimes(1); }); }); diff --git a/src/core/server/saved_objects/migrations/core/migrate_raw_docs.ts b/src/core/server/saved_objects/migrations/core/migrate_raw_docs.ts index 5fe15f40db8e..49acea82e1c8 100644 --- a/src/core/server/saved_objects/migrations/core/migrate_raw_docs.ts +++ b/src/core/server/saved_objects/migrations/core/migrate_raw_docs.ts @@ -23,6 +23,7 @@ import { SavedObjectsRawDoc, SavedObjectsSerializer } from '../../serialization'; import { TransformFn } from './document_migrator'; +import { SavedObjectsMigrationLogger } from '.'; /** * Applies the specified migration function to every saved object document in the list @@ -35,7 +36,8 @@ import { TransformFn } from './document_migrator'; export function migrateRawDocs( serializer: SavedObjectsSerializer, migrateDoc: TransformFn, - rawDocs: SavedObjectsRawDoc[] + rawDocs: SavedObjectsRawDoc[], + log: SavedObjectsMigrationLogger ): SavedObjectsRawDoc[] { return rawDocs.map(raw => { if (serializer.isRawSavedObject(raw)) { @@ -47,6 +49,10 @@ export function migrateRawDocs( }); } + log.error( + `Error: Unable to migrate the corrupt Saved Object document ${raw._id}. To prevent Kibana from performing a migration on every restart, please delete or fix this document by ensuring that the namespace and type in the document's id matches the values in the namespace and type fields.`, + { rawDocument: raw } + ); return raw; }); } diff --git a/src/core/server/saved_objects/migrations/core/migration_coordinator.test.ts b/src/core/server/saved_objects/migrations/core/migration_coordinator.test.ts index 800edaeaa588..3f2c31a7c0e5 100644 --- a/src/core/server/saved_objects/migrations/core/migration_coordinator.test.ts +++ b/src/core/server/saved_objects/migrations/core/migration_coordinator.test.ts @@ -19,14 +19,10 @@ import _ from 'lodash'; import { coordinateMigration } from './migration_coordinator'; +import { createSavedObjectsMigrationLoggerMock } from '../mocks'; describe('coordinateMigration', () => { - const log = { - debug: jest.fn(), - warning: jest.fn(), - warn: jest.fn(), - info: jest.fn(), - }; + const log = createSavedObjectsMigrationLoggerMock(); test('waits for isMigrated, if there is an index conflict', async () => { const pollInterval = 1; diff --git a/src/core/server/saved_objects/migrations/core/migration_logger.ts b/src/core/server/saved_objects/migrations/core/migration_logger.ts index 9dfb3abc8e72..00ed8bf0b73f 100644 --- a/src/core/server/saved_objects/migrations/core/migration_logger.ts +++ b/src/core/server/saved_objects/migrations/core/migration_logger.ts @@ -17,7 +17,7 @@ * under the License. */ -import { Logger } from 'src/core/server/logging'; +import { Logger, LogMeta } from '../../../logging'; /* * This file provides a helper class for ensuring that all logging @@ -35,6 +35,7 @@ export interface SavedObjectsMigrationLogger { */ warning: (msg: string) => void; warn: (msg: string) => void; + error: (msg: string, meta: LogMeta) => void; } export class MigrationLogger implements SavedObjectsMigrationLogger { @@ -48,4 +49,5 @@ export class MigrationLogger implements SavedObjectsMigrationLogger { public debug = (msg: string) => this.logger.debug(msg); public warning = (msg: string) => this.logger.warn(msg); public warn = (msg: string) => this.logger.warn(msg); + public error = (msg: string, meta: LogMeta) => this.logger.error(msg, meta); } diff --git a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts index dafd6c534119..7d9ff9bed6d7 100644 --- a/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts +++ b/src/core/server/saved_objects/migrations/kibana/kibana_migrator.ts @@ -22,9 +22,9 @@ * (the shape of the mappings and documents in the index). */ -import { Logger } from 'src/core/server/logging'; import { KibanaConfigType } from 'src/core/server/kibana_config'; import { BehaviorSubject } from 'rxjs'; +import { Logger } from '../../../logging'; import { IndexMapping, SavedObjectsTypeMappingDefinitions } from '../../mappings'; import { SavedObjectUnsanitizedDoc, SavedObjectsSerializer } from '../../serialization'; import { docValidator, PropertyValidators } from '../../validation'; diff --git a/src/core/server/saved_objects/migrations/mocks.ts b/src/core/server/saved_objects/migrations/mocks.ts index 76a890d26bfa..50a719139347 100644 --- a/src/core/server/saved_objects/migrations/mocks.ts +++ b/src/core/server/saved_objects/migrations/mocks.ts @@ -20,12 +20,13 @@ import { SavedObjectMigrationContext } from './types'; import { SavedObjectsMigrationLogger } from './core'; -const createLoggerMock = (): jest.Mocked => { +export const createSavedObjectsMigrationLoggerMock = (): jest.Mocked => { const mock = { debug: jest.fn(), info: jest.fn(), warning: jest.fn(), warn: jest.fn(), + error: jest.fn(), }; return mock; @@ -33,7 +34,7 @@ const createLoggerMock = (): jest.Mocked => { const createContextMock = (): jest.Mocked => { const mock = { - log: createLoggerMock(), + log: createSavedObjectsMigrationLoggerMock(), }; return mock; }; diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md index bd6046b5ec28..e4234689c25e 100644 --- a/src/core/server/server.api.md +++ b/src/core/server/server.api.md @@ -91,7 +91,6 @@ import { IngestGetPipelineParams } from 'elasticsearch'; import { IngestPutPipelineParams } from 'elasticsearch'; import { IngestSimulateParams } from 'elasticsearch'; import { KibanaConfigType } from 'src/core/server/kibana_config'; -import { Logger as Logger_2 } from 'src/core/server/logging'; import { MGetParams } from 'elasticsearch'; import { MGetResponse } from 'elasticsearch'; import { MSearchParams } from 'elasticsearch'; @@ -2169,6 +2168,8 @@ export interface SavedObjectsMigrationLogger { // (undocumented) debug: (msg: string) => void; // (undocumented) + error: (msg: string, meta: LogMeta) => void; + // (undocumented) info: (msg: string) => void; // (undocumented) warn: (msg: string) => void; diff --git a/src/plugins/data/server/server.api.md b/src/plugins/data/server/server.api.md index df4ba23244b4..1f4076aa12bd 100644 --- a/src/plugins/data/server/server.api.md +++ b/src/plugins/data/server/server.api.md @@ -93,8 +93,7 @@ import { IngestGetPipelineParams } from 'elasticsearch'; import { IngestPutPipelineParams } from 'elasticsearch'; import { IngestSimulateParams } from 'elasticsearch'; import { KibanaConfigType as KibanaConfigType_2 } from 'src/core/server/kibana_config'; -import { Logger as Logger_2 } from 'src/core/server/logging'; -import { Logger as Logger_3 } from 'kibana/server'; +import { Logger as Logger_2 } from 'kibana/server'; import { MGetParams } from 'elasticsearch'; import { MGetResponse } from 'elasticsearch'; import moment from 'moment'; From 0ae5e24d01a850357a9394afa01622ae7ffc2de4 Mon Sep 17 00:00:00 2001 From: Jason Rhodes Date: Mon, 11 May 2020 09:56:37 -0400 Subject: [PATCH 16/67] Initializes alert form with existing values (for editing) (#65926) --- .../components/alerting/logs/expression_editor/editor.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/infra/public/components/alerting/logs/expression_editor/editor.tsx b/x-pack/plugins/infra/public/components/alerting/logs/expression_editor/editor.tsx index 8bdffbeb36f3..06855cc7e765 100644 --- a/x-pack/plugins/infra/public/components/alerting/logs/expression_editor/editor.tsx +++ b/x-pack/plugins/infra/public/components/alerting/logs/expression_editor/editor.tsx @@ -129,7 +129,7 @@ export const Editor: React.FC = props => { const { sourceStatus } = useLogSourceContext(); useMount(() => { - for (const [key, value] of Object.entries(DEFAULT_EXPRESSION)) { + for (const [key, value] of Object.entries({ ...DEFAULT_EXPRESSION, ...alertParams })) { setAlertParams(key, value); setHasSetDefaults(true); } From d1e4d37c46686423dfd24cb37b6ba227c3a8afdd Mon Sep 17 00:00:00 2001 From: Dima Arnautov Date: Mon, 11 May 2020 15:57:12 +0200 Subject: [PATCH 17/67] [ML] Cardinality validation API integration tests (#65971) * [ML] refactor validate_cardinality to TS * [ML] cardinality api integration tests * [ML] resolve PR comments, validateJobObject as TS guard --- .../models/data_visualizer/data_visualizer.ts | 4 +- .../job_validation/validate_cardinality.d.ts | 13 -- ...cardinality.js => validate_cardinality.ts} | 64 ++++--- .../job_validation/validate_job_object.ts | 3 +- .../apis/ml/job_validation/cardinality.ts | 175 ++++++++++++++++++ .../apis/ml/job_validation/index.ts | 1 + 6 files changed, 223 insertions(+), 37 deletions(-) delete mode 100644 x-pack/plugins/ml/server/models/job_validation/validate_cardinality.d.ts rename x-pack/plugins/ml/server/models/job_validation/{validate_cardinality.js => validate_cardinality.ts} (76%) create mode 100644 x-pack/test/api_integration/apis/ml/job_validation/cardinality.ts diff --git a/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts b/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts index 645625f92df2..8ccd359137b6 100644 --- a/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts +++ b/x-pack/plugins/ml/server/models/data_visualizer/data_visualizer.ts @@ -342,8 +342,8 @@ export class DataVisualizer { aggregatableFields: string[], samplerShardSize: number, timeFieldName: string, - earliestMs: number, - latestMs: number + earliestMs?: number, + latestMs?: number ) { const index = indexPatternTitle; const size = 0; diff --git a/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.d.ts b/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.d.ts deleted file mode 100644 index 2fad1252e644..000000000000 --- a/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.d.ts +++ /dev/null @@ -1,13 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { APICaller } from 'kibana/server'; -import { CombinedJob } from '../../../common/types/anomaly_detection_jobs'; - -export function validateCardinality( - callAsCurrentUser: APICaller, - job?: CombinedJob -): Promise; diff --git a/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.js b/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.ts similarity index 76% rename from x-pack/plugins/ml/server/models/job_validation/validate_cardinality.js rename to x-pack/plugins/ml/server/models/job_validation/validate_cardinality.ts index 22e0510782e1..cf3d6d004c37 100644 --- a/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.js +++ b/x-pack/plugins/ml/server/models/job_validation/validate_cardinality.ts @@ -4,21 +4,22 @@ * you may not use this file except in compliance with the Elastic License. */ -import _ from 'lodash'; - +import { APICaller } from 'kibana/server'; import { DataVisualizer } from '../data_visualizer'; import { validateJobObject } from './validate_job_object'; +import { CombinedJob } from '../../../common/types/anomaly_detection_jobs'; +import { Detector } from '../../../common/types/anomaly_detection_jobs'; -function isValidCategorizationConfig(job, fieldName) { +function isValidCategorizationConfig(job: CombinedJob, fieldName: string): boolean { return ( typeof job.analysis_config.categorization_field_name !== 'undefined' && fieldName === 'mlcategory' ); } -function isScriptField(job, fieldName) { - const scriptFields = Object.keys(_.get(job, 'datafeed_config.script_fields', {})); +function isScriptField(job: CombinedJob, fieldName: string): boolean { + const scriptFields = Object.keys(job.datafeed_config.script_fields ?? {}); return scriptFields.includes(fieldName); } @@ -30,10 +31,21 @@ const PARTITION_FIELD_CARDINALITY_THRESHOLD = 1000; const BY_FIELD_CARDINALITY_THRESHOLD = 1000; const MODEL_PLOT_THRESHOLD_HIGH = 100; -const validateFactory = (callWithRequest, job) => { +type Messages = Array<{ id: string; fieldName?: string }>; + +type Validator = (obj: { + type: string; + isInvalid: (cardinality: number) => boolean; + messageId?: string; +}) => Promise<{ + modelPlotCardinality: number; + messages: Messages; +}>; + +const validateFactory = (callWithRequest: APICaller, job: CombinedJob): Validator => { const dv = new DataVisualizer(callWithRequest); - const modelPlotConfigTerms = _.get(job, ['model_plot_config', 'terms'], ''); + const modelPlotConfigTerms = job?.model_plot_config?.terms ?? ''; const modelPlotConfigFieldCount = modelPlotConfigTerms.length > 0 ? modelPlotConfigTerms.split(',').length : 0; @@ -42,8 +54,11 @@ const validateFactory = (callWithRequest, job) => { // if model_plot_config.terms is used, it doesn't count the real cardinality of the field // but adds only the count of fields used in model_plot_config.terms let modelPlotCardinality = 0; - const messages = []; - const fieldName = `${type}_field_name`; + const messages: Messages = []; + const fieldName = `${type}_field_name` as keyof Pick< + Detector, + 'by_field_name' | 'over_field_name' | 'partition_field_name' + >; const detectors = job.analysis_config.detectors; const relevantDetectors = detectors.filter(detector => { @@ -52,7 +67,7 @@ const validateFactory = (callWithRequest, job) => { if (relevantDetectors.length > 0) { try { - const uniqueFieldNames = _.uniq(relevantDetectors.map(f => f[fieldName])); + const uniqueFieldNames = [...new Set(relevantDetectors.map(f => f[fieldName]))] as string[]; // use fieldCaps endpoint to get data about whether fields are aggregatable const fieldCaps = await callWithRequest('fieldCaps', { @@ -60,7 +75,7 @@ const validateFactory = (callWithRequest, job) => { fields: uniqueFieldNames, }); - let aggregatableFieldNames = []; + let aggregatableFieldNames: string[] = []; // parse fieldCaps to return an array of just the fields which are aggregatable if (typeof fieldCaps === 'object' && typeof fieldCaps.fields === 'object') { aggregatableFieldNames = uniqueFieldNames.filter(field => { @@ -81,12 +96,14 @@ const validateFactory = (callWithRequest, job) => { ); uniqueFieldNames.forEach(uniqueFieldName => { - const field = _.find(stats.aggregatableExistsFields, { fieldName: uniqueFieldName }); - if (typeof field === 'object') { + const field = stats.aggregatableExistsFields.find( + fieldData => fieldData.fieldName === uniqueFieldName + ); + if (field !== undefined && typeof field === 'object' && field.stats) { modelPlotCardinality += - modelPlotConfigFieldCount > 0 ? modelPlotConfigFieldCount : field.stats.cardinality; + modelPlotConfigFieldCount > 0 ? modelPlotConfigFieldCount : field.stats.cardinality!; - if (isInvalid(field.stats.cardinality)) { + if (isInvalid(field.stats.cardinality!)) { messages.push({ id: messageId || `cardinality_${type}_field`, fieldName: uniqueFieldName, @@ -115,7 +132,7 @@ const validateFactory = (callWithRequest, job) => { if (relevantDetectors.length === 1) { messages.push({ id: 'field_not_aggregatable', - fieldName: relevantDetectors[0][fieldName], + fieldName: relevantDetectors[0][fieldName]!, }); } else { messages.push({ id: 'fields_not_aggregatable' }); @@ -129,10 +146,16 @@ const validateFactory = (callWithRequest, job) => { }; }; -export async function validateCardinality(callWithRequest, job) { +export async function validateCardinality( + callWithRequest: APICaller, + job?: CombinedJob +): Promise> | never { const messages = []; - validateJobObject(job); + if (!validateJobObject(job)) { + // required for TS type casting, validateJobObject throws an error internally. + throw new Error(); + } // find out if there are any relevant detector field names // where cardinality checks could be run against. @@ -140,14 +163,13 @@ export async function validateCardinality(callWithRequest, job) { return d.by_field_name || d.over_field_name || d.partition_field_name; }); if (numDetectorsWithFieldNames.length === 0) { - return Promise.resolve([]); + return []; } // validate({ type, isInvalid }) asynchronously returns an array of validation messages const validate = validateFactory(callWithRequest, job); - const modelPlotEnabled = - (job.model_plot_config && job.model_plot_config.enabled === true) || false; + const modelPlotEnabled = job.model_plot_config?.enabled ?? false; // check over fields (population analysis) const validateOverFieldsLow = validate({ diff --git a/x-pack/plugins/ml/server/models/job_validation/validate_job_object.ts b/x-pack/plugins/ml/server/models/job_validation/validate_job_object.ts index b0271fb5b4f4..0d89656e0511 100644 --- a/x-pack/plugins/ml/server/models/job_validation/validate_job_object.ts +++ b/x-pack/plugins/ml/server/models/job_validation/validate_job_object.ts @@ -7,7 +7,7 @@ import { i18n } from '@kbn/i18n'; import { CombinedJob } from '../../../common/types/anomaly_detection_jobs'; -export function validateJobObject(job: CombinedJob | null) { +export function validateJobObject(job: CombinedJob | null | undefined): job is CombinedJob | never { if (job === null || typeof job !== 'object') { throw new Error( i18n.translate('xpack.ml.models.jobValidation.validateJobObject.jobIsNotObjectErrorMessage', { @@ -93,4 +93,5 @@ export function validateJobObject(job: CombinedJob | null) { ) ); } + return true; } diff --git a/x-pack/test/api_integration/apis/ml/job_validation/cardinality.ts b/x-pack/test/api_integration/apis/ml/job_validation/cardinality.ts new file mode 100644 index 000000000000..e51a3b3c1772 --- /dev/null +++ b/x-pack/test/api_integration/apis/ml/job_validation/cardinality.ts @@ -0,0 +1,175 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { USER } from '../../../../functional/services/machine_learning/security_common'; + +const COMMON_HEADERS = { + 'kbn-xsrf': 'some-xsrf-token', +}; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const esArchiver = getService('esArchiver'); + const supertest = getService('supertestWithoutAuth'); + const ml = getService('ml'); + + describe('ValidateCardinality', function() { + before(async () => { + await esArchiver.loadIfNeeded('ml/ecommerce'); + await ml.testResources.setKibanaTimeZoneToUTC(); + }); + + after(async () => { + await ml.api.cleanMlIndices(); + }); + + it(`should recognize a valid cardinality`, async () => { + const requestBody = { + job_id: '', + description: '', + groups: [], + analysis_config: { + bucket_span: '10m', + detectors: [ + { + function: 'mean', + field_name: 'products.base_price', + partition_field_name: 'geoip.city_name', + }, + ], + influencers: ['geoip.city_name'], + }, + data_description: { time_field: 'order_date' }, + analysis_limits: { model_memory_limit: '12MB' }, + model_plot_config: { enabled: true }, + datafeed_config: { + datafeed_id: 'datafeed-', + job_id: '', + indices: ['ft_ecommerce'], + query: { bool: { must: [{ match_all: {} }], filter: [], must_not: [] } }, + }, + }; + + const { body } = await supertest + .post('/api/ml/validate/cardinality') + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(200); + + expect(body).to.eql([{ id: 'success_cardinality' }]); + }); + + it(`should recognize a high model plot cardinality`, async () => { + const requestBody = { + job_id: '', + description: '', + groups: [], + analysis_config: { + bucket_span: '10m', + detectors: [ + { + function: 'mean', + field_name: 'products.base_price', + // some high cardinality field + partition_field_name: 'order_id', + }, + ], + influencers: ['geoip.city_name'], + }, + data_description: { time_field: 'order_date' }, + analysis_limits: { model_memory_limit: '11MB' }, + model_plot_config: { enabled: true }, + datafeed_config: { + datafeed_id: 'datafeed-', + job_id: '', + indices: ['ft_ecommerce'], + query: { bool: { must: [{ match_all: {} }], filter: [], must_not: [] } }, + }, + }; + const { body } = await supertest + .post('/api/ml/validate/cardinality') + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(200); + + expect(body).to.eql([ + { id: 'cardinality_model_plot_high', modelPlotCardinality: 4711 }, + { id: 'cardinality_partition_field', fieldName: 'order_id' }, + ]); + }); + + it('should not validate cardinality in case request payload is invalid', async () => { + const requestBody = { + job_id: '', + description: '', + groups: [], + // missing analysis_config + data_description: { time_field: 'order_date' }, + analysis_limits: { model_memory_limit: '12MB' }, + model_plot_config: { enabled: true }, + datafeed_config: { + datafeed_id: 'datafeed-', + job_id: '', + indices: ['ft_ecommerce'], + query: { bool: { must: [{ match_all: {} }], filter: [], must_not: [] } }, + }, + }; + + const { body } = await supertest + .post('/api/ml/validate/cardinality') + .auth(USER.ML_POWERUSER, ml.securityCommon.getPasswordForUser(USER.ML_POWERUSER)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(400); + + expect(body.error).to.eql('Bad Request'); + expect(body.message).to.eql( + '[request body.analysis_config.detectors]: expected value of type [array] but got [undefined]' + ); + }); + + it('should not validate cardinality if the user does not have required permissions', async () => { + const requestBody = { + job_id: '', + description: '', + groups: [], + analysis_config: { + bucket_span: '10m', + detectors: [ + { + function: 'mean', + field_name: 'products.base_price', + partition_field_name: 'geoip.city_name', + }, + ], + influencers: ['geoip.city_name'], + }, + data_description: { time_field: 'order_date' }, + analysis_limits: { model_memory_limit: '12MB' }, + model_plot_config: { enabled: true }, + datafeed_config: { + datafeed_id: 'datafeed-', + job_id: '', + indices: ['ft_ecommerce'], + query: { bool: { must: [{ match_all: {} }], filter: [], must_not: [] } }, + }, + }; + + const { body } = await supertest + .post('/api/ml/validate/cardinality') + .auth(USER.ML_VIEWER, ml.securityCommon.getPasswordForUser(USER.ML_VIEWER)) + .set(COMMON_HEADERS) + .send(requestBody) + .expect(404); + + expect(body.error).to.eql('Not Found'); + expect(body.message).to.eql('Not Found'); + }); + }); +}; diff --git a/x-pack/test/api_integration/apis/ml/job_validation/index.ts b/x-pack/test/api_integration/apis/ml/job_validation/index.ts index 6ca9dcbbe9e5..fa894de839cd 100644 --- a/x-pack/test/api_integration/apis/ml/job_validation/index.ts +++ b/x-pack/test/api_integration/apis/ml/job_validation/index.ts @@ -9,5 +9,6 @@ export default function({ loadTestFile }: FtrProviderContext) { describe('job validation', function() { loadTestFile(require.resolve('./bucket_span_estimator')); loadTestFile(require.resolve('./calculate_model_memory_limit')); + loadTestFile(require.resolve('./cardinality')); }); } From d5737a54c242cc0128f3b262ba030a11029afd23 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Mon, 11 May 2020 14:57:46 +0100 Subject: [PATCH 18/67] [APM] Don't mutating the original waterfall item while reparenting spans (#65840) * do not mutate the waterfall items * addressing pr comments Co-authored-by: Elastic Machine --- .../waterfall_helpers/waterfall_helpers.ts | 41 +++++++++++-------- .../waterfallContainer.stories.data.ts | 2 +- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts b/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts index 8ddce66f0b85..e15cf2df38c5 100644 --- a/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts +++ b/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/Waterfall/waterfall_helpers/waterfall_helpers.ts @@ -236,28 +236,33 @@ const getWaterfallItems = (items: TraceAPIResponse['trace']['items']) => } }); -/** - * Changes the parent_id of items based on the child.id property. - * Solves the problem of Inferred spans that are created as child of trace spans - * when it actually should be its parent. - * @param waterfallItems - */ -const reparentSpans = (waterfallItems: IWaterfallItem[]) => { +function reparentSpans(waterfallItems: IWaterfallItem[]) { + // find children that needs to be re-parented and map them to their correct parent id + const childIdToParentIdMapping = Object.fromEntries( + flatten( + waterfallItems.map(waterfallItem => { + if (waterfallItem.docType === 'span') { + const childIds = waterfallItem.doc.child?.id ?? []; + return childIds.map(id => [id, waterfallItem.id]); + } + return []; + }) + ) + ); + + // update parent id for children that needs it or return unchanged return waterfallItems.map(waterfallItem => { - if (waterfallItem.docType === 'span') { - const childId = waterfallItem.doc.child?.id; - if (childId) { - childId.forEach(id => { - const item = waterfallItems.find(_item => _item.id === id); - if (item) { - item.parentId = waterfallItem.id; - } - }); - } + const newParentId = childIdToParentIdMapping[waterfallItem.id]; + if (newParentId) { + return { + ...waterfallItem, + parentId: newParentId + }; } + return waterfallItem; }); -}; +} const getChildrenGroupedByParentId = (waterfallItems: IWaterfallItem[]) => groupBy(waterfallItems, item => (item.parentId ? item.parentId : ROOT_ID)); diff --git a/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts b/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts index 2f28e37f73f6..6f4a0629c7bc 100644 --- a/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts +++ b/x-pack/plugins/apm/public/components/app/TransactionDetails/WaterfallWithSummmary/WaterfallContainer/waterfallContainer.stories.data.ts @@ -2027,7 +2027,7 @@ export const inferredSpans = { id: '41226ae63af4f235', type: 'unknown' }, - child: { ids: ['8d80de06aa11a6fc'] } + child: { id: ['8d80de06aa11a6fc'] } }, { container: { From a3d3ae9661fcb115f65f3e5c259395bb8275f2a0 Mon Sep 17 00:00:00 2001 From: Alison Goryachev Date: Mon, 11 May 2020 10:05:27 -0400 Subject: [PATCH 19/67] [Ingest pipelines] Make description field optional (#65961) --- .../ingest_pipelines_create.test.tsx | 6 +--- .../components/pipeline_form/schema.tsx | 11 +------ .../pipelines_list/details_flyout.tsx | 18 +++++++----- .../server/routes/api/create.ts | 2 +- .../ingest_pipelines/ingest_pipelines.ts | 29 ++++++++++++++++++- 5 files changed, 41 insertions(+), 25 deletions(-) diff --git a/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx b/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx index e0be8d293772..6acb6369e2e9 100644 --- a/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx +++ b/x-pack/plugins/ingest_pipelines/__jest__/client_integration/ingest_pipelines_create.test.tsx @@ -107,15 +107,11 @@ describe('', () => { component.update(); }); - expect(form.getErrorsMessages()).toEqual([ - 'Name is required.', - 'A description is required.', - ]); + expect(form.getErrorsMessages()).toEqual(['Name is required.']); expect(find('submitButton').props().disabled).toEqual(true); // Add required fields and verify button is enabled again form.setInputValue('nameField.input', 'my_pipeline'); - form.setInputValue('descriptionField.input', 'pipeline description'); await act(async () => { await nextTick(); diff --git a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx index f222d48c11af..e122307ca948 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/components/pipeline_form/schema.tsx @@ -34,17 +34,8 @@ export const pipelineFormSchema: FormSchema = { description: { type: FIELD_TYPES.TEXTAREA, label: i18n.translate('xpack.ingestPipelines.form.descriptionFieldLabel', { - defaultMessage: 'Description', + defaultMessage: 'Description (optional)', }), - validations: [ - { - validator: emptyField( - i18n.translate('xpack.ingestPipelines.form.pipelineDescriptionRequiredError', { - defaultMessage: 'A description is required.', - }) - ), - }, - ], }, processors: { label: i18n.translate('xpack.ingestPipelines.form.processorsFieldLabel', { diff --git a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx index a6eff63b5e72..39789bb38ed4 100644 --- a/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx +++ b/x-pack/plugins/ingest_pipelines/public/application/sections/pipelines_list/details_flyout.tsx @@ -117,14 +117,16 @@ export const PipelineDetailsFlyout: FunctionComponent = ({ {/* Pipeline description */} - - {i18n.translate('xpack.ingestPipelines.list.pipelineDetails.descriptionTitle', { - defaultMessage: 'Description', - })} - - - {pipeline.description ?? ''} - + {pipeline.description && ( + <> + + {i18n.translate('xpack.ingestPipelines.list.pipelineDetails.descriptionTitle', { + defaultMessage: 'Description', + })} + + {pipeline.description} + + )} {/* Pipeline version */} {pipeline.version && ( diff --git a/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts b/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts index 63637eaac765..803d34bf0042 100644 --- a/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts +++ b/x-pack/plugins/ingest_pipelines/server/routes/api/create.ts @@ -12,7 +12,7 @@ import { RouteDependencies } from '../../types'; const bodySchema = schema.object({ name: schema.string(), - description: schema.string(), + description: schema.maybe(schema.string()), processors: schema.arrayOf(schema.recordOf(schema.string(), schema.any())), version: schema.maybe(schema.number()), on_failure: schema.maybe(schema.arrayOf(schema.recordOf(schema.string(), schema.any()))), diff --git a/x-pack/test/api_integration/apis/management/ingest_pipelines/ingest_pipelines.ts b/x-pack/test/api_integration/apis/management/ingest_pipelines/ingest_pipelines.ts index 88a78d048a3b..f2f749a58dac 100644 --- a/x-pack/test/api_integration/apis/management/ingest_pipelines/ingest_pipelines.ts +++ b/x-pack/test/api_integration/apis/management/ingest_pipelines/ingest_pipelines.ts @@ -19,7 +19,12 @@ export default function({ getService }: FtrProviderContext) { describe('Pipelines', function() { describe('Create', () => { const PIPELINE_ID = 'test_create_pipeline'; - after(() => deletePipeline(PIPELINE_ID)); + const REQUIRED_FIELDS_PIPELINE_ID = 'test_create_required_fields_pipeline'; + + after(() => { + deletePipeline(PIPELINE_ID); + deletePipeline(REQUIRED_FIELDS_PIPELINE_ID); + }); it('should create a pipeline', async () => { const { body } = await supertest @@ -52,6 +57,28 @@ export default function({ getService }: FtrProviderContext) { }); }); + it('should create a pipeline with only required fields', async () => { + const { body } = await supertest + .post(API_BASE_PATH) + .set('kbn-xsrf', 'xxx') + // Excludes description, version and on_failure processors + .send({ + name: REQUIRED_FIELDS_PIPELINE_ID, + processors: [ + { + script: { + source: 'ctx._type = null', + }, + }, + ], + }) + .expect(200); + + expect(body).to.eql({ + acknowledged: true, + }); + }); + it('should not allow creation of an existing pipeline', async () => { const { body } = await supertest .post(API_BASE_PATH) From 7526db98e8f67f7c01758b7a8000b47a90c8e9ea Mon Sep 17 00:00:00 2001 From: Bhavya RM Date: Mon, 11 May 2020 10:30:50 -0400 Subject: [PATCH 20/67] Addressing test failures with a11y tests on management (#65758) fixing test failure #60470 --- .../edit_index_pattern/tabs/tabs.tsx | 11 +++++--- test/accessibility/apps/management.ts | 25 ++++++------------- 2 files changed, 16 insertions(+), 20 deletions(-) diff --git a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/tabs/tabs.tsx b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/tabs/tabs.tsx index bfd507876a9d..247af7e20d58 100644 --- a/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/tabs/tabs.tsx +++ b/src/legacy/core_plugins/kibana/public/management/sections/index_patterns/edit_index_pattern/tabs/tabs.tsx @@ -49,14 +49,18 @@ interface TabsProps extends Pick { }; } +const searchAriaLabel = i18n.translate('kbn.management.editIndexPattern.fields.searchAria', { + defaultMessage: 'Search fields', +}); + const filterAriaLabel = i18n.translate('kbn.management.editIndexPattern.fields.filterAria', { - defaultMessage: 'Filter', + defaultMessage: 'Filter field types', }); const filterPlaceholder = i18n.translate( 'kbn.management.editIndexPattern.fields.filterPlaceholder', { - defaultMessage: 'Filter', + defaultMessage: 'Search', } ); @@ -108,7 +112,7 @@ export function Tabs({ config, indexPattern, fields, services, history, location value={fieldFilter} onChange={e => setFieldFilter(e.target.value)} data-test-subj="indexPatternFieldFilter" - aria-label={filterAriaLabel} + aria-label={searchAriaLabel} /> {type === TAB_INDEXED_FIELDS && indexedFieldTypes.length > 0 && ( @@ -118,6 +122,7 @@ export function Tabs({ config, indexPattern, fields, services, history, location value={indexedFieldTypeFilter} onChange={e => setIndexedFieldTypeFilter(e.target.value)} data-test-subj="indexedFieldTypeFilterDropdown" + aria-label={filterAriaLabel} /> )} diff --git a/test/accessibility/apps/management.ts b/test/accessibility/apps/management.ts index 9e75250403d6..cc60e672fe88 100644 --- a/test/accessibility/apps/management.ts +++ b/test/accessibility/apps/management.ts @@ -20,23 +20,12 @@ import { FtrProviderContext } from '../ftr_provider_context'; export default function({ getService, getPageObjects }: FtrProviderContext) { - const PageObjects = getPageObjects(['common', 'settings']); + const PageObjects = getPageObjects(['common', 'settings', 'header']); const esArchiver = getService('esArchiver'); const kibanaServer = getService('kibanaServer'); - const testSubjects = getService('testSubjects'); const a11y = getService('a11y'); - // describe('Management', () => { - // before(async () => { - // await esArchiver.loadIfNeeded('logstash_functional'); - // await kibanaServer.uiSettings.update({ - // defaultIndex: 'logstash-*', - // }); - // await PageObjects.common.navigateToApp('settings'); - // }); - - // FLAKY: https://github.com/elastic/kibana/issues/60470 - describe.skip('Management', () => { + describe('Management', () => { before(async () => { await esArchiver.load('discover'); await esArchiver.loadIfNeeded('logstash_functional'); @@ -57,23 +46,25 @@ export default function({ getService, getPageObjects }: FtrProviderContext) { it('Single indexpattern view', async () => { await PageObjects.settings.clickIndexPatternLogstash(); + await PageObjects.header.waitUntilLoadingHasFinished(); await a11y.testAppSnapshot(); }); - it('Create Index pattern wizard', async () => { + it('Open create index pattern wizard', async () => { await PageObjects.settings.clickKibanaIndexPatterns(); - await (await testSubjects.find('createIndexPatternButton')).click(); + await PageObjects.settings.clickAddNewIndexPatternButton(); + await PageObjects.header.waitUntilLoadingHasFinished(); await a11y.testAppSnapshot(); }); - // index patterns page + // We are navigating back to index pattern page to test field formatters it('Navigate back to logstash index page', async () => { await PageObjects.settings.clickKibanaIndexPatterns(); await PageObjects.settings.clickIndexPatternLogstash(); await a11y.testAppSnapshot(); }); - // Issue: https://github.com/elastic/kibana/issues/60030 + // Will be enabling this and field formatters after this issue is addressed: https://github.com/elastic/kibana/issues/60030 it.skip('Edit field type', async () => { await PageObjects.settings.clickEditFieldFormat(); await a11y.testAppSnapshot(); From 431a7eb07a8ee95018ae0f77481f3ac983a56642 Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Mon, 11 May 2020 08:50:20 -0600 Subject: [PATCH 21/67] [Maps] remove dateline check for geo_shape queries, split geo_bounding_box queries that cross dateline into 2 boxes (#64598) * remove dateline check for geo_shape queries * fix jest test * split bounding box * replace convertMapExtentToPolygon with formatEnvelopeAsPolygon * clamp latitudes * use clampToLatBounds * use single box where left lon is greater then right lon when crossing 180 meridian Co-authored-by: Elastic Machine --- .../public/angular/services/saved_gis_map.js | 4 +- .../maps/public/elasticsearch_geo_utils.js | 96 +++--- .../public/elasticsearch_geo_utils.test.js | 280 ++++++++---------- 3 files changed, 162 insertions(+), 218 deletions(-) diff --git a/x-pack/plugins/maps/public/angular/services/saved_gis_map.js b/x-pack/plugins/maps/public/angular/services/saved_gis_map.js index 1a58b0cefaed..2de443287134 100644 --- a/x-pack/plugins/maps/public/angular/services/saved_gis_map.js +++ b/x-pack/plugins/maps/public/angular/services/saved_gis_map.js @@ -19,7 +19,7 @@ import { } from '../../selectors/map_selectors'; import { getIsLayerTOCOpen, getOpenTOCDetails } from '../../selectors/ui_selectors'; -import { convertMapExtentToPolygon } from '../../elasticsearch_geo_utils'; +import { formatEnvelopeAsPolygon } from '../../elasticsearch_geo_utils'; import { copyPersistentState } from '../../reducers/util'; import { extractReferences, injectReferences } from '../../../common/migrations/references'; @@ -107,7 +107,7 @@ export function createSavedGisMapClass(services) { openTOCDetails: getOpenTOCDetails(state), }); - this.bounds = convertMapExtentToPolygon(getMapExtent(state)); + this.bounds = formatEnvelopeAsPolygon(getMapExtent(state)); } } return SavedGisMap; diff --git a/x-pack/plugins/maps/public/elasticsearch_geo_utils.js b/x-pack/plugins/maps/public/elasticsearch_geo_utils.js index 888fce7e7afe..419b169138ef 100644 --- a/x-pack/plugins/maps/public/elasticsearch_geo_utils.js +++ b/x-pack/plugins/maps/public/elasticsearch_geo_utils.js @@ -225,41 +225,62 @@ export function geoShapeToGeometry(value, accumulator) { accumulator.push(geoJson); } -function createGeoBoundBoxFilter(geometry, geoFieldName, filterProps = {}) { - ensureGeometryType(geometry.type, [GEO_JSON_TYPE.POLYGON]); +function createGeoBoundBoxFilter({ maxLat, maxLon, minLat, minLon }, geoFieldName) { + const top = clampToLatBounds(maxLat); + const bottom = clampToLatBounds(minLat); + + // geo_bounding_box does not support ranges outside of -180 and 180 + // When the area crosses the 180° meridian, + // the value of the lower left longitude will be greater than the value of the upper right longitude. + // http://docs.opengeospatial.org/is/12-063r5/12-063r5.html#30 + let boundingBox; + if (maxLon - minLon >= 360) { + boundingBox = { + top_left: [-180, top], + bottom_right: [180, bottom], + }; + } else if (maxLon > 180) { + const overflow = maxLon - 180; + boundingBox = { + top_left: [minLon, top], + bottom_right: [-180 + overflow, bottom], + }; + } else if (minLon < -180) { + const overflow = Math.abs(minLon) - 180; + boundingBox = { + top_left: [180 - overflow, top], + bottom_right: [maxLon, bottom], + }; + } else { + boundingBox = { + top_left: [minLon, top], + bottom_right: [maxLon, bottom], + }; + } - const TOP_LEFT_INDEX = 0; - const BOTTOM_RIGHT_INDEX = 2; - const verticies = geometry.coordinates[POLYGON_COORDINATES_EXTERIOR_INDEX]; return { geo_bounding_box: { - [geoFieldName]: { - top_left: verticies[TOP_LEFT_INDEX], - bottom_right: verticies[BOTTOM_RIGHT_INDEX], - }, + [geoFieldName]: boundingBox, }, - ...filterProps, }; } export function createExtentFilter(mapExtent, geoFieldName, geoFieldType) { ensureGeoField(geoFieldType); - const safePolygon = convertMapExtentToPolygon(mapExtent); - // Extent filters are used to dynamically filter data for the current map view port. // Continue to use geo_bounding_box queries for extent filters // 1) geo_bounding_box queries are faster than polygon queries // 2) geo_shape benefits of pre-indexed shapes and // compatability across multi-indices with geo_point and geo_shape do not apply to this use case. if (geoFieldType === ES_GEO_FIELD_TYPE.GEO_POINT) { - return createGeoBoundBoxFilter(safePolygon, geoFieldName); + return createGeoBoundBoxFilter(mapExtent, geoFieldName); } return { geo_shape: { [geoFieldName]: { - shape: safePolygon, + shape: formatEnvelopeAsPolygon(mapExtent), relation: ES_SPATIAL_RELATIONS.INTERSECTS, }, }, @@ -376,16 +397,16 @@ export function getBoundingBoxGeometry(geometry) { extent.maxLat = Math.max(exterior[i][LAT_INDEX], extent.maxLat); } - return convertMapExtentToPolygon(extent); + return formatEnvelopeAsPolygon(extent); } -function formatEnvelopeAsPolygon({ maxLat, maxLon, minLat, minLon }) { +export function formatEnvelopeAsPolygon({ maxLat, maxLon, minLat, minLon }) { // GeoJSON mandates that the outer polygon must be counterclockwise to avoid ambiguous polygons // when the shape crosses the dateline const left = minLon; const right = maxLon; - const top = maxLat > 90 ? 90 : maxLat; - const bottom = minLat < -90 ? -90 : minLat; + const top = clampToLatBounds(maxLat); + const bottom = clampToLatBounds(minLat); const topLeft = [left, top]; const bottomLeft = [left, bottom]; const bottomRight = [right, bottom]; @@ -396,45 +417,6 @@ function formatEnvelopeAsPolygon({ maxLat, maxLon, minLat, minLon }) { }; } -/* - * Convert map bounds to polygon - */ -export function convertMapExtentToPolygon({ maxLat, maxLon, minLat, minLon }) { - const lonDelta = maxLon - minLon; - if (lonDelta >= 360) { - return formatEnvelopeAsPolygon({ - maxLat, - maxLon: 180, - minLat, - minLon: -180, - }); - } - - if (maxLon > 180) { - // bounds cross dateline east to west - const overlapWestOfDateLine = maxLon - 180; - return formatEnvelopeAsPolygon({ - maxLat, - maxLon: -180 + overlapWestOfDateLine, - minLat, - minLon, - }); - } - - if (minLon < -180) { - // bounds cross dateline west to east - const overlapEastOfDateLine = Math.abs(minLon) - 180; - return formatEnvelopeAsPolygon({ - maxLat, - maxLon, - minLat, - minLon: 180 - overlapEastOfDateLine, - }); - } - - return formatEnvelopeAsPolygon({ maxLat, maxLon, minLat, minLon }); -} - export function clampToLatBounds(lat) { return clamp(lat, -89, 89); } diff --git a/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js b/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js index d13291a8e2ba..c0baf5e4bcb6 100644 --- a/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js +++ b/x-pack/plugins/maps/public/elasticsearch_geo_utils.test.js @@ -17,19 +17,12 @@ import { geoPointToGeometry, geoShapeToGeometry, createExtentFilter, - convertMapExtentToPolygon, roundCoordinates, extractFeaturesFromFilters, } from './elasticsearch_geo_utils'; import { indexPatterns } from '../../../../src/plugins/data/public'; const geoFieldName = 'location'; -const mapExtent = { - maxLat: 39, - maxLon: -83, - minLat: 35, - minLon: -89, -}; const flattenHitMock = hit => { const properties = {}; @@ -317,174 +310,143 @@ describe('geoShapeToGeometry', () => { }); describe('createExtentFilter', () => { - it('should return elasticsearch geo_bounding_box filter for geo_point field', () => { - const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_point'); - expect(filter).toEqual({ - geo_bounding_box: { - location: { - bottom_right: [-83, 35], - top_left: [-89, 39], + describe('geo_point field', () => { + it('should return elasticsearch geo_bounding_box filter for geo_point field', () => { + const mapExtent = { + maxLat: 39, + maxLon: -83, + minLat: 35, + minLon: -89, + }; + const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_point'); + expect(filter).toEqual({ + geo_bounding_box: { + location: { + top_left: [-89, 39], + bottom_right: [-83, 35], + }, }, - }, + }); }); - }); - it('should return elasticsearch geo_shape filter for geo_shape field', () => { - const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_shape'); - expect(filter).toEqual({ - geo_shape: { - location: { - relation: 'INTERSECTS', - shape: { - coordinates: [ - [ - [-89, 39], - [-89, 35], - [-83, 35], - [-83, 39], - [-89, 39], - ], - ], - type: 'Polygon', + it('should clamp longitudes to -180 to 180 and latitudes to -90 to 90', () => { + const mapExtent = { + maxLat: 120, + maxLon: 200, + minLat: -100, + minLon: -190, + }; + const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_point'); + expect(filter).toEqual({ + geo_bounding_box: { + location: { + top_left: [-180, 89], + bottom_right: [180, -89], }, }, - }, + }); }); - }); - it('should clamp longitudes to -180 to 180', () => { - const mapExtent = { - maxLat: 39, - maxLon: 209, - minLat: 35, - minLon: -191, - }; - const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_shape'); - expect(filter).toEqual({ - geo_shape: { - location: { - relation: 'INTERSECTS', - shape: { - coordinates: [ - [ - [-180, 39], - [-180, 35], - [180, 35], - [180, 39], - [-180, 39], - ], - ], - type: 'Polygon', + it('should make left longitude greater then right longitude when area crosses 180 meridian east to west', () => { + const mapExtent = { + maxLat: 39, + maxLon: 200, + minLat: 35, + minLon: 100, + }; + const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_point'); + const leftLon = filter.geo_bounding_box.location.top_left[0]; + const rightLon = filter.geo_bounding_box.location.bottom_right[0]; + expect(leftLon).toBeGreaterThan(rightLon); + expect(filter).toEqual({ + geo_bounding_box: { + location: { + top_left: [100, 39], + bottom_right: [-160, 35], }, }, - }, - }); - }); -}); - -describe('convertMapExtentToPolygon', () => { - it('should convert bounds to envelope', () => { - const bounds = { - maxLat: 10, - maxLon: 100, - minLat: -10, - minLon: 90, - }; - expect(convertMapExtentToPolygon(bounds)).toEqual({ - type: 'Polygon', - coordinates: [ - [ - [90, 10], - [90, -10], - [100, -10], - [100, 10], - [90, 10], - ], - ], - }); - }); - - it('should clamp longitudes to -180 to 180', () => { - const bounds = { - maxLat: 10, - maxLon: 200, - minLat: -10, - minLon: -400, - }; - expect(convertMapExtentToPolygon(bounds)).toEqual({ - type: 'Polygon', - coordinates: [ - [ - [-180, 10], - [-180, -10], - [180, -10], - [180, 10], - [-180, 10], - ], - ], + }); }); - }); - it('should clamp longitudes to -180 to 180 when bounds span entire globe (360)', () => { - const bounds = { - maxLat: 10, - maxLon: 170, - minLat: -10, - minLon: -400, - }; - expect(convertMapExtentToPolygon(bounds)).toEqual({ - type: 'Polygon', - coordinates: [ - [ - [-180, 10], - [-180, -10], - [180, -10], - [180, 10], - [-180, 10], - ], - ], + it('should make left longitude greater then right longitude when area crosses 180 meridian west to east', () => { + const mapExtent = { + maxLat: 39, + maxLon: -100, + minLat: 35, + minLon: -200, + }; + const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_point'); + const leftLon = filter.geo_bounding_box.location.top_left[0]; + const rightLon = filter.geo_bounding_box.location.bottom_right[0]; + expect(leftLon).toBeGreaterThan(rightLon); + expect(filter).toEqual({ + geo_bounding_box: { + location: { + top_left: [160, 39], + bottom_right: [-100, 35], + }, + }, + }); }); }); - it('should handle bounds that cross dateline(east to west)', () => { - const bounds = { - maxLat: 10, - maxLon: 190, - minLat: -10, - minLon: 170, - }; - expect(convertMapExtentToPolygon(bounds)).toEqual({ - type: 'Polygon', - coordinates: [ - [ - [170, 10], - [170, -10], - [-170, -10], - [-170, 10], - [170, 10], - ], - ], + describe('geo_shape field', () => { + it('should return elasticsearch geo_shape filter', () => { + const mapExtent = { + maxLat: 39, + maxLon: -83, + minLat: 35, + minLon: -89, + }; + const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_shape'); + expect(filter).toEqual({ + geo_shape: { + location: { + relation: 'INTERSECTS', + shape: { + coordinates: [ + [ + [-89, 39], + [-89, 35], + [-83, 35], + [-83, 39], + [-89, 39], + ], + ], + type: 'Polygon', + }, + }, + }, + }); }); - }); - it('should handle bounds that cross dateline(west to east)', () => { - const bounds = { - maxLat: 10, - maxLon: -170, - minLat: -10, - minLon: -190, - }; - expect(convertMapExtentToPolygon(bounds)).toEqual({ - type: 'Polygon', - coordinates: [ - [ - [170, 10], - [170, -10], - [-170, -10], - [-170, 10], - [170, 10], - ], - ], + it('should not clamp longitudes to -180 to 180', () => { + const mapExtent = { + maxLat: 39, + maxLon: 209, + minLat: 35, + minLon: -191, + }; + const filter = createExtentFilter(mapExtent, geoFieldName, 'geo_shape'); + expect(filter).toEqual({ + geo_shape: { + location: { + relation: 'INTERSECTS', + shape: { + coordinates: [ + [ + [-191, 39], + [-191, 35], + [209, 35], + [209, 39], + [-191, 39], + ], + ], + type: 'Polygon', + }, + }, + }, + }); }); }); }); From e67480d1fcdf6e898e636b78327055edd289d68a Mon Sep 17 00:00:00 2001 From: Gidi Meir Morris Date: Mon, 11 May 2020 16:35:48 +0100 Subject: [PATCH 22/67] [Task Manager] restores migrations of old tasks in TM (#65978) When migrating to KP last week the migrations were missed - this PR restores them. --- .../server/saved_objects/index.ts | 2 ++ .../server/saved_objects/migrations.ts | 21 ++++++++++--------- 2 files changed, 13 insertions(+), 10 deletions(-) diff --git a/x-pack/plugins/task_manager/server/saved_objects/index.ts b/x-pack/plugins/task_manager/server/saved_objects/index.ts index 0ad9021cd7f3..fbb54b566ece 100644 --- a/x-pack/plugins/task_manager/server/saved_objects/index.ts +++ b/x-pack/plugins/task_manager/server/saved_objects/index.ts @@ -6,6 +6,7 @@ import { SavedObjectsServiceSetup } from 'kibana/server'; import mappings from './mappings.json'; +import { migrations } from './migrations'; import { TaskManagerConfig } from '../config.js'; export function setupSavedObjects( @@ -18,6 +19,7 @@ export function setupSavedObjects( hidden: true, convertToAliasScript: `ctx._id = ctx._source.type + ':' + ctx._id`, mappings: mappings.task, + migrations, indexPattern: config.index, }); } diff --git a/x-pack/plugins/task_manager/server/saved_objects/migrations.ts b/x-pack/plugins/task_manager/server/saved_objects/migrations.ts index 1c2cf73d0fe1..617ef80749d6 100644 --- a/x-pack/plugins/task_manager/server/saved_objects/migrations.ts +++ b/x-pack/plugins/task_manager/server/saved_objects/migrations.ts @@ -3,22 +3,23 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { SavedObject } from '../../../../../src/core/server'; +import { SavedObjectMigrationMap, SavedObjectUnsanitizedDoc } from '../../../../../src/core/server'; +import { TaskInstance, TaskInstanceWithDeprecatedFields } from '../task'; -export const migrations = { - task: { - '7.4.0': (doc: SavedObject>) => ({ - ...doc, - updated_at: new Date().toISOString(), - }), - '7.6.0': moveIntervalIntoSchedule, - }, +export const migrations: SavedObjectMigrationMap = { + '7.4.0': doc => ({ + ...doc, + updated_at: new Date().toISOString(), + }), + '7.6.0': moveIntervalIntoSchedule, }; function moveIntervalIntoSchedule({ attributes: { interval, ...attributes }, ...doc -}: SavedObject>) { +}: SavedObjectUnsanitizedDoc): SavedObjectUnsanitizedDoc< + TaskInstance +> { return { ...doc, attributes: { From 49226ddc1fdbe3841422404c6634643629200631 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Alejandro=20Fern=C3=A1ndez=20Haro?= Date: Mon, 11 May 2020 16:57:45 +0100 Subject: [PATCH 23/67] [Telemetry] Remove ui_metric from the legacy codebase (#65739) --- src/legacy/core_plugins/ui_metric/index.ts | 30 ------------- .../core_plugins/ui_metric/package.json | 4 -- .../core_plugins/ui_metric/public/index.ts | 21 --------- .../public/services/telemetry_analytics.ts | 24 ---------- src/plugins/usage_collection/README.md | 44 ------------------- 5 files changed, 123 deletions(-) delete mode 100644 src/legacy/core_plugins/ui_metric/index.ts delete mode 100644 src/legacy/core_plugins/ui_metric/package.json delete mode 100644 src/legacy/core_plugins/ui_metric/public/index.ts delete mode 100644 src/legacy/core_plugins/ui_metric/public/services/telemetry_analytics.ts diff --git a/src/legacy/core_plugins/ui_metric/index.ts b/src/legacy/core_plugins/ui_metric/index.ts deleted file mode 100644 index 2e5be3d7b0a3..000000000000 --- a/src/legacy/core_plugins/ui_metric/index.ts +++ /dev/null @@ -1,30 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -import { resolve } from 'path'; - -// eslint-disable-next-line import/no-default-export -export default function(kibana: any) { - return new kibana.Plugin({ - id: 'ui_metric', - require: ['kibana', 'elasticsearch'], - publicDir: resolve(__dirname, 'public'), - init() {}, - }); -} diff --git a/src/legacy/core_plugins/ui_metric/package.json b/src/legacy/core_plugins/ui_metric/package.json deleted file mode 100644 index 3ddcac4eec47..000000000000 --- a/src/legacy/core_plugins/ui_metric/package.json +++ /dev/null @@ -1,4 +0,0 @@ -{ - "name": "ui_metric", - "version": "kibana" -} diff --git a/src/legacy/core_plugins/ui_metric/public/index.ts b/src/legacy/core_plugins/ui_metric/public/index.ts deleted file mode 100644 index 19246b571cb8..000000000000 --- a/src/legacy/core_plugins/ui_metric/public/index.ts +++ /dev/null @@ -1,21 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ - -export { createUiStatsReporter } from './services/telemetry_analytics'; -export { METRIC_TYPE, UiStatsMetricType } from '@kbn/analytics'; diff --git a/src/legacy/core_plugins/ui_metric/public/services/telemetry_analytics.ts b/src/legacy/core_plugins/ui_metric/public/services/telemetry_analytics.ts deleted file mode 100644 index 0e517e6ff224..000000000000 --- a/src/legacy/core_plugins/ui_metric/public/services/telemetry_analytics.ts +++ /dev/null @@ -1,24 +0,0 @@ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -import { npSetup } from 'ui/new_platform'; - -export const createUiStatsReporter = (appName: string) => { - const { usageCollection } = npSetup.plugins; - return usageCollection.reportUiStats.bind(usageCollection, appName); -}; diff --git a/src/plugins/usage_collection/README.md b/src/plugins/usage_collection/README.md index e32dfae35832..99075d5d48f5 100644 --- a/src/plugins/usage_collection/README.md +++ b/src/plugins/usage_collection/README.md @@ -126,41 +126,6 @@ export function registerMyPluginUsageCollector( } ``` -### Migrating to NP from Legacy Plugins - -Pass `usageCollection` to the setup NP plugin setup function under plugins. Inside the `setup` function call the `registerCollector` like what you'd do in the NP example above. - -```js -// index.js -export const myPlugin = (kibana: any) => { - return new kibana.Plugin({ - init: async function (server) { - const { usageCollection } = server.newPlatform.setup.plugins; - const plugins = { - usageCollection, - }; - plugin(initializerContext).setup(core, plugins); - } - }); -} -``` - -### Legacy Plugins - -Typically, a plugin will create the collector object and register it with the Telemetry service from the `init` method of the plugin definition, or a helper module called from `init`. - -```js -// index.js -export const myPlugin = (kibana: any) => { - return new kibana.Plugin({ - init: async function (server) { - const { usageCollection } = server.newPlatform.setup.plugins; - registerMyPluginUsageCollector(usageCollection); - } - }); -} -``` - ## Update the telemetry payload and telemetry cluster field mappings There is a module in the telemetry service that creates the payload of data that gets sent up to the telemetry cluster. @@ -239,15 +204,6 @@ To track a user interaction, use the `reportUiStats` method exposed by the plugi } ``` -Alternatively, in the Legacy world you can still import the `createUiStatsReporter` helper function from UI Metric app: - -```js -import { createUiStatsReporter, METRIC_TYPE } from 'relative/path/to/src/legacy/core_plugins/ui_metric/public'; -const trackMetric = createUiStatsReporter(``); -trackMetric(METRIC_TYPE.CLICK, ``); -trackMetric('click', ``); -``` - Metric Types: - `METRIC_TYPE.CLICK` for tracking clicks `trackMetric(METRIC_TYPE.CLICK, 'my_button_clicked');` From a1a157dc87135c9dd26da45320072283df1f932e Mon Sep 17 00:00:00 2001 From: Sonja Krause-Harder Date: Mon, 11 May 2020 18:06:19 +0200 Subject: [PATCH 24/67] [Ingest] Use Kibana logger for proper server-side logging (#66017) * Add logger to app context. --- x-pack/plugins/ingest_manager/server/plugin.ts | 5 +++++ .../plugins/ingest_manager/server/services/app_context.ts | 8 +++++++- 2 files changed, 12 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/ingest_manager/server/plugin.ts b/x-pack/plugins/ingest_manager/server/plugin.ts index 24f3a11789dc..cd44b61974b0 100644 --- a/x-pack/plugins/ingest_manager/server/plugin.ts +++ b/x-pack/plugins/ingest_manager/server/plugin.ts @@ -8,6 +8,7 @@ import { first } from 'rxjs/operators'; import { CoreSetup, CoreStart, + Logger, Plugin, PluginInitializerContext, SavedObjectsServiceStart, @@ -73,6 +74,7 @@ export interface IngestManagerAppContext { isProductionMode: boolean; kibanaVersion: string; cloud?: CloudSetup; + logger?: Logger; httpSetup?: HttpServiceSetup; } @@ -108,6 +110,7 @@ export class IngestManagerPlugin private config$: Observable; private security: SecurityPluginSetup | undefined; private cloud: CloudSetup | undefined; + private logger: Logger | undefined; private isProductionMode: boolean; private kibanaVersion: string; @@ -117,6 +120,7 @@ export class IngestManagerPlugin this.config$ = this.initializerContext.config.create(); this.isProductionMode = this.initializerContext.env.mode.prod; this.kibanaVersion = this.initializerContext.env.packageInfo.version; + this.logger = this.initializerContext.logger.get(); } public async setup(core: CoreSetup, deps: IngestManagerSetupDeps) { @@ -208,6 +212,7 @@ export class IngestManagerPlugin kibanaVersion: this.kibanaVersion, httpSetup: this.httpSetup, cloud: this.cloud, + logger: this.logger, }); licenseService.start(this.licensing$); return { diff --git a/x-pack/plugins/ingest_manager/server/services/app_context.ts b/x-pack/plugins/ingest_manager/server/services/app_context.ts index 6da0a137fa08..e5bc082f6f0f 100644 --- a/x-pack/plugins/ingest_manager/server/services/app_context.ts +++ b/x-pack/plugins/ingest_manager/server/services/app_context.ts @@ -5,7 +5,7 @@ */ import { BehaviorSubject, Observable } from 'rxjs'; import { first } from 'rxjs/operators'; -import { SavedObjectsServiceStart, HttpServiceSetup } from 'src/core/server'; +import { SavedObjectsServiceStart, HttpServiceSetup, Logger } from 'src/core/server'; import { EncryptedSavedObjectsPluginStart } from '../../../encrypted_saved_objects/server'; import { SecurityPluginSetup } from '../../../security/server'; import { IngestManagerConfigType } from '../../common'; @@ -21,6 +21,7 @@ class AppContextService { private isProductionMode: boolean = false; private kibanaVersion: string | undefined; private cloud?: CloudSetup; + private logger?: Logger; private httpSetup?: HttpServiceSetup; public async start(appContext: IngestManagerAppContext) { @@ -29,6 +30,7 @@ class AppContextService { this.savedObjects = appContext.savedObjects; this.isProductionMode = appContext.isProductionMode; this.cloud = appContext.cloud; + this.logger = appContext.logger; this.kibanaVersion = appContext.kibanaVersion; this.httpSetup = appContext.httpSetup; @@ -60,6 +62,10 @@ class AppContextService { return this.cloud; } + public getLogger() { + return this.logger; + } + public getConfig() { return this.configSubject$?.value; } From 4912153ce6c6943815f4944e21de6b6b08597fe7 Mon Sep 17 00:00:00 2001 From: Mikhail Shustov Date: Mon, 11 May 2020 18:43:45 +0200 Subject: [PATCH 25/67] don't register any features in LP. (#65611) * don't register any features in LP. breaks features value reading in KP * move test plugin to NP * fix mappings * update docs * migrate another test * use contstants file for BWC with original code Co-authored-by: Elastic Machine --- ...ver.savedobjectscorefieldmapping.fields.md | 1 + ...ore-server.savedobjectscorefieldmapping.md | 2 +- .../server/saved_objects/mappings/types.ts | 1 + src/core/server/server.api.md | 1 + x-pack/legacy/plugins/maps/server/plugin.js | 34 +--------- .../xpack_main/server/lib/setup_xpack_main.js | 3 +- .../plugins/xpack_main/server/xpack_main.d.ts | 1 - x-pack/plugins/maps/kibana.json | 6 +- .../app.js => plugins/maps/server/index.ts} | 5 ++ x-pack/plugins/maps/server/plugin.ts | 52 +++++++++++++++ .../namespace_agnostic_type_plugin/index.js | 55 ---------------- .../kibana.json | 8 +++ .../mappings.json | 15 ----- .../package.json | 7 -- .../server/index.ts | 64 +++++++++++++++++++ .../fixtures/plugins/foo_plugin/index.js | 52 --------------- .../fixtures/plugins/foo_plugin/kibana.json | 8 +++ .../fixtures/plugins/foo_plugin/package.json | 7 -- .../plugins/foo_plugin/public/index.ts | 21 ++++++ .../plugins/foo_plugin/server/index.ts | 47 ++++++++++++++ 20 files changed, 215 insertions(+), 175 deletions(-) rename x-pack/{test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/app.js => plugins/maps/server/index.ts} (53%) create mode 100644 x-pack/plugins/maps/server/plugin.ts delete mode 100644 x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/index.js create mode 100644 x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/kibana.json delete mode 100644 x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/mappings.json delete mode 100644 x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/package.json create mode 100644 x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/server/index.ts delete mode 100644 x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/index.js create mode 100644 x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/kibana.json delete mode 100644 x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/package.json create mode 100644 x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/index.ts create mode 100644 x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/server/index.ts diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md index db774a055e52..4f88b635ca2f 100644 --- a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md +++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md @@ -10,6 +10,7 @@ fields?: { [subfield: string]: { type: string; + ignore_above?: number; }; }; ``` diff --git a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md index dbc7d0ca431c..9a31d37b3ff3 100644 --- a/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md +++ b/docs/development/core/server/kibana-plugin-core-server.savedobjectscorefieldmapping.md @@ -17,7 +17,7 @@ export interface SavedObjectsCoreFieldMapping | Property | Type | Description | | --- | --- | --- | | [enabled](./kibana-plugin-core-server.savedobjectscorefieldmapping.enabled.md) | boolean | | -| [fields](./kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md) | {
[subfield: string]: {
type: string;
};
} | | +| [fields](./kibana-plugin-core-server.savedobjectscorefieldmapping.fields.md) | {
[subfield: string]: {
type: string;
ignore_above?: number;
};
} | | | [index](./kibana-plugin-core-server.savedobjectscorefieldmapping.index.md) | boolean | | | [null\_value](./kibana-plugin-core-server.savedobjectscorefieldmapping.null_value.md) | number | boolean | string | | | [type](./kibana-plugin-core-server.savedobjectscorefieldmapping.type.md) | string | | diff --git a/src/core/server/saved_objects/mappings/types.ts b/src/core/server/saved_objects/mappings/types.ts index c1b65763949b..8362d1f16bd2 100644 --- a/src/core/server/saved_objects/mappings/types.ts +++ b/src/core/server/saved_objects/mappings/types.ts @@ -137,6 +137,7 @@ export interface SavedObjectsCoreFieldMapping { fields?: { [subfield: string]: { type: string; + ignore_above?: number; }; }; } diff --git a/src/core/server/server.api.md b/src/core/server/server.api.md index e4234689c25e..bb8ee1d8e7a3 100644 --- a/src/core/server/server.api.md +++ b/src/core/server/server.api.md @@ -1884,6 +1884,7 @@ export interface SavedObjectsCoreFieldMapping { fields?: { [subfield: string]: { type: string; + ignore_above?: number; }; }; // (undocumented) diff --git a/x-pack/legacy/plugins/maps/server/plugin.js b/x-pack/legacy/plugins/maps/server/plugin.js index d2d5309606cd..6a542dff2eb1 100644 --- a/x-pack/legacy/plugins/maps/server/plugin.js +++ b/x-pack/legacy/plugins/maps/server/plugin.js @@ -19,42 +19,10 @@ import { emsBoundariesSpecProvider } from './tutorials/ems'; export class MapPlugin { setup(core, plugins, __LEGACY) { - const { featuresPlugin, home, licensing, usageCollection, mapsLegacy } = plugins; + const { home, licensing, usageCollection, mapsLegacy } = plugins; let routesInitialized = false; const mapConfig = mapsLegacy.config; - featuresPlugin.registerFeature({ - id: APP_ID, - name: i18n.translate('xpack.maps.featureRegistry.mapsFeatureName', { - defaultMessage: 'Maps', - }), - order: 600, - icon: APP_ICON, - navLinkId: APP_ID, - app: [APP_ID, 'kibana'], - catalogue: [APP_ID], - privileges: { - all: { - app: [APP_ID, 'kibana'], - catalogue: [APP_ID], - savedObject: { - all: [MAP_SAVED_OBJECT_TYPE, 'query'], - read: ['index-pattern'], - }, - ui: ['save', 'show', 'saveQuery'], - }, - read: { - app: [APP_ID, 'kibana'], - catalogue: [APP_ID], - savedObject: { - all: [], - read: [MAP_SAVED_OBJECT_TYPE, 'index-pattern', 'query'], - }, - ui: ['show'], - }, - }, - }); - licensing.license$.subscribe(license => { const { state } = license.check('maps', 'basic'); if (state === 'valid' && !routesInitialized) { diff --git a/x-pack/legacy/plugins/xpack_main/server/lib/setup_xpack_main.js b/x-pack/legacy/plugins/xpack_main/server/lib/setup_xpack_main.js index 2707858a5fec..9196b210bba2 100644 --- a/x-pack/legacy/plugins/xpack_main/server/lib/setup_xpack_main.js +++ b/x-pack/legacy/plugins/xpack_main/server/lib/setup_xpack_main.js @@ -22,8 +22,7 @@ export function setupXPackMain(server) { server.ext('onPreResponse', (request, h) => injectXPackInfoSignature(info, request, h)); - const { registerFeature, getFeatures } = server.newPlatform.setup.plugins.features; - server.expose('registerFeature', registerFeature); + const { getFeatures } = server.newPlatform.setup.plugins.features; server.expose('getFeatures', getFeatures); const setPluginStatus = () => { diff --git a/x-pack/legacy/plugins/xpack_main/server/xpack_main.d.ts b/x-pack/legacy/plugins/xpack_main/server/xpack_main.d.ts index 7b5dc1976062..2a59c2f1366d 100644 --- a/x-pack/legacy/plugins/xpack_main/server/xpack_main.d.ts +++ b/x-pack/legacy/plugins/xpack_main/server/xpack_main.d.ts @@ -12,5 +12,4 @@ export { XPackFeature } from './lib/xpack_info'; export interface XPackMainPlugin { info: XPackInfo; getFeatures(): Feature[]; - registerFeature(feature: FeatureConfig): void; } diff --git a/x-pack/plugins/maps/kibana.json b/x-pack/plugins/maps/kibana.json index 077601204e3e..efbac56a817b 100644 --- a/x-pack/plugins/maps/kibana.json +++ b/x-pack/plugins/maps/kibana.json @@ -4,8 +4,9 @@ "kibanaVersion": "kibana", "configPath": ["xpack", "maps"], "requiredPlugins": [ - "inspector", "licensing", + "features", + "inspector", "home", "data", "fileUpload", @@ -15,5 +16,6 @@ "embeddable", "mapsLegacy" ], - "ui": true + "ui": true, + "server": true } diff --git a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/app.js b/x-pack/plugins/maps/server/index.ts similarity index 53% rename from x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/app.js rename to x-pack/plugins/maps/server/index.ts index 41bc2aa25880..1b714a3555b3 100644 --- a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/app.js +++ b/x-pack/plugins/maps/server/index.ts @@ -3,3 +3,8 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ +import { PluginInitializerContext } from 'src/core/server'; +import { MapsPlugin } from './plugin'; + +export const plugin = (initializerContext: PluginInitializerContext) => + new MapsPlugin(initializerContext); diff --git a/x-pack/plugins/maps/server/plugin.ts b/x-pack/plugins/maps/server/plugin.ts new file mode 100644 index 000000000000..7de0a69fb007 --- /dev/null +++ b/x-pack/plugins/maps/server/plugin.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { i18n } from '@kbn/i18n'; +import { CoreSetup, CoreStart, Plugin, PluginInitializerContext } from 'src/core/server'; +import { PluginSetupContract as FeaturesPluginSetupContract } from '../../features/server'; + +import { APP_ID, APP_ICON, MAP_SAVED_OBJECT_TYPE } from '../common/constants'; + +interface SetupDeps { + features: FeaturesPluginSetupContract; +} + +export class MapsPlugin implements Plugin { + constructor(initializerContext: PluginInitializerContext) {} + setup(core: CoreSetup, plugins: SetupDeps) { + plugins.features.registerFeature({ + id: APP_ID, + name: i18n.translate('xpack.maps.featureRegistry.mapsFeatureName', { + defaultMessage: 'Maps', + }), + order: 600, + icon: APP_ICON, + navLinkId: APP_ID, + app: [APP_ID, 'kibana'], + catalogue: [APP_ID], + privileges: { + all: { + app: [APP_ID, 'kibana'], + catalogue: [APP_ID], + savedObject: { + all: [MAP_SAVED_OBJECT_TYPE, 'query'], + read: ['index-pattern'], + }, + ui: ['save', 'show', 'saveQuery'], + }, + read: { + app: [APP_ID, 'kibana'], + catalogue: [APP_ID], + savedObject: { + all: [], + read: [MAP_SAVED_OBJECT_TYPE, 'index-pattern', 'query'], + }, + ui: ['show'], + }, + }, + }); + } + start(core: CoreStart) {} +} diff --git a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/index.js b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/index.js deleted file mode 100644 index b8dbdeb07d7f..000000000000 --- a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/index.js +++ /dev/null @@ -1,55 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import mappings from './mappings.json'; - -export default function(kibana) { - return new kibana.Plugin({ - require: ['kibana', 'elasticsearch', 'xpack_main'], - name: 'namespace_agnostic_type_plugin', - uiExports: { - savedObjectsManagement: { - globaltype: { - isImportableAndExportable: true, - }, - }, - savedObjectSchemas: { - globaltype: { - isNamespaceAgnostic: true, - }, - }, - mappings, - }, - - config() {}, - - init(server) { - server.plugins.xpack_main.registerFeature({ - id: 'namespace_agnostic_type_plugin', - name: 'namespace_agnostic_type_plugin', - icon: 'upArrow', - navLinkId: 'namespace_agnostic_type_plugin', - app: [], - privileges: { - all: { - savedObject: { - all: ['globaltype'], - read: [], - }, - ui: [], - }, - read: { - savedObject: { - all: [], - read: ['globaltype'], - }, - ui: [], - }, - }, - }); - }, - }); -} diff --git a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/kibana.json b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/kibana.json new file mode 100644 index 000000000000..ec3077999d8b --- /dev/null +++ b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/kibana.json @@ -0,0 +1,8 @@ +{ + "id": "namespace_agnostic_type_plugin", + "version": "1.0.0", + "kibanaVersion": "kibana", + "requiredPlugins": ["features"], + "server": true, + "ui": false +} diff --git a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/mappings.json b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/mappings.json deleted file mode 100644 index 64d309b4209a..000000000000 --- a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/mappings.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "globaltype": { - "properties": { - "title": { - "type": "text", - "fields": { - "keyword": { - "type": "keyword", - "ignore_above": 2048 - } - } - } - } - } -} diff --git a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/package.json b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/package.json deleted file mode 100644 index 1a0afbc6bfcb..000000000000 --- a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "namespace_agnostic_type_plugin", - "version": "0.0.0", - "kibana": { - "version": "kibana" - } -} diff --git a/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/server/index.ts b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/server/index.ts new file mode 100644 index 000000000000..d8940c96e676 --- /dev/null +++ b/x-pack/test/saved_object_api_integration/common/fixtures/namespace_agnostic_type_plugin/server/index.ts @@ -0,0 +1,64 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { CoreSetup, Plugin } from 'src/core/server'; +import { PluginSetupContract as FeaturesPluginSetupContract } from '../../../../../../plugins/features/server'; + +export const plugin = () => new NamespaceAgnosticTypePlugin(); + +interface SetupDeps { + features: FeaturesPluginSetupContract; +} + +class NamespaceAgnosticTypePlugin implements Plugin { + setup(core: CoreSetup, plugins: SetupDeps) { + core.savedObjects.registerType({ + name: 'globaltype', + hidden: false, + namespaceType: 'agnostic', + management: { + importableAndExportable: true, + }, + mappings: { + properties: { + title: { + type: 'text', + fields: { + keyword: { + type: 'keyword', + ignore_above: 2048, + }, + }, + }, + }, + }, + }); + + plugins.features.registerFeature({ + id: 'namespace_agnostic_type_plugin', + name: 'namespace_agnostic_type_plugin', + icon: 'upArrow', + navLinkId: 'namespace_agnostic_type_plugin', + app: [], + privileges: { + all: { + savedObject: { + all: ['globaltype'], + read: [], + }, + ui: [], + }, + read: { + savedObject: { + all: [], + read: ['globaltype'], + }, + ui: [], + }, + }, + }); + } + start() {} +} diff --git a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/index.js b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/index.js deleted file mode 100644 index 89ae0125614b..000000000000 --- a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/index.js +++ /dev/null @@ -1,52 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export default function(kibana) { - return new kibana.Plugin({ - require: ['kibana', 'elasticsearch', 'xpack_main'], - name: 'foo', - uiExports: { - app: { - title: 'Foo', - order: 1000, - euiIconType: 'uiArray', - description: 'Foo app', - main: 'plugins/foo_plugin/app', - }, - }, - - init(server) { - server.plugins.xpack_main.registerFeature({ - id: 'foo', - name: 'Foo', - icon: 'upArrow', - navLinkId: 'foo_plugin', - app: ['kibana'], - catalogue: ['foo'], - privileges: { - all: { - app: ['kibana'], - catalogue: ['foo'], - savedObject: { - all: ['foo'], - read: ['index-pattern'], - }, - ui: ['create', 'edit', 'delete', 'show'], - }, - read: { - app: ['kibana'], - catalogue: ['foo'], - savedObject: { - all: [], - read: ['foo', 'index-pattern'], - }, - ui: ['show'], - }, - }, - }); - }, - }); -} diff --git a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/kibana.json b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/kibana.json new file mode 100644 index 000000000000..cec1640fbb04 --- /dev/null +++ b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/kibana.json @@ -0,0 +1,8 @@ +{ + "id": "foo_plugin", + "version": "1.0.0", + "kibanaVersion": "kibana", + "requiredPlugins": ["features"], + "server": true, + "ui": true +} diff --git a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/package.json b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/package.json deleted file mode 100644 index 45228b47c0a3..000000000000 --- a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/package.json +++ /dev/null @@ -1,7 +0,0 @@ -{ - "name": "foo_plugin", - "version": "0.0.0", - "kibana": { - "version": "kibana" - } -} diff --git a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/index.ts b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/index.ts new file mode 100644 index 000000000000..357cbba33492 --- /dev/null +++ b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/public/index.ts @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { CoreSetup, Plugin } from 'src/core/public'; +export const plugin = () => new FooPlugin(); + +class FooPlugin implements Plugin { + setup(core: CoreSetup) { + core.application.register({ + id: 'foo', + title: 'Foo app', + euiIconType: 'uiArray', + mount() { + return () => null; + }, + }); + } + start() {} +} diff --git a/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/server/index.ts b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/server/index.ts new file mode 100644 index 000000000000..bff794801119 --- /dev/null +++ b/x-pack/test/ui_capabilities/common/fixtures/plugins/foo_plugin/server/index.ts @@ -0,0 +1,47 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import { CoreSetup, Plugin } from 'src/core/server'; +import { PluginSetupContract as FeaturesPluginSetupContract } from '../../../../../../../plugins/features/server'; + +export const plugin = () => new FooPlugin(); + +interface SetupDeps { + features: FeaturesPluginSetupContract; +} + +class FooPlugin implements Plugin { + setup(core: CoreSetup, plugins: SetupDeps) { + plugins.features.registerFeature({ + id: 'foo', + name: 'Foo', + icon: 'upArrow', + navLinkId: 'foo_plugin', + app: ['kibana'], + catalogue: ['foo'], + privileges: { + all: { + app: ['kibana'], + catalogue: ['foo'], + savedObject: { + all: ['foo'], + read: ['index-pattern'], + }, + ui: ['create', 'edit', 'delete', 'show'], + }, + read: { + app: ['kibana'], + catalogue: ['foo'], + savedObject: { + all: [], + read: ['foo', 'index-pattern'], + }, + ui: ['show'], + }, + }, + }); + } + start() {} +} From 4174bab3cc357f1c85b8e643dad83ea62ae73956 Mon Sep 17 00:00:00 2001 From: Melissa Alvarez Date: Mon, 11 May 2020 12:56:25 -0400 Subject: [PATCH 26/67] [ML] Anomaly Explorer: if filter includes wildcard ensure matching swimlanes are not masked (#65384) * if wildcard search no mask for matching swimlanes * update swimlane proptypes * add helper function * add tests for helper function --- .../__mocks__/mock_viewby_swimlane.json | 33 +++++++++++++++++++ .../public/application/explorer/explorer.js | 11 ++++++- .../explorer/explorer_swimlane.tsx | 2 +- .../explorer/has_matching_points.test.ts | 31 +++++++++++++++++ .../explorer/has_matching_points.ts | 30 +++++++++++++++++ 5 files changed, 105 insertions(+), 2 deletions(-) create mode 100644 x-pack/plugins/ml/public/application/explorer/__mocks__/mock_viewby_swimlane.json create mode 100644 x-pack/plugins/ml/public/application/explorer/has_matching_points.test.ts create mode 100644 x-pack/plugins/ml/public/application/explorer/has_matching_points.ts diff --git a/x-pack/plugins/ml/public/application/explorer/__mocks__/mock_viewby_swimlane.json b/x-pack/plugins/ml/public/application/explorer/__mocks__/mock_viewby_swimlane.json new file mode 100644 index 000000000000..05095c90ac1d --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/__mocks__/mock_viewby_swimlane.json @@ -0,0 +1,33 @@ +{ + "laneLabels": [ + "View by" + ], + "points": [ + { + "laneLabel": "test-1", + "time": 1486425600, + "value": 0 + }, + { + "laneLabel": "test-2", + "time": 1486440000, + "value": 0.01107053 + }, + { + "laneLabel": "other-3", + "time": 1486454400, + "value": 0.1870243 + }, + { + "laneLabel": "other-4", + "time": 1486468800, + "value": 0.5947769 + }, + { + "laneLabel": "other-5", + "time": 1486483200, + "value": 0 + } + ], + "interval": 14400 +} diff --git a/x-pack/plugins/ml/public/application/explorer/explorer.js b/x-pack/plugins/ml/public/application/explorer/explorer.js index 8fd247981780..9c9c82a21247 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer.js @@ -81,6 +81,7 @@ import { AnomaliesTable } from '../components/anomalies_table/anomalies_table'; import { ResizeChecker } from '../../../../../../src/plugins/kibana_utils/public'; import { getTimefilter, getToastNotifications } from '../util/dependency_cache'; import { MlTooltipComponent } from '../components/chart_tooltip'; +import { hasMatchingPoints } from './has_matching_points'; function mapSwimlaneOptionsToEuiOptions(options) { return options.map(option => ({ @@ -284,6 +285,7 @@ export class Explorer extends React.Component { annotationsData, chartsData, filterActive, + filteredFields, filterPlaceHolder, indexPattern, influencers, @@ -418,6 +420,7 @@ export class Explorer extends React.Component { { if (selectedCellTimes.length > 0) { this.highlightOverall(selectedCellTimes); } - this.maskIrrelevantSwimlanes(!!maskAll); + this.maskIrrelevantSwimlanes(Boolean(maskAll)); } else { this.clearSelection(); } diff --git a/x-pack/plugins/ml/public/application/explorer/has_matching_points.test.ts b/x-pack/plugins/ml/public/application/explorer/has_matching_points.test.ts new file mode 100644 index 000000000000..8d6f71bb7720 --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/has_matching_points.test.ts @@ -0,0 +1,31 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import mockViewBySwimlaneData from './__mocks__/mock_viewby_swimlane.json'; +import { hasMatchingPoints } from './has_matching_points'; + +const filteredFieldsMatch = ['test@kuery-wildcard@']; +const filteredFieldsNoMatch = ['no-match@kuery-wildcard@', 'nonexistant']; + +describe('hasMatchingPoints', () => { + test('is true', () => { + expect( + hasMatchingPoints({ + filteredFields: filteredFieldsMatch, + swimlaneData: mockViewBySwimlaneData, + }) + ).toBe(true); + }); + + test('is false', () => { + expect( + hasMatchingPoints({ + filteredFields: filteredFieldsNoMatch, + swimlaneData: mockViewBySwimlaneData, + }) + ).toBe(false); + }); +}); diff --git a/x-pack/plugins/ml/public/application/explorer/has_matching_points.ts b/x-pack/plugins/ml/public/application/explorer/has_matching_points.ts new file mode 100644 index 000000000000..397615d68f18 --- /dev/null +++ b/x-pack/plugins/ml/public/application/explorer/has_matching_points.ts @@ -0,0 +1,30 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { ExplorerState } from './reducers'; +import { OverallSwimlaneData, SwimlaneData } from './explorer_utils'; + +interface HasMatchingPointsParams { + filteredFields?: ExplorerState['filteredFields']; + swimlaneData: SwimlaneData | OverallSwimlaneData; +} + +export const hasMatchingPoints = ({ + filteredFields = [], + swimlaneData, +}: HasMatchingPointsParams): boolean => { + // If filtered fields includes a wildcard search maskAll only if there are no points matching the pattern + const wildCardField = filteredFields.find(field => /\@kuery-wildcard\@$/.test(field)); + const substring = + wildCardField !== undefined ? wildCardField.replace(/\@kuery-wildcard\@$/, '') : null; + + return ( + substring !== null && + swimlaneData.points.some(point => { + return point.laneLabel.includes(substring); + }) + ); +}; From be7902311d92d28befee183ff6c8ef7b44cd142d Mon Sep 17 00:00:00 2001 From: Tiago Costa Date: Mon, 11 May 2020 18:23:42 +0100 Subject: [PATCH 27/67] chore(NA): skip mapping editor shape datatype test (#66041) --- .../client_integration/datatypes/shape_datatype.test.tsx | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/shape_datatype.test.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/shape_datatype.test.tsx index 19bf6973472f..0816770aab3a 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/shape_datatype.test.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/datatypes/shape_datatype.test.tsx @@ -20,7 +20,9 @@ export const defaultShapeParameters = { ignore_z_value: true, }; -describe('Mappings editor: shape datatype', () => { +// That test is being flaky and is under work to be fixed +// Skipping it for now. +describe.skip('Mappings editor: shape datatype', () => { let testBed: MappingsEditorTestBed; /** From cbe559745a66ddf41b2d5c7dce67d16f572ba200 Mon Sep 17 00:00:00 2001 From: Spencer Date: Mon, 11 May 2020 11:04:23 -0700 Subject: [PATCH 28/67] [procrunner] avoid waiting for processes forever (#65909) --- .../src/proc_runner/proc_runner.ts | 26 +- packages/kbn-pm/dist/index.js | 21246 ++++++++-------- 2 files changed, 10647 insertions(+), 10625 deletions(-) diff --git a/packages/kbn-dev-utils/src/proc_runner/proc_runner.ts b/packages/kbn-dev-utils/src/proc_runner/proc_runner.ts index 14c87766213c..1759ca2840c5 100644 --- a/packages/kbn-dev-utils/src/proc_runner/proc_runner.ts +++ b/packages/kbn-dev-utils/src/proc_runner/proc_runner.ts @@ -18,17 +18,22 @@ */ import moment from 'moment'; -import { filter, first, catchError } from 'rxjs/operators'; +import * as Rx from 'rxjs'; +import { filter, first, catchError, map } from 'rxjs/operators'; import exitHook from 'exit-hook'; import { ToolingLog } from '../tooling_log'; import { createCliError } from './errors'; import { Proc, ProcOptions, startProc } from './proc'; +const SECOND = 1000; +const MINUTE = 60 * SECOND; + const noop = () => {}; interface RunOptions extends ProcOptions { wait: true | RegExp; + waitTimeout?: number | false; } /** @@ -71,6 +76,7 @@ export class ProcRunner { cwd = process.cwd(), stdin = undefined, wait = false, + waitTimeout = 15 * MINUTE, env = process.env, } = options; @@ -97,8 +103,8 @@ export class ProcRunner { try { if (wait instanceof RegExp) { // wait for process to log matching line - await proc.lines$ - .pipe( + await Rx.race( + proc.lines$.pipe( filter(line => wait.test(line)), first(), catchError(err => { @@ -108,8 +114,18 @@ export class ProcRunner { throw err; } }) - ) - .toPromise(); + ), + waitTimeout === false + ? Rx.NEVER + : Rx.timer(waitTimeout).pipe( + map(() => { + const sec = waitTimeout / SECOND; + throw createCliError( + `[${name}] failed to match pattern within ${sec} seconds [pattern=${wait}]` + ); + }) + ) + ).toPromise(); } if (wait === true) { diff --git a/packages/kbn-pm/dist/index.js b/packages/kbn-pm/dist/index.js index 1b70cced4a5c..1b670eb8cd81 100644 --- a/packages/kbn-pm/dist/index.js +++ b/packages/kbn-pm/dist/index.js @@ -4838,10 +4838,13 @@ exports.withProcRunner = withProcRunner; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = __webpack_require__(36); const moment_1 = tslib_1.__importDefault(__webpack_require__(40)); -const operators_1 = __webpack_require__(169); -const exit_hook_1 = tslib_1.__importDefault(__webpack_require__(348)); -const errors_1 = __webpack_require__(349); -const proc_1 = __webpack_require__(350); +const Rx = tslib_1.__importStar(__webpack_require__(169)); +const operators_1 = __webpack_require__(270); +const exit_hook_1 = tslib_1.__importDefault(__webpack_require__(368)); +const errors_1 = __webpack_require__(369); +const proc_1 = __webpack_require__(370); +const SECOND = 1000; +const MINUTE = 60 * SECOND; const noop = () => { }; /** * Helper for starting and managing processes. In many ways it resembles the @@ -4875,7 +4878,7 @@ class ProcRunner { * @return {Promise} */ async run(name, options) { - const { cmd, args = [], cwd = process.cwd(), stdin = undefined, wait = false, env = process.env, } = options; + const { cmd, args = [], cwd = process.cwd(), stdin = undefined, wait = false, waitTimeout = 15 * MINUTE, env = process.env, } = options; if (this.closing) { throw new Error('ProcRunner is closing'); } @@ -4895,16 +4898,19 @@ class ProcRunner { try { if (wait instanceof RegExp) { // wait for process to log matching line - await proc.lines$ - .pipe(operators_1.filter(line => wait.test(line)), operators_1.first(), operators_1.catchError(err => { + await Rx.race(proc.lines$.pipe(operators_1.filter(line => wait.test(line)), operators_1.first(), operators_1.catchError(err => { if (err.name !== 'EmptyError') { throw errors_1.createCliError(`[${name}] exited without matching pattern: ${wait}`); } else { throw err; } - })) - .toPromise(); + })), waitTimeout === false + ? Rx.NEVER + : Rx.timer(waitTimeout).pipe(operators_1.map(() => { + const sec = waitTimeout / SECOND; + throw errors_1.createCliError(`[${name}] failed to match pattern within ${sec} seconds [pattern=${wait}]`); + }))).toPromise(); } if (wait === true) { // wait for process to complete @@ -21959,316 +21965,172 @@ webpackContext.id = 41; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; }); - -/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(198); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; }); - -/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(207); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; }); - -/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(208); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; }); - -/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(209); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; }); - -/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(210); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; }); - -/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(211); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; }); - -/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(212); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; }); - -/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(213); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; }); - -/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(217); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; }); - -/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(225); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; }); - -/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(228); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; }); - -/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(233); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; }); - -/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(234); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; }); - -/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(235); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; }); - -/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(236); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; }); - -/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(237); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; }); - -/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(238); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; }); - -/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(239); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; }); - -/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(244); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; }); - -/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(245); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; }); - -/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(246); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; }); - -/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(247); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; }); - -/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(248); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; }); - -/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(249); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; }); - -/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(255); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; }); - -/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(256); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; }); - -/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(257); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; }); - -/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(258); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; }); - -/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(259); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; }); - -/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(251); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; }); - -/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(260); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; }); - -/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(261); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; }); - -/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(262); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; }); - -/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(263); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; }); - -/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(264); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; }); - -/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(268); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; }); - -/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(269); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; }); - -/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(270); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; }); - -/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(231); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; }); - -/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(272); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; }); - -/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(273); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; }); - -/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(274); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; }); - -/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(277); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; }); - -/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(229); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__["mergeAll"]; }); - -/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(230); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); - -/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(279); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; }); +/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]; }); -/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(280); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; }); +/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(186); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__["ConnectableObservable"]; }); -/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(281); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; }); +/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(191); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__["GroupedObservable"]; }); -/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(282); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; }); +/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(183); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__["observable"]; }); -/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(285); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; }); +/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(187); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]; }); -/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(286); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; }); +/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(192); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__["BehaviorSubject"]; }); -/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(287); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; }); +/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(193); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__["ReplaySubject"]; }); -/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(288); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; }); +/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(210); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__["AsyncSubject"]; }); -/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(290); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; }); +/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(211); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asapScheduler", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__["asap"]; }); -/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(291); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; }); +/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(215); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asyncScheduler", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__["async"]; }); -/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(292); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; }); +/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(194); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queueScheduler", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__["queue"]; }); -/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(294); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; }); +/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(216); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "animationFrameScheduler", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__["animationFrame"]; }); -/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(296); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; }); +/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(219); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualTimeScheduler"]; }); -/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(301); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualAction"]; }); -/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(275); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; }); +/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(200); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__["Scheduler"]; }); -/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(303); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; }); +/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(177); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscription", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__["Subscription"]; }); -/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(304); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; }); +/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(172); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscriber", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__["Subscriber"]; }); -/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(305); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; }); +/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(202); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_16__["Notification"]; }); -/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(306); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotificationKind", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_16__["NotificationKind"]; }); -/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(284); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; }); +/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(184); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__["pipe"]; }); -/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(307); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; }); +/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(185); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__["noop"]; }); -/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(308); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; }); +/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(220); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__["identity"]; }); -/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(276); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; }); +/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(221); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__["isObservable"]; }); -/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(309); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; }); +/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(222); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__["ArgumentOutOfRangeError"]; }); -/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(310); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; }); +/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(223); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__["EmptyError"]; }); -/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(311); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; }); +/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(188); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__["ObjectUnsubscribedError"]; }); -/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(312); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; }); +/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(180); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__["UnsubscriptionError"]; }); -/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(313); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; }); +/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(224); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__["TimeoutError"]; }); -/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(314); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; }); +/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(225); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__["bindCallback"]; }); -/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(315); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; }); +/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(227); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__["bindNodeCallback"]; }); -/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(316); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; }); +/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(228); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__["combineLatest"]; }); -/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(317); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; }); +/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(239); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__["concat"]; }); -/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(318); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; }); +/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(250); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__["defer"]; }); -/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(324); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; }); +/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(203); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["empty"]; }); -/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(325); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; }); +/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(251); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__["forkJoin"]; }); -/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(326); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; }); +/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(243); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "from", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__["from"]; }); -/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(254); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; }); +/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(252); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__["fromEvent"]; }); -/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(271); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; }); +/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(253); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__["fromEventPattern"]; }); -/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(327); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; }); +/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(254); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__["generate"]; }); -/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(328); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; }); +/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(255); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__["iif"]; }); -/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(329); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; }); +/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(256); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__["interval"]; }); -/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(330); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; }); +/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(258); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__["merge"]; }); -/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(331); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; }); +/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(259); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "never", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["never"]; }); -/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(252); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; }); +/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(204); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "of", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__["of"]; }); -/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(332); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; }); +/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(260); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__["onErrorResumeNext"]; }); -/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(334); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; }); +/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(261); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__["pairs"]; }); -/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(336); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; }); +/* harmony import */ var _internal_observable_partition__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(262); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_observable_partition__WEBPACK_IMPORTED_MODULE_44__["partition"]; }); -/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(337); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; }); +/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(265); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_45__["race"]; }); -/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(338); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; }); +/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(266); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_46__["range"]; }); -/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(339); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; }); +/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(209); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_47__["throwError"]; }); -/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(340); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; }); +/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(267); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_48__["timer"]; }); -/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(341); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; }); +/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(268); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "using", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_49__["using"]; }); -/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(342); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; }); +/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(269); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_50__["zip"]; }); -/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(343); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; }); +/* harmony import */ var _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(244); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scheduled", function() { return _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_51__["scheduled"]; }); -/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(344); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["EMPTY"]; }); -/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(345); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; }); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["NEVER"]; }); -/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(347); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; }); +/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(175); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "config", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_52__["config"]; }); /** PURE_IMPORTS_START PURE_IMPORTS_END */ @@ -22305,55 +22167,6 @@ __webpack_require__.r(__webpack_exports__); - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - @@ -22384,79 +22197,128 @@ __webpack_require__.r(__webpack_exports__); "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return audit; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); +/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(171); +/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); +/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(184); +/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(175); +/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ -function audit(durationSelector) { - return function auditOperatorFunction(source) { - return source.lift(new AuditOperator(durationSelector)); - }; -} -var AuditOperator = /*@__PURE__*/ (function () { - function AuditOperator(durationSelector) { - this.durationSelector = durationSelector; + + +var Observable = /*@__PURE__*/ (function () { + function Observable(subscribe) { + this._isScalar = false; + if (subscribe) { + this._subscribe = subscribe; + } } - AuditOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); + Observable.prototype.lift = function (operator) { + var observable = new Observable(); + observable.source = this; + observable.operator = operator; + return observable; }; - return AuditOperator; -}()); -var AuditSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AuditSubscriber, _super); - function AuditSubscriber(destination, durationSelector) { - var _this = _super.call(this, destination) || this; - _this.durationSelector = durationSelector; - _this.hasValue = false; - return _this; - } - AuditSubscriber.prototype._next = function (value) { - this.value = value; - this.hasValue = true; - if (!this.throttled) { - var duration = void 0; - try { - var durationSelector = this.durationSelector; - duration = durationSelector(value); + Observable.prototype.subscribe = function (observerOrNext, error, complete) { + var operator = this.operator; + var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__["toSubscriber"])(observerOrNext, error, complete); + if (operator) { + sink.add(operator.call(sink, this.source)); + } + else { + sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? + this._subscribe(sink) : + this._trySubscribe(sink)); + } + if (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling) { + if (sink.syncErrorThrowable) { + sink.syncErrorThrowable = false; + if (sink.syncErrorThrown) { + throw sink.syncErrorValue; + } } - catch (err) { - return this.destination.error(err); + } + return sink; + }; + Observable.prototype._trySubscribe = function (sink) { + try { + return this._subscribe(sink); + } + catch (err) { + if (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling) { + sink.syncErrorThrown = true; + sink.syncErrorValue = err; } - var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration); - if (!innerSubscription || innerSubscription.closed) { - this.clearThrottle(); + if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_0__["canReportError"])(sink)) { + sink.error(err); } else { - this.add(this.throttled = innerSubscription); + console.warn(err); } } }; - AuditSubscriber.prototype.clearThrottle = function () { - var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; - if (throttled) { - this.remove(throttled); - this.throttled = null; - throttled.unsubscribe(); + Observable.prototype.forEach = function (next, promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var subscription; + subscription = _this.subscribe(function (value) { + try { + next(value); + } + catch (err) { + reject(err); + if (subscription) { + subscription.unsubscribe(); + } + } + }, reject, resolve); + }); + }; + Observable.prototype._subscribe = function (subscriber) { + var source = this.source; + return source && source.subscribe(subscriber); + }; + Observable.prototype[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]] = function () { + return this; + }; + Observable.prototype.pipe = function () { + var operations = []; + for (var _i = 0; _i < arguments.length; _i++) { + operations[_i] = arguments[_i]; } - if (hasValue) { - this.value = null; - this.hasValue = false; - this.destination.next(value); + if (operations.length === 0) { + return this; } + return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipeFromArray"])(operations)(this); }; - AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { - this.clearThrottle(); + Observable.prototype.toPromise = function (promiseCtor) { + var _this = this; + promiseCtor = getPromiseCtor(promiseCtor); + return new promiseCtor(function (resolve, reject) { + var value; + _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); + }); }; - AuditSubscriber.prototype.notifyComplete = function () { - this.clearThrottle(); + Observable.create = function (subscribe) { + return new Observable(subscribe); }; - return AuditSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=audit.js.map + return Observable; +}()); + +function getPromiseCtor(promiseCtor) { + if (!promiseCtor) { + promiseCtor = _config__WEBPACK_IMPORTED_MODULE_4__["config"].Promise || Promise; + } + if (!promiseCtor) { + throw new Error('no Promise impl found'); + } + return promiseCtor; +} +//# sourceMappingURL=Observable.js.map /***/ }), @@ -22465,30 +22327,26 @@ var AuditSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OuterSubscriber", function() { return OuterSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canReportError", function() { return canReportError; }); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(172); +/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */ -var OuterSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OuterSubscriber, _super); - function OuterSubscriber() { - return _super !== null && _super.apply(this, arguments) || this; +function canReportError(observer) { + while (observer) { + var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; + if (closed_1 || isStopped) { + return false; + } + else if (destination && destination instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) { + observer = destination; + } + else { + observer = null; + } } - OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - OuterSubscriber.prototype.notifyError = function (error, innerSub) { - this.destination.error(error); - }; - OuterSubscriber.prototype.notifyComplete = function (innerSub) { - this.destination.complete(); - }; - return OuterSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - -//# sourceMappingURL=OuterSubscriber.js.map + return true; +} +//# sourceMappingURL=canReportError.js.map /***/ }), @@ -23048,27 +22906,29 @@ var $$rxSubscriber = rxSubscriber; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToResult", function() { return subscribeToResult; }); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); -/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(184); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(193); -/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toSubscriber", function() { return toSubscriber; }); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(172); +/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(181); +/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(174); +/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */ -function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) { - if (destination === void 0) { - destination = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__["InnerSubscriber"](outerSubscriber, outerValue, outerIndex); - } - if (destination.closed) { - return undefined; +function toSubscriber(nextOrObserver, error, complete) { + if (nextOrObserver) { + if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) { + return nextOrObserver; + } + if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]]) { + return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]](); + } } - if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]) { - return result.subscribe(destination); + if (!nextOrObserver && !error && !complete) { + return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](_Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]); } - return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(result)(destination); + return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](nextOrObserver, error, complete); } -//# sourceMappingURL=subscribeToResult.js.map +//# sourceMappingURL=toSubscriber.js.map /***/ }), @@ -23077,37 +22937,10 @@ function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, dest "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerSubscriber", function() { return InnerSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - - -var InnerSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerSubscriber, _super); - function InnerSubscriber(parent, outerValue, outerIndex) { - var _this = _super.call(this) || this; - _this.parent = parent; - _this.outerValue = outerValue; - _this.outerIndex = outerIndex; - _this.index = 0; - return _this; - } - InnerSubscriber.prototype._next = function (value) { - this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); - }; - InnerSubscriber.prototype._error = function (error) { - this.parent.notifyError(error, this); - this.unsubscribe(); - }; - InnerSubscriber.prototype._complete = function () { - this.parent.notifyComplete(this); - this.unsubscribe(); - }; - return InnerSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - -//# sourceMappingURL=InnerSubscriber.js.map +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return observable; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })(); +//# sourceMappingURL=observable.js.map /***/ }), @@ -23116,47 +22949,30 @@ var InnerSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeTo", function() { return subscribeTo; }); -/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(185); -/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(186); -/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(187); -/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(189); -/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(191); -/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(192); -/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(179); -/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(188); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(190); -/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */ - - - - - - - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return pipe; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipeFromArray", function() { return pipeFromArray; }); +/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(185); +/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */ -var subscribeTo = function (result) { - if (!!result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_8__["observable"]] === 'function') { - return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__["subscribeToObservable"])(result); - } - else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_4__["isArrayLike"])(result)) { - return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_0__["subscribeToArray"])(result); - } - else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_5__["isPromise"])(result)) { - return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__["subscribeToPromise"])(result); +function pipe() { + var fns = []; + for (var _i = 0; _i < arguments.length; _i++) { + fns[_i] = arguments[_i]; } - else if (!!result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_7__["iterator"]] === 'function') { - return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__["subscribeToIterable"])(result); + return pipeFromArray(fns); +} +function pipeFromArray(fns) { + if (!fns) { + return _noop__WEBPACK_IMPORTED_MODULE_0__["noop"]; } - else { - var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_6__["isObject"])(result) ? 'an invalid object' : "'" + result + "'"; - var msg = "You provided " + value + " where a stream was expected." - + ' You can provide an Observable, Promise, Array, or Iterable.'; - throw new TypeError(msg); + if (fns.length === 1) { + return fns[0]; } -}; -//# sourceMappingURL=subscribeTo.js.map + return function piped(input) { + return fns.reduce(function (prev, fn) { return fn(prev); }, input); + }; +} +//# sourceMappingURL=pipe.js.map /***/ }), @@ -23165,17 +22981,10 @@ var subscribeTo = function (result) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToArray", function() { return subscribeToArray; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; }); /** PURE_IMPORTS_START PURE_IMPORTS_END */ -var subscribeToArray = function (array) { - return function (subscriber) { - for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { - subscriber.next(array[i]); - } - subscriber.complete(); - }; -}; -//# sourceMappingURL=subscribeToArray.js.map +function noop() { } +//# sourceMappingURL=noop.js.map /***/ }), @@ -23184,2009 +22993,2195 @@ var subscribeToArray = function (array) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToPromise", function() { return subscribeToPromise; }); -/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(176); -/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return ConnectableObservable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "connectableObservableDescriptor", function() { return connectableObservableDescriptor; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(170); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(177); +/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(190); +/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */ -var subscribeToPromise = function (promise) { - return function (subscriber) { - promise.then(function (value) { - if (!subscriber.closed) { - subscriber.next(value); - subscriber.complete(); - } - }, function (err) { return subscriber.error(err); }) - .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__["hostReportError"]); - return subscriber; - }; -}; -//# sourceMappingURL=subscribeToPromise.js.map -/***/ }), -/* 187 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToIterable", function() { return subscribeToIterable; }); -/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(188); -/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ -var subscribeToIterable = function (iterable) { - return function (subscriber) { - var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]](); - do { - var item = iterator.next(); - if (item.done) { - subscriber.complete(); - break; - } - subscriber.next(item.value); - if (subscriber.closed) { - break; + +var ConnectableObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableObservable, _super); + function ConnectableObservable(source, subjectFactory) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subjectFactory = subjectFactory; + _this._refCount = 0; + _this._isComplete = false; + return _this; + } + ConnectableObservable.prototype._subscribe = function (subscriber) { + return this.getSubject().subscribe(subscriber); + }; + ConnectableObservable.prototype.getSubject = function () { + var subject = this._subject; + if (!subject || subject.isStopped) { + this._subject = this.subjectFactory(); + } + return this._subject; + }; + ConnectableObservable.prototype.connect = function () { + var connection = this._connection; + if (!connection) { + this._isComplete = false; + connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"](); + connection.add(this.source + .subscribe(new ConnectableSubscriber(this.getSubject(), this))); + if (connection.closed) { + this._connection = null; + connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"].EMPTY; } - } while (true); - if (typeof iterator.return === 'function') { - subscriber.add(function () { - if (iterator.return) { - iterator.return(); - } - }); } - return subscriber; + return connection; }; -}; -//# sourceMappingURL=subscribeToIterable.js.map - - -/***/ }), -/* 188 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + ConnectableObservable.prototype.refCount = function () { + return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__["refCount"])()(this); + }; + return ConnectableObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSymbolIterator", function() { return getSymbolIterator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterator", function() { return iterator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$iterator", function() { return $$iterator; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function getSymbolIterator() { - if (typeof Symbol !== 'function' || !Symbol.iterator) { - return '@@iterator'; +var connectableObservableDescriptor = /*@__PURE__*/ (function () { + var connectableProto = ConnectableObservable.prototype; + return { + operator: { value: null }, + _refCount: { value: 0, writable: true }, + _subject: { value: null, writable: true }, + _connection: { value: null, writable: true }, + _subscribe: { value: connectableProto._subscribe }, + _isComplete: { value: connectableProto._isComplete, writable: true }, + getSubject: { value: connectableProto.getSubject }, + connect: { value: connectableProto.connect }, + refCount: { value: connectableProto.refCount } + }; +})(); +var ConnectableSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableSubscriber, _super); + function ConnectableSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; } - return Symbol.iterator; -} -var iterator = /*@__PURE__*/ getSymbolIterator(); -var $$iterator = iterator; -//# sourceMappingURL=iterator.js.map - - -/***/ }), -/* 189 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToObservable", function() { return subscribeToObservable; }); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(190); -/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ - -var subscribeToObservable = function (obj) { - return function (subscriber) { - var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]](); - if (typeof obs.subscribe !== 'function') { - throw new TypeError('Provided object does not correctly implement Symbol.observable'); + ConnectableSubscriber.prototype._error = function (err) { + this._unsubscribe(); + _super.prototype._error.call(this, err); + }; + ConnectableSubscriber.prototype._complete = function () { + this.connectable._isComplete = true; + this._unsubscribe(); + _super.prototype._complete.call(this); + }; + ConnectableSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (connectable) { + this.connectable = null; + var connection = connectable._connection; + connectable._refCount = 0; + connectable._subject = null; + connectable._connection = null; + if (connection) { + connection.unsubscribe(); + } } - else { - return obs.subscribe(subscriber); + }; + return ConnectableSubscriber; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["SubjectSubscriber"])); +var RefCountOperator = /*@__PURE__*/ (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; + } + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); } + return subscription; }; -}; -//# sourceMappingURL=subscribeToObservable.js.map - - -/***/ }), -/* 190 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return observable; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var observable = /*@__PURE__*/ (function () { return typeof Symbol === 'function' && Symbol.observable || '@@observable'; })(); -//# sourceMappingURL=observable.js.map - - -/***/ }), -/* 191 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArrayLike", function() { return isArrayLike; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); -//# sourceMappingURL=isArrayLike.js.map + return RefCountOperator; +}()); +var RefCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; + return _this; + } + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; + } + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; + } + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; + return; + } + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); + } + }; + return RefCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); +//# sourceMappingURL=ConnectableObservable.js.map /***/ }), -/* 192 */ +/* 187 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPromise", function() { return isPromise; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isPromise(value) { - return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; -} -//# sourceMappingURL=isPromise.js.map +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscriber", function() { return SubjectSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return Subject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnonymousSubject", function() { return AnonymousSubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(170); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(177); +/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(188); +/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(189); +/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(181); +/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ -/***/ }), -/* 193 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return Observable; }); -/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(194); -/* harmony import */ var _util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(195); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(190); -/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(196); -/* harmony import */ var _config__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(175); -/** PURE_IMPORTS_START _util_canReportError,_util_toSubscriber,_symbol_observable,_util_pipe,_config PURE_IMPORTS_END */ +var SubjectSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscriber, _super); + function SubjectSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + return _this; + } + return SubjectSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); -var Observable = /*@__PURE__*/ (function () { - function Observable(subscribe) { - this._isScalar = false; - if (subscribe) { - this._subscribe = subscribe; - } +var Subject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Subject, _super); + function Subject() { + var _this = _super.call(this) || this; + _this.observers = []; + _this.closed = false; + _this.isStopped = false; + _this.hasError = false; + _this.thrownError = null; + return _this; } - Observable.prototype.lift = function (operator) { - var observable = new Observable(); - observable.source = this; - observable.operator = operator; - return observable; + Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__["rxSubscriber"]] = function () { + return new SubjectSubscriber(this); }; - Observable.prototype.subscribe = function (observerOrNext, error, complete) { - var operator = this.operator; - var sink = Object(_util_toSubscriber__WEBPACK_IMPORTED_MODULE_1__["toSubscriber"])(observerOrNext, error, complete); - if (operator) { - sink.add(operator.call(sink, this.source)); - } - else { - sink.add(this.source || (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling && !sink.syncErrorThrowable) ? - this._subscribe(sink) : - this._trySubscribe(sink)); + Subject.prototype.lift = function (operator) { + var subject = new AnonymousSubject(this, this); + subject.operator = operator; + return subject; + }; + Subject.prototype.next = function (value) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); } - if (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling) { - if (sink.syncErrorThrowable) { - sink.syncErrorThrowable = false; - if (sink.syncErrorThrown) { - throw sink.syncErrorValue; - } + if (!this.isStopped) { + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].next(value); } } - return sink; }; - Observable.prototype._trySubscribe = function (sink) { - try { - return this._subscribe(sink); + Subject.prototype.error = function (err) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); } - catch (err) { - if (_config__WEBPACK_IMPORTED_MODULE_4__["config"].useDeprecatedSynchronousErrorHandling) { - sink.syncErrorThrown = true; - sink.syncErrorValue = err; - } - if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_0__["canReportError"])(sink)) { - sink.error(err); - } - else { - console.warn(err); - } + this.hasError = true; + this.thrownError = err; + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].error(err); } + this.observers.length = 0; }; - Observable.prototype.forEach = function (next, promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var subscription; - subscription = _this.subscribe(function (value) { - try { - next(value); - } - catch (err) { - reject(err); - if (subscription) { - subscription.unsubscribe(); - } - } - }, reject, resolve); - }); - }; - Observable.prototype._subscribe = function (subscriber) { - var source = this.source; - return source && source.subscribe(subscriber); - }; - Observable.prototype[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]] = function () { - return this; - }; - Observable.prototype.pipe = function () { - var operations = []; - for (var _i = 0; _i < arguments.length; _i++) { - operations[_i] = arguments[_i]; + Subject.prototype.complete = function () { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); } - if (operations.length === 0) { - return this; + this.isStopped = true; + var observers = this.observers; + var len = observers.length; + var copy = observers.slice(); + for (var i = 0; i < len; i++) { + copy[i].complete(); } - return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipeFromArray"])(operations)(this); + this.observers.length = 0; }; - Observable.prototype.toPromise = function (promiseCtor) { - var _this = this; - promiseCtor = getPromiseCtor(promiseCtor); - return new promiseCtor(function (resolve, reject) { - var value; - _this.subscribe(function (x) { return value = x; }, function (err) { return reject(err); }, function () { return resolve(value); }); - }); + Subject.prototype.unsubscribe = function () { + this.isStopped = true; + this.closed = true; + this.observers = null; }; - Observable.create = function (subscribe) { - return new Observable(subscribe); + Subject.prototype._trySubscribe = function (subscriber) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); + } + else { + return _super.prototype._trySubscribe.call(this, subscriber); + } }; - return Observable; -}()); - -function getPromiseCtor(promiseCtor) { - if (!promiseCtor) { - promiseCtor = _config__WEBPACK_IMPORTED_MODULE_4__["config"].Promise || Promise; - } - if (!promiseCtor) { - throw new Error('no Promise impl found'); - } - return promiseCtor; -} -//# sourceMappingURL=Observable.js.map - - -/***/ }), -/* 194 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "canReportError", function() { return canReportError; }); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(172); -/** PURE_IMPORTS_START _Subscriber PURE_IMPORTS_END */ - -function canReportError(observer) { - while (observer) { - var _a = observer, closed_1 = _a.closed, destination = _a.destination, isStopped = _a.isStopped; - if (closed_1 || isStopped) { - return false; + Subject.prototype._subscribe = function (subscriber) { + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); } - else if (destination && destination instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) { - observer = destination; + else if (this.hasError) { + subscriber.error(this.thrownError); + return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + else if (this.isStopped) { + subscriber.complete(); + return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; } else { - observer = null; + this.observers.push(subscriber); + return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__["SubjectSubscription"](this, subscriber); } - } - return true; -} -//# sourceMappingURL=canReportError.js.map - - -/***/ }), -/* 195 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toSubscriber", function() { return toSubscriber; }); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(172); -/* harmony import */ var _symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(181); -/* harmony import */ var _Observer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(174); -/** PURE_IMPORTS_START _Subscriber,_symbol_rxSubscriber,_Observer PURE_IMPORTS_END */ - - + }; + Subject.prototype.asObservable = function () { + var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); + observable.source = this; + return observable; + }; + Subject.create = function (destination, source) { + return new AnonymousSubject(destination, source); + }; + return Subject; +}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"])); -function toSubscriber(nextOrObserver, error, complete) { - if (nextOrObserver) { - if (nextOrObserver instanceof _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"]) { - return nextOrObserver; +var AnonymousSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnonymousSubject, _super); + function AnonymousSubject(destination, source) { + var _this = _super.call(this) || this; + _this.destination = destination; + _this.source = source; + return _this; + } + AnonymousSubject.prototype.next = function (value) { + var destination = this.destination; + if (destination && destination.next) { + destination.next(value); } - if (nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]]) { - return nextOrObserver[_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_1__["rxSubscriber"]](); + }; + AnonymousSubject.prototype.error = function (err) { + var destination = this.destination; + if (destination && destination.error) { + this.destination.error(err); } - } - if (!nextOrObserver && !error && !complete) { - return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](_Observer__WEBPACK_IMPORTED_MODULE_2__["empty"]); - } - return new _Subscriber__WEBPACK_IMPORTED_MODULE_0__["Subscriber"](nextOrObserver, error, complete); -} -//# sourceMappingURL=toSubscriber.js.map - - -/***/ }), -/* 196 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return pipe; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pipeFromArray", function() { return pipeFromArray; }); -/* harmony import */ var _noop__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(197); -/** PURE_IMPORTS_START _noop PURE_IMPORTS_END */ - -function pipe() { - var fns = []; - for (var _i = 0; _i < arguments.length; _i++) { - fns[_i] = arguments[_i]; - } - return pipeFromArray(fns); -} -function pipeFromArray(fns) { - if (!fns) { - return _noop__WEBPACK_IMPORTED_MODULE_0__["noop"]; - } - if (fns.length === 1) { - return fns[0]; - } - return function piped(input) { - return fns.reduce(function (prev, fn) { return fn(prev); }, input); }; -} -//# sourceMappingURL=pipe.js.map - - -/***/ }), -/* 197 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + AnonymousSubject.prototype.complete = function () { + var destination = this.destination; + if (destination && destination.complete) { + this.destination.complete(); + } + }; + AnonymousSubject.prototype._subscribe = function (subscriber) { + var source = this.source; + if (source) { + return this.source.subscribe(subscriber); + } + else { + return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + }; + return AnonymousSubject; +}(Subject)); -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return noop; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function noop() { } -//# sourceMappingURL=noop.js.map +//# sourceMappingURL=Subject.js.map /***/ }), -/* 198 */ +/* 188 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); -/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(170); -/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(204); -/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ - - - -function auditTime(duration, scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return ObjectUnsubscribedError; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () { + function ObjectUnsubscribedErrorImpl() { + Error.call(this); + this.message = 'object unsubscribed'; + this.name = 'ObjectUnsubscribedError'; + return this; } - return Object(_audit__WEBPACK_IMPORTED_MODULE_1__["audit"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(duration, scheduler); }); -} -//# sourceMappingURL=auditTime.js.map - - -/***/ }), -/* 199 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "async", function() { return async; }); -/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(200); -/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(202); -/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ - - -var async = /*@__PURE__*/ new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__["AsyncAction"]); -//# sourceMappingURL=async.js.map + ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return ObjectUnsubscribedErrorImpl; +})(); +var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; +//# sourceMappingURL=ObjectUnsubscribedError.js.map /***/ }), -/* 200 */ +/* 189 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncAction", function() { return AsyncAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscription", function() { return SubjectSubscription; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(201); -/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */ +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ -var AsyncAction = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncAction, _super); - function AsyncAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.pending = false; +var SubjectSubscription = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscription, _super); + function SubjectSubscription(subject, subscriber) { + var _this = _super.call(this) || this; + _this.subject = subject; + _this.subscriber = subscriber; + _this.closed = false; return _this; } - AsyncAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (this.closed) { - return this; - } - this.state = state; - var id = this.id; - var scheduler = this.scheduler; - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, delay); - } - this.pending = true; - this.delay = delay; - this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); - return this; - }; - AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - return setInterval(scheduler.flush.bind(scheduler, this), delay); - }; - AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay !== null && this.delay === delay && this.pending === false) { - return id; - } - clearInterval(id); - return undefined; - }; - AsyncAction.prototype.execute = function (state, delay) { + SubjectSubscription.prototype.unsubscribe = function () { if (this.closed) { - return new Error('executing a cancelled action'); - } - this.pending = false; - var error = this._execute(state, delay); - if (error) { - return error; - } - else if (this.pending === false && this.id != null) { - this.id = this.recycleAsyncId(this.scheduler, this.id, null); - } - }; - AsyncAction.prototype._execute = function (state, delay) { - var errored = false; - var errorValue = undefined; - try { - this.work(state); - } - catch (e) { - errored = true; - errorValue = !!e && e || new Error(e); - } - if (errored) { - this.unsubscribe(); - return errorValue; + return; } - }; - AsyncAction.prototype._unsubscribe = function () { - var id = this.id; - var scheduler = this.scheduler; - var actions = scheduler.actions; - var index = actions.indexOf(this); - this.work = null; - this.state = null; - this.pending = false; - this.scheduler = null; - if (index !== -1) { - actions.splice(index, 1); + this.closed = true; + var subject = this.subject; + var observers = subject.observers; + this.subject = null; + if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { + return; } - if (id != null) { - this.id = this.recycleAsyncId(scheduler, id, null); + var subscriberIndex = observers.indexOf(this.subscriber); + if (subscriberIndex !== -1) { + observers.splice(subscriberIndex, 1); } - this.delay = null; }; - return AsyncAction; -}(_Action__WEBPACK_IMPORTED_MODULE_1__["Action"])); + return SubjectSubscription; +}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"])); -//# sourceMappingURL=AsyncAction.js.map +//# sourceMappingURL=SubjectSubscription.js.map /***/ }), -/* 201 */ +/* 190 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return refCount; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var Action = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Action, _super); - function Action(scheduler, work) { - return _super.call(this) || this; +function refCount() { + return function refCountOperatorFunction(source) { + return source.lift(new RefCountOperator(source)); + }; +} +var RefCountOperator = /*@__PURE__*/ (function () { + function RefCountOperator(connectable) { + this.connectable = connectable; } - Action.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; + RefCountOperator.prototype.call = function (subscriber, source) { + var connectable = this.connectable; + connectable._refCount++; + var refCounter = new RefCountSubscriber(subscriber, connectable); + var subscription = source.subscribe(refCounter); + if (!refCounter.closed) { + refCounter.connection = connectable.connect(); } - return this; + return subscription; }; - return Action; -}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"])); - -//# sourceMappingURL=Action.js.map - - -/***/ }), -/* 202 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncScheduler", function() { return AsyncScheduler; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(203); -/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ - - -var AsyncScheduler = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncScheduler, _super); - function AsyncScheduler(SchedulerAction, now) { - if (now === void 0) { - now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"].now; - } - var _this = _super.call(this, SchedulerAction, function () { - if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { - return AsyncScheduler.delegate.now(); - } - else { - return now(); - } - }) || this; - _this.actions = []; - _this.active = false; - _this.scheduled = undefined; + return RefCountOperator; +}()); +var RefCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super); + function RefCountSubscriber(destination, connectable) { + var _this = _super.call(this, destination) || this; + _this.connectable = connectable; return _this; } - AsyncScheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { - delay = 0; - } - if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { - return AsyncScheduler.delegate.schedule(work, delay, state); + RefCountSubscriber.prototype._unsubscribe = function () { + var connectable = this.connectable; + if (!connectable) { + this.connection = null; + return; } - else { - return _super.prototype.schedule.call(this, work, delay, state); + this.connectable = null; + var refCount = connectable._refCount; + if (refCount <= 0) { + this.connection = null; + return; } - }; - AsyncScheduler.prototype.flush = function (action) { - var actions = this.actions; - if (this.active) { - actions.push(action); + connectable._refCount = refCount - 1; + if (refCount > 1) { + this.connection = null; return; } - var error; - this.active = true; - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (action = actions.shift()); - this.active = false; - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; + var connection = this.connection; + var sharedConnection = connectable._connection; + this.connection = null; + if (sharedConnection && (!connection || sharedConnection === connection)) { + sharedConnection.unsubscribe(); } }; - return AsyncScheduler; -}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"])); - -//# sourceMappingURL=AsyncScheduler.js.map + return RefCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=refCount.js.map /***/ }), -/* 203 */ +/* 191 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return Scheduler; }); -var Scheduler = /*@__PURE__*/ (function () { - function Scheduler(SchedulerAction, now) { - if (now === void 0) { - now = Scheduler.now; - } - this.SchedulerAction = SchedulerAction; - this.now = now; - } - Scheduler.prototype.schedule = function (work, delay, state) { - if (delay === void 0) { - delay = 0; - } - return new this.SchedulerAction(this, work).schedule(state, delay); - }; - Scheduler.now = function () { return Date.now(); }; - return Scheduler; -}()); - -//# sourceMappingURL=Scheduler.js.map - - -/***/ }), -/* 204 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return groupBy; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return GroupedObservable; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(170); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(187); +/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */ -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); -/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(205); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(206); -/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ -function timer(dueTime, periodOrScheduler, scheduler) { - if (dueTime === void 0) { - dueTime = 0; - } - var period = -1; - if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(periodOrScheduler)) { - period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); +function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { + return function (source) { + return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); + }; +} +var GroupByOperator = /*@__PURE__*/ (function () { + function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { + this.keySelector = keySelector; + this.elementSelector = elementSelector; + this.durationSelector = durationSelector; + this.subjectSelector = subjectSelector; } - else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(periodOrScheduler)) { - scheduler = periodOrScheduler; + GroupByOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + }; + return GroupByOperator; +}()); +var GroupBySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupBySubscriber, _super); + function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { + var _this = _super.call(this, destination) || this; + _this.keySelector = keySelector; + _this.elementSelector = elementSelector; + _this.durationSelector = durationSelector; + _this.subjectSelector = subjectSelector; + _this.groups = null; + _this.attemptedToUnsubscribe = false; + _this.count = 0; + return _this; } - if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(scheduler)) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + GroupBySubscriber.prototype._next = function (value) { + var key; + try { + key = this.keySelector(value); + } + catch (err) { + this.error(err); + return; + } + this._group(value, key); + }; + GroupBySubscriber.prototype._group = function (value, key) { + var groups = this.groups; + if (!groups) { + groups = this.groups = new Map(); + } + var group = groups.get(key); + var element; + if (this.elementSelector) { + try { + element = this.elementSelector(value); + } + catch (err) { + this.error(err); + } + } + else { + element = value; + } + if (!group) { + group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]()); + groups.set(key, group); + var groupedObservable = new GroupedObservable(key, group, this); + this.destination.next(groupedObservable); + if (this.durationSelector) { + var duration = void 0; + try { + duration = this.durationSelector(new GroupedObservable(key, group)); + } + catch (err) { + this.error(err); + return; + } + this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); + } + } + if (!group.closed) { + group.next(element); + } + }; + GroupBySubscriber.prototype._error = function (err) { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.error(err); + }); + groups.clear(); + } + this.destination.error(err); + }; + GroupBySubscriber.prototype._complete = function () { + var groups = this.groups; + if (groups) { + groups.forEach(function (group, key) { + group.complete(); + }); + groups.clear(); + } + this.destination.complete(); + }; + GroupBySubscriber.prototype.removeGroup = function (key) { + this.groups.delete(key); + }; + GroupBySubscriber.prototype.unsubscribe = function () { + if (!this.closed) { + this.attemptedToUnsubscribe = true; + if (this.count === 0) { + _super.prototype.unsubscribe.call(this); + } + } + }; + return GroupBySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupDurationSubscriber, _super); + function GroupDurationSubscriber(key, group, parent) { + var _this = _super.call(this, group) || this; + _this.key = key; + _this.group = group; + _this.parent = parent; + return _this; } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(dueTime) - ? dueTime - : (+dueTime - scheduler.now()); - return scheduler.schedule(dispatch, due, { - index: 0, period: period, subscriber: subscriber - }); - }); -} -function dispatch(state) { - var index = state.index, period = state.period, subscriber = state.subscriber; - subscriber.next(index); - if (subscriber.closed) { - return; + GroupDurationSubscriber.prototype._next = function (value) { + this.complete(); + }; + GroupDurationSubscriber.prototype._unsubscribe = function () { + var _a = this, parent = _a.parent, key = _a.key; + this.key = this.parent = null; + if (parent) { + parent.removeGroup(key); + } + }; + return GroupDurationSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +var GroupedObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupedObservable, _super); + function GroupedObservable(key, groupSubject, refCountSubscription) { + var _this = _super.call(this) || this; + _this.key = key; + _this.groupSubject = groupSubject; + _this.refCountSubscription = refCountSubscription; + return _this; } - else if (period === -1) { - return subscriber.complete(); + GroupedObservable.prototype._subscribe = function (subscriber) { + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](); + var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; + if (refCountSubscription && !refCountSubscription.closed) { + subscription.add(new InnerRefCountSubscription(refCountSubscription)); + } + subscription.add(groupSubject.subscribe(subscriber)); + return subscription; + }; + return GroupedObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"])); + +var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerRefCountSubscription, _super); + function InnerRefCountSubscription(parent) { + var _this = _super.call(this) || this; + _this.parent = parent; + parent.count++; + return _this; } - state.index = index + 1; - this.schedule(state, period); -} -//# sourceMappingURL=timer.js.map + InnerRefCountSubscription.prototype.unsubscribe = function () { + var parent = this.parent; + if (!parent.closed && !this.closed) { + _super.prototype.unsubscribe.call(this); + parent.count -= 1; + if (parent.count === 0 && parent.attemptedToUnsubscribe) { + parent.unsubscribe(); + } + } + }; + return InnerRefCountSubscription; +}(_Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"])); +//# sourceMappingURL=groupBy.js.map /***/ }), -/* 205 */ +/* 192 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumeric", function() { return isNumeric; }); -/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); -/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return BehaviorSubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(188); +/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */ -function isNumeric(val) { - return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(val) && (val - parseFloat(val) + 1) >= 0; -} -//# sourceMappingURL=isNumeric.js.map -/***/ }), -/* 206 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +var BehaviorSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BehaviorSubject, _super); + function BehaviorSubject(_value) { + var _this = _super.call(this) || this; + _this._value = _value; + return _this; + } + Object.defineProperty(BehaviorSubject.prototype, "value", { + get: function () { + return this.getValue(); + }, + enumerable: true, + configurable: true + }); + BehaviorSubject.prototype._subscribe = function (subscriber) { + var subscription = _super.prototype._subscribe.call(this, subscriber); + if (subscription && !subscription.closed) { + subscriber.next(this._value); + } + return subscription; + }; + BehaviorSubject.prototype.getValue = function () { + if (this.hasError) { + throw this.thrownError; + } + else if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__["ObjectUnsubscribedError"](); + } + else { + return this._value; + } + }; + BehaviorSubject.prototype.next = function (value) { + _super.prototype.next.call(this, this._value = value); + }; + return BehaviorSubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScheduler", function() { return isScheduler; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isScheduler(value) { - return value && typeof value.schedule === 'function'; -} -//# sourceMappingURL=isScheduler.js.map +//# sourceMappingURL=BehaviorSubject.js.map /***/ }), -/* 207 */ +/* 193 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return buffer; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return ReplaySubject; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(194); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(177); +/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(201); +/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(188); +/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(189); +/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */ -function buffer(closingNotifier) { - return function bufferOperatorFunction(source) { - return source.lift(new BufferOperator(closingNotifier)); - }; -} -var BufferOperator = /*@__PURE__*/ (function () { - function BufferOperator(closingNotifier) { - this.closingNotifier = closingNotifier; - } - BufferOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); - }; - return BufferOperator; -}()); -var BufferSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSubscriber, _super); - function BufferSubscriber(destination, closingNotifier) { - var _this = _super.call(this, destination) || this; - _this.buffer = []; - _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, closingNotifier)); - return _this; - } - BufferSubscriber.prototype._next = function (value) { - this.buffer.push(value); - }; - BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var buffer = this.buffer; - this.buffer = []; - this.destination.next(buffer); - }; - return BufferSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=buffer.js.map -/***/ }), -/* 208 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return bufferCount; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function bufferCount(bufferSize, startBufferEvery) { - if (startBufferEvery === void 0) { - startBufferEvery = null; - } - return function bufferCountOperatorFunction(source) { - return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); - }; -} -var BufferCountOperator = /*@__PURE__*/ (function () { - function BufferCountOperator(bufferSize, startBufferEvery) { - this.bufferSize = bufferSize; - this.startBufferEvery = startBufferEvery; - if (!startBufferEvery || bufferSize === startBufferEvery) { - this.subscriberClass = BufferCountSubscriber; +var ReplaySubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ReplaySubject, _super); + function ReplaySubject(bufferSize, windowTime, scheduler) { + if (bufferSize === void 0) { + bufferSize = Number.POSITIVE_INFINITY; + } + if (windowTime === void 0) { + windowTime = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this) || this; + _this.scheduler = scheduler; + _this._events = []; + _this._infiniteTimeWindow = false; + _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; + _this._windowTime = windowTime < 1 ? 1 : windowTime; + if (windowTime === Number.POSITIVE_INFINITY) { + _this._infiniteTimeWindow = true; + _this.next = _this.nextInfiniteTimeWindow; } else { - this.subscriberClass = BufferSkipCountSubscriber; + _this.next = _this.nextTimeWindow; } - } - BufferCountOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); - }; - return BufferCountOperator; -}()); -var BufferCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferCountSubscriber, _super); - function BufferCountSubscriber(destination, bufferSize) { - var _this = _super.call(this, destination) || this; - _this.bufferSize = bufferSize; - _this.buffer = []; return _this; } - BufferCountSubscriber.prototype._next = function (value) { - var buffer = this.buffer; - buffer.push(value); - if (buffer.length == this.bufferSize) { - this.destination.next(buffer); - this.buffer = []; + ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { + var _events = this._events; + _events.push(value); + if (_events.length > this._bufferSize) { + _events.shift(); } + _super.prototype.next.call(this, value); }; - BufferCountSubscriber.prototype._complete = function () { - var buffer = this.buffer; - if (buffer.length > 0) { - this.destination.next(buffer); - } - _super.prototype._complete.call(this); + ReplaySubject.prototype.nextTimeWindow = function (value) { + this._events.push(new ReplayEvent(this._getNow(), value)); + this._trimBufferThenGetEvents(); + _super.prototype.next.call(this, value); }; - return BufferCountSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSkipCountSubscriber, _super); - function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { - var _this = _super.call(this, destination) || this; - _this.bufferSize = bufferSize; - _this.startBufferEvery = startBufferEvery; - _this.buffers = []; - _this.count = 0; - return _this; - } - BufferSkipCountSubscriber.prototype._next = function (value) { - var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; - this.count++; - if (count % startBufferEvery === 0) { - buffers.push([]); + ReplaySubject.prototype._subscribe = function (subscriber) { + var _infiniteTimeWindow = this._infiniteTimeWindow; + var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); + var scheduler = this.scheduler; + var len = _events.length; + var subscription; + if (this.closed) { + throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__["ObjectUnsubscribedError"](); } - for (var i = buffers.length; i--;) { - var buffer = buffers[i]; - buffer.push(value); - if (buffer.length === bufferSize) { - buffers.splice(i, 1); - this.destination.next(buffer); + else if (this.isStopped || this.hasError) { + subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + } + else { + this.observers.push(subscriber); + subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__["SubjectSubscription"](this, subscriber); + } + if (scheduler) { + subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__["ObserveOnSubscriber"](subscriber, scheduler)); + } + if (_infiniteTimeWindow) { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i]); + } + } + else { + for (var i = 0; i < len && !subscriber.closed; i++) { + subscriber.next(_events[i].value); } } + if (this.hasError) { + subscriber.error(this.thrownError); + } + else if (this.isStopped) { + subscriber.complete(); + } + return subscription; }; - BufferSkipCountSubscriber.prototype._complete = function () { - var _a = this, buffers = _a.buffers, destination = _a.destination; - while (buffers.length > 0) { - var buffer = buffers.shift(); - if (buffer.length > 0) { - destination.next(buffer); + ReplaySubject.prototype._getNow = function () { + return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__["queue"]).now(); + }; + ReplaySubject.prototype._trimBufferThenGetEvents = function () { + var now = this._getNow(); + var _bufferSize = this._bufferSize; + var _windowTime = this._windowTime; + var _events = this._events; + var eventsCount = _events.length; + var spliceCount = 0; + while (spliceCount < eventsCount) { + if ((now - _events[spliceCount].time) < _windowTime) { + break; } + spliceCount++; } - _super.prototype._complete.call(this); + if (eventsCount > _bufferSize) { + spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); + } + if (spliceCount > 0) { + _events.splice(0, spliceCount); + } + return _events; }; - return BufferSkipCountSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=bufferCount.js.map + return ReplaySubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); + +var ReplayEvent = /*@__PURE__*/ (function () { + function ReplayEvent(time, value) { + this.time = time; + this.value = value; + } + return ReplayEvent; +}()); +//# sourceMappingURL=ReplaySubject.js.map /***/ }), -/* 209 */ +/* 194 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return bufferTime; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(206); -/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queue", function() { return queue; }); +/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(195); +/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(198); +/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */ +var queue = /*@__PURE__*/ new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__["QueueScheduler"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__["QueueAction"]); +//# sourceMappingURL=queue.js.map -function bufferTime(bufferTimeSpan) { - var length = arguments.length; - var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(arguments[arguments.length - 1])) { - scheduler = arguments[arguments.length - 1]; - length--; - } - var bufferCreationInterval = null; - if (length >= 2) { - bufferCreationInterval = arguments[1]; +/***/ }), +/* 195 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueAction", function() { return QueueAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(196); +/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ + + +var QueueAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueAction, _super); + function QueueAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; } - var maxBufferSize = Number.POSITIVE_INFINITY; - if (length >= 3) { - maxBufferSize = arguments[2]; - } - return function bufferTimeOperatorFunction(source) { - return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); - }; -} -var BufferTimeOperator = /*@__PURE__*/ (function () { - function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { - this.bufferTimeSpan = bufferTimeSpan; - this.bufferCreationInterval = bufferCreationInterval; - this.maxBufferSize = maxBufferSize; - this.scheduler = scheduler; - } - BufferTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); - }; - return BufferTimeOperator; -}()); -var Context = /*@__PURE__*/ (function () { - function Context() { - this.buffer = []; - } - return Context; -}()); -var BufferTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferTimeSubscriber, _super); - function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { - var _this = _super.call(this, destination) || this; - _this.bufferTimeSpan = bufferTimeSpan; - _this.bufferCreationInterval = bufferCreationInterval; - _this.maxBufferSize = maxBufferSize; - _this.scheduler = scheduler; - _this.contexts = []; - var context = _this.openContext(); - _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; - if (_this.timespanOnly) { - var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; - _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); - } - else { - var closeState = { subscriber: _this, context: context }; - var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; - _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); - _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); - } - return _this; - } - BufferTimeSubscriber.prototype._next = function (value) { - var contexts = this.contexts; - var len = contexts.length; - var filledBufferContext; - for (var i = 0; i < len; i++) { - var context_1 = contexts[i]; - var buffer = context_1.buffer; - buffer.push(value); - if (buffer.length == this.maxBufferSize) { - filledBufferContext = context_1; - } - } - if (filledBufferContext) { - this.onBufferFull(filledBufferContext); + QueueAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; } - }; - BufferTimeSubscriber.prototype._error = function (err) { - this.contexts.length = 0; - _super.prototype._error.call(this, err); - }; - BufferTimeSubscriber.prototype._complete = function () { - var _a = this, contexts = _a.contexts, destination = _a.destination; - while (contexts.length > 0) { - var context_2 = contexts.shift(); - destination.next(context_2.buffer); + if (delay > 0) { + return _super.prototype.schedule.call(this, state, delay); } - _super.prototype._complete.call(this); + this.delay = delay; + this.state = state; + this.scheduler.flush(this); + return this; }; - BufferTimeSubscriber.prototype._unsubscribe = function () { - this.contexts = null; + QueueAction.prototype.execute = function (state, delay) { + return (delay > 0 || this.closed) ? + _super.prototype.execute.call(this, state, delay) : + this._execute(state, delay); }; - BufferTimeSubscriber.prototype.onBufferFull = function (context) { - this.closeContext(context); - var closeAction = context.closeAction; - closeAction.unsubscribe(); - this.remove(closeAction); - if (!this.closed && this.timespanOnly) { - context = this.openContext(); - var bufferTimeSpan = this.bufferTimeSpan; - var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; - this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; } - }; - BufferTimeSubscriber.prototype.openContext = function () { - var context = new Context(); - this.contexts.push(context); - return context; - }; - BufferTimeSubscriber.prototype.closeContext = function (context) { - this.destination.next(context.buffer); - var contexts = this.contexts; - var spliceIndex = contexts ? contexts.indexOf(context) : -1; - if (spliceIndex >= 0) { - contexts.splice(contexts.indexOf(context), 1); + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); } + return scheduler.flush(this); }; - return BufferTimeSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); -function dispatchBufferTimeSpanOnly(state) { - var subscriber = state.subscriber; - var prevContext = state.context; - if (prevContext) { - subscriber.closeContext(prevContext); - } - if (!subscriber.closed) { - state.context = subscriber.openContext(); - state.context.closeAction = this.schedule(state, state.bufferTimeSpan); - } -} -function dispatchBufferCreation(state) { - var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; - var context = subscriber.openContext(); - var action = this; - if (!subscriber.closed) { - subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); - action.schedule(state, bufferCreationInterval); - } -} -function dispatchBufferClose(arg) { - var subscriber = arg.subscriber, context = arg.context; - subscriber.closeContext(context); -} -//# sourceMappingURL=bufferTime.js.map + return QueueAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); + +//# sourceMappingURL=QueueAction.js.map /***/ }), -/* 210 */ +/* 196 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return bufferToggle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncAction", function() { return AsyncAction; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ - - +/* harmony import */ var _Action__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(197); +/** PURE_IMPORTS_START tslib,_Action PURE_IMPORTS_END */ -function bufferToggle(openings, closingSelector) { - return function bufferToggleOperatorFunction(source) { - return source.lift(new BufferToggleOperator(openings, closingSelector)); - }; -} -var BufferToggleOperator = /*@__PURE__*/ (function () { - function BufferToggleOperator(openings, closingSelector) { - this.openings = openings; - this.closingSelector = closingSelector; - } - BufferToggleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); - }; - return BufferToggleOperator; -}()); -var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferToggleSubscriber, _super); - function BufferToggleSubscriber(destination, openings, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.openings = openings; - _this.closingSelector = closingSelector; - _this.contexts = []; - _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, openings)); +var AsyncAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncAction, _super); + function AsyncAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.pending = false; return _this; } - BufferToggleSubscriber.prototype._next = function (value) { - var contexts = this.contexts; - var len = contexts.length; - for (var i = 0; i < len; i++) { - contexts[i].buffer.push(value); + AsyncAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; } - }; - BufferToggleSubscriber.prototype._error = function (err) { - var contexts = this.contexts; - while (contexts.length > 0) { - var context_1 = contexts.shift(); - context_1.subscription.unsubscribe(); - context_1.buffer = null; - context_1.subscription = null; + if (this.closed) { + return this; } - this.contexts = null; - _super.prototype._error.call(this, err); + this.state = state; + var id = this.id; + var scheduler = this.scheduler; + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, delay); + } + this.pending = true; + this.delay = delay; + this.id = this.id || this.requestAsyncId(scheduler, this.id, delay); + return this; }; - BufferToggleSubscriber.prototype._complete = function () { - var contexts = this.contexts; - while (contexts.length > 0) { - var context_2 = contexts.shift(); - this.destination.next(context_2.buffer); - context_2.subscription.unsubscribe(); - context_2.buffer = null; - context_2.subscription = null; + AsyncAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; } - this.contexts = null; - _super.prototype._complete.call(this); + return setInterval(scheduler.flush.bind(scheduler, this), delay); }; - BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); + AsyncAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && this.delay === delay && this.pending === false) { + return id; + } + clearInterval(id); + return undefined; }; - BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { - this.closeBuffer(innerSub.context); + AsyncAction.prototype.execute = function (state, delay) { + if (this.closed) { + return new Error('executing a cancelled action'); + } + this.pending = false; + var error = this._execute(state, delay); + if (error) { + return error; + } + else if (this.pending === false && this.id != null) { + this.id = this.recycleAsyncId(this.scheduler, this.id, null); + } }; - BufferToggleSubscriber.prototype.openBuffer = function (value) { + AsyncAction.prototype._execute = function (state, delay) { + var errored = false; + var errorValue = undefined; try { - var closingSelector = this.closingSelector; - var closingNotifier = closingSelector.call(this, value); - if (closingNotifier) { - this.trySubscribe(closingNotifier); - } + this.work(state); } - catch (err) { - this._error(err); + catch (e) { + errored = true; + errorValue = !!e && e || new Error(e); } - }; - BufferToggleSubscriber.prototype.closeBuffer = function (context) { - var contexts = this.contexts; - if (contexts && context) { - var buffer = context.buffer, subscription = context.subscription; - this.destination.next(buffer); - contexts.splice(contexts.indexOf(context), 1); - this.remove(subscription); - subscription.unsubscribe(); + if (errored) { + this.unsubscribe(); + return errorValue; } }; - BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { - var contexts = this.contexts; - var buffer = []; - var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); - var context = { buffer: buffer, subscription: subscription }; - contexts.push(context); - var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, closingNotifier, context); - if (!innerSubscription || innerSubscription.closed) { - this.closeBuffer(context); + AsyncAction.prototype._unsubscribe = function () { + var id = this.id; + var scheduler = this.scheduler; + var actions = scheduler.actions; + var index = actions.indexOf(this); + this.work = null; + this.state = null; + this.pending = false; + this.scheduler = null; + if (index !== -1) { + actions.splice(index, 1); } - else { - innerSubscription.context = context; - this.add(innerSubscription); - subscription.add(innerSubscription); + if (id != null) { + this.id = this.recycleAsyncId(scheduler, id, null); } + this.delay = null; }; - return BufferToggleSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); -//# sourceMappingURL=bufferToggle.js.map + return AsyncAction; +}(_Action__WEBPACK_IMPORTED_MODULE_1__["Action"])); + +//# sourceMappingURL=AsyncAction.js.map /***/ }), -/* 211 */ +/* 197 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return bufferWhen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Action", function() { return Action; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - - +/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ -function bufferWhen(closingSelector) { - return function (source) { - return source.lift(new BufferWhenOperator(closingSelector)); - }; -} -var BufferWhenOperator = /*@__PURE__*/ (function () { - function BufferWhenOperator(closingSelector) { - this.closingSelector = closingSelector; - } - BufferWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); - }; - return BufferWhenOperator; -}()); -var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferWhenSubscriber, _super); - function BufferWhenSubscriber(destination, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.closingSelector = closingSelector; - _this.subscribing = false; - _this.openBuffer(); - return _this; +var Action = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Action, _super); + function Action(scheduler, work) { + return _super.call(this) || this; } - BufferWhenSubscriber.prototype._next = function (value) { - this.buffer.push(value); - }; - BufferWhenSubscriber.prototype._complete = function () { - var buffer = this.buffer; - if (buffer) { - this.destination.next(buffer); - } - _super.prototype._complete.call(this); - }; - BufferWhenSubscriber.prototype._unsubscribe = function () { - this.buffer = null; - this.subscribing = false; - }; - BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.openBuffer(); - }; - BufferWhenSubscriber.prototype.notifyComplete = function () { - if (this.subscribing) { - this.complete(); - } - else { - this.openBuffer(); - } - }; - BufferWhenSubscriber.prototype.openBuffer = function () { - var closingSubscription = this.closingSubscription; - if (closingSubscription) { - this.remove(closingSubscription); - closingSubscription.unsubscribe(); - } - var buffer = this.buffer; - if (this.buffer) { - this.destination.next(buffer); - } - this.buffer = []; - var closingNotifier; - try { - var closingSelector = this.closingSelector; - closingNotifier = closingSelector(); - } - catch (err) { - return this.error(err); + Action.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; } - closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); - this.closingSubscription = closingSubscription; - this.add(closingSubscription); - this.subscribing = true; - closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, closingNotifier)); - this.subscribing = false; + return this; }; - return BufferWhenSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); -//# sourceMappingURL=bufferWhen.js.map + return Action; +}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"])); + +//# sourceMappingURL=Action.js.map /***/ }), -/* 212 */ +/* 198 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return catchError; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueScheduler", function() { return QueueScheduler; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - - +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ -function catchError(selector) { - return function catchErrorOperatorFunction(source) { - var operator = new CatchOperator(selector); - var caught = source.lift(operator); - return (operator.caught = caught); - }; -} -var CatchOperator = /*@__PURE__*/ (function () { - function CatchOperator(selector) { - this.selector = selector; - } - CatchOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); - }; - return CatchOperator; -}()); -var CatchSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CatchSubscriber, _super); - function CatchSubscriber(destination, selector, caught) { - var _this = _super.call(this, destination) || this; - _this.selector = selector; - _this.caught = caught; - return _this; +var QueueScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueScheduler, _super); + function QueueScheduler() { + return _super !== null && _super.apply(this, arguments) || this; } - CatchSubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var result = void 0; - try { - result = this.selector(err, this.caught); - } - catch (err2) { - _super.prototype.error.call(this, err2); - return; - } - this._unsubscribeAndRecycle(); - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined); - this.add(innerSubscriber); - Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber); - } - }; - return CatchSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=catchError.js.map - - -/***/ }), -/* 213 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return combineAll; }); -/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(214); -/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */ + return QueueScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); -function combineAll(project) { - return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__["CombineLatestOperator"](project)); }; -} -//# sourceMappingURL=combineAll.js.map +//# sourceMappingURL=QueueScheduler.js.map /***/ }), -/* 214 */ +/* 199 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestOperator", function() { return CombineLatestOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestSubscriber", function() { return CombineLatestSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncScheduler", function() { return AsyncScheduler; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(182); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(215); -/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */ - - - - +/* harmony import */ var _Scheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); +/** PURE_IMPORTS_START tslib,_Scheduler PURE_IMPORTS_END */ -var NONE = {}; -function combineLatest() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var resultSelector = null; - var scheduler = null; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(observables[observables.length - 1])) { - scheduler = observables.pop(); - } - if (typeof observables[observables.length - 1] === 'function') { - resultSelector = observables.pop(); - } - if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(observables[0])) { - observables = observables[0]; - } - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__["fromArray"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); -} -var CombineLatestOperator = /*@__PURE__*/ (function () { - function CombineLatestOperator(resultSelector) { - this.resultSelector = resultSelector; - } - CombineLatestOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); - }; - return CombineLatestOperator; -}()); - -var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CombineLatestSubscriber, _super); - function CombineLatestSubscriber(destination, resultSelector) { - var _this = _super.call(this, destination) || this; - _this.resultSelector = resultSelector; - _this.active = 0; - _this.values = []; - _this.observables = []; +var AsyncScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncScheduler, _super); + function AsyncScheduler(SchedulerAction, now) { + if (now === void 0) { + now = _Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"].now; + } + var _this = _super.call(this, SchedulerAction, function () { + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== _this) { + return AsyncScheduler.delegate.now(); + } + else { + return now(); + } + }) || this; + _this.actions = []; + _this.active = false; + _this.scheduled = undefined; return _this; } - CombineLatestSubscriber.prototype._next = function (observable) { - this.values.push(NONE); - this.observables.push(observable); - }; - CombineLatestSubscriber.prototype._complete = function () { - var observables = this.observables; - var len = observables.length; - if (len === 0) { - this.destination.complete(); + AsyncScheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { + delay = 0; + } + if (AsyncScheduler.delegate && AsyncScheduler.delegate !== this) { + return AsyncScheduler.delegate.schedule(work, delay, state); } else { - this.active = len; - this.toRespond = len; - for (var i = 0; i < len; i++) { - var observable = observables[i]; - this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i)); - } + return _super.prototype.schedule.call(this, work, delay, state); } }; - CombineLatestSubscriber.prototype.notifyComplete = function (unused) { - if ((this.active -= 1) === 0) { - this.destination.complete(); + AsyncScheduler.prototype.flush = function (action) { + var actions = this.actions; + if (this.active) { + actions.push(action); + return; } - }; - CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var values = this.values; - var oldVal = values[outerIndex]; - var toRespond = !this.toRespond - ? 0 - : oldVal === NONE ? --this.toRespond : this.toRespond; - values[outerIndex] = innerValue; - if (toRespond === 0) { - if (this.resultSelector) { - this._tryResultSelector(values); + var error; + this.active = true; + do { + if (error = action.execute(action.state, action.delay)) { + break; } - else { - this.destination.next(values.slice()); + } while (action = actions.shift()); + this.active = false; + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); } + throw error; } }; - CombineLatestSubscriber.prototype._tryResultSelector = function (values) { - var result; - try { - result = this.resultSelector.apply(this, values); + return AsyncScheduler; +}(_Scheduler__WEBPACK_IMPORTED_MODULE_1__["Scheduler"])); + +//# sourceMappingURL=AsyncScheduler.js.map + + +/***/ }), +/* 200 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return Scheduler; }); +var Scheduler = /*@__PURE__*/ (function () { + function Scheduler(SchedulerAction, now) { + if (now === void 0) { + now = Scheduler.now; } - catch (err) { - this.destination.error(err); - return; + this.SchedulerAction = SchedulerAction; + this.now = now; + } + Scheduler.prototype.schedule = function (work, delay, state) { + if (delay === void 0) { + delay = 0; } - this.destination.next(result); + return new this.SchedulerAction(this, work).schedule(state, delay); }; - return CombineLatestSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); + Scheduler.now = function () { return Date.now(); }; + return Scheduler; +}()); -//# sourceMappingURL=combineLatest.js.map +//# sourceMappingURL=Scheduler.js.map /***/ }), -/* 215 */ +/* 201 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromArray", function() { return fromArray; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(185); -/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(216); -/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return observeOn; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnOperator", function() { return ObserveOnOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnSubscriber", function() { return ObserveOnSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnMessage", function() { return ObserveOnMessage; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(202); +/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ -function fromArray(input, scheduler) { - if (!scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__["subscribeToArray"])(input)); - } - else { - return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__["scheduleArray"])(input, scheduler); +function observeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; } + return function observeOnOperatorFunction(source) { + return source.lift(new ObserveOnOperator(scheduler, delay)); + }; } -//# sourceMappingURL=fromArray.js.map +var ObserveOnOperator = /*@__PURE__*/ (function () { + function ObserveOnOperator(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + this.scheduler = scheduler; + this.delay = delay; + } + ObserveOnOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + }; + return ObserveOnOperator; +}()); + +var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ObserveOnSubscriber, _super); + function ObserveOnSubscriber(destination, scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + var _this = _super.call(this, destination) || this; + _this.scheduler = scheduler; + _this.delay = delay; + return _this; + } + ObserveOnSubscriber.dispatch = function (arg) { + var notification = arg.notification, destination = arg.destination; + notification.observe(destination); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { + var destination = this.destination; + destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + }; + ObserveOnSubscriber.prototype._next = function (value) { + this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value)); + }; + ObserveOnSubscriber.prototype._error = function (err) { + this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err)); + this.unsubscribe(); + }; + ObserveOnSubscriber.prototype._complete = function () { + this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete()); + this.unsubscribe(); + }; + return ObserveOnSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); + +var ObserveOnMessage = /*@__PURE__*/ (function () { + function ObserveOnMessage(notification, destination) { + this.notification = notification; + this.destination = destination; + } + return ObserveOnMessage; +}()); + +//# sourceMappingURL=observeOn.js.map /***/ }), -/* 216 */ +/* 202 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduleArray", function() { return scheduleArray; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotificationKind", function() { return NotificationKind; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return Notification; }); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(203); +/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(204); +/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(209); +/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */ -function scheduleArray(input, scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); - var i = 0; - sub.add(scheduler.schedule(function () { - if (i === input.length) { - subscriber.complete(); - return; - } - subscriber.next(input[i++]); - if (!subscriber.closed) { - sub.add(this.schedule()); - } - })); - return sub; - }); -} -//# sourceMappingURL=scheduleArray.js.map + +var NotificationKind; +/*@__PURE__*/ (function (NotificationKind) { + NotificationKind["NEXT"] = "N"; + NotificationKind["ERROR"] = "E"; + NotificationKind["COMPLETE"] = "C"; +})(NotificationKind || (NotificationKind = {})); +var Notification = /*@__PURE__*/ (function () { + function Notification(kind, value, error) { + this.kind = kind; + this.value = value; + this.error = error; + this.hasValue = kind === 'N'; + } + Notification.prototype.observe = function (observer) { + switch (this.kind) { + case 'N': + return observer.next && observer.next(this.value); + case 'E': + return observer.error && observer.error(this.error); + case 'C': + return observer.complete && observer.complete(); + } + }; + Notification.prototype.do = function (next, error, complete) { + var kind = this.kind; + switch (kind) { + case 'N': + return next && next(this.value); + case 'E': + return error && error(this.error); + case 'C': + return complete && complete(); + } + }; + Notification.prototype.accept = function (nextOrObserver, error, complete) { + if (nextOrObserver && typeof nextOrObserver.next === 'function') { + return this.observe(nextOrObserver); + } + else { + return this.do(nextOrObserver, error, complete); + } + }; + Notification.prototype.toObservable = function () { + var kind = this.kind; + switch (kind) { + case 'N': + return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__["of"])(this.value); + case 'E': + return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__["throwError"])(this.error); + case 'C': + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_0__["empty"])(); + } + throw new Error('unexpected notification kind value'); + }; + Notification.createNext = function (value) { + if (typeof value !== 'undefined') { + return new Notification('N', value); + } + return Notification.undefinedValueNotification; + }; + Notification.createError = function (err) { + return new Notification('E', undefined, err); + }; + Notification.createComplete = function () { + return Notification.completeNotification; + }; + Notification.completeNotification = new Notification('C'); + Notification.undefinedValueNotification = new Notification('N', undefined); + return Notification; +}()); + +//# sourceMappingURL=Notification.js.map /***/ }), -/* 217 */ +/* 203 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; }); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); -/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(214); -/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(218); -/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return EMPTY; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ -var none = {}; -function combineLatest() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var project = null; - if (typeof observables[observables.length - 1] === 'function') { - project = observables.pop(); - } - if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) { - observables = observables[0].slice(); - } - return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_2__["from"])([source].concat(observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__["CombineLatestOperator"](project)); }; +var EMPTY = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.complete(); }); +function empty(scheduler) { + return scheduler ? emptyScheduled(scheduler) : EMPTY; } -//# sourceMappingURL=combineLatest.js.map +function emptyScheduled(scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); +} +//# sourceMappingURL=empty.js.map /***/ }), -/* 218 */ +/* 204 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(184); -/* harmony import */ var _scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(219); -/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "of", function() { return of; }); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(205); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); +/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(208); +/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */ -function from(input, scheduler) { - if (!scheduler) { - if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { - return input; - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(input)); +function of() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var scheduler = args[args.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__["isScheduler"])(scheduler)) { + args.pop(); + return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__["scheduleArray"])(args, scheduler); } else { - return Object(_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__["scheduled"])(input, scheduler); + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(args); } } -//# sourceMappingURL=from.js.map +//# sourceMappingURL=of.js.map /***/ }), -/* 219 */ +/* 205 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduled", function() { return scheduled; }); -/* harmony import */ var _scheduleObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(220); -/* harmony import */ var _schedulePromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(221); -/* harmony import */ var _scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(216); -/* harmony import */ var _scheduleIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(222); -/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(223); -/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(192); -/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(191); -/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(224); -/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isScheduler", function() { return isScheduler; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isScheduler(value) { + return value && typeof value.schedule === 'function'; +} +//# sourceMappingURL=isScheduler.js.map + +/***/ }), +/* 206 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromArray", function() { return fromArray; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(207); +/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(208); +/** PURE_IMPORTS_START _Observable,_util_subscribeToArray,_scheduled_scheduleArray PURE_IMPORTS_END */ +function fromArray(input, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeToArray__WEBPACK_IMPORTED_MODULE_1__["subscribeToArray"])(input)); + } + else { + return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__["scheduleArray"])(input, scheduler); + } +} +//# sourceMappingURL=fromArray.js.map +/***/ }), +/* 207 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function scheduled(input, scheduler) { - if (input != null) { - if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__["isInteropObservable"])(input)) { - return Object(_scheduleObservable__WEBPACK_IMPORTED_MODULE_0__["scheduleObservable"])(input, scheduler); - } - else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_5__["isPromise"])(input)) { - return Object(_schedulePromise__WEBPACK_IMPORTED_MODULE_1__["schedulePromise"])(input, scheduler); - } - else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__["isArrayLike"])(input)) { - return Object(_scheduleArray__WEBPACK_IMPORTED_MODULE_2__["scheduleArray"])(input, scheduler); - } - else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_7__["isIterable"])(input) || typeof input === 'string') { - return Object(_scheduleIterable__WEBPACK_IMPORTED_MODULE_3__["scheduleIterable"])(input, scheduler); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToArray", function() { return subscribeToArray; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var subscribeToArray = function (array) { + return function (subscriber) { + for (var i = 0, len = array.length; i < len && !subscriber.closed; i++) { + subscriber.next(array[i]); } - } - throw new TypeError((input !== null && typeof input || input) + ' is not observable'); -} -//# sourceMappingURL=scheduled.js.map + subscriber.complete(); + }; +}; +//# sourceMappingURL=subscribeToArray.js.map /***/ }), -/* 220 */ +/* 208 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduleObservable", function() { return scheduleObservable; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduleArray", function() { return scheduleArray; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); /* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(190); -/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */ - +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ -function scheduleObservable(input, scheduler) { +function scheduleArray(input, scheduler) { return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + var i = 0; sub.add(scheduler.schedule(function () { - var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]](); - sub.add(observable.subscribe({ - next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, - error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, - complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, - })); + if (i === input.length) { + subscriber.complete(); + return; + } + subscriber.next(input[i++]); + if (!subscriber.closed) { + sub.add(this.schedule()); + } })); return sub; }); } -//# sourceMappingURL=scheduleObservable.js.map +//# sourceMappingURL=scheduleArray.js.map /***/ }), -/* 221 */ +/* 209 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "schedulePromise", function() { return schedulePromise; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return throwError; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ -function schedulePromise(input, scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); - sub.add(scheduler.schedule(function () { - return input.then(function (value) { - sub.add(scheduler.schedule(function () { - subscriber.next(value); - sub.add(scheduler.schedule(function () { return subscriber.complete(); })); - })); - }, function (err) { - sub.add(scheduler.schedule(function () { return subscriber.error(err); })); - }); - })); - return sub; - }); +function throwError(error, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.error(error); }); + } + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + } } -//# sourceMappingURL=schedulePromise.js.map +function dispatch(_a) { + var error = _a.error, subscriber = _a.subscriber; + subscriber.error(error); +} +//# sourceMappingURL=throwError.js.map /***/ }), -/* 222 */ +/* 210 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduleIterable", function() { return scheduleIterable; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(188); -/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return AsyncSubject; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); +/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */ -function scheduleIterable(input, scheduler) { - if (!input) { - throw new Error('Iterable cannot be null'); +var AsyncSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncSubject, _super); + function AsyncSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.value = null; + _this.hasNext = false; + _this.hasCompleted = false; + return _this; } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); - var iterator; - sub.add(function () { - if (iterator && typeof iterator.return === 'function') { - iterator.return(); - } - }); - sub.add(scheduler.schedule(function () { - iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__["iterator"]](); - sub.add(scheduler.schedule(function () { - if (subscriber.closed) { - return; - } - var value; - var done; - try { - var result = iterator.next(); - value = result.value; - done = result.done; - } - catch (err) { - subscriber.error(err); - return; - } - if (done) { - subscriber.complete(); - } - else { - subscriber.next(value); - this.schedule(); - } - })); - })); - return sub; - }); -} -//# sourceMappingURL=scheduleIterable.js.map + AsyncSubject.prototype._subscribe = function (subscriber) { + if (this.hasError) { + subscriber.error(this.thrownError); + return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; + } + else if (this.hasCompleted && this.hasNext) { + subscriber.next(this.value); + subscriber.complete(); + return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; + } + return _super.prototype._subscribe.call(this, subscriber); + }; + AsyncSubject.prototype.next = function (value) { + if (!this.hasCompleted) { + this.value = value; + this.hasNext = true; + } + }; + AsyncSubject.prototype.error = function (error) { + if (!this.hasCompleted) { + _super.prototype.error.call(this, error); + } + }; + AsyncSubject.prototype.complete = function () { + this.hasCompleted = true; + if (this.hasNext) { + _super.prototype.next.call(this, this.value); + } + _super.prototype.complete.call(this); + }; + return AsyncSubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); + +//# sourceMappingURL=AsyncSubject.js.map /***/ }), -/* 223 */ +/* 211 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInteropObservable", function() { return isInteropObservable; }); -/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(190); -/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asap", function() { return asap; }); +/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(212); +/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(214); +/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */ -function isInteropObservable(input) { - return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]] === 'function'; -} -//# sourceMappingURL=isInteropObservable.js.map + +var asap = /*@__PURE__*/ new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__["AsapScheduler"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__["AsapAction"]); +//# sourceMappingURL=asap.js.map /***/ }), -/* 224 */ +/* 212 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIterable", function() { return isIterable; }); -/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(188); -/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapAction", function() { return AsapAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(213); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(196); +/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */ -function isIterable(input) { - return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]] === 'function'; -} -//# sourceMappingURL=isIterable.js.map + + +var AsapAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapAction, _super); + function AsapAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; + } + AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].setImmediate(scheduler.flush.bind(scheduler, null))); + }; + AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].clearImmediate(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AsapAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__["AsyncAction"])); + +//# sourceMappingURL=AsapAction.js.map /***/ }), -/* 225 */ +/* 213 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); -/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(226); -/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */ - -function concat() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Immediate", function() { return Immediate; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var nextHandle = 1; +var tasksByHandle = {}; +function runIfPresent(handle) { + var cb = tasksByHandle[handle]; + if (cb) { + cb(); } - return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"].apply(void 0, [source].concat(observables))); }; } -//# sourceMappingURL=concat.js.map +var Immediate = { + setImmediate: function (cb) { + var handle = nextHandle++; + tasksByHandle[handle] = cb; + Promise.resolve().then(function () { return runIfPresent(handle); }); + return handle; + }, + clearImmediate: function (handle) { + delete tasksByHandle[handle]; + }, +}; +//# sourceMappingURL=Immediate.js.map /***/ }), -/* 226 */ +/* 214 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); -/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(227); -/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(228); -/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapScheduler", function() { return AsapScheduler; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ -function concat() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; +var AsapScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapScheduler, _super); + function AsapScheduler() { + return _super !== null && _super.apply(this, arguments) || this; } - return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_1__["concatAll"])()(_of__WEBPACK_IMPORTED_MODULE_0__["of"].apply(void 0, observables)); -} -//# sourceMappingURL=concat.js.map + AsapScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AsapScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); + +//# sourceMappingURL=AsapScheduler.js.map /***/ }), -/* 227 */ +/* 215 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "of", function() { return of; }); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(206); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); -/* harmony import */ var _scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(216); -/** PURE_IMPORTS_START _util_isScheduler,_fromArray,_scheduled_scheduleArray PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "async", function() { return async; }); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(196); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); +/** PURE_IMPORTS_START _AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ -function of() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var scheduler = args[args.length - 1]; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_0__["isScheduler"])(scheduler)) { - args.pop(); - return Object(_scheduled_scheduleArray__WEBPACK_IMPORTED_MODULE_2__["scheduleArray"])(args, scheduler); - } - else { - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(args); - } -} -//# sourceMappingURL=of.js.map +var async = /*@__PURE__*/ new _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"](_AsyncAction__WEBPACK_IMPORTED_MODULE_0__["AsyncAction"]); +//# sourceMappingURL=async.js.map /***/ }), -/* 228 */ +/* 216 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return concatAll; }); -/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(229); -/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationFrame", function() { return animationFrame; }); +/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(217); +/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(218); +/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */ -function concatAll() { - return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__["mergeAll"])(1); -} -//# sourceMappingURL=concatAll.js.map + +var animationFrame = /*@__PURE__*/ new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__["AnimationFrameScheduler"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__["AnimationFrameAction"]); +//# sourceMappingURL=animationFrame.js.map /***/ }), -/* 229 */ +/* 217 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return mergeAll; }); -/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(230); -/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(232); -/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameAction", function() { return AnimationFrameAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(196); +/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ -function mergeAll(concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; +var AnimationFrameAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameAction, _super); + function AnimationFrameAction(scheduler, work) { + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + return _this; } - return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"], concurrent); -} -//# sourceMappingURL=mergeAll.js.map + AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if (delay !== null && delay > 0) { + return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + } + scheduler.actions.push(this); + return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); + }; + AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; + } + if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { + return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + if (scheduler.actions.length === 0) { + cancelAnimationFrame(id); + scheduler.scheduled = undefined; + } + return undefined; + }; + return AnimationFrameAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); + +//# sourceMappingURL=AnimationFrameAction.js.map /***/ }), -/* 230 */ +/* 218 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return mergeMap; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapOperator", function() { return MergeMapOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapSubscriber", function() { return MergeMapSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameScheduler", function() { return AnimationFrameScheduler; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(183); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(231); -/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(218); -/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */ +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ + + +var AnimationFrameScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameScheduler, _super); + function AnimationFrameScheduler() { + return _super !== null && _super.apply(this, arguments) || this; + } + AnimationFrameScheduler.prototype.flush = function (action) { + this.active = true; + this.scheduled = undefined; + var actions = this.actions; + var error; + var index = -1; + var count = actions.length; + action = action || actions.shift(); + do { + if (error = action.execute(action.state, action.delay)) { + break; + } + } while (++index < count && (action = actions.shift())); + this.active = false; + if (error) { + while (++index < count && (action = actions.shift())) { + action.unsubscribe(); + } + throw error; + } + }; + return AnimationFrameScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); +//# sourceMappingURL=AnimationFrameScheduler.js.map +/***/ }), +/* 219 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return VirtualTimeScheduler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return VirtualAction; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(196); +/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); +/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ -function mergeMap(project, resultSelector, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (typeof resultSelector === 'function') { - return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; - } - else if (typeof resultSelector === 'number') { - concurrent = resultSelector; - } - return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; -} -var MergeMapOperator = /*@__PURE__*/ (function () { - function MergeMapOperator(project, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; + +var VirtualTimeScheduler = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualTimeScheduler, _super); + function VirtualTimeScheduler(SchedulerAction, maxFrames) { + if (SchedulerAction === void 0) { + SchedulerAction = VirtualAction; } - this.project = project; - this.concurrent = concurrent; + if (maxFrames === void 0) { + maxFrames = Number.POSITIVE_INFINITY; + } + var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; + _this.maxFrames = maxFrames; + _this.frame = 0; + _this.index = -1; + return _this; } - MergeMapOperator.prototype.call = function (observer, source) { - return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); + VirtualTimeScheduler.prototype.flush = function () { + var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; + var error, action; + while ((action = actions[0]) && action.delay <= maxFrames) { + actions.shift(); + this.frame = action.delay; + if (error = action.execute(action.state, action.delay)) { + break; + } + } + if (error) { + while (action = actions.shift()) { + action.unsubscribe(); + } + throw error; + } }; - return MergeMapOperator; -}()); + VirtualTimeScheduler.frameTimeFactor = 10; + return VirtualTimeScheduler; +}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__["AsyncScheduler"])); -var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeMapSubscriber, _super); - function MergeMapSubscriber(destination, project, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; +var VirtualAction = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualAction, _super); + function VirtualAction(scheduler, work, index) { + if (index === void 0) { + index = scheduler.index += 1; } - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.concurrent = concurrent; - _this.hasCompleted = false; - _this.buffer = []; - _this.active = 0; - _this.index = 0; + var _this = _super.call(this, scheduler, work) || this; + _this.scheduler = scheduler; + _this.work = work; + _this.index = index; + _this.active = true; + _this.index = scheduler.index = index; return _this; } - MergeMapSubscriber.prototype._next = function (value) { - if (this.active < this.concurrent) { - this._tryNext(value); + VirtualAction.prototype.schedule = function (state, delay) { + if (delay === void 0) { + delay = 0; } - else { - this.buffer.push(value); + if (!this.id) { + return _super.prototype.schedule.call(this, state, delay); } + this.active = false; + var action = new VirtualAction(this.scheduler, this.work); + this.add(action); + return action.schedule(state, delay); }; - MergeMapSubscriber.prototype._tryNext = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (err) { - this.destination.error(err); - return; + VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; } - this.active++; - this._innerSub(result, value, index); - }; - MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber); + this.delay = scheduler.frame + delay; + var actions = scheduler.actions; + actions.push(this); + actions.sort(VirtualAction.sortActions); + return true; }; - MergeMapSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.active === 0 && this.buffer.length === 0) { - this.destination.complete(); + VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { + if (delay === void 0) { + delay = 0; } - this.unsubscribe(); + return undefined; }; - MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); + VirtualAction.prototype._execute = function (state, delay) { + if (this.active === true) { + return _super.prototype._execute.call(this, state, delay); + } }; - MergeMapSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - this.remove(innerSub); - this.active--; - if (buffer.length > 0) { - this._next(buffer.shift()); + VirtualAction.sortActions = function (a, b) { + if (a.delay === b.delay) { + if (a.index === b.index) { + return 0; + } + else if (a.index > b.index) { + return 1; + } + else { + return -1; + } } - else if (this.active === 0 && this.hasCompleted) { - this.destination.complete(); + else if (a.delay > b.delay) { + return 1; + } + else { + return -1; } }; - return MergeMapSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); + return VirtualAction; +}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); -//# sourceMappingURL=mergeMap.js.map +//# sourceMappingURL=VirtualTimeScheduler.js.map /***/ }), -/* 231 */ +/* 220 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MapOperator", function() { return MapOperator; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function identity(x) { + return x; +} +//# sourceMappingURL=identity.js.map -function map(project, thisArg) { - return function mapOperation(source) { +/***/ }), +/* 221 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return isObservable; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ + +function isObservable(obj) { + return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); +} +//# sourceMappingURL=isObservable.js.map + + +/***/ }), +/* 222 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return ArgumentOutOfRangeError; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () { + function ArgumentOutOfRangeErrorImpl() { + Error.call(this); + this.message = 'argument out of range'; + this.name = 'ArgumentOutOfRangeError'; + return this; + } + ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return ArgumentOutOfRangeErrorImpl; +})(); +var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; +//# sourceMappingURL=ArgumentOutOfRangeError.js.map + + +/***/ }), +/* 223 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return EmptyError; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var EmptyErrorImpl = /*@__PURE__*/ (function () { + function EmptyErrorImpl() { + Error.call(this); + this.message = 'no elements in sequence'; + this.name = 'EmptyError'; + return this; + } + EmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return EmptyErrorImpl; +})(); +var EmptyError = EmptyErrorImpl; +//# sourceMappingURL=EmptyError.js.map + + +/***/ }), +/* 224 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return TimeoutError; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var TimeoutErrorImpl = /*@__PURE__*/ (function () { + function TimeoutErrorImpl() { + Error.call(this); + this.message = 'Timeout has occurred'; + this.name = 'TimeoutError'; + return this; + } + TimeoutErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); + return TimeoutErrorImpl; +})(); +var TimeoutError = TimeoutErrorImpl; +//# sourceMappingURL=TimeoutError.js.map + + +/***/ }), +/* 225 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return bindCallback; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(178); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(205); +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ + + + + + + +function bindCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_4__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var context = this; + var subject; + var params = { + context: context, + subject: subject, + callbackFunc: callbackFunc, + scheduler: scheduler, + }; + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + if (!scheduler) { + if (!subject) { + subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_3__["canReportError"])(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + var state = { + args: args, subscriber: subscriber, params: params, + }; + return scheduler.schedule(dispatch, 0, state); + } + }); + }; +} +function dispatch(state) { + var _this = this; + var self = this; + var args = state.args, subscriber = state.subscriber, params = state.params; + var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + subject.error(err); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(state) { + var value = state.value, subject = state.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(state) { + var err = state.err, subject = state.subject; + subject.error(err); +} +//# sourceMappingURL=bindCallback.js.map + + +/***/ }), +/* 226 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "map", function() { return map; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MapOperator", function() { return MapOperator; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +function map(project, thisArg) { + return function mapOperation(source) { if (typeof project !== 'function') { throw new TypeError('argument is not a function. Are you looking for `mapTo()`?'); } @@ -25230,1041 +25225,1045 @@ var MapSubscriber = /*@__PURE__*/ (function (_super) { /***/ }), -/* 232 */ +/* 227 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return identity; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function identity(x) { - return x; -} -//# sourceMappingURL=identity.js.map +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return bindNodeCallback; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(210); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(205); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(178); +/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ -/***/ }), -/* 233 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return concatMap; }); -/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(230); -/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ -function concatMap(project, resultSelector) { - return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(project, resultSelector, 1); + + +function bindNodeCallback(callbackFunc, resultSelector, scheduler) { + if (resultSelector) { + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(resultSelector)) { + scheduler = resultSelector; + } + else { + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_5__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); + }; + } + } + return function () { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + var params = { + subject: undefined, + args: args, + callbackFunc: callbackFunc, + scheduler: scheduler, + context: this, + }; + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var context = params.context; + var subject = params.subject; + if (!scheduler) { + if (!subject) { + subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + subject.error(err); + return; + } + subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); + subject.complete(); + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_3__["canReportError"])(subject)) { + subject.error(err); + } + else { + console.warn(err); + } + } + } + return subject.subscribe(subscriber); + } + else { + return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context }); + } + }); + }; } -//# sourceMappingURL=concatMap.js.map +function dispatch(state) { + var _this = this; + var params = state.params, subscriber = state.subscriber, context = state.context; + var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; + var subject = params.subject; + if (!subject) { + subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); + var handler = function () { + var innerArgs = []; + for (var _i = 0; _i < arguments.length; _i++) { + innerArgs[_i] = arguments[_i]; + } + var err = innerArgs.shift(); + if (err) { + _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + else { + var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; + _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); + } + }; + try { + callbackFunc.apply(context, args.concat([handler])); + } + catch (err) { + this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); + } + } + this.add(subject.subscribe(subscriber)); +} +function dispatchNext(arg) { + var value = arg.value, subject = arg.subject; + subject.next(value); + subject.complete(); +} +function dispatchError(arg) { + var err = arg.err, subject = arg.subject; + subject.error(err); +} +//# sourceMappingURL=bindNodeCallback.js.map /***/ }), -/* 234 */ +/* 228 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); -/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(233); -/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestOperator", function() { return CombineLatestOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "CombineLatestSubscriber", function() { return CombineLatestSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(205); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(230); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(206); +/** PURE_IMPORTS_START tslib,_util_isScheduler,_util_isArray,_OuterSubscriber,_util_subscribeToResult,_fromArray PURE_IMPORTS_END */ -function concatMapTo(innerObservable, resultSelector) { - return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__["concatMap"])(function () { return innerObservable; }, resultSelector); -} -//# sourceMappingURL=concatMapTo.js.map -/***/ }), -/* 235 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "count", function() { return count; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function count(predicate) { - return function (source) { return source.lift(new CountOperator(predicate, source)); }; +var NONE = {}; +function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = null; + var scheduler = null; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(observables[observables.length - 1])) { + scheduler = observables.pop(); + } + if (typeof observables[observables.length - 1] === 'function') { + resultSelector = observables.pop(); + } + if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(observables[0])) { + observables = observables[0]; + } + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_5__["fromArray"])(observables, scheduler).lift(new CombineLatestOperator(resultSelector)); } -var CountOperator = /*@__PURE__*/ (function () { - function CountOperator(predicate, source) { - this.predicate = predicate; - this.source = source; +var CombineLatestOperator = /*@__PURE__*/ (function () { + function CombineLatestOperator(resultSelector) { + this.resultSelector = resultSelector; } - CountOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + CombineLatestOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CombineLatestSubscriber(subscriber, this.resultSelector)); }; - return CountOperator; + return CombineLatestOperator; }()); -var CountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountSubscriber, _super); - function CountSubscriber(destination, predicate, source) { + +var CombineLatestSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CombineLatestSubscriber, _super); + function CombineLatestSubscriber(destination, resultSelector) { var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.source = source; - _this.count = 0; - _this.index = 0; + _this.resultSelector = resultSelector; + _this.active = 0; + _this.values = []; + _this.observables = []; return _this; } - CountSubscriber.prototype._next = function (value) { - if (this.predicate) { - this._tryPredicate(value); + CombineLatestSubscriber.prototype._next = function (observable) { + this.values.push(NONE); + this.observables.push(observable); + }; + CombineLatestSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { + this.destination.complete(); } else { - this.count++; + this.active = len; + this.toRespond = len; + for (var i = 0; i < len; i++) { + var observable = observables[i]; + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i)); + } } }; - CountSubscriber.prototype._tryPredicate = function (value) { + CombineLatestSubscriber.prototype.notifyComplete = function (unused) { + if ((this.active -= 1) === 0) { + this.destination.complete(); + } + }; + CombineLatestSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var values = this.values; + var oldVal = values[outerIndex]; + var toRespond = !this.toRespond + ? 0 + : oldVal === NONE ? --this.toRespond : this.toRespond; + values[outerIndex] = innerValue; + if (toRespond === 0) { + if (this.resultSelector) { + this._tryResultSelector(values); + } + else { + this.destination.next(values.slice()); + } + } + }; + CombineLatestSubscriber.prototype._tryResultSelector = function (values) { var result; try { - result = this.predicate(value, this.index++, this.source); + result = this.resultSelector.apply(this, values); } catch (err) { this.destination.error(err); return; } - if (result) { - this.count++; - } + this.destination.next(result); }; - CountSubscriber.prototype._complete = function () { - this.destination.next(this.count); + return CombineLatestSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); + +//# sourceMappingURL=combineLatest.js.map + + +/***/ }), +/* 229 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "OuterSubscriber", function() { return OuterSubscriber; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +var OuterSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OuterSubscriber, _super); + function OuterSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + OuterSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + OuterSubscriber.prototype.notifyError = function (error, innerSub) { + this.destination.error(error); + }; + OuterSubscriber.prototype.notifyComplete = function (innerSub) { this.destination.complete(); }; - return CountSubscriber; + return OuterSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=count.js.map + +//# sourceMappingURL=OuterSubscriber.js.map /***/ }), -/* 236 */ +/* 230 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToResult", function() { return subscribeToResult; }); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(231); +/* harmony import */ var _subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(232); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(170); +/** PURE_IMPORTS_START _InnerSubscriber,_subscribeTo,_Observable PURE_IMPORTS_END */ -function debounce(durationSelector) { - return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; -} -var DebounceOperator = /*@__PURE__*/ (function () { - function DebounceOperator(durationSelector) { - this.durationSelector = durationSelector; +function subscribeToResult(outerSubscriber, result, outerValue, outerIndex, destination) { + if (destination === void 0) { + destination = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_0__["InnerSubscriber"](outerSubscriber, outerValue, outerIndex); } - DebounceOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); - }; - return DebounceOperator; -}()); -var DebounceSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceSubscriber, _super); - function DebounceSubscriber(destination, durationSelector) { - var _this = _super.call(this, destination) || this; - _this.durationSelector = durationSelector; - _this.hasValue = false; - _this.durationSubscription = null; - return _this; + if (destination.closed) { + return undefined; } - DebounceSubscriber.prototype._next = function (value) { - try { - var result = this.durationSelector.call(this, value); - if (result) { - this._tryNext(value, result); - } - } - catch (err) { - this.destination.error(err); - } - }; - DebounceSubscriber.prototype._complete = function () { - this.emitValue(); - this.destination.complete(); - }; - DebounceSubscriber.prototype._tryNext = function (value, duration) { - var subscription = this.durationSubscription; - this.value = value; - this.hasValue = true; - if (subscription) { - subscription.unsubscribe(); - this.remove(subscription); - } - subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration); - if (subscription && !subscription.closed) { - this.add(this.durationSubscription = subscription); - } - }; - DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.emitValue(); - }; - DebounceSubscriber.prototype.notifyComplete = function () { - this.emitValue(); - }; - DebounceSubscriber.prototype.emitValue = function () { - if (this.hasValue) { - var value = this.value; - var subscription = this.durationSubscription; - if (subscription) { - this.durationSubscription = null; - subscription.unsubscribe(); - this.remove(subscription); - } - this.value = null; - this.hasValue = false; - _super.prototype._next.call(this, value); - } - }; - return DebounceSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=debounce.js.map + if (result instanceof _Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"]) { + return result.subscribe(destination); + } + return Object(_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(result)(destination); +} +//# sourceMappingURL=subscribeToResult.js.map /***/ }), -/* 237 */ +/* 231 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return debounceTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "InnerSubscriber", function() { return InnerSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); -/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ - +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function debounceTime(dueTime, scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; - } - return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; -} -var DebounceTimeOperator = /*@__PURE__*/ (function () { - function DebounceTimeOperator(dueTime, scheduler) { - this.dueTime = dueTime; - this.scheduler = scheduler; - } - DebounceTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); - }; - return DebounceTimeOperator; -}()); -var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceTimeSubscriber, _super); - function DebounceTimeSubscriber(destination, dueTime, scheduler) { - var _this = _super.call(this, destination) || this; - _this.dueTime = dueTime; - _this.scheduler = scheduler; - _this.debouncedSubscription = null; - _this.lastValue = null; - _this.hasValue = false; +var InnerSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerSubscriber, _super); + function InnerSubscriber(parent, outerValue, outerIndex) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.outerValue = outerValue; + _this.outerIndex = outerIndex; + _this.index = 0; return _this; } - DebounceTimeSubscriber.prototype._next = function (value) { - this.clearDebounce(); - this.lastValue = value; - this.hasValue = true; - this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); - }; - DebounceTimeSubscriber.prototype._complete = function () { - this.debouncedNext(); - this.destination.complete(); + InnerSubscriber.prototype._next = function (value) { + this.parent.notifyNext(this.outerValue, value, this.outerIndex, this.index++, this); }; - DebounceTimeSubscriber.prototype.debouncedNext = function () { - this.clearDebounce(); - if (this.hasValue) { - var lastValue = this.lastValue; - this.lastValue = null; - this.hasValue = false; - this.destination.next(lastValue); - } + InnerSubscriber.prototype._error = function (error) { + this.parent.notifyError(error, this); + this.unsubscribe(); }; - DebounceTimeSubscriber.prototype.clearDebounce = function () { - var debouncedSubscription = this.debouncedSubscription; - if (debouncedSubscription !== null) { - this.remove(debouncedSubscription); - debouncedSubscription.unsubscribe(); - this.debouncedSubscription = null; - } + InnerSubscriber.prototype._complete = function () { + this.parent.notifyComplete(this); + this.unsubscribe(); }; - return DebounceTimeSubscriber; + return InnerSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -function dispatchNext(subscriber) { - subscriber.debouncedNext(); -} -//# sourceMappingURL=debounceTime.js.map + +//# sourceMappingURL=InnerSubscriber.js.map /***/ }), -/* 238 */ +/* 232 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return defaultIfEmpty; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeTo", function() { return subscribeTo; }); +/* harmony import */ var _subscribeToArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(207); +/* harmony import */ var _subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(233); +/* harmony import */ var _subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(234); +/* harmony import */ var _subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(236); +/* harmony import */ var _isArrayLike__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(237); +/* harmony import */ var _isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(238); +/* harmony import */ var _isObject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(179); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(235); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(183); +/** PURE_IMPORTS_START _subscribeToArray,_subscribeToPromise,_subscribeToIterable,_subscribeToObservable,_isArrayLike,_isPromise,_isObject,_symbol_iterator,_symbol_observable PURE_IMPORTS_END */ -function defaultIfEmpty(defaultValue) { - if (defaultValue === void 0) { - defaultValue = null; + + + + + + + +var subscribeTo = function (result) { + if (!!result && typeof result[_symbol_observable__WEBPACK_IMPORTED_MODULE_8__["observable"]] === 'function') { + return Object(_subscribeToObservable__WEBPACK_IMPORTED_MODULE_3__["subscribeToObservable"])(result); } - return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; -} -var DefaultIfEmptyOperator = /*@__PURE__*/ (function () { - function DefaultIfEmptyOperator(defaultValue) { - this.defaultValue = defaultValue; + else if (Object(_isArrayLike__WEBPACK_IMPORTED_MODULE_4__["isArrayLike"])(result)) { + return Object(_subscribeToArray__WEBPACK_IMPORTED_MODULE_0__["subscribeToArray"])(result); } - DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); - }; - return DefaultIfEmptyOperator; -}()); -var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DefaultIfEmptySubscriber, _super); - function DefaultIfEmptySubscriber(destination, defaultValue) { - var _this = _super.call(this, destination) || this; - _this.defaultValue = defaultValue; - _this.isEmpty = true; - return _this; + else if (Object(_isPromise__WEBPACK_IMPORTED_MODULE_5__["isPromise"])(result)) { + return Object(_subscribeToPromise__WEBPACK_IMPORTED_MODULE_1__["subscribeToPromise"])(result); } - DefaultIfEmptySubscriber.prototype._next = function (value) { - this.isEmpty = false; - this.destination.next(value); - }; - DefaultIfEmptySubscriber.prototype._complete = function () { - if (this.isEmpty) { - this.destination.next(this.defaultValue); - } - this.destination.complete(); - }; - return DefaultIfEmptySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=defaultIfEmpty.js.map + else if (!!result && typeof result[_symbol_iterator__WEBPACK_IMPORTED_MODULE_7__["iterator"]] === 'function') { + return Object(_subscribeToIterable__WEBPACK_IMPORTED_MODULE_2__["subscribeToIterable"])(result); + } + else { + var value = Object(_isObject__WEBPACK_IMPORTED_MODULE_6__["isObject"])(result) ? 'an invalid object' : "'" + result + "'"; + var msg = "You provided " + value + " where a stream was expected." + + ' You can provide an Observable, Promise, Array, or Iterable.'; + throw new TypeError(msg); + } +}; +//# sourceMappingURL=subscribeTo.js.map /***/ }), -/* 239 */ +/* 233 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(240); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); -/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(241); -/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToPromise", function() { return subscribeToPromise; }); +/* harmony import */ var _hostReportError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(176); +/** PURE_IMPORTS_START _hostReportError PURE_IMPORTS_END */ +var subscribeToPromise = function (promise) { + return function (subscriber) { + promise.then(function (value) { + if (!subscriber.closed) { + subscriber.next(value); + subscriber.complete(); + } + }, function (err) { return subscriber.error(err); }) + .then(null, _hostReportError__WEBPACK_IMPORTED_MODULE_0__["hostReportError"]); + return subscriber; + }; +}; +//# sourceMappingURL=subscribeToPromise.js.map +/***/ }), +/* 234 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToIterable", function() { return subscribeToIterable; }); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(235); +/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ -function delay(delay, scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; - } - var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(delay); - var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); - return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; -} -var DelayOperator = /*@__PURE__*/ (function () { - function DelayOperator(delay, scheduler) { - this.delay = delay; - this.scheduler = scheduler; - } - DelayOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); - }; - return DelayOperator; -}()); -var DelaySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelaySubscriber, _super); - function DelaySubscriber(destination, delay, scheduler) { - var _this = _super.call(this, destination) || this; - _this.delay = delay; - _this.scheduler = scheduler; - _this.queue = []; - _this.active = false; - _this.errored = false; - return _this; - } - DelaySubscriber.dispatch = function (state) { - var source = state.source; - var queue = source.queue; - var scheduler = state.scheduler; - var destination = state.destination; - while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { - queue.shift().notification.observe(destination); - } - if (queue.length > 0) { - var delay_1 = Math.max(0, queue[0].time - scheduler.now()); - this.schedule(state, delay_1); - } - else { - this.unsubscribe(); - source.active = false; - } - }; - DelaySubscriber.prototype._schedule = function (scheduler) { - this.active = true; - var destination = this.destination; - destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { - source: this, destination: this.destination, scheduler: scheduler - })); - }; - DelaySubscriber.prototype.scheduleNotification = function (notification) { - if (this.errored === true) { - return; - } - var scheduler = this.scheduler; - var message = new DelayMessage(scheduler.now() + this.delay, notification); - this.queue.push(message); - if (this.active === false) { - this._schedule(scheduler); +var subscribeToIterable = function (iterable) { + return function (subscriber) { + var iterator = iterable[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]](); + do { + var item = iterator.next(); + if (item.done) { + subscriber.complete(); + break; + } + subscriber.next(item.value); + if (subscriber.closed) { + break; + } + } while (true); + if (typeof iterator.return === 'function') { + subscriber.add(function () { + if (iterator.return) { + iterator.return(); + } + }); } + return subscriber; }; - DelaySubscriber.prototype._next = function (value) { - this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createNext(value)); - }; - DelaySubscriber.prototype._error = function (err) { - this.errored = true; - this.queue = []; - this.destination.error(err); - this.unsubscribe(); - }; - DelaySubscriber.prototype._complete = function () { - this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createComplete()); - this.unsubscribe(); - }; - return DelaySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); -var DelayMessage = /*@__PURE__*/ (function () { - function DelayMessage(time, notification) { - this.time = time; - this.notification = notification; - } - return DelayMessage; -}()); -//# sourceMappingURL=delay.js.map +}; +//# sourceMappingURL=subscribeToIterable.js.map /***/ }), -/* 240 */ +/* 235 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDate", function() { return isDate; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "getSymbolIterator", function() { return getSymbolIterator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iterator", function() { return iterator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "$$iterator", function() { return $$iterator; }); /** PURE_IMPORTS_START PURE_IMPORTS_END */ -function isDate(value) { - return value instanceof Date && !isNaN(+value); +function getSymbolIterator() { + if (typeof Symbol !== 'function' || !Symbol.iterator) { + return '@@iterator'; + } + return Symbol.iterator; } -//# sourceMappingURL=isDate.js.map +var iterator = /*@__PURE__*/ getSymbolIterator(); +var $$iterator = iterator; +//# sourceMappingURL=iterator.js.map /***/ }), -/* 241 */ +/* 236 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NotificationKind", function() { return NotificationKind; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return Notification; }); -/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242); -/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(227); -/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(243); -/** PURE_IMPORTS_START _observable_empty,_observable_of,_observable_throwError PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeToObservable", function() { return subscribeToObservable; }); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); +/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ -var NotificationKind; -/*@__PURE__*/ (function (NotificationKind) { - NotificationKind["NEXT"] = "N"; - NotificationKind["ERROR"] = "E"; - NotificationKind["COMPLETE"] = "C"; -})(NotificationKind || (NotificationKind = {})); -var Notification = /*@__PURE__*/ (function () { - function Notification(kind, value, error) { - this.kind = kind; - this.value = value; - this.error = error; - this.hasValue = kind === 'N'; - } - Notification.prototype.observe = function (observer) { - switch (this.kind) { - case 'N': - return observer.next && observer.next(this.value); - case 'E': - return observer.error && observer.error(this.error); - case 'C': - return observer.complete && observer.complete(); - } - }; - Notification.prototype.do = function (next, error, complete) { - var kind = this.kind; - switch (kind) { - case 'N': - return next && next(this.value); - case 'E': - return error && error(this.error); - case 'C': - return complete && complete(); - } - }; - Notification.prototype.accept = function (nextOrObserver, error, complete) { - if (nextOrObserver && typeof nextOrObserver.next === 'function') { - return this.observe(nextOrObserver); +var subscribeToObservable = function (obj) { + return function (subscriber) { + var obs = obj[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]](); + if (typeof obs.subscribe !== 'function') { + throw new TypeError('Provided object does not correctly implement Symbol.observable'); } else { - return this.do(nextOrObserver, error, complete); - } - }; - Notification.prototype.toObservable = function () { - var kind = this.kind; - switch (kind) { - case 'N': - return Object(_observable_of__WEBPACK_IMPORTED_MODULE_1__["of"])(this.value); - case 'E': - return Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_2__["throwError"])(this.error); - case 'C': - return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_0__["empty"])(); - } - throw new Error('unexpected notification kind value'); - }; - Notification.createNext = function (value) { - if (typeof value !== 'undefined') { - return new Notification('N', value); + return obs.subscribe(subscriber); } - return Notification.undefinedValueNotification; - }; - Notification.createError = function (err) { - return new Notification('E', undefined, err); - }; - Notification.createComplete = function () { - return Notification.completeNotification; }; - Notification.completeNotification = new Notification('C'); - Notification.undefinedValueNotification = new Notification('N', undefined); - return Notification; -}()); - -//# sourceMappingURL=Notification.js.map +}; +//# sourceMappingURL=subscribeToObservable.js.map /***/ }), -/* 242 */ +/* 237 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return EMPTY; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return empty; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isArrayLike", function() { return isArrayLike; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +var isArrayLike = (function (x) { return x && typeof x.length === 'number' && typeof x !== 'function'; }); +//# sourceMappingURL=isArrayLike.js.map -var EMPTY = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.complete(); }); -function empty(scheduler) { - return scheduler ? emptyScheduled(scheduler) : EMPTY; -} -function emptyScheduled(scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(function () { return subscriber.complete(); }); }); + +/***/ }), +/* 238 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isPromise", function() { return isPromise; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isPromise(value) { + return !!value && typeof value.subscribe !== 'function' && typeof value.then === 'function'; } -//# sourceMappingURL=empty.js.map +//# sourceMappingURL=isPromise.js.map /***/ }), -/* 243 */ +/* 239 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return throwError; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); +/* harmony import */ var _of__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(204); +/* harmony import */ var _operators_concatAll__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(240); +/** PURE_IMPORTS_START _of,_operators_concatAll PURE_IMPORTS_END */ -function throwError(error, scheduler) { - if (!scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return subscriber.error(error); }); - } - else { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { return scheduler.schedule(dispatch, 0, { error: error, subscriber: subscriber }); }); + +function concat() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; } + return Object(_operators_concatAll__WEBPACK_IMPORTED_MODULE_1__["concatAll"])()(_of__WEBPACK_IMPORTED_MODULE_0__["of"].apply(void 0, observables)); } -function dispatch(_a) { - var error = _a.error, subscriber = _a.subscriber; - subscriber.error(error); -} -//# sourceMappingURL=throwError.js.map +//# sourceMappingURL=concat.js.map /***/ }), -/* 244 */ +/* 240 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return delayWhen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return concatAll; }); +/* harmony import */ var _mergeAll__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(241); +/** PURE_IMPORTS_START _mergeAll PURE_IMPORTS_END */ + +function concatAll() { + return Object(_mergeAll__WEBPACK_IMPORTED_MODULE_0__["mergeAll"])(1); +} +//# sourceMappingURL=concatAll.js.map + + +/***/ }), +/* 241 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return mergeAll; }); +/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(220); +/** PURE_IMPORTS_START _mergeMap,_util_identity PURE_IMPORTS_END */ + + +function mergeAll(concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"], concurrent); +} +//# sourceMappingURL=mergeAll.js.map + + +/***/ }), +/* 242 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return mergeMap; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapOperator", function() { return MergeMapOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeMapSubscriber", function() { return MergeMapSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(193); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(230); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(231); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(243); +/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber,_map,_observable_from PURE_IMPORTS_END */ -function delayWhen(delayDurationSelector, subscriptionDelay) { - if (subscriptionDelay) { - return function (source) { - return new SubscriptionDelayObservable(source, subscriptionDelay) - .lift(new DelayWhenOperator(delayDurationSelector)); - }; + +function mergeMap(project, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; } - return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(mergeMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); }, concurrent)); }; + } + else if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return function (source) { return source.lift(new MergeMapOperator(project, concurrent)); }; } -var DelayWhenOperator = /*@__PURE__*/ (function () { - function DelayWhenOperator(delayDurationSelector) { - this.delayDurationSelector = delayDurationSelector; +var MergeMapOperator = /*@__PURE__*/ (function () { + function MergeMapOperator(project, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + this.project = project; + this.concurrent = concurrent; } - DelayWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); + MergeMapOperator.prototype.call = function (observer, source) { + return source.subscribe(new MergeMapSubscriber(observer, this.project, this.concurrent)); }; - return DelayWhenOperator; + return MergeMapOperator; }()); -var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelayWhenSubscriber, _super); - function DelayWhenSubscriber(destination, delayDurationSelector) { + +var MergeMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeMapSubscriber, _super); + function MergeMapSubscriber(destination, project, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } var _this = _super.call(this, destination) || this; - _this.delayDurationSelector = delayDurationSelector; - _this.completed = false; - _this.delayNotifierSubscriptions = []; + _this.project = project; + _this.concurrent = concurrent; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; _this.index = 0; return _this; } - DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(outerValue); - this.removeSubscription(innerSub); - this.tryComplete(); - }; - DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { - var value = this.removeSubscription(innerSub); - if (value) { - this.destination.next(value); + MergeMapSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + this._tryNext(value); + } + else { + this.buffer.push(value); } - this.tryComplete(); }; - DelayWhenSubscriber.prototype._next = function (value) { + MergeMapSubscriber.prototype._tryNext = function (value) { + var result; var index = this.index++; try { - var delayNotifier = this.delayDurationSelector(value, index); - if (delayNotifier) { - this.tryDelay(delayNotifier, value); - } + result = this.project(value, index); } catch (err) { this.destination.error(err); + return; } + this.active++; + this._innerSub(result, value, index); }; - DelayWhenSubscriber.prototype._complete = function () { - this.completed = true; - this.tryComplete(); - this.unsubscribe(); - }; - DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { - subscription.unsubscribe(); - var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); - if (subscriptionIdx !== -1) { - this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); - } - return subscription.outerValue; - }; - DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { - var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, delayNotifier, value); - if (notifierSubscription && !notifierSubscription.closed) { - var destination = this.destination; - destination.add(notifierSubscription); - this.delayNotifierSubscriptions.push(notifierSubscription); - } + MergeMapSubscriber.prototype._innerSub = function (ish, value, index) { + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined); + var destination = this.destination; + destination.add(innerSubscriber); + Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber); }; - DelayWhenSubscriber.prototype.tryComplete = function () { - if (this.completed && this.delayNotifierSubscriptions.length === 0) { + MergeMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { this.destination.complete(); } - }; - return DelayWhenSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); -var SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelayObservable, _super); - function SubscriptionDelayObservable(source, subscriptionDelay) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subscriptionDelay = subscriptionDelay; - return _this; - } - SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { - this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); - }; - return SubscriptionDelayObservable; -}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); -var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelaySubscriber, _super); - function SubscriptionDelaySubscriber(parent, source) { - var _this = _super.call(this) || this; - _this.parent = parent; - _this.source = source; - _this.sourceSubscribed = false; - return _this; - } - SubscriptionDelaySubscriber.prototype._next = function (unused) { - this.subscribeToSource(); - }; - SubscriptionDelaySubscriber.prototype._error = function (err) { this.unsubscribe(); - this.parent.error(err); }; - SubscriptionDelaySubscriber.prototype._complete = function () { - this.unsubscribe(); - this.subscribeToSource(); + MergeMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); }; - SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { - if (!this.sourceSubscribed) { - this.sourceSubscribed = true; - this.unsubscribe(); - this.source.subscribe(this.parent); + MergeMapSubscriber.prototype.notifyComplete = function (innerSub) { + var buffer = this.buffer; + this.remove(innerSub); + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + this.destination.complete(); } }; - return SubscriptionDelaySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=delayWhen.js.map + return MergeMapSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); + +//# sourceMappingURL=mergeMap.js.map /***/ }), -/* 245 */ +/* 243 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return dematerialize; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "from", function() { return from; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(232); +/* harmony import */ var _scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(244); +/** PURE_IMPORTS_START _Observable,_util_subscribeTo,_scheduled_scheduled PURE_IMPORTS_END */ -function dematerialize() { - return function dematerializeOperatorFunction(source) { - return source.lift(new DeMaterializeOperator()); - }; -} -var DeMaterializeOperator = /*@__PURE__*/ (function () { - function DeMaterializeOperator() { + +function from(input, scheduler) { + if (!scheduler) { + if (input instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { + return input; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(input)); } - DeMaterializeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DeMaterializeSubscriber(subscriber)); - }; - return DeMaterializeOperator; -}()); -var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DeMaterializeSubscriber, _super); - function DeMaterializeSubscriber(destination) { - return _super.call(this, destination) || this; + else { + return Object(_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_2__["scheduled"])(input, scheduler); } - DeMaterializeSubscriber.prototype._next = function (value) { - value.observe(this.destination); - }; - return DeMaterializeSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=dematerialize.js.map +} +//# sourceMappingURL=from.js.map /***/ }), -/* 246 */ +/* 244 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DistinctSubscriber", function() { return DistinctSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduled", function() { return scheduled; }); +/* harmony import */ var _scheduleObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(245); +/* harmony import */ var _schedulePromise__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(246); +/* harmony import */ var _scheduleArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(208); +/* harmony import */ var _scheduleIterable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(247); +/* harmony import */ var _util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(248); +/* harmony import */ var _util_isPromise__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(238); +/* harmony import */ var _util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(237); +/* harmony import */ var _util_isIterable__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(249); +/** PURE_IMPORTS_START _scheduleObservable,_schedulePromise,_scheduleArray,_scheduleIterable,_util_isInteropObservable,_util_isPromise,_util_isArrayLike,_util_isIterable PURE_IMPORTS_END */ -function distinct(keySelector, flushes) { - return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; -} -var DistinctOperator = /*@__PURE__*/ (function () { - function DistinctOperator(keySelector, flushes) { - this.keySelector = keySelector; - this.flushes = flushes; - } - DistinctOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); - }; - return DistinctOperator; -}()); -var DistinctSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctSubscriber, _super); - function DistinctSubscriber(destination, keySelector, flushes) { - var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.values = new Set(); - if (flushes) { - _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, flushes)); - } - return _this; - } - DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.values.clear(); - }; - DistinctSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - DistinctSubscriber.prototype._next = function (value) { - if (this.keySelector) { - this._useKeySelector(value); - } - else { - this._finalizeNext(value, value); + + + + + +function scheduled(input, scheduler) { + if (input != null) { + if (Object(_util_isInteropObservable__WEBPACK_IMPORTED_MODULE_4__["isInteropObservable"])(input)) { + return Object(_scheduleObservable__WEBPACK_IMPORTED_MODULE_0__["scheduleObservable"])(input, scheduler); } - }; - DistinctSubscriber.prototype._useKeySelector = function (value) { - var key; - var destination = this.destination; - try { - key = this.keySelector(value); + else if (Object(_util_isPromise__WEBPACK_IMPORTED_MODULE_5__["isPromise"])(input)) { + return Object(_schedulePromise__WEBPACK_IMPORTED_MODULE_1__["schedulePromise"])(input, scheduler); } - catch (err) { - destination.error(err); - return; + else if (Object(_util_isArrayLike__WEBPACK_IMPORTED_MODULE_6__["isArrayLike"])(input)) { + return Object(_scheduleArray__WEBPACK_IMPORTED_MODULE_2__["scheduleArray"])(input, scheduler); } - this._finalizeNext(key, value); - }; - DistinctSubscriber.prototype._finalizeNext = function (key, value) { - var values = this.values; - if (!values.has(key)) { - values.add(key); - this.destination.next(value); + else if (Object(_util_isIterable__WEBPACK_IMPORTED_MODULE_7__["isIterable"])(input) || typeof input === 'string') { + return Object(_scheduleIterable__WEBPACK_IMPORTED_MODULE_3__["scheduleIterable"])(input, scheduler); } - }; - return DistinctSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); - -//# sourceMappingURL=distinct.js.map + } + throw new TypeError((input !== null && typeof input || input) + ' is not observable'); +} +//# sourceMappingURL=scheduled.js.map /***/ }), -/* 247 */ +/* 245 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return distinctUntilChanged; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduleObservable", function() { return scheduleObservable; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); +/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_observable PURE_IMPORTS_END */ -function distinctUntilChanged(compare, keySelector) { - return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; + +function scheduleObservable(input, scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + sub.add(scheduler.schedule(function () { + var observable = input[_symbol_observable__WEBPACK_IMPORTED_MODULE_2__["observable"]](); + sub.add(observable.subscribe({ + next: function (value) { sub.add(scheduler.schedule(function () { return subscriber.next(value); })); }, + error: function (err) { sub.add(scheduler.schedule(function () { return subscriber.error(err); })); }, + complete: function () { sub.add(scheduler.schedule(function () { return subscriber.complete(); })); }, + })); + })); + return sub; + }); } -var DistinctUntilChangedOperator = /*@__PURE__*/ (function () { - function DistinctUntilChangedOperator(compare, keySelector) { - this.compare = compare; - this.keySelector = keySelector; - } - DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); - }; - return DistinctUntilChangedOperator; -}()); -var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctUntilChangedSubscriber, _super); - function DistinctUntilChangedSubscriber(destination, compare, keySelector) { - var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.hasKey = false; - if (typeof compare === 'function') { - _this.compare = compare; - } - return _this; - } - DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { - return x === y; - }; - DistinctUntilChangedSubscriber.prototype._next = function (value) { - var key; - try { - var keySelector = this.keySelector; - key = keySelector ? keySelector(value) : value; - } - catch (err) { - return this.destination.error(err); - } - var result = false; - if (this.hasKey) { - try { - var compare = this.compare; - result = compare(this.key, key); - } - catch (err) { - return this.destination.error(err); - } - } - else { - this.hasKey = true; - } - if (!result) { - this.key = key; - this.destination.next(value); - } - }; - return DistinctUntilChangedSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=distinctUntilChanged.js.map +//# sourceMappingURL=scheduleObservable.js.map /***/ }), -/* 248 */ +/* 246 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); -/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(247); -/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "schedulePromise", function() { return schedulePromise; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ -function distinctUntilKeyChanged(key, compare) { - return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__["distinctUntilChanged"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); + +function schedulePromise(input, scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + sub.add(scheduler.schedule(function () { + return input.then(function (value) { + sub.add(scheduler.schedule(function () { + subscriber.next(value); + sub.add(scheduler.schedule(function () { return subscriber.complete(); })); + })); + }, function (err) { + sub.add(scheduler.schedule(function () { return subscriber.error(err); })); + }); + })); + return sub; + }); } -//# sourceMappingURL=distinctUntilKeyChanged.js.map +//# sourceMappingURL=schedulePromise.js.map /***/ }), -/* 249 */ +/* 247 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); -/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(250); -/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(252); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(238); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(254); -/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scheduleIterable", function() { return scheduleIterable; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(235); +/** PURE_IMPORTS_START _Observable,_Subscription,_symbol_iterator PURE_IMPORTS_END */ -function elementAt(index, defaultValue) { - if (index < 0) { - throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); +function scheduleIterable(input, scheduler) { + if (!input) { + throw new Error('Iterable cannot be null'); } - var hasDefaultValue = arguments.length >= 2; - return function (source) { - return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__["take"])(1), hasDefaultValue - ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) - : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__["throwIfEmpty"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); })); - }; + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var sub = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + var iterator; + sub.add(function () { + if (iterator && typeof iterator.return === 'function') { + iterator.return(); + } + }); + sub.add(scheduler.schedule(function () { + iterator = input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_2__["iterator"]](); + sub.add(scheduler.schedule(function () { + if (subscriber.closed) { + return; + } + var value; + var done; + try { + var result = iterator.next(); + value = result.value; + done = result.done; + } + catch (err) { + subscriber.error(err); + return; + } + if (done) { + subscriber.complete(); + } + else { + subscriber.next(value); + this.schedule(); + } + })); + })); + return sub; + }); } -//# sourceMappingURL=elementAt.js.map +//# sourceMappingURL=scheduleIterable.js.map /***/ }), -/* 250 */ +/* 248 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return ArgumentOutOfRangeError; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var ArgumentOutOfRangeErrorImpl = /*@__PURE__*/ (function () { - function ArgumentOutOfRangeErrorImpl() { - Error.call(this); - this.message = 'argument out of range'; - this.name = 'ArgumentOutOfRangeError'; - return this; - } - ArgumentOutOfRangeErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - return ArgumentOutOfRangeErrorImpl; -})(); -var ArgumentOutOfRangeError = ArgumentOutOfRangeErrorImpl; -//# sourceMappingURL=ArgumentOutOfRangeError.js.map +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isInteropObservable", function() { return isInteropObservable; }); +/* harmony import */ var _symbol_observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(183); +/** PURE_IMPORTS_START _symbol_observable PURE_IMPORTS_END */ + +function isInteropObservable(input) { + return input && typeof input[_symbol_observable__WEBPACK_IMPORTED_MODULE_0__["observable"]] === 'function'; +} +//# sourceMappingURL=isInteropObservable.js.map /***/ }), -/* 251 */ +/* 249 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isIterable", function() { return isIterable; }); +/* harmony import */ var _symbol_iterator__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(235); +/** PURE_IMPORTS_START _symbol_iterator PURE_IMPORTS_END */ -function filter(predicate, thisArg) { - return function filterOperatorFunction(source) { - return source.lift(new FilterOperator(predicate, thisArg)); - }; +function isIterable(input) { + return input && typeof input[_symbol_iterator__WEBPACK_IMPORTED_MODULE_0__["iterator"]] === 'function'; } -var FilterOperator = /*@__PURE__*/ (function () { - function FilterOperator(predicate, thisArg) { - this.predicate = predicate; - this.thisArg = thisArg; - } - FilterOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); - }; - return FilterOperator; -}()); -var FilterSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FilterSubscriber, _super); - function FilterSubscriber(destination, predicate, thisArg) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.thisArg = thisArg; - _this.count = 0; - return _this; - } - FilterSubscriber.prototype._next = function (value) { - var result; +//# sourceMappingURL=isIterable.js.map + + +/***/ }), +/* 250 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return defer; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); +/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ + + + +function defer(observableFactory) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var input; try { - result = this.predicate.call(this.thisArg, value, this.count++); + input = observableFactory(); } catch (err) { - this.destination.error(err); + subscriber.error(err); + return undefined; + } + var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(input) : Object(_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(); + return source.subscribe(subscriber); + }); +} +//# sourceMappingURL=defer.js.map + + +/***/ }), +/* 251 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return forkJoin; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(226); +/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(179); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(243); +/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */ + + + + + +function forkJoin() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; + } + if (sources.length === 1) { + var first_1 = sources[0]; + if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(first_1)) { + return forkJoinInternal(first_1, null); + } + if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_3__["isObject"])(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) { + var keys = Object.keys(first_1); + return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys); + } + } + if (typeof sources[sources.length - 1] === 'function') { + var resultSelector_1 = sources.pop(); + sources = (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(sources[0])) ? sources[0] : sources; + return forkJoinInternal(sources, null).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return resultSelector_1.apply(void 0, args); })); + } + return forkJoinInternal(sources, null); +} +function forkJoinInternal(sources, keys) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var len = sources.length; + if (len === 0) { + subscriber.complete(); return; } - if (result) { - this.destination.next(value); + var values = new Array(len); + var completed = 0; + var emitted = 0; + var _loop_1 = function (i) { + var source = Object(_from__WEBPACK_IMPORTED_MODULE_4__["from"])(sources[i]); + var hasValue = false; + subscriber.add(source.subscribe({ + next: function (value) { + if (!hasValue) { + hasValue = true; + emitted++; + } + values[i] = value; + }, + error: function (err) { return subscriber.error(err); }, + complete: function () { + completed++; + if (completed === len || !hasValue) { + if (emitted === len) { + subscriber.next(keys ? + keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) : + values); + } + subscriber.complete(); + } + } + })); + }; + for (var i = 0; i < len; i++) { + _loop_1(i); } - }; - return FilterSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=filter.js.map + }); +} +//# sourceMappingURL=forkJoin.js.map /***/ }), @@ -26273,64 +26272,74 @@ var FilterSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return throwIfEmpty; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(253); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return fromEvent; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(226); +/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ -function throwIfEmpty(errorFactory) { - if (errorFactory === void 0) { - errorFactory = defaultErrorFactory; - } - return function (source) { - return source.lift(new ThrowIfEmptyOperator(errorFactory)); - }; -} -var ThrowIfEmptyOperator = /*@__PURE__*/ (function () { - function ThrowIfEmptyOperator(errorFactory) { - this.errorFactory = errorFactory; + +var toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })(); +function fromEvent(target, eventName, options, resultSelector) { + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(options)) { + resultSelector = options; + options = undefined; } - ThrowIfEmptyOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); - }; - return ThrowIfEmptyOperator; -}()); -var ThrowIfEmptySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrowIfEmptySubscriber, _super); - function ThrowIfEmptySubscriber(destination, errorFactory) { - var _this = _super.call(this, destination) || this; - _this.errorFactory = errorFactory; - _this.hasValue = false; - return _this; + if (resultSelector) { + return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); } - ThrowIfEmptySubscriber.prototype._next = function (value) { - this.hasValue = true; - this.destination.next(value); - }; - ThrowIfEmptySubscriber.prototype._complete = function () { - if (!this.hasValue) { - var err = void 0; - try { - err = this.errorFactory(); + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + function handler(e) { + if (arguments.length > 1) { + subscriber.next(Array.prototype.slice.call(arguments)); } - catch (e) { - err = e; + else { + subscriber.next(e); } - this.destination.error(err); } - else { - return this.destination.complete(); + setupSubscription(target, eventName, handler, subscriber, options); + }); +} +function setupSubscription(sourceObj, eventName, handler, subscriber, options) { + var unsubscribe; + if (isEventTarget(sourceObj)) { + var source_1 = sourceObj; + sourceObj.addEventListener(eventName, handler, options); + unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; + } + else if (isJQueryStyleEventEmitter(sourceObj)) { + var source_2 = sourceObj; + sourceObj.on(eventName, handler); + unsubscribe = function () { return source_2.off(eventName, handler); }; + } + else if (isNodeStyleEventEmitter(sourceObj)) { + var source_3 = sourceObj; + sourceObj.addListener(eventName, handler); + unsubscribe = function () { return source_3.removeListener(eventName, handler); }; + } + else if (sourceObj && sourceObj.length) { + for (var i = 0, len = sourceObj.length; i < len; i++) { + setupSubscription(sourceObj[i], eventName, handler, subscriber, options); } - }; - return ThrowIfEmptySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); -function defaultErrorFactory() { - return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__["EmptyError"](); + } + else { + throw new TypeError('Invalid event target'); + } + subscriber.add(unsubscribe); } -//# sourceMappingURL=throwIfEmpty.js.map +function isNodeStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; +} +function isJQueryStyleEventEmitter(sourceObj) { + return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; +} +function isEventTarget(sourceObj) { + return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; +} +//# sourceMappingURL=fromEvent.js.map /***/ }), @@ -26339,20 +26348,43 @@ function defaultErrorFactory() { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return EmptyError; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var EmptyErrorImpl = /*@__PURE__*/ (function () { - function EmptyErrorImpl() { - Error.call(this); - this.message = 'no elements in sequence'; - this.name = 'EmptyError'; - return this; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return fromEventPattern; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); +/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(226); +/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ + + + + +function fromEventPattern(addHandler, removeHandler, resultSelector) { + if (resultSelector) { + return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); } - EmptyErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - return EmptyErrorImpl; -})(); -var EmptyError = EmptyErrorImpl; -//# sourceMappingURL=EmptyError.js.map + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var handler = function () { + var e = []; + for (var _i = 0; _i < arguments.length; _i++) { + e[_i] = arguments[_i]; + } + return subscriber.next(e.length === 1 ? e[0] : e); + }; + var retValue; + try { + retValue = addHandler(handler); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(removeHandler)) { + return undefined; + } + return function () { return removeHandler(handler, retValue); }; + }); +} +//# sourceMappingURL=fromEventPattern.js.map /***/ }), @@ -26361,60 +26393,135 @@ var EmptyError = EmptyErrorImpl; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "take", function() { return take; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(250); -/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(242); -/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return generate; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(220); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(205); +/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */ -function take(count) { - return function (source) { - if (count === 0) { - return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])(); - } - else { - return source.lift(new TakeOperator(count)); +function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { + var resultSelector; + var initialState; + if (arguments.length == 1) { + var options = initialStateOrOptions; + initialState = options.initialState; + condition = options.condition; + iterate = options.iterate; + resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]; + scheduler = options.scheduler; + } + else if (resultSelectorOrObservable === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__["isScheduler"])(resultSelectorOrObservable)) { + initialState = initialStateOrOptions; + resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]; + scheduler = resultSelectorOrObservable; + } + else { + initialState = initialStateOrOptions; + resultSelector = resultSelectorOrObservable; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var state = initialState; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + subscriber: subscriber, + iterate: iterate, + condition: condition, + resultSelector: resultSelector, + state: state + }); } - }; + do { + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + break; + } + } + var value = void 0; + try { + value = resultSelector(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + break; + } + try { + state = iterate(state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + } while (true); + return undefined; + }); } -var TakeOperator = /*@__PURE__*/ (function () { - function TakeOperator(total) { - this.total = total; - if (this.total < 0) { - throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; +function dispatch(state) { + var subscriber = state.subscriber, condition = state.condition; + if (subscriber.closed) { + return undefined; + } + if (state.needIterate) { + try { + state.state = state.iterate(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; } } - TakeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new TakeSubscriber(subscriber, this.total)); - }; - return TakeOperator; -}()); -var TakeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeSubscriber, _super); - function TakeSubscriber(destination, total) { - var _this = _super.call(this, destination) || this; - _this.total = total; - _this.count = 0; - return _this; + else { + state.needIterate = true; } - TakeSubscriber.prototype._next = function (value) { - var total = this.total; - var count = ++this.count; - if (count <= total) { - this.destination.next(value); - if (count === total) { - this.destination.complete(); - this.unsubscribe(); - } + if (condition) { + var conditionResult = void 0; + try { + conditionResult = condition(state.state); } - }; - return TakeSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=take.js.map + catch (err) { + subscriber.error(err); + return undefined; + } + if (!conditionResult) { + subscriber.complete(); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + } + var value; + try { + value = state.resultSelector(state.state); + } + catch (err) { + subscriber.error(err); + return undefined; + } + if (subscriber.closed) { + return undefined; + } + subscriber.next(value); + if (subscriber.closed) { + return undefined; + } + return this.schedule(state); +} +//# sourceMappingURL=generate.js.map /***/ }), @@ -26423,20 +26530,22 @@ var TakeSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return endWith; }); -/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(226); -/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(227); -/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return iif; }); +/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(250); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(203); +/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */ -function endWith() { - var array = []; - for (var _i = 0; _i < arguments.length; _i++) { - array[_i] = arguments[_i]; +function iif(condition, trueResult, falseResult) { + if (trueResult === void 0) { + trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; } - return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(source, _observable_of__WEBPACK_IMPORTED_MODULE_1__["of"].apply(void 0, array)); }; + if (falseResult === void 0) { + falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; + } + return Object(_defer__WEBPACK_IMPORTED_MODULE_0__["defer"])(function () { return condition() ? trueResult : falseResult; }); } -//# sourceMappingURL=endWith.js.map +//# sourceMappingURL=iif.js.map /***/ }), @@ -26445,60 +26554,38 @@ function endWith() { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "every", function() { return every; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return interval; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(257); +/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */ -function every(predicate, thisArg) { - return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; -} -var EveryOperator = /*@__PURE__*/ (function () { - function EveryOperator(predicate, thisArg, source) { - this.predicate = predicate; - this.thisArg = thisArg; - this.source = source; + +function interval(period, scheduler) { + if (period === void 0) { + period = 0; } - EveryOperator.prototype.call = function (observer, source) { - return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); - }; - return EveryOperator; -}()); -var EverySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](EverySubscriber, _super); - function EverySubscriber(destination, predicate, thisArg, source) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.thisArg = thisArg; - _this.source = source; - _this.index = 0; - _this.thisArg = thisArg || _this; - return _this; + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; } - EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { - this.destination.next(everyValueMatch); - this.destination.complete(); - }; - EverySubscriber.prototype._next = function (value) { - var result = false; - try { - result = this.predicate.call(this.thisArg, value, this.index++, this.source); - } - catch (err) { - this.destination.error(err); - return; - } - if (!result) { - this.notifyComplete(false); - } - }; - EverySubscriber.prototype._complete = function () { - this.notifyComplete(true); - }; - return EverySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=every.js.map + if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(period) || period < 0) { + period = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period })); + return subscriber; + }); +} +function dispatch(state) { + var subscriber = state.subscriber, counter = state.counter, period = state.period; + subscriber.next(counter); + this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); +} +//# sourceMappingURL=interval.js.map /***/ }), @@ -26507,55 +26594,14 @@ var EverySubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return exhaust; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isNumeric", function() { return isNumeric; }); +/* harmony import */ var _isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); +/** PURE_IMPORTS_START _isArray PURE_IMPORTS_END */ -function exhaust() { - return function (source) { return source.lift(new SwitchFirstOperator()); }; +function isNumeric(val) { + return !Object(_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(val) && (val - parseFloat(val) + 1) >= 0; } -var SwitchFirstOperator = /*@__PURE__*/ (function () { - function SwitchFirstOperator() { - } - SwitchFirstOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SwitchFirstSubscriber(subscriber)); - }; - return SwitchFirstOperator; -}()); -var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchFirstSubscriber, _super); - function SwitchFirstSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.hasCompleted = false; - _this.hasSubscription = false; - return _this; - } - SwitchFirstSubscriber.prototype._next = function (value) { - if (!this.hasSubscription) { - this.hasSubscription = true; - this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, value)); - } - }; - SwitchFirstSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (!this.hasSubscription) { - this.destination.complete(); - } - }; - SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) { - this.remove(innerSub); - this.hasSubscription = false; - if (this.hasCompleted) { - this.destination.complete(); - } - }; - return SwitchFirstSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=exhaust.js.map +//# sourceMappingURL=isNumeric.js.map /***/ }), @@ -26564,95 +26610,39 @@ var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return exhaustMap; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(231); -/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(218); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(205); +/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(241); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(206); +/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */ -function exhaustMap(project, resultSelector) { - if (resultSelector) { - return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; +function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; } - return function (source) { - return source.lift(new ExhaustMapOperator(project)); - }; -} -var ExhaustMapOperator = /*@__PURE__*/ (function () { - function ExhaustMapOperator(project) { - this.project = project; + var concurrent = Number.POSITIVE_INFINITY; + var scheduler = null; + var last = observables[observables.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(last)) { + scheduler = observables.pop(); + if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { + concurrent = observables.pop(); + } } - ExhaustMapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); - }; - return ExhaustMapOperator; -}()); -var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExhaustMapSubscriber, _super); - function ExhaustMapSubscriber(destination, project) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.hasSubscription = false; - _this.hasCompleted = false; - _this.index = 0; - return _this; + else if (typeof last === 'number') { + concurrent = observables.pop(); } - ExhaustMapSubscriber.prototype._next = function (value) { - if (!this.hasSubscription) { - this.tryNext(value); - } - }; - ExhaustMapSubscriber.prototype.tryNext = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (err) { - this.destination.error(err); - return; - } - this.hasSubscription = true; - this._innerSub(result, value, index); - }; - ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) { - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber); - }; - ExhaustMapSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (!this.hasSubscription) { - this.destination.complete(); - } - this.unsubscribe(); - }; - ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - ExhaustMapSubscriber.prototype.notifyError = function (err) { - this.destination.error(err); - }; - ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { - var destination = this.destination; - destination.remove(innerSub); - this.hasSubscription = false; - if (this.hasCompleted) { - this.destination.complete(); - } - }; - return ExhaustMapSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=exhaustMap.js.map + if (scheduler === null && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { + return observables[0]; + } + return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__["mergeAll"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__["fromArray"])(observables, scheduler)); +} +//# sourceMappingURL=merge.js.map /***/ }), @@ -26661,117 +26651,18 @@ var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return expand; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandOperator", function() { return ExpandOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandSubscriber", function() { return ExpandSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return NEVER; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "never", function() { return never; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(185); +/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */ -function expand(project, concurrent, scheduler) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (scheduler === void 0) { - scheduler = undefined; - } - concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; - return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; +var NEVER = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](_util_noop__WEBPACK_IMPORTED_MODULE_1__["noop"]); +function never() { + return NEVER; } -var ExpandOperator = /*@__PURE__*/ (function () { - function ExpandOperator(project, concurrent, scheduler) { - this.project = project; - this.concurrent = concurrent; - this.scheduler = scheduler; - } - ExpandOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); - }; - return ExpandOperator; -}()); - -var ExpandSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExpandSubscriber, _super); - function ExpandSubscriber(destination, project, concurrent, scheduler) { - var _this = _super.call(this, destination) || this; - _this.project = project; - _this.concurrent = concurrent; - _this.scheduler = scheduler; - _this.index = 0; - _this.active = 0; - _this.hasCompleted = false; - if (concurrent < Number.POSITIVE_INFINITY) { - _this.buffer = []; - } - return _this; - } - ExpandSubscriber.dispatch = function (arg) { - var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; - subscriber.subscribeToProjection(result, value, index); - }; - ExpandSubscriber.prototype._next = function (value) { - var destination = this.destination; - if (destination.closed) { - this._complete(); - return; - } - var index = this.index++; - if (this.active < this.concurrent) { - destination.next(value); - try { - var project = this.project; - var result = project(value, index); - if (!this.scheduler) { - this.subscribeToProjection(result, value, index); - } - else { - var state = { subscriber: this, result: result, value: value, index: index }; - var destination_1 = this.destination; - destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); - } - } - catch (e) { - destination.error(e); - } - } - else { - this.buffer.push(value); - } - }; - ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { - this.active++; - var destination = this.destination; - destination.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, result, value, index)); - }; - ExpandSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.hasCompleted && this.active === 0) { - this.destination.complete(); - } - this.unsubscribe(); - }; - ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this._next(innerValue); - }; - ExpandSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - var destination = this.destination; - destination.remove(innerSub); - this.active--; - if (buffer && buffer.length > 0) { - this._next(buffer.shift()); - } - if (this.hasCompleted && this.active === 0) { - this.destination.complete(); - } - }; - return ExpandSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); - -//# sourceMappingURL=expand.js.map +//# sourceMappingURL=never.js.map /***/ }), @@ -26780,36 +26671,38 @@ var ExpandSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return finalize; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); -/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(203); +/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */ -function finalize(callback) { - return function (source) { return source.lift(new FinallyOperator(callback)); }; -} -var FinallyOperator = /*@__PURE__*/ (function () { - function FinallyOperator(callback) { - this.callback = callback; + +function onErrorResumeNext() { + var sources = []; + for (var _i = 0; _i < arguments.length; _i++) { + sources[_i] = arguments[_i]; } - FinallyOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new FinallySubscriber(subscriber, this.callback)); - }; - return FinallyOperator; -}()); -var FinallySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FinallySubscriber, _super); - function FinallySubscriber(destination, callback) { - var _this = _super.call(this, destination) || this; - _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](callback)); - return _this; + if (sources.length === 0) { + return _empty__WEBPACK_IMPORTED_MODULE_3__["EMPTY"]; } - return FinallySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=finalize.js.map + var first = sources[0], remainder = sources.slice(1); + if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(first)) { + return onErrorResumeNext.apply(void 0, first); + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; + return Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(first).subscribe({ + next: function (value) { subscriber.next(value); }, + error: subNext, + complete: subNext, + }); + }); +} +//# sourceMappingURL=onErrorResumeNext.js.map /***/ }), @@ -26818,70 +26711,49 @@ var FinallySubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueOperator", function() { return FindValueOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueSubscriber", function() { return FindValueSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return pairs; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ -function find(predicate, thisArg) { - if (typeof predicate !== 'function') { - throw new TypeError('predicate is not a function'); - } - return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; -} -var FindValueOperator = /*@__PURE__*/ (function () { - function FindValueOperator(predicate, source, yieldIndex, thisArg) { - this.predicate = predicate; - this.source = source; - this.yieldIndex = yieldIndex; - this.thisArg = thisArg; +function pairs(obj, scheduler) { + if (!scheduler) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var keys = Object.keys(obj); + for (var i = 0; i < keys.length && !subscriber.closed; i++) { + var key = keys[i]; + if (obj.hasOwnProperty(key)) { + subscriber.next([key, obj[key]]); + } + } + subscriber.complete(); + }); } - FindValueOperator.prototype.call = function (observer, source) { - return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); - }; - return FindValueOperator; -}()); - -var FindValueSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FindValueSubscriber, _super); - function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { - var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.source = source; - _this.yieldIndex = yieldIndex; - _this.thisArg = thisArg; - _this.index = 0; - return _this; + else { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var keys = Object.keys(obj); + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); + return subscription; + }); } - FindValueSubscriber.prototype.notifyComplete = function (value) { - var destination = this.destination; - destination.next(value); - destination.complete(); - this.unsubscribe(); - }; - FindValueSubscriber.prototype._next = function (value) { - var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; - var index = this.index++; - try { - var result = predicate.call(thisArg || this, value, index, this.source); - if (result) { - this.notifyComplete(this.yieldIndex ? index : value); - } +} +function dispatch(state) { + var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; + if (!subscriber.closed) { + if (index < keys.length) { + var key = keys[index]; + subscriber.next([key, obj[key]]); + subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); } - catch (err) { - this.destination.error(err); + else { + subscriber.complete(); } - }; - FindValueSubscriber.prototype._complete = function () { - this.notifyComplete(this.yieldIndex ? -1 : undefined); - }; - return FindValueSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - -//# sourceMappingURL=find.js.map + } +} +//# sourceMappingURL=pairs.js.map /***/ }), @@ -26890,14 +26762,23 @@ var FindValueSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); -/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(261); -/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); +/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(263); +/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(232); +/* harmony import */ var _operators_filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(264); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(170); +/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */ -function findIndex(predicate, thisArg) { - return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__["FindValueOperator"](predicate, source, true, thisArg)); }; + + + +function partition(source, predicate, thisArg) { + return [ + Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__["filter"])(predicate, thisArg)(new _Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(source))), + Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(new _Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(source))) + ]; } -//# sourceMappingURL=findIndex.js.map +//# sourceMappingURL=partition.js.map /***/ }), @@ -26906,25 +26787,17 @@ function findIndex(predicate, thisArg) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; }); -/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(253); -/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251); -/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(254); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(238); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(252); -/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(232); -/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ - - - - - - -function first(predicate, defaultValue) { - var hasDefaultValue = arguments.length >= 2; - return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_take__WEBPACK_IMPORTED_MODULE_2__["take"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); }; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "not", function() { return not; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function not(pred, thisArg) { + function notPred() { + return !(notPred.pred.apply(notPred.thisArg, arguments)); + } + notPred.pred = pred; + notPred.thisArg = thisArg; + return notPred; } -//# sourceMappingURL=first.js.map +//# sourceMappingURL=not.js.map /***/ }), @@ -26933,195 +26806,52 @@ function first(predicate, defaultValue) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return groupBy; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return GroupedObservable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return filter; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(193); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(265); -/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription,_Observable,_Subject PURE_IMPORTS_END */ - - - +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function groupBy(keySelector, elementSelector, durationSelector, subjectSelector) { - return function (source) { - return source.lift(new GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector)); +function filter(predicate, thisArg) { + return function filterOperatorFunction(source) { + return source.lift(new FilterOperator(predicate, thisArg)); }; } -var GroupByOperator = /*@__PURE__*/ (function () { - function GroupByOperator(keySelector, elementSelector, durationSelector, subjectSelector) { - this.keySelector = keySelector; - this.elementSelector = elementSelector; - this.durationSelector = durationSelector; - this.subjectSelector = subjectSelector; +var FilterOperator = /*@__PURE__*/ (function () { + function FilterOperator(predicate, thisArg) { + this.predicate = predicate; + this.thisArg = thisArg; } - GroupByOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new GroupBySubscriber(subscriber, this.keySelector, this.elementSelector, this.durationSelector, this.subjectSelector)); + FilterOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FilterSubscriber(subscriber, this.predicate, this.thisArg)); }; - return GroupByOperator; + return FilterOperator; }()); -var GroupBySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupBySubscriber, _super); - function GroupBySubscriber(destination, keySelector, elementSelector, durationSelector, subjectSelector) { +var FilterSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FilterSubscriber, _super); + function FilterSubscriber(destination, predicate, thisArg) { var _this = _super.call(this, destination) || this; - _this.keySelector = keySelector; - _this.elementSelector = elementSelector; - _this.durationSelector = durationSelector; - _this.subjectSelector = subjectSelector; - _this.groups = null; - _this.attemptedToUnsubscribe = false; + _this.predicate = predicate; + _this.thisArg = thisArg; _this.count = 0; return _this; } - GroupBySubscriber.prototype._next = function (value) { - var key; + FilterSubscriber.prototype._next = function (value) { + var result; try { - key = this.keySelector(value); + result = this.predicate.call(this.thisArg, value, this.count++); } catch (err) { - this.error(err); + this.destination.error(err); return; } - this._group(value, key); - }; - GroupBySubscriber.prototype._group = function (value, key) { - var groups = this.groups; - if (!groups) { - groups = this.groups = new Map(); - } - var group = groups.get(key); - var element; - if (this.elementSelector) { - try { - element = this.elementSelector(value); - } - catch (err) { - this.error(err); - } - } - else { - element = value; - } - if (!group) { - group = (this.subjectSelector ? this.subjectSelector() : new _Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]()); - groups.set(key, group); - var groupedObservable = new GroupedObservable(key, group, this); - this.destination.next(groupedObservable); - if (this.durationSelector) { - var duration = void 0; - try { - duration = this.durationSelector(new GroupedObservable(key, group)); - } - catch (err) { - this.error(err); - return; - } - this.add(duration.subscribe(new GroupDurationSubscriber(key, group, this))); - } - } - if (!group.closed) { - group.next(element); - } - }; - GroupBySubscriber.prototype._error = function (err) { - var groups = this.groups; - if (groups) { - groups.forEach(function (group, key) { - group.error(err); - }); - groups.clear(); - } - this.destination.error(err); - }; - GroupBySubscriber.prototype._complete = function () { - var groups = this.groups; - if (groups) { - groups.forEach(function (group, key) { - group.complete(); - }); - groups.clear(); - } - this.destination.complete(); - }; - GroupBySubscriber.prototype.removeGroup = function (key) { - this.groups.delete(key); - }; - GroupBySubscriber.prototype.unsubscribe = function () { - if (!this.closed) { - this.attemptedToUnsubscribe = true; - if (this.count === 0) { - _super.prototype.unsubscribe.call(this); - } - } - }; - return GroupBySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -var GroupDurationSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupDurationSubscriber, _super); - function GroupDurationSubscriber(key, group, parent) { - var _this = _super.call(this, group) || this; - _this.key = key; - _this.group = group; - _this.parent = parent; - return _this; - } - GroupDurationSubscriber.prototype._next = function (value) { - this.complete(); - }; - GroupDurationSubscriber.prototype._unsubscribe = function () { - var _a = this, parent = _a.parent, key = _a.key; - this.key = this.parent = null; - if (parent) { - parent.removeGroup(key); + if (result) { + this.destination.next(value); } }; - return GroupDurationSubscriber; + return FilterSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -var GroupedObservable = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](GroupedObservable, _super); - function GroupedObservable(key, groupSubject, refCountSubscription) { - var _this = _super.call(this) || this; - _this.key = key; - _this.groupSubject = groupSubject; - _this.refCountSubscription = refCountSubscription; - return _this; - } - GroupedObservable.prototype._subscribe = function (subscriber) { - var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](); - var _a = this, refCountSubscription = _a.refCountSubscription, groupSubject = _a.groupSubject; - if (refCountSubscription && !refCountSubscription.closed) { - subscription.add(new InnerRefCountSubscription(refCountSubscription)); - } - subscription.add(groupSubject.subscribe(subscriber)); - return subscription; - }; - return GroupedObservable; -}(_Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"])); - -var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](InnerRefCountSubscription, _super); - function InnerRefCountSubscription(parent) { - var _this = _super.call(this) || this; - _this.parent = parent; - parent.count++; - return _this; - } - InnerRefCountSubscription.prototype.unsubscribe = function () { - var parent = this.parent; - if (!parent.closed && !this.closed) { - _super.prototype.unsubscribe.call(this); - parent.count -= 1; - if (parent.count === 0 && parent.attemptedToUnsubscribe) { - parent.unsubscribe(); - } - } - }; - return InnerRefCountSubscription; -}(_Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"])); -//# sourceMappingURL=groupBy.js.map +//# sourceMappingURL=filter.js.map /***/ }), @@ -27130,174 +26860,92 @@ var InnerRefCountSubscription = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscriber", function() { return SubjectSubscriber; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return Subject; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnonymousSubject", function() { return AnonymousSubject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceOperator", function() { return RaceOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceSubscriber", function() { return RaceSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(193); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(177); -/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(266); -/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(267); -/* harmony import */ var _internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(181); -/** PURE_IMPORTS_START tslib,_Observable,_Subscriber,_Subscription,_util_ObjectUnsubscribedError,_SubjectSubscription,_internal_symbol_rxSubscriber PURE_IMPORTS_END */ - - - +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(206); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -var SubjectSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscriber, _super); - function SubjectSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.destination = destination; - return _this; - } - return SubjectSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); -var Subject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](Subject, _super); - function Subject() { - var _this = _super.call(this) || this; - _this.observers = []; - _this.closed = false; - _this.isStopped = false; - _this.hasError = false; - _this.thrownError = null; - return _this; +function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; } - Subject.prototype[_internal_symbol_rxSubscriber__WEBPACK_IMPORTED_MODULE_6__["rxSubscriber"]] = function () { - return new SubjectSubscriber(this); - }; - Subject.prototype.lift = function (operator) { - var subject = new AnonymousSubject(this, this); - subject.operator = operator; - return subject; - }; - Subject.prototype.next = function (value) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); - } - if (!this.isStopped) { - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].next(value); - } - } - }; - Subject.prototype.error = function (err) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); - } - this.hasError = true; - this.thrownError = err; - this.isStopped = true; - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].error(err); - } - this.observers.length = 0; - }; - Subject.prototype.complete = function () { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); - } - this.isStopped = true; - var observers = this.observers; - var len = observers.length; - var copy = observers.slice(); - for (var i = 0; i < len; i++) { - copy[i].complete(); - } - this.observers.length = 0; - }; - Subject.prototype.unsubscribe = function () { - this.isStopped = true; - this.closed = true; - this.observers = null; - }; - Subject.prototype._trySubscribe = function (subscriber) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); - } - else { - return _super.prototype._trySubscribe.call(this, subscriber); - } - }; - Subject.prototype._subscribe = function (subscriber) { - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_4__["ObjectUnsubscribedError"](); - } - else if (this.hasError) { - subscriber.error(this.thrownError); - return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; - } - else if (this.isStopped) { - subscriber.complete(); - return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + if (observables.length === 1) { + if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(observables[0])) { + observables = observables[0]; } else { - this.observers.push(subscriber); - return new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_5__["SubjectSubscription"](this, subscriber); + return observables[0]; } + } + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_2__["fromArray"])(observables, undefined).lift(new RaceOperator()); +} +var RaceOperator = /*@__PURE__*/ (function () { + function RaceOperator() { + } + RaceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RaceSubscriber(subscriber)); }; - Subject.prototype.asObservable = function () { - var observable = new _Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"](); - observable.source = this; - return observable; - }; - Subject.create = function (destination, source) { - return new AnonymousSubject(destination, source); - }; - return Subject; -}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"])); + return RaceOperator; +}()); -var AnonymousSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnonymousSubject, _super); - function AnonymousSubject(destination, source) { - var _this = _super.call(this) || this; - _this.destination = destination; - _this.source = source; +var RaceSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RaceSubscriber, _super); + function RaceSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.hasFirst = false; + _this.observables = []; + _this.subscriptions = []; return _this; } - AnonymousSubject.prototype.next = function (value) { - var destination = this.destination; - if (destination && destination.next) { - destination.next(value); - } - }; - AnonymousSubject.prototype.error = function (err) { - var destination = this.destination; - if (destination && destination.error) { - this.destination.error(err); - } + RaceSubscriber.prototype._next = function (observable) { + this.observables.push(observable); }; - AnonymousSubject.prototype.complete = function () { - var destination = this.destination; - if (destination && destination.complete) { + RaceSubscriber.prototype._complete = function () { + var observables = this.observables; + var len = observables.length; + if (len === 0) { this.destination.complete(); } - }; - AnonymousSubject.prototype._subscribe = function (subscriber) { - var source = this.source; - if (source) { - return this.source.subscribe(subscriber); - } else { - return _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; + for (var i = 0; i < len && !this.hasFirst; i++) { + var observable = observables[i]; + var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i); + if (this.subscriptions) { + this.subscriptions.push(subscription); + } + this.add(subscription); + } + this.observables = null; } }; - return AnonymousSubject; -}(Subject)); + RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (!this.hasFirst) { + this.hasFirst = true; + for (var i = 0; i < this.subscriptions.length; i++) { + if (i !== outerIndex) { + var subscription = this.subscriptions[i]; + subscription.unsubscribe(); + this.remove(subscription); + } + } + this.subscriptions = null; + } + this.destination.next(innerValue); + }; + return RaceSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); -//# sourceMappingURL=Subject.js.map +//# sourceMappingURL=race.js.map /***/ }), @@ -27306,20 +26954,57 @@ var AnonymousSubject = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return ObjectUnsubscribedError; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var ObjectUnsubscribedErrorImpl = /*@__PURE__*/ (function () { - function ObjectUnsubscribedErrorImpl() { - Error.call(this); - this.message = 'object unsubscribed'; - this.name = 'ObjectUnsubscribedError'; - return this; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "range", function() { return range; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ + +function range(start, count, scheduler) { + if (start === void 0) { + start = 0; } - ObjectUnsubscribedErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - return ObjectUnsubscribedErrorImpl; -})(); -var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; -//# sourceMappingURL=ObjectUnsubscribedError.js.map + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + if (count === undefined) { + count = start; + start = 0; + } + var index = 0; + var current = start; + if (scheduler) { + return scheduler.schedule(dispatch, 0, { + index: index, count: count, start: start, subscriber: subscriber + }); + } + else { + do { + if (index++ >= count) { + subscriber.complete(); + break; + } + subscriber.next(current++); + if (subscriber.closed) { + break; + } + } while (true); + } + return undefined; + }); +} +function dispatch(state) { + var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; + if (index >= count) { + subscriber.complete(); + return; + } + subscriber.next(start); + if (subscriber.closed) { + return; + } + state.index = index + 1; + state.start = start + 1; + this.schedule(state); +} +//# sourceMappingURL=range.js.map /***/ }), @@ -27328,41 +27013,52 @@ var ObjectUnsubscribedError = ObjectUnsubscribedErrorImpl; "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubjectSubscription", function() { return SubjectSubscription; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/** PURE_IMPORTS_START tslib,_Subscription PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return timer; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(257); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(205); +/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ -var SubjectSubscription = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubjectSubscription, _super); - function SubjectSubscription(subject, subscriber) { - var _this = _super.call(this) || this; - _this.subject = subject; - _this.subscriber = subscriber; - _this.closed = false; - return _this; - } - SubjectSubscription.prototype.unsubscribe = function () { - if (this.closed) { - return; - } - this.closed = true; - var subject = this.subject; - var observers = subject.observers; - this.subject = null; - if (!observers || observers.length === 0 || subject.isStopped || subject.closed) { - return; - } - var subscriberIndex = observers.indexOf(this.subscriber); - if (subscriberIndex !== -1) { - observers.splice(subscriberIndex, 1); - } - }; - return SubjectSubscription; -}(_Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"])); -//# sourceMappingURL=SubjectSubscription.js.map + +function timer(dueTime, periodOrScheduler, scheduler) { + if (dueTime === void 0) { + dueTime = 0; + } + var period = -1; + if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(periodOrScheduler)) { + period = Number(periodOrScheduler) < 1 && 1 || Number(periodOrScheduler); + } + else if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(periodOrScheduler)) { + scheduler = periodOrScheduler; + } + if (!Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(scheduler)) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var due = Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(dueTime) + ? dueTime + : (+dueTime - scheduler.now()); + return scheduler.schedule(dispatch, due, { + index: 0, period: period, subscriber: subscriber + }); + }); +} +function dispatch(state) { + var index = state.index, period = state.period, subscriber = state.subscriber; + subscriber.next(index); + if (subscriber.closed) { + return; + } + else if (period === -1) { + return subscriber.complete(); + } + state.index = index + 1; + this.schedule(state, period); +} +//# sourceMappingURL=timer.js.map /***/ }), @@ -27371,35 +27067,43 @@ var SubjectSubscription = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return ignoreElements; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "using", function() { return using; }); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(170); +/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243); +/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); +/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ -function ignoreElements() { - return function ignoreElementsOperatorFunction(source) { - return source.lift(new IgnoreElementsOperator()); - }; + +function using(resourceFactory, observableFactory) { + return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { + var resource; + try { + resource = resourceFactory(); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var result; + try { + result = observableFactory(resource); + } + catch (err) { + subscriber.error(err); + return undefined; + } + var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]; + var subscription = source.subscribe(subscriber); + return function () { + subscription.unsubscribe(); + if (resource) { + resource.unsubscribe(); + } + }; + }); } -var IgnoreElementsOperator = /*@__PURE__*/ (function () { - function IgnoreElementsOperator() { - } - IgnoreElementsOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new IgnoreElementsSubscriber(subscriber)); - }; - return IgnoreElementsOperator; -}()); -var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IgnoreElementsSubscriber, _super); - function IgnoreElementsSubscriber() { - return _super !== null && _super.apply(this, arguments) || this; - } - IgnoreElementsSubscriber.prototype._next = function (unused) { - }; - return IgnoreElementsSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=ignoreElements.js.map +//# sourceMappingURL=using.js.map /***/ }), @@ -27408,8946 +27112,9248 @@ var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return isEmpty; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipOperator", function() { return ZipOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipSubscriber", function() { return ZipSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(230); +/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(235); +/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */ -function isEmpty() { - return function (source) { return source.lift(new IsEmptyOperator()); }; + + + + + +function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + var resultSelector = observables[observables.length - 1]; + if (typeof resultSelector === 'function') { + observables.pop(); + } + return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(observables, undefined).lift(new ZipOperator(resultSelector)); } -var IsEmptyOperator = /*@__PURE__*/ (function () { - function IsEmptyOperator() { +var ZipOperator = /*@__PURE__*/ (function () { + function ZipOperator(resultSelector) { + this.resultSelector = resultSelector; } - IsEmptyOperator.prototype.call = function (observer, source) { - return source.subscribe(new IsEmptySubscriber(observer)); + ZipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); }; - return IsEmptyOperator; + return ZipOperator; }()); -var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IsEmptySubscriber, _super); - function IsEmptySubscriber(destination) { - return _super.call(this, destination) || this; + +var ZipSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipSubscriber, _super); + function ZipSubscriber(destination, resultSelector, values) { + if (values === void 0) { + values = Object.create(null); + } + var _this = _super.call(this, destination) || this; + _this.iterators = []; + _this.active = 0; + _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null; + _this.values = values; + return _this; } - IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { - var destination = this.destination; - destination.next(isEmpty); - destination.complete(); + ZipSubscriber.prototype._next = function (value) { + var iterators = this.iterators; + if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(value)) { + iterators.push(new StaticArrayIterator(value)); + } + else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] === 'function') { + iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]]())); + } + else { + iterators.push(new ZipBufferIterator(this.destination, this, value)); + } }; - IsEmptySubscriber.prototype._next = function (value) { - this.notifyComplete(false); + ZipSubscriber.prototype._complete = function () { + var iterators = this.iterators; + var len = iterators.length; + this.unsubscribe(); + if (len === 0) { + this.destination.complete(); + return; + } + this.active = len; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (iterator.stillUnsubscribed) { + var destination = this.destination; + destination.add(iterator.subscribe(iterator, i)); + } + else { + this.active--; + } + } }; - IsEmptySubscriber.prototype._complete = function () { - this.notifyComplete(true); + ZipSubscriber.prototype.notifyInactive = function () { + this.active--; + if (this.active === 0) { + this.destination.complete(); + } }; - return IsEmptySubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=isEmpty.js.map - - -/***/ }), -/* 270 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); -/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(253); -/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(271); -/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(252); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(238); -/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(232); -/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ - - - - - - -function last(predicate, defaultValue) { - var hasDefaultValue = arguments.length >= 2; - return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__["takeLast"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); }; -} -//# sourceMappingURL=last.js.map - - -/***/ }), -/* 271 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return takeLast; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(250); -/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(242); -/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ - - - - -function takeLast(count) { - return function takeLastOperatorFunction(source) { - if (count === 0) { - return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])(); + ZipSubscriber.prototype.checkIterators = function () { + var iterators = this.iterators; + var len = iterators.length; + var destination = this.destination; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { + return; + } + } + var shouldComplete = false; + var args = []; + for (var i = 0; i < len; i++) { + var iterator = iterators[i]; + var result = iterator.next(); + if (iterator.hasCompleted()) { + shouldComplete = true; + } + if (result.done) { + destination.complete(); + return; + } + args.push(result.value); + } + if (this.resultSelector) { + this._tryresultSelector(args); } else { - return source.lift(new TakeLastOperator(count)); + destination.next(args); + } + if (shouldComplete) { + destination.complete(); } }; -} -var TakeLastOperator = /*@__PURE__*/ (function () { - function TakeLastOperator(total) { - this.total = total; - if (this.total < 0) { - throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; + ZipSubscriber.prototype._tryresultSelector = function (args) { + var result; + try { + result = this.resultSelector.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; } + this.destination.next(result); + }; + return ZipSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); + +var StaticIterator = /*@__PURE__*/ (function () { + function StaticIterator(iterator) { + this.iterator = iterator; + this.nextResult = iterator.next(); } - TakeLastOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + StaticIterator.prototype.hasValue = function () { + return true; }; - return TakeLastOperator; + StaticIterator.prototype.next = function () { + var result = this.nextResult; + this.nextResult = this.iterator.next(); + return result; + }; + StaticIterator.prototype.hasCompleted = function () { + var nextResult = this.nextResult; + return nextResult && nextResult.done; + }; + return StaticIterator; }()); -var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeLastSubscriber, _super); - function TakeLastSubscriber(destination, total) { +var StaticArrayIterator = /*@__PURE__*/ (function () { + function StaticArrayIterator(array) { + this.array = array; + this.index = 0; + this.length = 0; + this.length = array.length; + } + StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () { + return this; + }; + StaticArrayIterator.prototype.next = function (value) { + var i = this.index++; + var array = this.array; + return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + }; + StaticArrayIterator.prototype.hasValue = function () { + return this.array.length > this.index; + }; + StaticArrayIterator.prototype.hasCompleted = function () { + return this.array.length === this.index; + }; + return StaticArrayIterator; +}()); +var ZipBufferIterator = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipBufferIterator, _super); + function ZipBufferIterator(destination, parent, observable) { var _this = _super.call(this, destination) || this; - _this.total = total; - _this.ring = new Array(); - _this.count = 0; + _this.parent = parent; + _this.observable = observable; + _this.stillUnsubscribed = true; + _this.buffer = []; + _this.isComplete = false; return _this; } - TakeLastSubscriber.prototype._next = function (value) { - var ring = this.ring; - var total = this.total; - var count = this.count++; - if (ring.length < total) { - ring.push(value); + ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () { + return this; + }; + ZipBufferIterator.prototype.next = function () { + var buffer = this.buffer; + if (buffer.length === 0 && this.isComplete) { + return { value: null, done: true }; } else { - var index = count % total; - ring[index] = value; + return { value: buffer.shift(), done: false }; } }; - TakeLastSubscriber.prototype._complete = function () { - var destination = this.destination; - var count = this.count; - if (count > 0) { - var total = this.count >= this.total ? this.total : this.count; - var ring = this.ring; - for (var i = 0; i < total; i++) { - var idx = (count++) % total; - destination.next(ring[idx]); - } + ZipBufferIterator.prototype.hasValue = function () { + return this.buffer.length > 0; + }; + ZipBufferIterator.prototype.hasCompleted = function () { + return this.buffer.length === 0 && this.isComplete; + }; + ZipBufferIterator.prototype.notifyComplete = function () { + if (this.buffer.length > 0) { + this.isComplete = true; + this.parent.notifyInactive(); + } + else { + this.destination.complete(); } - destination.complete(); }; - return TakeLastSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=takeLast.js.map + ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.buffer.push(innerValue); + this.parent.checkIterators(); + }; + ZipBufferIterator.prototype.subscribe = function (value, index) { + return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, this.observable, this, index); + }; + return ZipBufferIterator; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); +//# sourceMappingURL=zip.js.map /***/ }), -/* 272 */ +/* 270 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return mapTo; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(271); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return _internal_operators_audit__WEBPACK_IMPORTED_MODULE_0__["audit"]; }); + +/* harmony import */ var _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(272); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return _internal_operators_auditTime__WEBPACK_IMPORTED_MODULE_1__["auditTime"]; }); + +/* harmony import */ var _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(273); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return _internal_operators_buffer__WEBPACK_IMPORTED_MODULE_2__["buffer"]; }); + +/* harmony import */ var _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(274); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return _internal_operators_bufferCount__WEBPACK_IMPORTED_MODULE_3__["bufferCount"]; }); + +/* harmony import */ var _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(275); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return _internal_operators_bufferTime__WEBPACK_IMPORTED_MODULE_4__["bufferTime"]; }); + +/* harmony import */ var _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(276); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return _internal_operators_bufferToggle__WEBPACK_IMPORTED_MODULE_5__["bufferToggle"]; }); + +/* harmony import */ var _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(277); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return _internal_operators_bufferWhen__WEBPACK_IMPORTED_MODULE_6__["bufferWhen"]; }); + +/* harmony import */ var _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(278); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return _internal_operators_catchError__WEBPACK_IMPORTED_MODULE_7__["catchError"]; }); + +/* harmony import */ var _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(279); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return _internal_operators_combineAll__WEBPACK_IMPORTED_MODULE_8__["combineAll"]; }); + +/* harmony import */ var _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(280); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_operators_combineLatest__WEBPACK_IMPORTED_MODULE_9__["combineLatest"]; }); + +/* harmony import */ var _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(281); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_operators_concat__WEBPACK_IMPORTED_MODULE_10__["concat"]; }); + +/* harmony import */ var _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(240); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatAll", function() { return _internal_operators_concatAll__WEBPACK_IMPORTED_MODULE_11__["concatAll"]; }); + +/* harmony import */ var _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(282); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return _internal_operators_concatMap__WEBPACK_IMPORTED_MODULE_12__["concatMap"]; }); + +/* harmony import */ var _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(283); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return _internal_operators_concatMapTo__WEBPACK_IMPORTED_MODULE_13__["concatMapTo"]; }); + +/* harmony import */ var _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(284); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "count", function() { return _internal_operators_count__WEBPACK_IMPORTED_MODULE_14__["count"]; }); + +/* harmony import */ var _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(285); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return _internal_operators_debounce__WEBPACK_IMPORTED_MODULE_15__["debounce"]; }); + +/* harmony import */ var _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(286); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return _internal_operators_debounceTime__WEBPACK_IMPORTED_MODULE_16__["debounceTime"]; }); + +/* harmony import */ var _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(287); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return _internal_operators_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_17__["defaultIfEmpty"]; }); + +/* harmony import */ var _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(288); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return _internal_operators_delay__WEBPACK_IMPORTED_MODULE_18__["delay"]; }); + +/* harmony import */ var _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(290); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return _internal_operators_delayWhen__WEBPACK_IMPORTED_MODULE_19__["delayWhen"]; }); + +/* harmony import */ var _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(291); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return _internal_operators_dematerialize__WEBPACK_IMPORTED_MODULE_20__["dematerialize"]; }); + +/* harmony import */ var _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(292); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return _internal_operators_distinct__WEBPACK_IMPORTED_MODULE_21__["distinct"]; }); + +/* harmony import */ var _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(293); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return _internal_operators_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_22__["distinctUntilChanged"]; }); + +/* harmony import */ var _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(294); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return _internal_operators_distinctUntilKeyChanged__WEBPACK_IMPORTED_MODULE_23__["distinctUntilKeyChanged"]; }); + +/* harmony import */ var _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(295); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return _internal_operators_elementAt__WEBPACK_IMPORTED_MODULE_24__["elementAt"]; }); + +/* harmony import */ var _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(298); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return _internal_operators_endWith__WEBPACK_IMPORTED_MODULE_25__["endWith"]; }); + +/* harmony import */ var _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(299); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "every", function() { return _internal_operators_every__WEBPACK_IMPORTED_MODULE_26__["every"]; }); + +/* harmony import */ var _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(300); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return _internal_operators_exhaust__WEBPACK_IMPORTED_MODULE_27__["exhaust"]; }); + +/* harmony import */ var _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(301); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return _internal_operators_exhaustMap__WEBPACK_IMPORTED_MODULE_28__["exhaustMap"]; }); + +/* harmony import */ var _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(302); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return _internal_operators_expand__WEBPACK_IMPORTED_MODULE_29__["expand"]; }); + +/* harmony import */ var _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(264); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "filter", function() { return _internal_operators_filter__WEBPACK_IMPORTED_MODULE_30__["filter"]; }); + +/* harmony import */ var _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(303); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return _internal_operators_finalize__WEBPACK_IMPORTED_MODULE_31__["finalize"]; }); + +/* harmony import */ var _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(304); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "find", function() { return _internal_operators_find__WEBPACK_IMPORTED_MODULE_32__["find"]; }); + +/* harmony import */ var _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(305); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return _internal_operators_findIndex__WEBPACK_IMPORTED_MODULE_33__["findIndex"]; }); + +/* harmony import */ var _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(306); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "first", function() { return _internal_operators_first__WEBPACK_IMPORTED_MODULE_34__["first"]; }); + +/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(191); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "groupBy", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_35__["groupBy"]; }); + +/* harmony import */ var _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(307); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return _internal_operators_ignoreElements__WEBPACK_IMPORTED_MODULE_36__["ignoreElements"]; }); + +/* harmony import */ var _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(308); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return _internal_operators_isEmpty__WEBPACK_IMPORTED_MODULE_37__["isEmpty"]; }); + +/* harmony import */ var _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(309); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "last", function() { return _internal_operators_last__WEBPACK_IMPORTED_MODULE_38__["last"]; }); + +/* harmony import */ var _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(226); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "map", function() { return _internal_operators_map__WEBPACK_IMPORTED_MODULE_39__["map"]; }); + +/* harmony import */ var _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(311); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return _internal_operators_mapTo__WEBPACK_IMPORTED_MODULE_40__["mapTo"]; }); + +/* harmony import */ var _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(312); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return _internal_operators_materialize__WEBPACK_IMPORTED_MODULE_41__["materialize"]; }); + +/* harmony import */ var _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(313); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "max", function() { return _internal_operators_max__WEBPACK_IMPORTED_MODULE_42__["max"]; }); + +/* harmony import */ var _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(316); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_operators_merge__WEBPACK_IMPORTED_MODULE_43__["merge"]; }); + +/* harmony import */ var _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(241); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeAll", function() { return _internal_operators_mergeAll__WEBPACK_IMPORTED_MODULE_44__["mergeAll"]; }); + +/* harmony import */ var _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(242); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); + +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "flatMap", function() { return _internal_operators_mergeMap__WEBPACK_IMPORTED_MODULE_45__["mergeMap"]; }); + +/* harmony import */ var _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(317); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return _internal_operators_mergeMapTo__WEBPACK_IMPORTED_MODULE_46__["mergeMapTo"]; }); + +/* harmony import */ var _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(318); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return _internal_operators_mergeScan__WEBPACK_IMPORTED_MODULE_47__["mergeScan"]; }); + +/* harmony import */ var _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(319); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "min", function() { return _internal_operators_min__WEBPACK_IMPORTED_MODULE_48__["min"]; }); + +/* harmony import */ var _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(320); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return _internal_operators_multicast__WEBPACK_IMPORTED_MODULE_49__["multicast"]; }); + +/* harmony import */ var _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(201); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return _internal_operators_observeOn__WEBPACK_IMPORTED_MODULE_50__["observeOn"]; }); + +/* harmony import */ var _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(321); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_operators_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_51__["onErrorResumeNext"]; }); + +/* harmony import */ var _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(322); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return _internal_operators_pairwise__WEBPACK_IMPORTED_MODULE_52__["pairwise"]; }); + +/* harmony import */ var _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__ = __webpack_require__(323); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_operators_partition__WEBPACK_IMPORTED_MODULE_53__["partition"]; }); + +/* harmony import */ var _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__ = __webpack_require__(324); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return _internal_operators_pluck__WEBPACK_IMPORTED_MODULE_54__["pluck"]; }); + +/* harmony import */ var _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__ = __webpack_require__(325); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return _internal_operators_publish__WEBPACK_IMPORTED_MODULE_55__["publish"]; }); + +/* harmony import */ var _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__ = __webpack_require__(326); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return _internal_operators_publishBehavior__WEBPACK_IMPORTED_MODULE_56__["publishBehavior"]; }); + +/* harmony import */ var _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__ = __webpack_require__(327); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return _internal_operators_publishLast__WEBPACK_IMPORTED_MODULE_57__["publishLast"]; }); + +/* harmony import */ var _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__ = __webpack_require__(328); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return _internal_operators_publishReplay__WEBPACK_IMPORTED_MODULE_58__["publishReplay"]; }); + +/* harmony import */ var _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__ = __webpack_require__(329); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_operators_race__WEBPACK_IMPORTED_MODULE_59__["race"]; }); + +/* harmony import */ var _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__ = __webpack_require__(314); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return _internal_operators_reduce__WEBPACK_IMPORTED_MODULE_60__["reduce"]; }); + +/* harmony import */ var _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__ = __webpack_require__(330); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return _internal_operators_repeat__WEBPACK_IMPORTED_MODULE_61__["repeat"]; }); + +/* harmony import */ var _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__ = __webpack_require__(331); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return _internal_operators_repeatWhen__WEBPACK_IMPORTED_MODULE_62__["repeatWhen"]; }); + +/* harmony import */ var _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__ = __webpack_require__(332); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return _internal_operators_retry__WEBPACK_IMPORTED_MODULE_63__["retry"]; }); + +/* harmony import */ var _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__ = __webpack_require__(333); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return _internal_operators_retryWhen__WEBPACK_IMPORTED_MODULE_64__["retryWhen"]; }); + +/* harmony import */ var _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__ = __webpack_require__(190); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return _internal_operators_refCount__WEBPACK_IMPORTED_MODULE_65__["refCount"]; }); + +/* harmony import */ var _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__ = __webpack_require__(334); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return _internal_operators_sample__WEBPACK_IMPORTED_MODULE_66__["sample"]; }); + +/* harmony import */ var _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__ = __webpack_require__(335); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return _internal_operators_sampleTime__WEBPACK_IMPORTED_MODULE_67__["sampleTime"]; }); + +/* harmony import */ var _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__ = __webpack_require__(315); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return _internal_operators_scan__WEBPACK_IMPORTED_MODULE_68__["scan"]; }); + +/* harmony import */ var _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__ = __webpack_require__(336); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return _internal_operators_sequenceEqual__WEBPACK_IMPORTED_MODULE_69__["sequenceEqual"]; }); + +/* harmony import */ var _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__ = __webpack_require__(337); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "share", function() { return _internal_operators_share__WEBPACK_IMPORTED_MODULE_70__["share"]; }); + +/* harmony import */ var _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__ = __webpack_require__(338); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return _internal_operators_shareReplay__WEBPACK_IMPORTED_MODULE_71__["shareReplay"]; }); + +/* harmony import */ var _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__ = __webpack_require__(339); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "single", function() { return _internal_operators_single__WEBPACK_IMPORTED_MODULE_72__["single"]; }); + +/* harmony import */ var _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__ = __webpack_require__(340); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return _internal_operators_skip__WEBPACK_IMPORTED_MODULE_73__["skip"]; }); + +/* harmony import */ var _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__ = __webpack_require__(341); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return _internal_operators_skipLast__WEBPACK_IMPORTED_MODULE_74__["skipLast"]; }); + +/* harmony import */ var _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__ = __webpack_require__(342); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return _internal_operators_skipUntil__WEBPACK_IMPORTED_MODULE_75__["skipUntil"]; }); + +/* harmony import */ var _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__ = __webpack_require__(343); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return _internal_operators_skipWhile__WEBPACK_IMPORTED_MODULE_76__["skipWhile"]; }); + +/* harmony import */ var _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__ = __webpack_require__(344); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return _internal_operators_startWith__WEBPACK_IMPORTED_MODULE_77__["startWith"]; }); + +/* harmony import */ var _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__ = __webpack_require__(345); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return _internal_operators_subscribeOn__WEBPACK_IMPORTED_MODULE_78__["subscribeOn"]; }); + +/* harmony import */ var _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__ = __webpack_require__(347); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return _internal_operators_switchAll__WEBPACK_IMPORTED_MODULE_79__["switchAll"]; }); + +/* harmony import */ var _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__ = __webpack_require__(348); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return _internal_operators_switchMap__WEBPACK_IMPORTED_MODULE_80__["switchMap"]; }); + +/* harmony import */ var _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__ = __webpack_require__(349); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return _internal_operators_switchMapTo__WEBPACK_IMPORTED_MODULE_81__["switchMapTo"]; }); + +/* harmony import */ var _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__ = __webpack_require__(297); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "take", function() { return _internal_operators_take__WEBPACK_IMPORTED_MODULE_82__["take"]; }); + +/* harmony import */ var _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__ = __webpack_require__(310); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return _internal_operators_takeLast__WEBPACK_IMPORTED_MODULE_83__["takeLast"]; }); + +/* harmony import */ var _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__ = __webpack_require__(350); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return _internal_operators_takeUntil__WEBPACK_IMPORTED_MODULE_84__["takeUntil"]; }); + +/* harmony import */ var _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__ = __webpack_require__(351); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return _internal_operators_takeWhile__WEBPACK_IMPORTED_MODULE_85__["takeWhile"]; }); + +/* harmony import */ var _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__ = __webpack_require__(352); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return _internal_operators_tap__WEBPACK_IMPORTED_MODULE_86__["tap"]; }); + +/* harmony import */ var _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__ = __webpack_require__(353); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return _internal_operators_throttle__WEBPACK_IMPORTED_MODULE_87__["throttle"]; }); + +/* harmony import */ var _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__ = __webpack_require__(354); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return _internal_operators_throttleTime__WEBPACK_IMPORTED_MODULE_88__["throttleTime"]; }); + +/* harmony import */ var _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__ = __webpack_require__(296); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return _internal_operators_throwIfEmpty__WEBPACK_IMPORTED_MODULE_89__["throwIfEmpty"]; }); + +/* harmony import */ var _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__ = __webpack_require__(355); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return _internal_operators_timeInterval__WEBPACK_IMPORTED_MODULE_90__["timeInterval"]; }); + +/* harmony import */ var _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__ = __webpack_require__(356); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return _internal_operators_timeout__WEBPACK_IMPORTED_MODULE_91__["timeout"]; }); + +/* harmony import */ var _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__ = __webpack_require__(357); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return _internal_operators_timeoutWith__WEBPACK_IMPORTED_MODULE_92__["timeoutWith"]; }); + +/* harmony import */ var _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__ = __webpack_require__(358); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return _internal_operators_timestamp__WEBPACK_IMPORTED_MODULE_93__["timestamp"]; }); + +/* harmony import */ var _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__ = __webpack_require__(359); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return _internal_operators_toArray__WEBPACK_IMPORTED_MODULE_94__["toArray"]; }); + +/* harmony import */ var _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__ = __webpack_require__(360); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "window", function() { return _internal_operators_window__WEBPACK_IMPORTED_MODULE_95__["window"]; }); + +/* harmony import */ var _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__ = __webpack_require__(361); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return _internal_operators_windowCount__WEBPACK_IMPORTED_MODULE_96__["windowCount"]; }); + +/* harmony import */ var _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__ = __webpack_require__(362); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return _internal_operators_windowTime__WEBPACK_IMPORTED_MODULE_97__["windowTime"]; }); + +/* harmony import */ var _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__ = __webpack_require__(363); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return _internal_operators_windowToggle__WEBPACK_IMPORTED_MODULE_98__["windowToggle"]; }); + +/* harmony import */ var _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__ = __webpack_require__(364); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return _internal_operators_windowWhen__WEBPACK_IMPORTED_MODULE_99__["windowWhen"]; }); + +/* harmony import */ var _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__ = __webpack_require__(365); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return _internal_operators_withLatestFrom__WEBPACK_IMPORTED_MODULE_100__["withLatestFrom"]; }); + +/* harmony import */ var _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__ = __webpack_require__(366); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_operators_zip__WEBPACK_IMPORTED_MODULE_101__["zip"]; }); + +/* harmony import */ var _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__ = __webpack_require__(367); +/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return _internal_operators_zipAll__WEBPACK_IMPORTED_MODULE_102__["zipAll"]; }); + +/** PURE_IMPORTS_START PURE_IMPORTS_END */ + + + + + + + + + + + + + + + + + + + + -function mapTo(value) { - return function (source) { return source.lift(new MapToOperator(value)); }; -} -var MapToOperator = /*@__PURE__*/ (function () { - function MapToOperator(value) { - this.value = value; - } - MapToOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new MapToSubscriber(subscriber, this.value)); - }; - return MapToOperator; -}()); -var MapToSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MapToSubscriber, _super); - function MapToSubscriber(destination, value) { - var _this = _super.call(this, destination) || this; - _this.value = value; - return _this; - } - MapToSubscriber.prototype._next = function (x) { - this.destination.next(this.value); - }; - return MapToSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=mapTo.js.map -/***/ }), -/* 273 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return materialize; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(241); -/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ -function materialize() { - return function materializeOperatorFunction(source) { - return source.lift(new MaterializeOperator()); - }; -} -var MaterializeOperator = /*@__PURE__*/ (function () { - function MaterializeOperator() { - } - MaterializeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new MaterializeSubscriber(subscriber)); - }; - return MaterializeOperator; -}()); -var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MaterializeSubscriber, _super); - function MaterializeSubscriber(destination) { - return _super.call(this, destination) || this; - } - MaterializeSubscriber.prototype._next = function (value) { - this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value)); - }; - MaterializeSubscriber.prototype._error = function (err) { - var destination = this.destination; - destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err)); - destination.complete(); - }; - MaterializeSubscriber.prototype._complete = function () { - var destination = this.destination; - destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete()); - destination.complete(); - }; - return MaterializeSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=materialize.js.map -/***/ }), -/* 274 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(275); -/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ -function max(comparer) { - var max = (typeof comparer === 'function') - ? function (x, y) { return comparer(x, y) > 0 ? x : y; } - : function (x, y) { return x > y ? x : y; }; - return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(max); -} -//# sourceMappingURL=max.js.map -/***/ }), -/* 275 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(276); -/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(271); -/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(238); -/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(196); -/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ -function reduce(accumulator, seed) { - if (arguments.length >= 2) { - return function reduceOperatorFunctionWithSeed(source) { - return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__["defaultIfEmpty"])(seed))(source); - }; - } - return function reduceOperatorFunction(source) { - return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(function (acc, value, index) { return accumulator(acc, value, index + 1); }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1))(source); - }; -} -//# sourceMappingURL=reduce.js.map -/***/ }), -/* 276 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return scan; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function scan(accumulator, seed) { - var hasSeed = false; - if (arguments.length >= 2) { - hasSeed = true; - } - return function scanOperatorFunction(source) { - return source.lift(new ScanOperator(accumulator, seed, hasSeed)); - }; -} -var ScanOperator = /*@__PURE__*/ (function () { - function ScanOperator(accumulator, seed, hasSeed) { - if (hasSeed === void 0) { - hasSeed = false; - } - this.accumulator = accumulator; - this.seed = seed; - this.hasSeed = hasSeed; - } - ScanOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); - }; - return ScanOperator; -}()); -var ScanSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ScanSubscriber, _super); - function ScanSubscriber(destination, accumulator, _seed, hasSeed) { - var _this = _super.call(this, destination) || this; - _this.accumulator = accumulator; - _this._seed = _seed; - _this.hasSeed = hasSeed; - _this.index = 0; - return _this; - } - Object.defineProperty(ScanSubscriber.prototype, "seed", { - get: function () { - return this._seed; - }, - set: function (value) { - this.hasSeed = true; - this._seed = value; - }, - enumerable: true, - configurable: true - }); - ScanSubscriber.prototype._next = function (value) { - if (!this.hasSeed) { - this.seed = value; - this.destination.next(value); - } - else { - return this._tryNext(value); - } - }; - ScanSubscriber.prototype._tryNext = function (value) { - var index = this.index++; - var result; - try { - result = this.accumulator(this.seed, value, index); - } - catch (err) { - this.destination.error(err); - } - this.seed = result; - this.destination.next(result); - }; - return ScanSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=scan.js.map -/***/ }), -/* 277 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); -/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(278); -/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */ -function merge() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_0__["merge"].apply(void 0, [source].concat(observables))); }; -} -//# sourceMappingURL=merge.js.map -/***/ }), -/* 278 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); -/* harmony import */ var _operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(215); -/** PURE_IMPORTS_START _Observable,_util_isScheduler,_operators_mergeAll,_fromArray PURE_IMPORTS_END */ -function merge() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var concurrent = Number.POSITIVE_INFINITY; - var scheduler = null; - var last = observables[observables.length - 1]; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(last)) { - scheduler = observables.pop(); - if (observables.length > 1 && typeof observables[observables.length - 1] === 'number') { - concurrent = observables.pop(); - } - } - else if (typeof last === 'number') { - concurrent = observables.pop(); - } - if (scheduler === null && observables.length === 1 && observables[0] instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]) { - return observables[0]; - } - return Object(_operators_mergeAll__WEBPACK_IMPORTED_MODULE_2__["mergeAll"])(concurrent)(Object(_fromArray__WEBPACK_IMPORTED_MODULE_3__["fromArray"])(observables, scheduler)); -} -//# sourceMappingURL=merge.js.map -/***/ }), -/* 279 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return mergeMapTo; }); -/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(230); -/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ -function mergeMapTo(innerObservable, resultSelector, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - if (typeof resultSelector === 'function') { - return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, resultSelector, concurrent); - } - if (typeof resultSelector === 'number') { - concurrent = resultSelector; - } - return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, concurrent); -} -//# sourceMappingURL=mergeMapTo.js.map + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +//# sourceMappingURL=index.js.map /***/ }), -/* 280 */ +/* 271 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return mergeScan; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanOperator", function() { return MergeScanOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanSubscriber", function() { return MergeScanSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "audit", function() { return audit; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(182); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(183); -/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */ - +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function mergeScan(accumulator, seed, concurrent) { - if (concurrent === void 0) { - concurrent = Number.POSITIVE_INFINITY; - } - return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; +function audit(durationSelector) { + return function auditOperatorFunction(source) { + return source.lift(new AuditOperator(durationSelector)); + }; } -var MergeScanOperator = /*@__PURE__*/ (function () { - function MergeScanOperator(accumulator, seed, concurrent) { - this.accumulator = accumulator; - this.seed = seed; - this.concurrent = concurrent; +var AuditOperator = /*@__PURE__*/ (function () { + function AuditOperator(durationSelector) { + this.durationSelector = durationSelector; } - MergeScanOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); + AuditOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new AuditSubscriber(subscriber, this.durationSelector)); }; - return MergeScanOperator; + return AuditOperator; }()); - -var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeScanSubscriber, _super); - function MergeScanSubscriber(destination, accumulator, acc, concurrent) { +var AuditSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AuditSubscriber, _super); + function AuditSubscriber(destination, durationSelector) { var _this = _super.call(this, destination) || this; - _this.accumulator = accumulator; - _this.acc = acc; - _this.concurrent = concurrent; + _this.durationSelector = durationSelector; _this.hasValue = false; - _this.hasCompleted = false; - _this.buffer = []; - _this.active = 0; - _this.index = 0; return _this; } - MergeScanSubscriber.prototype._next = function (value) { - if (this.active < this.concurrent) { - var index = this.index++; - var destination = this.destination; - var ish = void 0; + AuditSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; + if (!this.throttled) { + var duration = void 0; try { - var accumulator = this.accumulator; - ish = accumulator(this.acc, value, index); + var durationSelector = this.durationSelector; + duration = durationSelector(value); } - catch (e) { - return destination.error(e); + catch (err) { + return this.destination.error(err); } - this.active++; - this._innerSub(ish, value, index); - } - else { - this.buffer.push(value); - } - }; - MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber); - }; - MergeScanSubscriber.prototype._complete = function () { - this.hasCompleted = true; - if (this.active === 0 && this.buffer.length === 0) { - if (this.hasValue === false) { - this.destination.next(this.acc); + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration); + if (!innerSubscription || innerSubscription.closed) { + this.clearThrottle(); + } + else { + this.add(this.throttled = innerSubscription); } - this.destination.complete(); } - this.unsubscribe(); - }; - MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var destination = this.destination; - this.acc = innerValue; - this.hasValue = true; - destination.next(innerValue); }; - MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { - var buffer = this.buffer; - var destination = this.destination; - destination.remove(innerSub); - this.active--; - if (buffer.length > 0) { - this._next(buffer.shift()); + AuditSubscriber.prototype.clearThrottle = function () { + var _a = this, value = _a.value, hasValue = _a.hasValue, throttled = _a.throttled; + if (throttled) { + this.remove(throttled); + this.throttled = null; + throttled.unsubscribe(); } - else if (this.active === 0 && this.hasCompleted) { - if (this.hasValue === false) { - this.destination.next(this.acc); - } - this.destination.complete(); + if (hasValue) { + this.value = null; + this.hasValue = false; + this.destination.next(value); } }; - return MergeScanSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); - -//# sourceMappingURL=mergeScan.js.map + AuditSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex) { + this.clearThrottle(); + }; + AuditSubscriber.prototype.notifyComplete = function () { + this.clearThrottle(); + }; + return AuditSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=audit.js.map /***/ }), -/* 281 */ +/* 272 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(275); -/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "auditTime", function() { return auditTime; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(215); +/* harmony import */ var _audit__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(271); +/* harmony import */ var _observable_timer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(267); +/** PURE_IMPORTS_START _scheduler_async,_audit,_observable_timer PURE_IMPORTS_END */ -function min(comparer) { - var min = (typeof comparer === 'function') - ? function (x, y) { return comparer(x, y) < 0 ? x : y; } - : function (x, y) { return x < y ? x : y; }; - return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(min); -} -//# sourceMappingURL=min.js.map -/***/ }), -/* 282 */ +function auditTime(duration, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return Object(_audit__WEBPACK_IMPORTED_MODULE_1__["audit"])(function () { return Object(_observable_timer__WEBPACK_IMPORTED_MODULE_2__["timer"])(duration, scheduler); }); +} +//# sourceMappingURL=auditTime.js.map + + +/***/ }), +/* 273 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return multicast; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MulticastOperator", function() { return MulticastOperator; }); -/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(283); -/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "buffer", function() { return buffer; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function multicast(subjectOrSubjectFactory, selector) { - return function multicastOperatorFunction(source) { - var subjectFactory; - if (typeof subjectOrSubjectFactory === 'function') { - subjectFactory = subjectOrSubjectFactory; - } - else { - subjectFactory = function subjectFactory() { - return subjectOrSubjectFactory; - }; - } - if (typeof selector === 'function') { - return source.lift(new MulticastOperator(subjectFactory, selector)); - } - var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__["connectableObservableDescriptor"]); - connectable.source = source; - connectable.subjectFactory = subjectFactory; - return connectable; + + +function buffer(closingNotifier) { + return function bufferOperatorFunction(source) { + return source.lift(new BufferOperator(closingNotifier)); }; } -var MulticastOperator = /*@__PURE__*/ (function () { - function MulticastOperator(subjectFactory, selector) { - this.subjectFactory = subjectFactory; - this.selector = selector; +var BufferOperator = /*@__PURE__*/ (function () { + function BufferOperator(closingNotifier) { + this.closingNotifier = closingNotifier; } - MulticastOperator.prototype.call = function (subscriber, source) { - var selector = this.selector; - var subject = this.subjectFactory(); - var subscription = selector(subject).subscribe(subscriber); - subscription.add(source.subscribe(subject)); - return subscription; + BufferOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferSubscriber(subscriber, this.closingNotifier)); }; - return MulticastOperator; + return BufferOperator; }()); - -//# sourceMappingURL=multicast.js.map +var BufferSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSubscriber, _super); + function BufferSubscriber(destination, closingNotifier) { + var _this = _super.call(this, destination) || this; + _this.buffer = []; + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, closingNotifier)); + return _this; + } + BufferSubscriber.prototype._next = function (value) { + this.buffer.push(value); + }; + BufferSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var buffer = this.buffer; + this.buffer = []; + this.destination.next(buffer); + }; + return BufferSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=buffer.js.map /***/ }), -/* 283 */ +/* 274 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return ConnectableObservable; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "connectableObservableDescriptor", function() { return connectableObservableDescriptor; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferCount", function() { return bufferCount; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(193); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(177); -/* harmony import */ var _operators_refCount__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(284); -/** PURE_IMPORTS_START tslib,_Subject,_Observable,_Subscriber,_Subscription,_operators_refCount PURE_IMPORTS_END */ - - - - +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var ConnectableObservable = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableObservable, _super); - function ConnectableObservable(source, subjectFactory) { - var _this = _super.call(this) || this; - _this.source = source; - _this.subjectFactory = subjectFactory; - _this._refCount = 0; - _this._isComplete = false; - return _this; +function bufferCount(bufferSize, startBufferEvery) { + if (startBufferEvery === void 0) { + startBufferEvery = null; } - ConnectableObservable.prototype._subscribe = function (subscriber) { - return this.getSubject().subscribe(subscriber); + return function bufferCountOperatorFunction(source) { + return source.lift(new BufferCountOperator(bufferSize, startBufferEvery)); }; - ConnectableObservable.prototype.getSubject = function () { - var subject = this._subject; - if (!subject || subject.isStopped) { - this._subject = this.subjectFactory(); +} +var BufferCountOperator = /*@__PURE__*/ (function () { + function BufferCountOperator(bufferSize, startBufferEvery) { + this.bufferSize = bufferSize; + this.startBufferEvery = startBufferEvery; + if (!startBufferEvery || bufferSize === startBufferEvery) { + this.subscriberClass = BufferCountSubscriber; } - return this._subject; - }; - ConnectableObservable.prototype.connect = function () { - var connection = this._connection; - if (!connection) { - this._isComplete = false; - connection = this._connection = new _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"](); - connection.add(this.source - .subscribe(new ConnectableSubscriber(this.getSubject(), this))); - if (connection.closed) { - this._connection = null; - connection = _Subscription__WEBPACK_IMPORTED_MODULE_4__["Subscription"].EMPTY; - } + else { + this.subscriberClass = BufferSkipCountSubscriber; } - return connection; - }; - ConnectableObservable.prototype.refCount = function () { - return Object(_operators_refCount__WEBPACK_IMPORTED_MODULE_5__["refCount"])()(this); - }; - return ConnectableObservable; -}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); - -var connectableObservableDescriptor = /*@__PURE__*/ (function () { - var connectableProto = ConnectableObservable.prototype; - return { - operator: { value: null }, - _refCount: { value: 0, writable: true }, - _subject: { value: null, writable: true }, - _connection: { value: null, writable: true }, - _subscribe: { value: connectableProto._subscribe }, - _isComplete: { value: connectableProto._isComplete, writable: true }, - getSubject: { value: connectableProto.getSubject }, - connect: { value: connectableProto.connect }, - refCount: { value: connectableProto.refCount } + } + BufferCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new this.subscriberClass(subscriber, this.bufferSize, this.startBufferEvery)); }; -})(); -var ConnectableSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ConnectableSubscriber, _super); - function ConnectableSubscriber(destination, connectable) { + return BufferCountOperator; +}()); +var BufferCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferCountSubscriber, _super); + function BufferCountSubscriber(destination, bufferSize) { var _this = _super.call(this, destination) || this; - _this.connectable = connectable; + _this.bufferSize = bufferSize; + _this.buffer = []; return _this; } - ConnectableSubscriber.prototype._error = function (err) { - this._unsubscribe(); - _super.prototype._error.call(this, err); - }; - ConnectableSubscriber.prototype._complete = function () { - this.connectable._isComplete = true; - this._unsubscribe(); - _super.prototype._complete.call(this); - }; - ConnectableSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (connectable) { - this.connectable = null; - var connection = connectable._connection; - connectable._refCount = 0; - connectable._subject = null; - connectable._connection = null; - if (connection) { - connection.unsubscribe(); - } + BufferCountSubscriber.prototype._next = function (value) { + var buffer = this.buffer; + buffer.push(value); + if (buffer.length == this.bufferSize) { + this.destination.next(buffer); + this.buffer = []; } }; - return ConnectableSubscriber; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__["SubjectSubscriber"])); -var RefCountOperator = /*@__PURE__*/ (function () { - function RefCountOperator(connectable) { - this.connectable = connectable; - } - RefCountOperator.prototype.call = function (subscriber, source) { - var connectable = this.connectable; - connectable._refCount++; - var refCounter = new RefCountSubscriber(subscriber, connectable); - var subscription = source.subscribe(refCounter); - if (!refCounter.closed) { - refCounter.connection = connectable.connect(); + BufferCountSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer.length > 0) { + this.destination.next(buffer); } - return subscription; + _super.prototype._complete.call(this); }; - return RefCountOperator; -}()); -var RefCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super); - function RefCountSubscriber(destination, connectable) { + return BufferCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +var BufferSkipCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferSkipCountSubscriber, _super); + function BufferSkipCountSubscriber(destination, bufferSize, startBufferEvery) { var _this = _super.call(this, destination) || this; - _this.connectable = connectable; + _this.bufferSize = bufferSize; + _this.startBufferEvery = startBufferEvery; + _this.buffers = []; + _this.count = 0; return _this; } - RefCountSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (!connectable) { - this.connection = null; - return; - } - this.connectable = null; - var refCount = connectable._refCount; - if (refCount <= 0) { - this.connection = null; - return; + BufferSkipCountSubscriber.prototype._next = function (value) { + var _a = this, bufferSize = _a.bufferSize, startBufferEvery = _a.startBufferEvery, buffers = _a.buffers, count = _a.count; + this.count++; + if (count % startBufferEvery === 0) { + buffers.push([]); } - connectable._refCount = refCount - 1; - if (refCount > 1) { - this.connection = null; - return; + for (var i = buffers.length; i--;) { + var buffer = buffers[i]; + buffer.push(value); + if (buffer.length === bufferSize) { + buffers.splice(i, 1); + this.destination.next(buffer); + } } - var connection = this.connection; - var sharedConnection = connectable._connection; - this.connection = null; - if (sharedConnection && (!connection || sharedConnection === connection)) { - sharedConnection.unsubscribe(); + }; + BufferSkipCountSubscriber.prototype._complete = function () { + var _a = this, buffers = _a.buffers, destination = _a.destination; + while (buffers.length > 0) { + var buffer = buffers.shift(); + if (buffer.length > 0) { + destination.next(buffer); + } } + _super.prototype._complete.call(this); }; - return RefCountSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); -//# sourceMappingURL=ConnectableObservable.js.map + return BufferSkipCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=bufferCount.js.map /***/ }), -/* 284 */ +/* 275 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "refCount", function() { return refCount; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferTime", function() { return bufferTime; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(205); +/** PURE_IMPORTS_START tslib,_scheduler_async,_Subscriber,_util_isScheduler PURE_IMPORTS_END */ -function refCount() { - return function refCountOperatorFunction(source) { - return source.lift(new RefCountOperator(source)); + + +function bufferTime(bufferTimeSpan) { + var length = arguments.length; + var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_3__["isScheduler"])(arguments[arguments.length - 1])) { + scheduler = arguments[arguments.length - 1]; + length--; + } + var bufferCreationInterval = null; + if (length >= 2) { + bufferCreationInterval = arguments[1]; + } + var maxBufferSize = Number.POSITIVE_INFINITY; + if (length >= 3) { + maxBufferSize = arguments[2]; + } + return function bufferTimeOperatorFunction(source) { + return source.lift(new BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler)); }; } -var RefCountOperator = /*@__PURE__*/ (function () { - function RefCountOperator(connectable) { - this.connectable = connectable; +var BufferTimeOperator = /*@__PURE__*/ (function () { + function BufferTimeOperator(bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { + this.bufferTimeSpan = bufferTimeSpan; + this.bufferCreationInterval = bufferCreationInterval; + this.maxBufferSize = maxBufferSize; + this.scheduler = scheduler; } - RefCountOperator.prototype.call = function (subscriber, source) { - var connectable = this.connectable; - connectable._refCount++; - var refCounter = new RefCountSubscriber(subscriber, connectable); - var subscription = source.subscribe(refCounter); - if (!refCounter.closed) { - refCounter.connection = connectable.connect(); - } - return subscription; + BufferTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferTimeSubscriber(subscriber, this.bufferTimeSpan, this.bufferCreationInterval, this.maxBufferSize, this.scheduler)); }; - return RefCountOperator; + return BufferTimeOperator; }()); -var RefCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RefCountSubscriber, _super); - function RefCountSubscriber(destination, connectable) { +var Context = /*@__PURE__*/ (function () { + function Context() { + this.buffer = []; + } + return Context; +}()); +var BufferTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferTimeSubscriber, _super); + function BufferTimeSubscriber(destination, bufferTimeSpan, bufferCreationInterval, maxBufferSize, scheduler) { var _this = _super.call(this, destination) || this; - _this.connectable = connectable; + _this.bufferTimeSpan = bufferTimeSpan; + _this.bufferCreationInterval = bufferCreationInterval; + _this.maxBufferSize = maxBufferSize; + _this.scheduler = scheduler; + _this.contexts = []; + var context = _this.openContext(); + _this.timespanOnly = bufferCreationInterval == null || bufferCreationInterval < 0; + if (_this.timespanOnly) { + var timeSpanOnlyState = { subscriber: _this, context: context, bufferTimeSpan: bufferTimeSpan }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); + } + else { + var closeState = { subscriber: _this, context: context }; + var creationState = { bufferTimeSpan: bufferTimeSpan, bufferCreationInterval: bufferCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchBufferCreation, bufferCreationInterval, creationState)); + } return _this; } - RefCountSubscriber.prototype._unsubscribe = function () { - var connectable = this.connectable; - if (!connectable) { - this.connection = null; - return; + BufferTimeSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + var filledBufferContext; + for (var i = 0; i < len; i++) { + var context_1 = contexts[i]; + var buffer = context_1.buffer; + buffer.push(value); + if (buffer.length == this.maxBufferSize) { + filledBufferContext = context_1; + } } - this.connectable = null; - var refCount = connectable._refCount; - if (refCount <= 0) { - this.connection = null; - return; + if (filledBufferContext) { + this.onBufferFull(filledBufferContext); } - connectable._refCount = refCount - 1; - if (refCount > 1) { - this.connection = null; - return; + }; + BufferTimeSubscriber.prototype._error = function (err) { + this.contexts.length = 0; + _super.prototype._error.call(this, err); + }; + BufferTimeSubscriber.prototype._complete = function () { + var _a = this, contexts = _a.contexts, destination = _a.destination; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + destination.next(context_2.buffer); } - var connection = this.connection; - var sharedConnection = connectable._connection; - this.connection = null; - if (sharedConnection && (!connection || sharedConnection === connection)) { - sharedConnection.unsubscribe(); + _super.prototype._complete.call(this); + }; + BufferTimeSubscriber.prototype._unsubscribe = function () { + this.contexts = null; + }; + BufferTimeSubscriber.prototype.onBufferFull = function (context) { + this.closeContext(context); + var closeAction = context.closeAction; + closeAction.unsubscribe(); + this.remove(closeAction); + if (!this.closed && this.timespanOnly) { + context = this.openContext(); + var bufferTimeSpan = this.bufferTimeSpan; + var timeSpanOnlyState = { subscriber: this, context: context, bufferTimeSpan: bufferTimeSpan }; + this.add(context.closeAction = this.scheduler.schedule(dispatchBufferTimeSpanOnly, bufferTimeSpan, timeSpanOnlyState)); } }; - return RefCountSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=refCount.js.map + BufferTimeSubscriber.prototype.openContext = function () { + var context = new Context(); + this.contexts.push(context); + return context; + }; + BufferTimeSubscriber.prototype.closeContext = function (context) { + this.destination.next(context.buffer); + var contexts = this.contexts; + var spliceIndex = contexts ? contexts.indexOf(context) : -1; + if (spliceIndex >= 0) { + contexts.splice(contexts.indexOf(context), 1); + } + }; + return BufferTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); +function dispatchBufferTimeSpanOnly(state) { + var subscriber = state.subscriber; + var prevContext = state.context; + if (prevContext) { + subscriber.closeContext(prevContext); + } + if (!subscriber.closed) { + state.context = subscriber.openContext(); + state.context.closeAction = this.schedule(state, state.bufferTimeSpan); + } +} +function dispatchBufferCreation(state) { + var bufferCreationInterval = state.bufferCreationInterval, bufferTimeSpan = state.bufferTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler; + var context = subscriber.openContext(); + var action = this; + if (!subscriber.closed) { + subscriber.add(context.closeAction = scheduler.schedule(dispatchBufferClose, bufferTimeSpan, { subscriber: subscriber, context: context })); + action.schedule(state, bufferCreationInterval); + } +} +function dispatchBufferClose(arg) { + var subscriber = arg.subscriber, context = arg.context; + subscriber.closeContext(context); +} +//# sourceMappingURL=bufferTime.js.map /***/ }), -/* 285 */ +/* 276 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "observeOn", function() { return observeOn; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnOperator", function() { return ObserveOnOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnSubscriber", function() { return ObserveOnSubscriber; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ObserveOnMessage", function() { return ObserveOnMessage; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferToggle", function() { return bufferToggle; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(241); -/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/** PURE_IMPORTS_START tslib,_Subscription,_util_subscribeToResult,_OuterSubscriber PURE_IMPORTS_END */ -function observeOn(scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - return function observeOnOperatorFunction(source) { - return source.lift(new ObserveOnOperator(scheduler, delay)); + +function bufferToggle(openings, closingSelector) { + return function bufferToggleOperatorFunction(source) { + return source.lift(new BufferToggleOperator(openings, closingSelector)); }; } -var ObserveOnOperator = /*@__PURE__*/ (function () { - function ObserveOnOperator(scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - this.scheduler = scheduler; - this.delay = delay; +var BufferToggleOperator = /*@__PURE__*/ (function () { + function BufferToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; } - ObserveOnOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ObserveOnSubscriber(subscriber, this.scheduler, this.delay)); + BufferToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferToggleSubscriber(subscriber, this.openings, this.closingSelector)); }; - return ObserveOnOperator; + return BufferToggleOperator; }()); - -var ObserveOnSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ObserveOnSubscriber, _super); - function ObserveOnSubscriber(destination, scheduler, delay) { - if (delay === void 0) { - delay = 0; - } +var BufferToggleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferToggleSubscriber, _super); + function BufferToggleSubscriber(destination, openings, closingSelector) { var _this = _super.call(this, destination) || this; - _this.scheduler = scheduler; - _this.delay = delay; - return _this; - } - ObserveOnSubscriber.dispatch = function (arg) { - var notification = arg.notification, destination = arg.destination; - notification.observe(destination); - this.unsubscribe(); + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, openings)); + return _this; + } + BufferToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].buffer.push(value); + } }; - ObserveOnSubscriber.prototype.scheduleMessage = function (notification) { - var destination = this.destination; - destination.add(this.scheduler.schedule(ObserveOnSubscriber.dispatch, this.delay, new ObserveOnMessage(notification, this.destination))); + BufferToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_1 = contexts.shift(); + context_1.subscription.unsubscribe(); + context_1.buffer = null; + context_1.subscription = null; + } + this.contexts = null; + _super.prototype._error.call(this, err); }; - ObserveOnSubscriber.prototype._next = function (value) { - this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value)); + BufferToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + while (contexts.length > 0) { + var context_2 = contexts.shift(); + this.destination.next(context_2.buffer); + context_2.subscription.unsubscribe(); + context_2.buffer = null; + context_2.subscription = null; + } + this.contexts = null; + _super.prototype._complete.call(this); }; - ObserveOnSubscriber.prototype._error = function (err) { - this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err)); - this.unsubscribe(); + BufferToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + outerValue ? this.closeBuffer(outerValue) : this.openBuffer(innerValue); }; - ObserveOnSubscriber.prototype._complete = function () { - this.scheduleMessage(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete()); - this.unsubscribe(); + BufferToggleSubscriber.prototype.notifyComplete = function (innerSub) { + this.closeBuffer(innerSub.context); }; - return ObserveOnSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - -var ObserveOnMessage = /*@__PURE__*/ (function () { - function ObserveOnMessage(notification, destination) { - this.notification = notification; - this.destination = destination; - } - return ObserveOnMessage; -}()); - -//# sourceMappingURL=observeOn.js.map + BufferToggleSubscriber.prototype.openBuffer = function (value) { + try { + var closingSelector = this.closingSelector; + var closingNotifier = closingSelector.call(this, value); + if (closingNotifier) { + this.trySubscribe(closingNotifier); + } + } + catch (err) { + this._error(err); + } + }; + BufferToggleSubscriber.prototype.closeBuffer = function (context) { + var contexts = this.contexts; + if (contexts && context) { + var buffer = context.buffer, subscription = context.subscription; + this.destination.next(buffer); + contexts.splice(contexts.indexOf(context), 1); + this.remove(subscription); + subscription.unsubscribe(); + } + }; + BufferToggleSubscriber.prototype.trySubscribe = function (closingNotifier) { + var contexts = this.contexts; + var buffer = []; + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + var context = { buffer: buffer, subscription: subscription }; + contexts.push(context); + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, closingNotifier, context); + if (!innerSubscription || innerSubscription.closed) { + this.closeBuffer(context); + } + else { + innerSubscription.context = context; + this.add(innerSubscription); + subscription.add(innerSubscription); + } + }; + return BufferToggleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=bufferToggle.js.map /***/ }), -/* 286 */ +/* 277 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNextStatic", function() { return onErrorResumeNextStatic; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bufferWhen", function() { return bufferWhen; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(218); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(183); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - - +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function onErrorResumeNext() { - var nextSources = []; - for (var _i = 0; _i < arguments.length; _i++) { - nextSources[_i] = arguments[_i]; - } - if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) { - nextSources = nextSources[0]; - } - return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; -} -function onErrorResumeNextStatic() { - var nextSources = []; - for (var _i = 0; _i < arguments.length; _i++) { - nextSources[_i] = arguments[_i]; - } - var source = null; - if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) { - nextSources = nextSources[0]; - } - source = nextSources.shift(); - return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__["from"])(source, null).lift(new OnErrorResumeNextOperator(nextSources)); +function bufferWhen(closingSelector) { + return function (source) { + return source.lift(new BufferWhenOperator(closingSelector)); + }; } -var OnErrorResumeNextOperator = /*@__PURE__*/ (function () { - function OnErrorResumeNextOperator(nextSources) { - this.nextSources = nextSources; +var BufferWhenOperator = /*@__PURE__*/ (function () { + function BufferWhenOperator(closingSelector) { + this.closingSelector = closingSelector; } - OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); + BufferWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new BufferWhenSubscriber(subscriber, this.closingSelector)); }; - return OnErrorResumeNextOperator; + return BufferWhenOperator; }()); -var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OnErrorResumeNextSubscriber, _super); - function OnErrorResumeNextSubscriber(destination, nextSources) { +var BufferWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BufferWhenSubscriber, _super); + function BufferWhenSubscriber(destination, closingSelector) { var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.nextSources = nextSources; + _this.closingSelector = closingSelector; + _this.subscribing = false; + _this.openBuffer(); return _this; } - OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) { - this.subscribeToNextSource(); + BufferWhenSubscriber.prototype._next = function (value) { + this.buffer.push(value); }; - OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) { - this.subscribeToNextSource(); + BufferWhenSubscriber.prototype._complete = function () { + var buffer = this.buffer; + if (buffer) { + this.destination.next(buffer); + } + _super.prototype._complete.call(this); }; - OnErrorResumeNextSubscriber.prototype._error = function (err) { - this.subscribeToNextSource(); - this.unsubscribe(); + BufferWhenSubscriber.prototype._unsubscribe = function () { + this.buffer = null; + this.subscribing = false; }; - OnErrorResumeNextSubscriber.prototype._complete = function () { - this.subscribeToNextSource(); - this.unsubscribe(); + BufferWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openBuffer(); }; - OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { - var next = this.nextSources.shift(); - if (!!next) { - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__["InnerSubscriber"](this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, next, undefined, undefined, innerSubscriber); + BufferWhenSubscriber.prototype.notifyComplete = function () { + if (this.subscribing) { + this.complete(); } else { - this.destination.complete(); + this.openBuffer(); } }; - return OnErrorResumeNextSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); -//# sourceMappingURL=onErrorResumeNext.js.map + BufferWhenSubscriber.prototype.openBuffer = function () { + var closingSubscription = this.closingSubscription; + if (closingSubscription) { + this.remove(closingSubscription); + closingSubscription.unsubscribe(); + } + var buffer = this.buffer; + if (this.buffer) { + this.destination.next(buffer); + } + this.buffer = []; + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (err) { + return this.error(err); + } + closingSubscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); + this.closingSubscription = closingSubscription; + this.add(closingSubscription); + this.subscribing = true; + closingSubscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, closingNotifier)); + this.subscribing = false; + }; + return BufferWhenSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); +//# sourceMappingURL=bufferWhen.js.map /***/ }), -/* 287 */ +/* 278 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return pairwise; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "catchError", function() { return catchError; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function pairwise() { - return function (source) { return source.lift(new PairwiseOperator()); }; + + +function catchError(selector) { + return function catchErrorOperatorFunction(source) { + var operator = new CatchOperator(selector); + var caught = source.lift(operator); + return (operator.caught = caught); + }; } -var PairwiseOperator = /*@__PURE__*/ (function () { - function PairwiseOperator() { +var CatchOperator = /*@__PURE__*/ (function () { + function CatchOperator(selector) { + this.selector = selector; } - PairwiseOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new PairwiseSubscriber(subscriber)); + CatchOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CatchSubscriber(subscriber, this.selector, this.caught)); }; - return PairwiseOperator; + return CatchOperator; }()); -var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PairwiseSubscriber, _super); - function PairwiseSubscriber(destination) { +var CatchSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CatchSubscriber, _super); + function CatchSubscriber(destination, selector, caught) { var _this = _super.call(this, destination) || this; - _this.hasPrev = false; + _this.selector = selector; + _this.caught = caught; return _this; } - PairwiseSubscriber.prototype._next = function (value) { - var pair; - if (this.hasPrev) { - pair = [this.prev, value]; - } - else { - this.hasPrev = true; - } - this.prev = value; - if (pair) { - this.destination.next(pair); + CatchSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var result = void 0; + try { + result = this.selector(err, this.caught); + } + catch (err2) { + _super.prototype.error.call(this, err2); + return; + } + this._unsubscribeAndRecycle(); + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined); + this.add(innerSubscriber); + Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, undefined, undefined, innerSubscriber); } }; - return PairwiseSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=pairwise.js.map + return CatchSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=catchError.js.map /***/ }), -/* 288 */ +/* 279 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); -/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(289); -/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(251); -/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineAll", function() { return combineAll; }); +/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(228); +/** PURE_IMPORTS_START _observable_combineLatest PURE_IMPORTS_END */ -function partition(predicate, thisArg) { - return function (source) { - return [ - Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(predicate, thisArg)(source), - Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(source) - ]; - }; +function combineAll(project) { + return function (source) { return source.lift(new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_0__["CombineLatestOperator"](project)); }; } -//# sourceMappingURL=partition.js.map +//# sourceMappingURL=combineAll.js.map /***/ }), -/* 289 */ +/* 280 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "not", function() { return not; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -function not(pred, thisArg) { - function notPred() { - return !(notPred.pred.apply(notPred.thisArg, arguments)); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return combineLatest; }); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); +/* harmony import */ var _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(228); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(243); +/** PURE_IMPORTS_START _util_isArray,_observable_combineLatest,_observable_from PURE_IMPORTS_END */ + + + +var none = {}; +function combineLatest() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; } - notPred.pred = pred; - notPred.thisArg = thisArg; - return notPred; + var project = null; + if (typeof observables[observables.length - 1] === 'function') { + project = observables.pop(); + } + if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) { + observables = observables[0].slice(); + } + return function (source) { return source.lift.call(Object(_observable_from__WEBPACK_IMPORTED_MODULE_2__["from"])([source].concat(observables)), new _observable_combineLatest__WEBPACK_IMPORTED_MODULE_1__["CombineLatestOperator"](project)); }; } -//# sourceMappingURL=not.js.map +//# sourceMappingURL=combineLatest.js.map /***/ }), -/* 290 */ +/* 281 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return pluck; }); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(231); -/** PURE_IMPORTS_START _map PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return concat; }); +/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(239); +/** PURE_IMPORTS_START _observable_concat PURE_IMPORTS_END */ -function pluck() { - var properties = []; +function concat() { + var observables = []; for (var _i = 0; _i < arguments.length; _i++) { - properties[_i] = arguments[_i]; - } - var length = properties.length; - if (length === 0) { - throw new Error('list of properties cannot be empty.'); + observables[_i] = arguments[_i]; } - return function (source) { return Object(_map__WEBPACK_IMPORTED_MODULE_0__["map"])(plucker(properties, length))(source); }; -} -function plucker(props, length) { - var mapper = function (x) { - var currentProp = x; - for (var i = 0; i < length; i++) { - var p = currentProp[props[i]]; - if (typeof p !== 'undefined') { - currentProp = p; - } - else { - return undefined; - } - } - return currentProp; - }; - return mapper; + return function (source) { return source.lift.call(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"].apply(void 0, [source].concat(observables))); }; } -//# sourceMappingURL=pluck.js.map +//# sourceMappingURL=concat.js.map /***/ }), -/* 291 */ +/* 282 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(265); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(282); -/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMap", function() { return concatMap; }); +/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242); +/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ -function publish(selector) { - return selector ? - Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"](); }, selector) : - Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"]()); +function concatMap(project, resultSelector) { + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(project, resultSelector, 1); } -//# sourceMappingURL=publish.js.map +//# sourceMappingURL=concatMap.js.map /***/ }), -/* 292 */ +/* 283 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); -/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(293); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(282); -/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "concatMapTo", function() { return concatMapTo; }); +/* harmony import */ var _concatMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(282); +/** PURE_IMPORTS_START _concatMap PURE_IMPORTS_END */ -function publishBehavior(value) { - return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__["BehaviorSubject"](value))(source); }; +function concatMapTo(innerObservable, resultSelector) { + return Object(_concatMap__WEBPACK_IMPORTED_MODULE_0__["concatMap"])(function () { return innerObservable; }, resultSelector); } -//# sourceMappingURL=publishBehavior.js.map +//# sourceMappingURL=concatMapTo.js.map /***/ }), -/* 293 */ +/* 284 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return BehaviorSubject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "count", function() { return count; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(266); -/** PURE_IMPORTS_START tslib,_Subject,_util_ObjectUnsubscribedError PURE_IMPORTS_END */ - +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var BehaviorSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](BehaviorSubject, _super); - function BehaviorSubject(_value) { - var _this = _super.call(this) || this; - _this._value = _value; +function count(predicate) { + return function (source) { return source.lift(new CountOperator(predicate, source)); }; +} +var CountOperator = /*@__PURE__*/ (function () { + function CountOperator(predicate, source) { + this.predicate = predicate; + this.source = source; + } + CountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new CountSubscriber(subscriber, this.predicate, this.source)); + }; + return CountOperator; +}()); +var CountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountSubscriber, _super); + function CountSubscriber(destination, predicate, source) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.source = source; + _this.count = 0; + _this.index = 0; return _this; } - Object.defineProperty(BehaviorSubject.prototype, "value", { - get: function () { - return this.getValue(); - }, - enumerable: true, - configurable: true - }); - BehaviorSubject.prototype._subscribe = function (subscriber) { - var subscription = _super.prototype._subscribe.call(this, subscriber); - if (subscription && !subscription.closed) { - subscriber.next(this._value); + CountSubscriber.prototype._next = function (value) { + if (this.predicate) { + this._tryPredicate(value); + } + else { + this.count++; } - return subscription; }; - BehaviorSubject.prototype.getValue = function () { - if (this.hasError) { - throw this.thrownError; + CountSubscriber.prototype._tryPredicate = function (value) { + var result; + try { + result = this.predicate(value, this.index++, this.source); } - else if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_2__["ObjectUnsubscribedError"](); + catch (err) { + this.destination.error(err); + return; } - else { - return this._value; + if (result) { + this.count++; } }; - BehaviorSubject.prototype.next = function (value) { - _super.prototype.next.call(this, this._value = value); + CountSubscriber.prototype._complete = function () { + this.destination.next(this.count); + this.destination.complete(); }; - return BehaviorSubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); - -//# sourceMappingURL=BehaviorSubject.js.map + return CountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=count.js.map /***/ }), -/* 294 */ +/* 285 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); -/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(295); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(282); -/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ - - -function publishLast() { - return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__["AsyncSubject"]())(source); }; -} -//# sourceMappingURL=publishLast.js.map +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounce", function() { return debounce; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -/***/ }), -/* 295 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return AsyncSubject; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); -/** PURE_IMPORTS_START tslib,_Subject,_Subscription PURE_IMPORTS_END */ - - - -var AsyncSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsyncSubject, _super); - function AsyncSubject() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.value = null; - _this.hasNext = false; - _this.hasCompleted = false; +function debounce(durationSelector) { + return function (source) { return source.lift(new DebounceOperator(durationSelector)); }; +} +var DebounceOperator = /*@__PURE__*/ (function () { + function DebounceOperator(durationSelector) { + this.durationSelector = durationSelector; + } + DebounceOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceSubscriber(subscriber, this.durationSelector)); + }; + return DebounceOperator; +}()); +var DebounceSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceSubscriber, _super); + function DebounceSubscriber(destination, durationSelector) { + var _this = _super.call(this, destination) || this; + _this.durationSelector = durationSelector; + _this.hasValue = false; + _this.durationSubscription = null; return _this; } - AsyncSubject.prototype._subscribe = function (subscriber) { - if (this.hasError) { - subscriber.error(this.thrownError); - return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; + DebounceSubscriber.prototype._next = function (value) { + try { + var result = this.durationSelector.call(this, value); + if (result) { + this._tryNext(value, result); + } } - else if (this.hasCompleted && this.hasNext) { - subscriber.next(this.value); - subscriber.complete(); - return _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"].EMPTY; + catch (err) { + this.destination.error(err); } - return _super.prototype._subscribe.call(this, subscriber); }; - AsyncSubject.prototype.next = function (value) { - if (!this.hasCompleted) { - this.value = value; - this.hasNext = true; - } + DebounceSubscriber.prototype._complete = function () { + this.emitValue(); + this.destination.complete(); }; - AsyncSubject.prototype.error = function (error) { - if (!this.hasCompleted) { - _super.prototype.error.call(this, error); + DebounceSubscriber.prototype._tryNext = function (value, duration) { + var subscription = this.durationSubscription; + this.value = value; + this.hasValue = true; + if (subscription) { + subscription.unsubscribe(); + this.remove(subscription); + } + subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration); + if (subscription && !subscription.closed) { + this.add(this.durationSubscription = subscription); } }; - AsyncSubject.prototype.complete = function () { - this.hasCompleted = true; - if (this.hasNext) { - _super.prototype.next.call(this, this.value); + DebounceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.emitValue(); + }; + DebounceSubscriber.prototype.notifyComplete = function () { + this.emitValue(); + }; + DebounceSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + var value = this.value; + var subscription = this.durationSubscription; + if (subscription) { + this.durationSubscription = null; + subscription.unsubscribe(); + this.remove(subscription); + } + this.value = null; + this.hasValue = false; + _super.prototype._next.call(this, value); } - _super.prototype.complete.call(this); }; - return AsyncSubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); - -//# sourceMappingURL=AsyncSubject.js.map - - -/***/ }), -/* 296 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); -/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(297); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(282); -/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ - - -function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { - if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { - scheduler = selectorOrScheduler; - } - var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; - var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); - return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return subject; }, selector)(source); }; -} -//# sourceMappingURL=publishReplay.js.map + return DebounceSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=debounce.js.map /***/ }), -/* 297 */ +/* 286 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return ReplaySubject; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "debounceTime", function() { return debounceTime; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(298); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(177); -/* harmony import */ var _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(285); -/* harmony import */ var _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(266); -/* harmony import */ var _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(267); -/** PURE_IMPORTS_START tslib,_Subject,_scheduler_queue,_Subscription,_operators_observeOn,_util_ObjectUnsubscribedError,_SubjectSubscription PURE_IMPORTS_END */ - - - - +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ -var ReplaySubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ReplaySubject, _super); - function ReplaySubject(bufferSize, windowTime, scheduler) { - if (bufferSize === void 0) { - bufferSize = Number.POSITIVE_INFINITY; - } - if (windowTime === void 0) { - windowTime = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this) || this; +function debounceTime(dueTime, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + } + return function (source) { return source.lift(new DebounceTimeOperator(dueTime, scheduler)); }; +} +var DebounceTimeOperator = /*@__PURE__*/ (function () { + function DebounceTimeOperator(dueTime, scheduler) { + this.dueTime = dueTime; + this.scheduler = scheduler; + } + DebounceTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DebounceTimeSubscriber(subscriber, this.dueTime, this.scheduler)); + }; + return DebounceTimeOperator; +}()); +var DebounceTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DebounceTimeSubscriber, _super); + function DebounceTimeSubscriber(destination, dueTime, scheduler) { + var _this = _super.call(this, destination) || this; + _this.dueTime = dueTime; _this.scheduler = scheduler; - _this._events = []; - _this._infiniteTimeWindow = false; - _this._bufferSize = bufferSize < 1 ? 1 : bufferSize; - _this._windowTime = windowTime < 1 ? 1 : windowTime; - if (windowTime === Number.POSITIVE_INFINITY) { - _this._infiniteTimeWindow = true; - _this.next = _this.nextInfiniteTimeWindow; - } - else { - _this.next = _this.nextTimeWindow; - } + _this.debouncedSubscription = null; + _this.lastValue = null; + _this.hasValue = false; return _this; } - ReplaySubject.prototype.nextInfiniteTimeWindow = function (value) { - var _events = this._events; - _events.push(value); - if (_events.length > this._bufferSize) { - _events.shift(); - } - _super.prototype.next.call(this, value); + DebounceTimeSubscriber.prototype._next = function (value) { + this.clearDebounce(); + this.lastValue = value; + this.hasValue = true; + this.add(this.debouncedSubscription = this.scheduler.schedule(dispatchNext, this.dueTime, this)); }; - ReplaySubject.prototype.nextTimeWindow = function (value) { - this._events.push(new ReplayEvent(this._getNow(), value)); - this._trimBufferThenGetEvents(); - _super.prototype.next.call(this, value); + DebounceTimeSubscriber.prototype._complete = function () { + this.debouncedNext(); + this.destination.complete(); }; - ReplaySubject.prototype._subscribe = function (subscriber) { - var _infiniteTimeWindow = this._infiniteTimeWindow; - var _events = _infiniteTimeWindow ? this._events : this._trimBufferThenGetEvents(); - var scheduler = this.scheduler; - var len = _events.length; - var subscription; - if (this.closed) { - throw new _util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_5__["ObjectUnsubscribedError"](); - } - else if (this.isStopped || this.hasError) { - subscription = _Subscription__WEBPACK_IMPORTED_MODULE_3__["Subscription"].EMPTY; - } - else { - this.observers.push(subscriber); - subscription = new _SubjectSubscription__WEBPACK_IMPORTED_MODULE_6__["SubjectSubscription"](this, subscriber); - } - if (scheduler) { - subscriber.add(subscriber = new _operators_observeOn__WEBPACK_IMPORTED_MODULE_4__["ObserveOnSubscriber"](subscriber, scheduler)); - } - if (_infiniteTimeWindow) { - for (var i = 0; i < len && !subscriber.closed; i++) { - subscriber.next(_events[i]); - } - } - else { - for (var i = 0; i < len && !subscriber.closed; i++) { - subscriber.next(_events[i].value); - } - } - if (this.hasError) { - subscriber.error(this.thrownError); - } - else if (this.isStopped) { - subscriber.complete(); + DebounceTimeSubscriber.prototype.debouncedNext = function () { + this.clearDebounce(); + if (this.hasValue) { + var lastValue = this.lastValue; + this.lastValue = null; + this.hasValue = false; + this.destination.next(lastValue); } - return subscription; - }; - ReplaySubject.prototype._getNow = function () { - return (this.scheduler || _scheduler_queue__WEBPACK_IMPORTED_MODULE_2__["queue"]).now(); }; - ReplaySubject.prototype._trimBufferThenGetEvents = function () { - var now = this._getNow(); - var _bufferSize = this._bufferSize; - var _windowTime = this._windowTime; - var _events = this._events; - var eventsCount = _events.length; - var spliceCount = 0; - while (spliceCount < eventsCount) { - if ((now - _events[spliceCount].time) < _windowTime) { - break; - } - spliceCount++; - } - if (eventsCount > _bufferSize) { - spliceCount = Math.max(spliceCount, eventsCount - _bufferSize); - } - if (spliceCount > 0) { - _events.splice(0, spliceCount); + DebounceTimeSubscriber.prototype.clearDebounce = function () { + var debouncedSubscription = this.debouncedSubscription; + if (debouncedSubscription !== null) { + this.remove(debouncedSubscription); + debouncedSubscription.unsubscribe(); + this.debouncedSubscription = null; } - return _events; }; - return ReplaySubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); - -var ReplayEvent = /*@__PURE__*/ (function () { - function ReplayEvent(time, value) { - this.time = time; - this.value = value; - } - return ReplayEvent; -}()); -//# sourceMappingURL=ReplaySubject.js.map + return DebounceTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +function dispatchNext(subscriber) { + subscriber.debouncedNext(); +} +//# sourceMappingURL=debounceTime.js.map /***/ }), -/* 298 */ +/* 287 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "queue", function() { return queue; }); -/* harmony import */ var _QueueAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(299); -/* harmony import */ var _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(300); -/** PURE_IMPORTS_START _QueueAction,_QueueScheduler PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultIfEmpty", function() { return defaultIfEmpty; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var queue = /*@__PURE__*/ new _QueueScheduler__WEBPACK_IMPORTED_MODULE_1__["QueueScheduler"](_QueueAction__WEBPACK_IMPORTED_MODULE_0__["QueueAction"]); -//# sourceMappingURL=queue.js.map +function defaultIfEmpty(defaultValue) { + if (defaultValue === void 0) { + defaultValue = null; + } + return function (source) { return source.lift(new DefaultIfEmptyOperator(defaultValue)); }; +} +var DefaultIfEmptyOperator = /*@__PURE__*/ (function () { + function DefaultIfEmptyOperator(defaultValue) { + this.defaultValue = defaultValue; + } + DefaultIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DefaultIfEmptySubscriber(subscriber, this.defaultValue)); + }; + return DefaultIfEmptyOperator; +}()); +var DefaultIfEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DefaultIfEmptySubscriber, _super); + function DefaultIfEmptySubscriber(destination, defaultValue) { + var _this = _super.call(this, destination) || this; + _this.defaultValue = defaultValue; + _this.isEmpty = true; + return _this; + } + DefaultIfEmptySubscriber.prototype._next = function (value) { + this.isEmpty = false; + this.destination.next(value); + }; + DefaultIfEmptySubscriber.prototype._complete = function () { + if (this.isEmpty) { + this.destination.next(this.defaultValue); + } + this.destination.complete(); + }; + return DefaultIfEmptySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=defaultIfEmpty.js.map /***/ }), -/* 299 */ +/* 288 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueAction", function() { return QueueAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delay", function() { return delay; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); -/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(289); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(202); +/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_Subscriber,_Notification PURE_IMPORTS_END */ -var QueueAction = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueAction, _super); - function QueueAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; + + + +function delay(delay, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; + } + var absoluteDelay = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(delay); + var delayFor = absoluteDelay ? (+delay - scheduler.now()) : Math.abs(delay); + return function (source) { return source.lift(new DelayOperator(delayFor, scheduler)); }; +} +var DelayOperator = /*@__PURE__*/ (function () { + function DelayOperator(delay, scheduler) { + this.delay = delay; + this.scheduler = scheduler; + } + DelayOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelaySubscriber(subscriber, this.delay, this.scheduler)); + }; + return DelayOperator; +}()); +var DelaySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelaySubscriber, _super); + function DelaySubscriber(destination, delay, scheduler) { + var _this = _super.call(this, destination) || this; + _this.delay = delay; _this.scheduler = scheduler; - _this.work = work; + _this.queue = []; + _this.active = false; + _this.errored = false; return _this; } - QueueAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; + DelaySubscriber.dispatch = function (state) { + var source = state.source; + var queue = source.queue; + var scheduler = state.scheduler; + var destination = state.destination; + while (queue.length > 0 && (queue[0].time - scheduler.now()) <= 0) { + queue.shift().notification.observe(destination); } - if (delay > 0) { - return _super.prototype.schedule.call(this, state, delay); + if (queue.length > 0) { + var delay_1 = Math.max(0, queue[0].time - scheduler.now()); + this.schedule(state, delay_1); + } + else { + this.unsubscribe(); + source.active = false; } - this.delay = delay; - this.state = state; - this.scheduler.flush(this); - return this; }; - QueueAction.prototype.execute = function (state, delay) { - return (delay > 0 || this.closed) ? - _super.prototype.execute.call(this, state, delay) : - this._execute(state, delay); + DelaySubscriber.prototype._schedule = function (scheduler) { + this.active = true; + var destination = this.destination; + destination.add(scheduler.schedule(DelaySubscriber.dispatch, this.delay, { + source: this, destination: this.destination, scheduler: scheduler + })); }; - QueueAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; + DelaySubscriber.prototype.scheduleNotification = function (notification) { + if (this.errored === true) { + return; } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + var scheduler = this.scheduler; + var message = new DelayMessage(scheduler.now() + this.delay, notification); + this.queue.push(message); + if (this.active === false) { + this._schedule(scheduler); } - return scheduler.flush(this); }; - return QueueAction; -}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); - -//# sourceMappingURL=QueueAction.js.map - - -/***/ }), -/* 300 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "QueueScheduler", function() { return QueueScheduler; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(202); -/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ - - -var QueueScheduler = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](QueueScheduler, _super); - function QueueScheduler() { - return _super !== null && _super.apply(this, arguments) || this; + DelaySubscriber.prototype._next = function (value) { + this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createNext(value)); + }; + DelaySubscriber.prototype._error = function (err) { + this.errored = true; + this.queue = []; + this.destination.error(err); + this.unsubscribe(); + }; + DelaySubscriber.prototype._complete = function () { + this.scheduleNotification(_Notification__WEBPACK_IMPORTED_MODULE_4__["Notification"].createComplete()); + this.unsubscribe(); + }; + return DelaySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); +var DelayMessage = /*@__PURE__*/ (function () { + function DelayMessage(time, notification) { + this.time = time; + this.notification = notification; } - return QueueScheduler; -}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); - -//# sourceMappingURL=QueueScheduler.js.map + return DelayMessage; +}()); +//# sourceMappingURL=delay.js.map /***/ }), -/* 301 */ +/* 289 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; }); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); -/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(302); -/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */ - - -function race() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function raceOperatorFunction(source) { - if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) { - observables = observables[0]; - } - return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_1__["race"].apply(void 0, [source].concat(observables))); - }; +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isDate", function() { return isDate; }); +/** PURE_IMPORTS_START PURE_IMPORTS_END */ +function isDate(value) { + return value instanceof Date && !isNaN(+value); } -//# sourceMappingURL=race.js.map +//# sourceMappingURL=isDate.js.map /***/ }), -/* 302 */ +/* 290 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceOperator", function() { return RaceOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "RaceSubscriber", function() { return RaceSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "delayWhen", function() { return delayWhen; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_util_isArray,_fromArray,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(170); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_Subscriber,_Observable,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function race() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; +function delayWhen(delayDurationSelector, subscriptionDelay) { + if (subscriptionDelay) { + return function (source) { + return new SubscriptionDelayObservable(source, subscriptionDelay) + .lift(new DelayWhenOperator(delayDurationSelector)); + }; } - if (observables.length === 1) { - if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(observables[0])) { - observables = observables[0]; - } - else { - return observables[0]; - } - } - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_2__["fromArray"])(observables, undefined).lift(new RaceOperator()); + return function (source) { return source.lift(new DelayWhenOperator(delayDurationSelector)); }; } -var RaceOperator = /*@__PURE__*/ (function () { - function RaceOperator() { +var DelayWhenOperator = /*@__PURE__*/ (function () { + function DelayWhenOperator(delayDurationSelector) { + this.delayDurationSelector = delayDurationSelector; } - RaceOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new RaceSubscriber(subscriber)); + DelayWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DelayWhenSubscriber(subscriber, this.delayDurationSelector)); }; - return RaceOperator; + return DelayWhenOperator; }()); - -var RaceSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RaceSubscriber, _super); - function RaceSubscriber(destination) { +var DelayWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DelayWhenSubscriber, _super); + function DelayWhenSubscriber(destination, delayDurationSelector) { var _this = _super.call(this, destination) || this; - _this.hasFirst = false; - _this.observables = []; - _this.subscriptions = []; + _this.delayDurationSelector = delayDurationSelector; + _this.completed = false; + _this.delayNotifierSubscriptions = []; + _this.index = 0; return _this; } - RaceSubscriber.prototype._next = function (observable) { - this.observables.push(observable); + DelayWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(outerValue); + this.removeSubscription(innerSub); + this.tryComplete(); }; - RaceSubscriber.prototype._complete = function () { - var observables = this.observables; - var len = observables.length; - if (len === 0) { - this.destination.complete(); + DelayWhenSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + DelayWhenSubscriber.prototype.notifyComplete = function (innerSub) { + var value = this.removeSubscription(innerSub); + if (value) { + this.destination.next(value); } - else { - for (var i = 0; i < len && !this.hasFirst; i++) { - var observable = observables[i]; - var subscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, observable, observable, i); - if (this.subscriptions) { - this.subscriptions.push(subscription); - } - this.add(subscription); + this.tryComplete(); + }; + DelayWhenSubscriber.prototype._next = function (value) { + var index = this.index++; + try { + var delayNotifier = this.delayDurationSelector(value, index); + if (delayNotifier) { + this.tryDelay(delayNotifier, value); } - this.observables = null; + } + catch (err) { + this.destination.error(err); } }; - RaceSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - if (!this.hasFirst) { - this.hasFirst = true; - for (var i = 0; i < this.subscriptions.length; i++) { - if (i !== outerIndex) { - var subscription = this.subscriptions[i]; - subscription.unsubscribe(); - this.remove(subscription); - } - } - this.subscriptions = null; + DelayWhenSubscriber.prototype._complete = function () { + this.completed = true; + this.tryComplete(); + this.unsubscribe(); + }; + DelayWhenSubscriber.prototype.removeSubscription = function (subscription) { + subscription.unsubscribe(); + var subscriptionIdx = this.delayNotifierSubscriptions.indexOf(subscription); + if (subscriptionIdx !== -1) { + this.delayNotifierSubscriptions.splice(subscriptionIdx, 1); } - this.destination.next(innerValue); + return subscription.outerValue; }; - return RaceSubscriber; + DelayWhenSubscriber.prototype.tryDelay = function (delayNotifier, value) { + var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, delayNotifier, value); + if (notifierSubscription && !notifierSubscription.closed) { + var destination = this.destination; + destination.add(notifierSubscription); + this.delayNotifierSubscriptions.push(notifierSubscription); + } + }; + DelayWhenSubscriber.prototype.tryComplete = function () { + if (this.completed && this.delayNotifierSubscriptions.length === 0) { + this.destination.complete(); + } + }; + return DelayWhenSubscriber; }(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); - -//# sourceMappingURL=race.js.map +var SubscriptionDelayObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelayObservable, _super); + function SubscriptionDelayObservable(source, subscriptionDelay) { + var _this = _super.call(this) || this; + _this.source = source; + _this.subscriptionDelay = subscriptionDelay; + return _this; + } + SubscriptionDelayObservable.prototype._subscribe = function (subscriber) { + this.subscriptionDelay.subscribe(new SubscriptionDelaySubscriber(subscriber, this.source)); + }; + return SubscriptionDelayObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_2__["Observable"])); +var SubscriptionDelaySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscriptionDelaySubscriber, _super); + function SubscriptionDelaySubscriber(parent, source) { + var _this = _super.call(this) || this; + _this.parent = parent; + _this.source = source; + _this.sourceSubscribed = false; + return _this; + } + SubscriptionDelaySubscriber.prototype._next = function (unused) { + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype._error = function (err) { + this.unsubscribe(); + this.parent.error(err); + }; + SubscriptionDelaySubscriber.prototype._complete = function () { + this.unsubscribe(); + this.subscribeToSource(); + }; + SubscriptionDelaySubscriber.prototype.subscribeToSource = function () { + if (!this.sourceSubscribed) { + this.sourceSubscribed = true; + this.unsubscribe(); + this.source.subscribe(this.parent); + } + }; + return SubscriptionDelaySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=delayWhen.js.map /***/ }), -/* 303 */ +/* 291 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dematerialize", function() { return dematerialize; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(242); -/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */ - +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function repeat(count) { - if (count === void 0) { - count = -1; - } - return function (source) { - if (count === 0) { - return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(); - } - else if (count < 0) { - return source.lift(new RepeatOperator(-1, source)); - } - else { - return source.lift(new RepeatOperator(count - 1, source)); - } +function dematerialize() { + return function dematerializeOperatorFunction(source) { + return source.lift(new DeMaterializeOperator()); }; } -var RepeatOperator = /*@__PURE__*/ (function () { - function RepeatOperator(count, source) { - this.count = count; - this.source = source; +var DeMaterializeOperator = /*@__PURE__*/ (function () { + function DeMaterializeOperator() { } - RepeatOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + DeMaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DeMaterializeSubscriber(subscriber)); }; - return RepeatOperator; + return DeMaterializeOperator; }()); -var RepeatSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatSubscriber, _super); - function RepeatSubscriber(destination, count, source) { - var _this = _super.call(this, destination) || this; - _this.count = count; - _this.source = source; - return _this; +var DeMaterializeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DeMaterializeSubscriber, _super); + function DeMaterializeSubscriber(destination) { + return _super.call(this, destination) || this; } - RepeatSubscriber.prototype.complete = function () { - if (!this.isStopped) { - var _a = this, source = _a.source, count = _a.count; - if (count === 0) { - return _super.prototype.complete.call(this); - } - else if (count > -1) { - this.count = count - 1; - } - source.subscribe(this._unsubscribeAndRecycle()); - } + DeMaterializeSubscriber.prototype._next = function (value) { + value.observe(this.destination); }; - return RepeatSubscriber; + return DeMaterializeSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=repeat.js.map +//# sourceMappingURL=dematerialize.js.map /***/ }), -/* 304 */ +/* 292 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return repeatWhen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinct", function() { return distinct; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "DistinctSubscriber", function() { return DistinctSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function repeatWhen(notifier) { - return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; +function distinct(keySelector, flushes) { + return function (source) { return source.lift(new DistinctOperator(keySelector, flushes)); }; } -var RepeatWhenOperator = /*@__PURE__*/ (function () { - function RepeatWhenOperator(notifier) { - this.notifier = notifier; +var DistinctOperator = /*@__PURE__*/ (function () { + function DistinctOperator(keySelector, flushes) { + this.keySelector = keySelector; + this.flushes = flushes; } - RepeatWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); + DistinctOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctSubscriber(subscriber, this.keySelector, this.flushes)); }; - return RepeatWhenOperator; + return DistinctOperator; }()); -var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatWhenSubscriber, _super); - function RepeatWhenSubscriber(destination, notifier, source) { +var DistinctSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctSubscriber, _super); + function DistinctSubscriber(destination, keySelector, flushes) { var _this = _super.call(this, destination) || this; - _this.notifier = notifier; - _this.source = source; - _this.sourceIsBeingSubscribedTo = true; + _this.keySelector = keySelector; + _this.values = new Set(); + if (flushes) { + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, flushes)); + } return _this; } - RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.sourceIsBeingSubscribedTo = true; - this.source.subscribe(this); - }; - RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) { - if (this.sourceIsBeingSubscribedTo === false) { - return _super.prototype.complete.call(this); - } + DistinctSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values.clear(); }; - RepeatWhenSubscriber.prototype.complete = function () { - this.sourceIsBeingSubscribedTo = false; - if (!this.isStopped) { - if (!this.retries) { - this.subscribeToRetries(); - } - if (!this.retriesSubscription || this.retriesSubscription.closed) { - return _super.prototype.complete.call(this); - } - this._unsubscribeAndRecycle(); - this.notifications.next(); - } + DistinctSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); }; - RepeatWhenSubscriber.prototype._unsubscribe = function () { - var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; - if (notifications) { - notifications.unsubscribe(); - this.notifications = null; + DistinctSubscriber.prototype._next = function (value) { + if (this.keySelector) { + this._useKeySelector(value); } - if (retriesSubscription) { - retriesSubscription.unsubscribe(); - this.retriesSubscription = null; + else { + this._finalizeNext(value, value); } - this.retries = null; - }; - RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { - var _unsubscribe = this._unsubscribe; - this._unsubscribe = null; - _super.prototype._unsubscribeAndRecycle.call(this); - this._unsubscribe = _unsubscribe; - return this; }; - RepeatWhenSubscriber.prototype.subscribeToRetries = function () { - this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); - var retries; + DistinctSubscriber.prototype._useKeySelector = function (value) { + var key; + var destination = this.destination; try { - var notifier = this.notifier; - retries = notifier(this.notifications); + key = this.keySelector(value); } - catch (e) { - return _super.prototype.complete.call(this); + catch (err) { + destination.error(err); + return; } - this.retries = retries; - this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, retries); + this._finalizeNext(key, value); }; - return RepeatWhenSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); -//# sourceMappingURL=repeatWhen.js.map + DistinctSubscriber.prototype._finalizeNext = function (key, value) { + var values = this.values; + if (!values.has(key)) { + values.add(key); + this.destination.next(value); + } + }; + return DistinctSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); + +//# sourceMappingURL=distinct.js.map /***/ }), -/* 305 */ +/* 293 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return retry; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilChanged", function() { return distinctUntilChanged; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function retry(count) { - if (count === void 0) { - count = -1; - } - return function (source) { return source.lift(new RetryOperator(count, source)); }; +function distinctUntilChanged(compare, keySelector) { + return function (source) { return source.lift(new DistinctUntilChangedOperator(compare, keySelector)); }; } -var RetryOperator = /*@__PURE__*/ (function () { - function RetryOperator(count, source) { - this.count = count; - this.source = source; +var DistinctUntilChangedOperator = /*@__PURE__*/ (function () { + function DistinctUntilChangedOperator(compare, keySelector) { + this.compare = compare; + this.keySelector = keySelector; } - RetryOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); + DistinctUntilChangedOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new DistinctUntilChangedSubscriber(subscriber, this.compare, this.keySelector)); }; - return RetryOperator; + return DistinctUntilChangedOperator; }()); -var RetrySubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetrySubscriber, _super); - function RetrySubscriber(destination, count, source) { +var DistinctUntilChangedSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](DistinctUntilChangedSubscriber, _super); + function DistinctUntilChangedSubscriber(destination, compare, keySelector) { var _this = _super.call(this, destination) || this; - _this.count = count; - _this.source = source; + _this.keySelector = keySelector; + _this.hasKey = false; + if (typeof compare === 'function') { + _this.compare = compare; + } return _this; } - RetrySubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var _a = this, source = _a.source, count = _a.count; - if (count === 0) { - return _super.prototype.error.call(this, err); + DistinctUntilChangedSubscriber.prototype.compare = function (x, y) { + return x === y; + }; + DistinctUntilChangedSubscriber.prototype._next = function (value) { + var key; + try { + var keySelector = this.keySelector; + key = keySelector ? keySelector(value) : value; + } + catch (err) { + return this.destination.error(err); + } + var result = false; + if (this.hasKey) { + try { + var compare = this.compare; + result = compare(this.key, key); } - else if (count > -1) { - this.count = count - 1; + catch (err) { + return this.destination.error(err); } - source.subscribe(this._unsubscribeAndRecycle()); + } + else { + this.hasKey = true; + } + if (!result) { + this.key = key; + this.destination.next(value); } }; - return RetrySubscriber; + return DistinctUntilChangedSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=retry.js.map +//# sourceMappingURL=distinctUntilChanged.js.map /***/ }), -/* 306 */ +/* 294 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return retryWhen; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "distinctUntilKeyChanged", function() { return distinctUntilKeyChanged; }); +/* harmony import */ var _distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(293); +/** PURE_IMPORTS_START _distinctUntilChanged PURE_IMPORTS_END */ + +function distinctUntilKeyChanged(key, compare) { + return Object(_distinctUntilChanged__WEBPACK_IMPORTED_MODULE_0__["distinctUntilChanged"])(function (x, y) { return compare ? compare(x[key], y[key]) : x[key] === y[key]; }); +} +//# sourceMappingURL=distinctUntilKeyChanged.js.map +/***/ }), +/* 295 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "elementAt", function() { return elementAt; }); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(222); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(264); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(296); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(287); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(297); +/** PURE_IMPORTS_START _util_ArgumentOutOfRangeError,_filter,_throwIfEmpty,_defaultIfEmpty,_take PURE_IMPORTS_END */ -function retryWhen(notifier) { - return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; -} -var RetryWhenOperator = /*@__PURE__*/ (function () { - function RetryWhenOperator(notifier, source) { - this.notifier = notifier; - this.source = source; - } - RetryWhenOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); - }; - return RetryWhenOperator; -}()); -var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetryWhenSubscriber, _super); - function RetryWhenSubscriber(destination, notifier, source) { - var _this = _super.call(this, destination) || this; - _this.notifier = notifier; - _this.source = source; - return _this; + + + + +function elementAt(index, defaultValue) { + if (index < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); } - RetryWhenSubscriber.prototype.error = function (err) { - if (!this.isStopped) { - var errors = this.errors; - var retries = this.retries; - var retriesSubscription = this.retriesSubscription; - if (!retries) { - errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); - try { - var notifier = this.notifier; - retries = notifier(errors); - } - catch (e) { - return _super.prototype.error.call(this, e); - } - retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, retries); - } - else { - this.errors = null; - this.retriesSubscription = null; - } - this._unsubscribeAndRecycle(); - this.errors = errors; - this.retries = retries; - this.retriesSubscription = retriesSubscription; - errors.next(err); - } - }; - RetryWhenSubscriber.prototype._unsubscribe = function () { - var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; - if (errors) { - errors.unsubscribe(); - this.errors = null; - } - if (retriesSubscription) { - retriesSubscription.unsubscribe(); - this.retriesSubscription = null; - } - this.retries = null; - }; - RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - var _unsubscribe = this._unsubscribe; - this._unsubscribe = null; - this._unsubscribeAndRecycle(); - this._unsubscribe = _unsubscribe; - this.source.subscribe(this); + var hasDefaultValue = arguments.length >= 2; + return function (source) { + return source.pipe(Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return i === index; }), Object(_take__WEBPACK_IMPORTED_MODULE_4__["take"])(1), hasDefaultValue + ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) + : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_2__["throwIfEmpty"])(function () { return new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_0__["ArgumentOutOfRangeError"](); })); }; - return RetryWhenSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); -//# sourceMappingURL=retryWhen.js.map +} +//# sourceMappingURL=elementAt.js.map /***/ }), -/* 307 */ +/* 296 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return sample; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throwIfEmpty", function() { return throwIfEmpty; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(223); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_util_EmptyError,_Subscriber PURE_IMPORTS_END */ -function sample(notifier) { - return function (source) { return source.lift(new SampleOperator(notifier)); }; -} -var SampleOperator = /*@__PURE__*/ (function () { - function SampleOperator(notifier) { - this.notifier = notifier; - } - SampleOperator.prototype.call = function (subscriber, source) { - var sampleSubscriber = new SampleSubscriber(subscriber); - var subscription = source.subscribe(sampleSubscriber); - subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(sampleSubscriber, this.notifier)); - return subscription; - }; - return SampleOperator; -}()); -var SampleSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleSubscriber, _super); - function SampleSubscriber() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this.hasValue = false; - return _this; +function throwIfEmpty(errorFactory) { + if (errorFactory === void 0) { + errorFactory = defaultErrorFactory; } - SampleSubscriber.prototype._next = function (value) { - this.value = value; - this.hasValue = true; - }; - SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.emitValue(); - }; - SampleSubscriber.prototype.notifyComplete = function () { - this.emitValue(); - }; - SampleSubscriber.prototype.emitValue = function () { - if (this.hasValue) { - this.hasValue = false; - this.destination.next(this.value); - } + return function (source) { + return source.lift(new ThrowIfEmptyOperator(errorFactory)); }; - return SampleSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=sample.js.map - - -/***/ }), -/* 308 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return sampleTime; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); -/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ - - - -function sampleTime(period, scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; - } - return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; } -var SampleTimeOperator = /*@__PURE__*/ (function () { - function SampleTimeOperator(period, scheduler) { - this.period = period; - this.scheduler = scheduler; +var ThrowIfEmptyOperator = /*@__PURE__*/ (function () { + function ThrowIfEmptyOperator(errorFactory) { + this.errorFactory = errorFactory; } - SampleTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); + ThrowIfEmptyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrowIfEmptySubscriber(subscriber, this.errorFactory)); }; - return SampleTimeOperator; + return ThrowIfEmptyOperator; }()); -var SampleTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleTimeSubscriber, _super); - function SampleTimeSubscriber(destination, period, scheduler) { +var ThrowIfEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrowIfEmptySubscriber, _super); + function ThrowIfEmptySubscriber(destination, errorFactory) { var _this = _super.call(this, destination) || this; - _this.period = period; - _this.scheduler = scheduler; + _this.errorFactory = errorFactory; _this.hasValue = false; - _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); return _this; } - SampleTimeSubscriber.prototype._next = function (value) { - this.lastValue = value; + ThrowIfEmptySubscriber.prototype._next = function (value) { this.hasValue = true; + this.destination.next(value); }; - SampleTimeSubscriber.prototype.notifyNext = function () { - if (this.hasValue) { - this.hasValue = false; - this.destination.next(this.lastValue); + ThrowIfEmptySubscriber.prototype._complete = function () { + if (!this.hasValue) { + var err = void 0; + try { + err = this.errorFactory(); + } + catch (e) { + err = e; + } + this.destination.error(err); + } + else { + return this.destination.complete(); } }; - return SampleTimeSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -function dispatchNotification(state) { - var subscriber = state.subscriber, period = state.period; - subscriber.notifyNext(); - this.schedule(state, period); + return ThrowIfEmptySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_2__["Subscriber"])); +function defaultErrorFactory() { + return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_1__["EmptyError"](); } -//# sourceMappingURL=sampleTime.js.map +//# sourceMappingURL=throwIfEmpty.js.map /***/ }), -/* 309 */ +/* 297 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return sequenceEqual; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualOperator", function() { return SequenceEqualOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualSubscriber", function() { return SequenceEqualSubscriber; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "take", function() { return take; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(222); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(203); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ -function sequenceEqual(compareTo, comparator) { - return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); }; -} -var SequenceEqualOperator = /*@__PURE__*/ (function () { - function SequenceEqualOperator(compareTo, comparator) { - this.compareTo = compareTo; - this.comparator = comparator; - } - SequenceEqualOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); - }; - return SequenceEqualOperator; -}()); -var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualSubscriber, _super); - function SequenceEqualSubscriber(destination, compareTo, comparator) { - var _this = _super.call(this, destination) || this; - _this.compareTo = compareTo; - _this.comparator = comparator; - _this._a = []; - _this._b = []; - _this._oneComplete = false; - _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); - return _this; - } - SequenceEqualSubscriber.prototype._next = function (value) { - if (this._oneComplete && this._b.length === 0) { - this.emit(false); - } - else { - this._a.push(value); - this.checkValues(); - } - }; - SequenceEqualSubscriber.prototype._complete = function () { - if (this._oneComplete) { - this.emit(this._a.length === 0 && this._b.length === 0); - } - else { - this._oneComplete = true; - } - this.unsubscribe(); - }; - SequenceEqualSubscriber.prototype.checkValues = function () { - var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator; - while (_a.length > 0 && _b.length > 0) { - var a = _a.shift(); - var b = _b.shift(); - var areEqual = false; - try { - areEqual = comparator ? comparator(a, b) : a === b; - } - catch (e) { - this.destination.error(e); - } - if (!areEqual) { - this.emit(false); - } - } - }; - SequenceEqualSubscriber.prototype.emit = function (value) { - var destination = this.destination; - destination.next(value); - destination.complete(); - }; - SequenceEqualSubscriber.prototype.nextB = function (value) { - if (this._oneComplete && this._a.length === 0) { - this.emit(false); + +function take(count) { + return function (source) { + if (count === 0) { + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])(); } else { - this._b.push(value); - this.checkValues(); + return source.lift(new TakeOperator(count)); } }; - SequenceEqualSubscriber.prototype.completeB = function () { - if (this._oneComplete) { - this.emit(this._a.length === 0 && this._b.length === 0); - } - else { - this._oneComplete = true; +} +var TakeOperator = /*@__PURE__*/ (function () { + function TakeOperator(total) { + this.total = total; + if (this.total < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; } + } + TakeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeSubscriber(subscriber, this.total)); }; - return SequenceEqualSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); - -var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualCompareToSubscriber, _super); - function SequenceEqualCompareToSubscriber(destination, parent) { + return TakeOperator; +}()); +var TakeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeSubscriber, _super); + function TakeSubscriber(destination, total) { var _this = _super.call(this, destination) || this; - _this.parent = parent; + _this.total = total; + _this.count = 0; return _this; } - SequenceEqualCompareToSubscriber.prototype._next = function (value) { - this.parent.nextB(value); - }; - SequenceEqualCompareToSubscriber.prototype._error = function (err) { - this.parent.error(err); - this.unsubscribe(); - }; - SequenceEqualCompareToSubscriber.prototype._complete = function () { - this.parent.completeB(); - this.unsubscribe(); + TakeSubscriber.prototype._next = function (value) { + var total = this.total; + var count = ++this.count; + if (count <= total) { + this.destination.next(value); + if (count === total) { + this.destination.complete(); + this.unsubscribe(); + } + } }; - return SequenceEqualCompareToSubscriber; + return TakeSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=sequenceEqual.js.map +//# sourceMappingURL=take.js.map /***/ }), -/* 310 */ +/* 298 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; }); -/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(282); -/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(284); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(265); -/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ - - - -function shareSubjectFactory() { - return new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"](); -} -function share() { - return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__["refCount"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__["multicast"])(shareSubjectFactory)(source)); }; -} -//# sourceMappingURL=share.js.map - - -/***/ }), -/* 311 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "endWith", function() { return endWith; }); +/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(239); +/* harmony import */ var _observable_of__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(204); +/** PURE_IMPORTS_START _observable_concat,_observable_of PURE_IMPORTS_END */ -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return shareReplay; }); -/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(297); -/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */ -function shareReplay(configOrBufferSize, windowTime, scheduler) { - var config; - if (configOrBufferSize && typeof configOrBufferSize === 'object') { - config = configOrBufferSize; - } - else { - config = { - bufferSize: configOrBufferSize, - windowTime: windowTime, - refCount: false, - scheduler: scheduler - }; +function endWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; } - return function (source) { return source.lift(shareReplayOperator(config)); }; -} -function shareReplayOperator(_a) { - var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler; - var subject; - var refCount = 0; - var subscription; - var hasError = false; - var isComplete = false; - return function shareReplayOperation(source) { - refCount++; - if (!subject || hasError) { - hasError = false; - subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); - subscription = source.subscribe({ - next: function (value) { subject.next(value); }, - error: function (err) { - hasError = true; - subject.error(err); - }, - complete: function () { - isComplete = true; - subject.complete(); - }, - }); - } - var innerSub = subject.subscribe(this); - this.add(function () { - refCount--; - innerSub.unsubscribe(); - if (subscription && !isComplete && useRefCount && refCount === 0) { - subscription.unsubscribe(); - subscription = undefined; - subject = undefined; - } - }); - }; + return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(source, _observable_of__WEBPACK_IMPORTED_MODULE_1__["of"].apply(void 0, array)); }; } -//# sourceMappingURL=shareReplay.js.map +//# sourceMappingURL=endWith.js.map /***/ }), -/* 312 */ +/* 299 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "single", function() { return single; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "every", function() { return every; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(253); -/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */ - +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function single(predicate) { - return function (source) { return source.lift(new SingleOperator(predicate, source)); }; +function every(predicate, thisArg) { + return function (source) { return source.lift(new EveryOperator(predicate, thisArg, source)); }; } -var SingleOperator = /*@__PURE__*/ (function () { - function SingleOperator(predicate, source) { +var EveryOperator = /*@__PURE__*/ (function () { + function EveryOperator(predicate, thisArg, source) { this.predicate = predicate; + this.thisArg = thisArg; this.source = source; } - SingleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); + EveryOperator.prototype.call = function (observer, source) { + return source.subscribe(new EverySubscriber(observer, this.predicate, this.thisArg, this.source)); }; - return SingleOperator; + return EveryOperator; }()); -var SingleSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SingleSubscriber, _super); - function SingleSubscriber(destination, predicate, source) { +var EverySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](EverySubscriber, _super); + function EverySubscriber(destination, predicate, thisArg, source) { var _this = _super.call(this, destination) || this; _this.predicate = predicate; + _this.thisArg = thisArg; _this.source = source; - _this.seenValue = false; _this.index = 0; + _this.thisArg = thisArg || _this; return _this; } - SingleSubscriber.prototype.applySingleValue = function (value) { - if (this.seenValue) { - this.destination.error('Sequence contains more than one element'); - } - else { - this.seenValue = true; - this.singleValue = value; - } - }; - SingleSubscriber.prototype._next = function (value) { - var index = this.index++; - if (this.predicate) { - this.tryNext(value, index); - } - else { - this.applySingleValue(value); - } + EverySubscriber.prototype.notifyComplete = function (everyValueMatch) { + this.destination.next(everyValueMatch); + this.destination.complete(); }; - SingleSubscriber.prototype.tryNext = function (value, index) { + EverySubscriber.prototype._next = function (value) { + var result = false; try { - if (this.predicate(value, index, this.source)) { - this.applySingleValue(value); - } + result = this.predicate.call(this.thisArg, value, this.index++, this.source); } catch (err) { this.destination.error(err); + return; } - }; - SingleSubscriber.prototype._complete = function () { - var destination = this.destination; - if (this.index > 0) { - destination.next(this.seenValue ? this.singleValue : undefined); - destination.complete(); - } - else { - destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__["EmptyError"]); + if (!result) { + this.notifyComplete(false); } }; - return SingleSubscriber; + EverySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return EverySubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=single.js.map +//# sourceMappingURL=every.js.map /***/ }), -/* 313 */ +/* 300 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return skip; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaust", function() { return exhaust; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function skip(count) { - return function (source) { return source.lift(new SkipOperator(count)); }; + +function exhaust() { + return function (source) { return source.lift(new SwitchFirstOperator()); }; } -var SkipOperator = /*@__PURE__*/ (function () { - function SkipOperator(total) { - this.total = total; +var SwitchFirstOperator = /*@__PURE__*/ (function () { + function SwitchFirstOperator() { } - SkipOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SkipSubscriber(subscriber, this.total)); + SwitchFirstOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchFirstSubscriber(subscriber)); }; - return SkipOperator; + return SwitchFirstOperator; }()); -var SkipSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipSubscriber, _super); - function SkipSubscriber(destination, total) { +var SwitchFirstSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchFirstSubscriber, _super); + function SwitchFirstSubscriber(destination) { var _this = _super.call(this, destination) || this; - _this.total = total; - _this.count = 0; + _this.hasCompleted = false; + _this.hasSubscription = false; return _this; } - SkipSubscriber.prototype._next = function (x) { - if (++this.count > this.total) { - this.destination.next(x); + SwitchFirstSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.hasSubscription = true; + this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, value)); } }; - return SkipSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=skip.js.map + SwitchFirstSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + }; + SwitchFirstSubscriber.prototype.notifyComplete = function (innerSub) { + this.remove(innerSub); + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return SwitchFirstSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=exhaust.js.map /***/ }), -/* 314 */ +/* 301 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return skipLast; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "exhaustMap", function() { return exhaustMap; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(250); -/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */ +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(243); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ -function skipLast(count) { - return function (source) { return source.lift(new SkipLastOperator(count)); }; -} -var SkipLastOperator = /*@__PURE__*/ (function () { - function SkipLastOperator(_skipCount) { - this._skipCount = _skipCount; - if (this._skipCount < 0) { - throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; - } + + + +function exhaustMap(project, resultSelector) { + if (resultSelector) { + return function (source) { return source.pipe(exhaustMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; } - SkipLastOperator.prototype.call = function (subscriber, source) { - if (this._skipCount === 0) { - return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"](subscriber)); - } - else { - return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); - } + return function (source) { + return source.lift(new ExhaustMapOperator(project)); }; - return SkipLastOperator; -}()); -var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipLastSubscriber, _super); - function SkipLastSubscriber(destination, _skipCount) { +} +var ExhaustMapOperator = /*@__PURE__*/ (function () { + function ExhaustMapOperator(project) { + this.project = project; + } + ExhaustMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExhaustMapSubscriber(subscriber, this.project)); + }; + return ExhaustMapOperator; +}()); +var ExhaustMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExhaustMapSubscriber, _super); + function ExhaustMapSubscriber(destination, project) { var _this = _super.call(this, destination) || this; - _this._skipCount = _skipCount; - _this._count = 0; - _this._ring = new Array(_skipCount); + _this.project = project; + _this.hasSubscription = false; + _this.hasCompleted = false; + _this.index = 0; return _this; } - SkipLastSubscriber.prototype._next = function (value) { - var skipCount = this._skipCount; - var count = this._count++; - if (count < skipCount) { - this._ring[count] = value; + ExhaustMapSubscriber.prototype._next = function (value) { + if (!this.hasSubscription) { + this.tryNext(value); } - else { - var currentIndex = count % skipCount; - var ring = this._ring; - var oldValue = ring[currentIndex]; - ring[currentIndex] = value; - this.destination.next(oldValue); + }; + ExhaustMapSubscriber.prototype.tryNext = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); + } + catch (err) { + this.destination.error(err); + return; } + this.hasSubscription = true; + this._innerSub(result, value, index); }; - return SkipLastSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=skipLast.js.map + ExhaustMapSubscriber.prototype._innerSub = function (result, value, index) { + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined); + var destination = this.destination; + destination.add(innerSubscriber); + Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber); + }; + ExhaustMapSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (!this.hasSubscription) { + this.destination.complete(); + } + this.unsubscribe(); + }; + ExhaustMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + ExhaustMapSubscriber.prototype.notifyError = function (err) { + this.destination.error(err); + }; + ExhaustMapSubscriber.prototype.notifyComplete = function (innerSub) { + var destination = this.destination; + destination.remove(innerSub); + this.hasSubscription = false; + if (this.hasCompleted) { + this.destination.complete(); + } + }; + return ExhaustMapSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=exhaustMap.js.map /***/ }), -/* 315 */ +/* 302 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return skipUntil; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "expand", function() { return expand; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandOperator", function() { return ExpandOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ExpandSubscriber", function() { return ExpandSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function skipUntil(notifier) { - return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; +function expand(project, concurrent, scheduler) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; + } + if (scheduler === void 0) { + scheduler = undefined; + } + concurrent = (concurrent || 0) < 1 ? Number.POSITIVE_INFINITY : concurrent; + return function (source) { return source.lift(new ExpandOperator(project, concurrent, scheduler)); }; } -var SkipUntilOperator = /*@__PURE__*/ (function () { - function SkipUntilOperator(notifier) { - this.notifier = notifier; +var ExpandOperator = /*@__PURE__*/ (function () { + function ExpandOperator(project, concurrent, scheduler) { + this.project = project; + this.concurrent = concurrent; + this.scheduler = scheduler; } - SkipUntilOperator.prototype.call = function (destination, source) { - return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); + ExpandOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ExpandSubscriber(subscriber, this.project, this.concurrent, this.scheduler)); }; - return SkipUntilOperator; + return ExpandOperator; }()); -var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipUntilSubscriber, _super); - function SkipUntilSubscriber(destination, notifier) { + +var ExpandSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ExpandSubscriber, _super); + function ExpandSubscriber(destination, project, concurrent, scheduler) { var _this = _super.call(this, destination) || this; - _this.hasValue = false; - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](_this, undefined, undefined); - _this.add(innerSubscriber); - _this.innerSubscription = innerSubscriber; - Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(_this, notifier, undefined, undefined, innerSubscriber); + _this.project = project; + _this.concurrent = concurrent; + _this.scheduler = scheduler; + _this.index = 0; + _this.active = 0; + _this.hasCompleted = false; + if (concurrent < Number.POSITIVE_INFINITY) { + _this.buffer = []; + } return _this; } - SkipUntilSubscriber.prototype._next = function (value) { - if (this.hasValue) { - _super.prototype._next.call(this, value); + ExpandSubscriber.dispatch = function (arg) { + var subscriber = arg.subscriber, result = arg.result, value = arg.value, index = arg.index; + subscriber.subscribeToProjection(result, value, index); + }; + ExpandSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (destination.closed) { + this._complete(); + return; + } + var index = this.index++; + if (this.active < this.concurrent) { + destination.next(value); + try { + var project = this.project; + var result = project(value, index); + if (!this.scheduler) { + this.subscribeToProjection(result, value, index); + } + else { + var state = { subscriber: this, result: result, value: value, index: index }; + var destination_1 = this.destination; + destination_1.add(this.scheduler.schedule(ExpandSubscriber.dispatch, 0, state)); + } + } + catch (e) { + destination.error(e); + } + } + else { + this.buffer.push(value); } }; - SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.hasValue = true; - if (this.innerSubscription) { - this.innerSubscription.unsubscribe(); + ExpandSubscriber.prototype.subscribeToProjection = function (result, value, index) { + this.active++; + var destination = this.destination; + destination.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, result, value, index)); + }; + ExpandSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); } + this.unsubscribe(); }; - SkipUntilSubscriber.prototype.notifyComplete = function () { + ExpandSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this._next(innerValue); }; - return SkipUntilSubscriber; + ExpandSubscriber.prototype.notifyComplete = function (innerSub) { + var buffer = this.buffer; + var destination = this.destination; + destination.remove(innerSub); + this.active--; + if (buffer && buffer.length > 0) { + this._next(buffer.shift()); + } + if (this.hasCompleted && this.active === 0) { + this.destination.complete(); + } + }; + return ExpandSubscriber; }(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=skipUntil.js.map + +//# sourceMappingURL=expand.js.map /***/ }), -/* 316 */ +/* 303 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return skipWhile; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "finalize", function() { return finalize; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); +/** PURE_IMPORTS_START tslib,_Subscriber,_Subscription PURE_IMPORTS_END */ + + + +function finalize(callback) { + return function (source) { return source.lift(new FinallyOperator(callback)); }; +} +var FinallyOperator = /*@__PURE__*/ (function () { + function FinallyOperator(callback) { + this.callback = callback; + } + FinallyOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new FinallySubscriber(subscriber, this.callback)); + }; + return FinallyOperator; +}()); +var FinallySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FinallySubscriber, _super); + function FinallySubscriber(destination, callback) { + var _this = _super.call(this, destination) || this; + _this.add(new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](callback)); + return _this; + } + return FinallySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=finalize.js.map + + +/***/ }), +/* 304 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "find", function() { return find; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueOperator", function() { return FindValueOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "FindValueSubscriber", function() { return FindValueSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); /** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function skipWhile(predicate) { - return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; +function find(predicate, thisArg) { + if (typeof predicate !== 'function') { + throw new TypeError('predicate is not a function'); + } + return function (source) { return source.lift(new FindValueOperator(predicate, source, false, thisArg)); }; } -var SkipWhileOperator = /*@__PURE__*/ (function () { - function SkipWhileOperator(predicate) { +var FindValueOperator = /*@__PURE__*/ (function () { + function FindValueOperator(predicate, source, yieldIndex, thisArg) { this.predicate = predicate; + this.source = source; + this.yieldIndex = yieldIndex; + this.thisArg = thisArg; } - SkipWhileOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); + FindValueOperator.prototype.call = function (observer, source) { + return source.subscribe(new FindValueSubscriber(observer, this.predicate, this.source, this.yieldIndex, this.thisArg)); }; - return SkipWhileOperator; + return FindValueOperator; }()); -var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipWhileSubscriber, _super); - function SkipWhileSubscriber(destination, predicate) { + +var FindValueSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](FindValueSubscriber, _super); + function FindValueSubscriber(destination, predicate, source, yieldIndex, thisArg) { var _this = _super.call(this, destination) || this; _this.predicate = predicate; - _this.skipping = true; + _this.source = source; + _this.yieldIndex = yieldIndex; + _this.thisArg = thisArg; _this.index = 0; return _this; } - SkipWhileSubscriber.prototype._next = function (value) { + FindValueSubscriber.prototype.notifyComplete = function (value) { var destination = this.destination; - if (this.skipping) { - this.tryCallPredicate(value); - } - if (!this.skipping) { - destination.next(value); - } + destination.next(value); + destination.complete(); + this.unsubscribe(); }; - SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { + FindValueSubscriber.prototype._next = function (value) { + var _a = this, predicate = _a.predicate, thisArg = _a.thisArg; + var index = this.index++; try { - var result = this.predicate(value, this.index++); - this.skipping = Boolean(result); + var result = predicate.call(thisArg || this, value, index, this.source); + if (result) { + this.notifyComplete(this.yieldIndex ? index : value); + } } catch (err) { this.destination.error(err); } }; - return SkipWhileSubscriber; + FindValueSubscriber.prototype._complete = function () { + this.notifyComplete(this.yieldIndex ? -1 : undefined); + }; + return FindValueSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=skipWhile.js.map + +//# sourceMappingURL=find.js.map /***/ }), -/* 317 */ +/* 305 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return startWith; }); -/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(226); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(206); -/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "findIndex", function() { return findIndex; }); +/* harmony import */ var _operators_find__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(304); +/** PURE_IMPORTS_START _operators_find PURE_IMPORTS_END */ +function findIndex(predicate, thisArg) { + return function (source) { return source.lift(new _operators_find__WEBPACK_IMPORTED_MODULE_0__["FindValueOperator"](predicate, source, true, thisArg)); }; +} +//# sourceMappingURL=findIndex.js.map -function startWith() { - var array = []; - for (var _i = 0; _i < arguments.length; _i++) { - array[_i] = arguments[_i]; - } - var scheduler = array[array.length - 1]; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(scheduler)) { - array.pop(); - return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(array, source, scheduler); }; - } - else { - return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(array, source); }; - } + +/***/ }), +/* 306 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "first", function() { return first; }); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(223); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(264); +/* harmony import */ var _take__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(297); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(287); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(296); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(220); +/** PURE_IMPORTS_START _util_EmptyError,_filter,_take,_defaultIfEmpty,_throwIfEmpty,_util_identity PURE_IMPORTS_END */ + + + + + + +function first(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_take__WEBPACK_IMPORTED_MODULE_2__["take"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_3__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_4__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); }; } -//# sourceMappingURL=startWith.js.map +//# sourceMappingURL=first.js.map /***/ }), -/* 318 */ +/* 307 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); -/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(319); -/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ignoreElements", function() { return ignoreElements; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function subscribeOn(scheduler, delay) { - if (delay === void 0) { - delay = 0; - } - return function subscribeOnOperatorFunction(source) { - return source.lift(new SubscribeOnOperator(scheduler, delay)); + +function ignoreElements() { + return function ignoreElementsOperatorFunction(source) { + return source.lift(new IgnoreElementsOperator()); }; } -var SubscribeOnOperator = /*@__PURE__*/ (function () { - function SubscribeOnOperator(scheduler, delay) { - this.scheduler = scheduler; - this.delay = delay; +var IgnoreElementsOperator = /*@__PURE__*/ (function () { + function IgnoreElementsOperator() { } - SubscribeOnOperator.prototype.call = function (subscriber, source) { - return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__["SubscribeOnObservable"](source, this.delay, this.scheduler).subscribe(subscriber); + IgnoreElementsOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new IgnoreElementsSubscriber(subscriber)); }; - return SubscribeOnOperator; + return IgnoreElementsOperator; }()); -//# sourceMappingURL=subscribeOn.js.map +var IgnoreElementsSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IgnoreElementsSubscriber, _super); + function IgnoreElementsSubscriber() { + return _super !== null && _super.apply(this, arguments) || this; + } + IgnoreElementsSubscriber.prototype._next = function (unused) { + }; + return IgnoreElementsSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=ignoreElements.js.map /***/ }), -/* 319 */ +/* 308 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscribeOnObservable", function() { return SubscribeOnObservable; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isEmpty", function() { return isEmpty; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(193); -/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(320); -/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(205); -/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */ - - +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscribeOnObservable, _super); - function SubscribeOnObservable(source, delayTime, scheduler) { - if (delayTime === void 0) { - delayTime = 0; - } - if (scheduler === void 0) { - scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; - } - var _this = _super.call(this) || this; - _this.source = source; - _this.delayTime = delayTime; - _this.scheduler = scheduler; - if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__["isNumeric"])(delayTime) || delayTime < 0) { - _this.delayTime = 0; - } - if (!scheduler || typeof scheduler.schedule !== 'function') { - _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; - } - return _this; +function isEmpty() { + return function (source) { return source.lift(new IsEmptyOperator()); }; +} +var IsEmptyOperator = /*@__PURE__*/ (function () { + function IsEmptyOperator() { } - SubscribeOnObservable.create = function (source, delay, scheduler) { - if (delay === void 0) { - delay = 0; - } - if (scheduler === void 0) { - scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; - } - return new SubscribeOnObservable(source, delay, scheduler); + IsEmptyOperator.prototype.call = function (observer, source) { + return source.subscribe(new IsEmptySubscriber(observer)); }; - SubscribeOnObservable.dispatch = function (arg) { - var source = arg.source, subscriber = arg.subscriber; - return this.add(source.subscribe(subscriber)); + return IsEmptyOperator; +}()); +var IsEmptySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](IsEmptySubscriber, _super); + function IsEmptySubscriber(destination) { + return _super.call(this, destination) || this; + } + IsEmptySubscriber.prototype.notifyComplete = function (isEmpty) { + var destination = this.destination; + destination.next(isEmpty); + destination.complete(); }; - SubscribeOnObservable.prototype._subscribe = function (subscriber) { - var delay = this.delayTime; - var source = this.source; - var scheduler = this.scheduler; - return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { - source: source, subscriber: subscriber - }); + IsEmptySubscriber.prototype._next = function (value) { + this.notifyComplete(false); }; - return SubscribeOnObservable; -}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"])); - -//# sourceMappingURL=SubscribeOnObservable.js.map + IsEmptySubscriber.prototype._complete = function () { + this.notifyComplete(true); + }; + return IsEmptySubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=isEmpty.js.map /***/ }), -/* 320 */ +/* 309 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "asap", function() { return asap; }); -/* harmony import */ var _AsapAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(321); -/* harmony import */ var _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(323); -/** PURE_IMPORTS_START _AsapAction,_AsapScheduler PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "last", function() { return last; }); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(223); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(264); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(310); +/* harmony import */ var _throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(296); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(287); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(220); +/** PURE_IMPORTS_START _util_EmptyError,_filter,_takeLast,_throwIfEmpty,_defaultIfEmpty,_util_identity PURE_IMPORTS_END */ -var asap = /*@__PURE__*/ new _AsapScheduler__WEBPACK_IMPORTED_MODULE_1__["AsapScheduler"](_AsapAction__WEBPACK_IMPORTED_MODULE_0__["AsapAction"]); -//# sourceMappingURL=asap.js.map + + + + +function last(predicate, defaultValue) { + var hasDefaultValue = arguments.length >= 2; + return function (source) { return source.pipe(predicate ? Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(function (v, i) { return predicate(v, i, source); }) : _util_identity__WEBPACK_IMPORTED_MODULE_5__["identity"], Object(_takeLast__WEBPACK_IMPORTED_MODULE_2__["takeLast"])(1), hasDefaultValue ? Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_4__["defaultIfEmpty"])(defaultValue) : Object(_throwIfEmpty__WEBPACK_IMPORTED_MODULE_3__["throwIfEmpty"])(function () { return new _util_EmptyError__WEBPACK_IMPORTED_MODULE_0__["EmptyError"](); })); }; +} +//# sourceMappingURL=last.js.map /***/ }), -/* 321 */ +/* 310 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapAction", function() { return AsapAction; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeLast", function() { return takeLast; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _util_Immediate__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(322); -/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(200); -/** PURE_IMPORTS_START tslib,_util_Immediate,_AsyncAction PURE_IMPORTS_END */ +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(222); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(203); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError,_observable_empty PURE_IMPORTS_END */ -var AsapAction = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapAction, _super); - function AsapAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; - } - AsapAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; + +function takeLast(count) { + return function takeLastOperatorFunction(source) { + if (count === 0) { + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_3__["empty"])(); } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); + else { + return source.lift(new TakeLastOperator(count)); } - scheduler.actions.push(this); - return scheduler.scheduled || (scheduler.scheduled = _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].setImmediate(scheduler.flush.bind(scheduler, null))); }; - AsapAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; +} +var TakeLastOperator = /*@__PURE__*/ (function () { + function TakeLastOperator(total) { + this.total = total; + if (this.total < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); + } + TakeLastOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeLastSubscriber(subscriber, this.total)); + }; + return TakeLastOperator; +}()); +var TakeLastSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeLastSubscriber, _super); + function TakeLastSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.ring = new Array(); + _this.count = 0; + return _this; + } + TakeLastSubscriber.prototype._next = function (value) { + var ring = this.ring; + var total = this.total; + var count = this.count++; + if (ring.length < total) { + ring.push(value); } - if (scheduler.actions.length === 0) { - _util_Immediate__WEBPACK_IMPORTED_MODULE_1__["Immediate"].clearImmediate(id); - scheduler.scheduled = undefined; + else { + var index = count % total; + ring[index] = value; } - return undefined; }; - return AsapAction; -}(_AsyncAction__WEBPACK_IMPORTED_MODULE_2__["AsyncAction"])); - -//# sourceMappingURL=AsapAction.js.map + TakeLastSubscriber.prototype._complete = function () { + var destination = this.destination; + var count = this.count; + if (count > 0) { + var total = this.count >= this.total ? this.total : this.count; + var ring = this.ring; + for (var i = 0; i < total; i++) { + var idx = (count++) % total; + destination.next(ring[idx]); + } + } + destination.complete(); + }; + return TakeLastSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=takeLast.js.map /***/ }), -/* 322 */ +/* 311 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Immediate", function() { return Immediate; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var nextHandle = 1; -var tasksByHandle = {}; -function runIfPresent(handle) { - var cb = tasksByHandle[handle]; - if (cb) { - cb(); - } +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mapTo", function() { return mapTo; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +function mapTo(value) { + return function (source) { return source.lift(new MapToOperator(value)); }; } -var Immediate = { - setImmediate: function (cb) { - var handle = nextHandle++; - tasksByHandle[handle] = cb; - Promise.resolve().then(function () { return runIfPresent(handle); }); - return handle; - }, - clearImmediate: function (handle) { - delete tasksByHandle[handle]; - }, -}; -//# sourceMappingURL=Immediate.js.map +var MapToOperator = /*@__PURE__*/ (function () { + function MapToOperator(value) { + this.value = value; + } + MapToOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MapToSubscriber(subscriber, this.value)); + }; + return MapToOperator; +}()); +var MapToSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MapToSubscriber, _super); + function MapToSubscriber(destination, value) { + var _this = _super.call(this, destination) || this; + _this.value = value; + return _this; + } + MapToSubscriber.prototype._next = function (x) { + this.destination.next(this.value); + }; + return MapToSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=mapTo.js.map /***/ }), -/* 323 */ +/* 312 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AsapScheduler", function() { return AsapScheduler; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "materialize", function() { return materialize; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(202); -/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _Notification__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(202); +/** PURE_IMPORTS_START tslib,_Subscriber,_Notification PURE_IMPORTS_END */ -var AsapScheduler = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AsapScheduler, _super); - function AsapScheduler() { - return _super !== null && _super.apply(this, arguments) || this; + +function materialize() { + return function materializeOperatorFunction(source) { + return source.lift(new MaterializeOperator()); + }; +} +var MaterializeOperator = /*@__PURE__*/ (function () { + function MaterializeOperator() { } - AsapScheduler.prototype.flush = function (action) { - this.active = true; - this.scheduled = undefined; - var actions = this.actions; - var error; - var index = -1; - var count = actions.length; - action = action || actions.shift(); - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (++index < count && (action = actions.shift())); - this.active = false; - if (error) { - while (++index < count && (action = actions.shift())) { - action.unsubscribe(); - } - throw error; - } + MaterializeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MaterializeSubscriber(subscriber)); }; - return AsapScheduler; -}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); - -//# sourceMappingURL=AsapScheduler.js.map + return MaterializeOperator; +}()); +var MaterializeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MaterializeSubscriber, _super); + function MaterializeSubscriber(destination) { + return _super.call(this, destination) || this; + } + MaterializeSubscriber.prototype._next = function (value) { + this.destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createNext(value)); + }; + MaterializeSubscriber.prototype._error = function (err) { + var destination = this.destination; + destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createError(err)); + destination.complete(); + }; + MaterializeSubscriber.prototype._complete = function () { + var destination = this.destination; + destination.next(_Notification__WEBPACK_IMPORTED_MODULE_2__["Notification"].createComplete()); + destination.complete(); + }; + return MaterializeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=materialize.js.map /***/ }), -/* 324 */ +/* 313 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(325); -/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(232); -/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "max", function() { return max; }); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(314); +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ -function switchAll() { - return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]); +function max(comparer) { + var max = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) > 0 ? x : y; } + : function (x, y) { return x > y ? x : y; }; + return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(max); } -//# sourceMappingURL=switchAll.js.map +//# sourceMappingURL=max.js.map /***/ }), -/* 325 */ +/* 314 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return switchMap; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(183); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(231); -/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(218); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "reduce", function() { return reduce; }); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(315); +/* harmony import */ var _takeLast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(310); +/* harmony import */ var _defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(287); +/* harmony import */ var _util_pipe__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(184); +/** PURE_IMPORTS_START _scan,_takeLast,_defaultIfEmpty,_util_pipe PURE_IMPORTS_END */ + +function reduce(accumulator, seed) { + if (arguments.length >= 2) { + return function reduceOperatorFunctionWithSeed(source) { + return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(accumulator, seed), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1), Object(_defaultIfEmpty__WEBPACK_IMPORTED_MODULE_2__["defaultIfEmpty"])(seed))(source); + }; + } + return function reduceOperatorFunction(source) { + return Object(_util_pipe__WEBPACK_IMPORTED_MODULE_3__["pipe"])(Object(_scan__WEBPACK_IMPORTED_MODULE_0__["scan"])(function (acc, value, index) { return accumulator(acc, value, index + 1); }), Object(_takeLast__WEBPACK_IMPORTED_MODULE_1__["takeLast"])(1))(source); + }; +} +//# sourceMappingURL=reduce.js.map +/***/ }), +/* 315 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function switchMap(project, resultSelector) { - if (typeof resultSelector === 'function') { - return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "scan", function() { return scan; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +function scan(accumulator, seed) { + var hasSeed = false; + if (arguments.length >= 2) { + hasSeed = true; } - return function (source) { return source.lift(new SwitchMapOperator(project)); }; + return function scanOperatorFunction(source) { + return source.lift(new ScanOperator(accumulator, seed, hasSeed)); + }; } -var SwitchMapOperator = /*@__PURE__*/ (function () { - function SwitchMapOperator(project) { - this.project = project; +var ScanOperator = /*@__PURE__*/ (function () { + function ScanOperator(accumulator, seed, hasSeed) { + if (hasSeed === void 0) { + hasSeed = false; + } + this.accumulator = accumulator; + this.seed = seed; + this.hasSeed = hasSeed; } - SwitchMapOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + ScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ScanSubscriber(subscriber, this.accumulator, this.seed, this.hasSeed)); }; - return SwitchMapOperator; + return ScanOperator; }()); -var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchMapSubscriber, _super); - function SwitchMapSubscriber(destination, project) { +var ScanSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ScanSubscriber, _super); + function ScanSubscriber(destination, accumulator, _seed, hasSeed) { var _this = _super.call(this, destination) || this; - _this.project = project; + _this.accumulator = accumulator; + _this._seed = _seed; + _this.hasSeed = hasSeed; _this.index = 0; return _this; } - SwitchMapSubscriber.prototype._next = function (value) { - var result; - var index = this.index++; - try { - result = this.project(value, index); - } - catch (error) { - this.destination.error(error); - return; + Object.defineProperty(ScanSubscriber.prototype, "seed", { + get: function () { + return this._seed; + }, + set: function (value) { + this.hasSeed = true; + this._seed = value; + }, + enumerable: true, + configurable: true + }); + ScanSubscriber.prototype._next = function (value) { + if (!this.hasSeed) { + this.seed = value; + this.destination.next(value); } - this._innerSub(result, value, index); - }; - SwitchMapSubscriber.prototype._innerSub = function (result, value, index) { - var innerSubscription = this.innerSubscription; - if (innerSubscription) { - innerSubscription.unsubscribe(); + else { + return this._tryNext(value); } - var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined); - var destination = this.destination; - destination.add(innerSubscriber); - this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber); }; - SwitchMapSubscriber.prototype._complete = function () { - var innerSubscription = this.innerSubscription; - if (!innerSubscription || innerSubscription.closed) { - _super.prototype._complete.call(this); + ScanSubscriber.prototype._tryNext = function (value) { + var index = this.index++; + var result; + try { + result = this.accumulator(this.seed, value, index); } - this.unsubscribe(); - }; - SwitchMapSubscriber.prototype._unsubscribe = function () { - this.innerSubscription = null; - }; - SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { - var destination = this.destination; - destination.remove(innerSub); - this.innerSubscription = null; - if (this.isStopped) { - _super.prototype._complete.call(this); + catch (err) { + this.destination.error(err); } + this.seed = result; + this.destination.next(result); }; - SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.destination.next(innerValue); - }; - return SwitchMapSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=switchMap.js.map + return ScanSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=scan.js.map /***/ }), -/* 326 */ +/* 316 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); -/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(325); -/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return merge; }); +/* harmony import */ var _observable_merge__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(258); +/** PURE_IMPORTS_START _observable_merge PURE_IMPORTS_END */ -function switchMapTo(innerObservable, resultSelector) { - return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }); +function merge() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function (source) { return source.lift.call(_observable_merge__WEBPACK_IMPORTED_MODULE_0__["merge"].apply(void 0, [source].concat(observables))); }; } -//# sourceMappingURL=switchMapTo.js.map +//# sourceMappingURL=merge.js.map /***/ }), -/* 327 */ +/* 317 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return takeUntil; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeMapTo", function() { return mergeMapTo; }); +/* harmony import */ var _mergeMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(242); +/** PURE_IMPORTS_START _mergeMap PURE_IMPORTS_END */ -function takeUntil(notifier) { - return function (source) { return source.lift(new TakeUntilOperator(notifier)); }; -} -var TakeUntilOperator = /*@__PURE__*/ (function () { - function TakeUntilOperator(notifier) { - this.notifier = notifier; +function mergeMapTo(innerObservable, resultSelector, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; } - TakeUntilOperator.prototype.call = function (subscriber, source) { - var takeUntilSubscriber = new TakeUntilSubscriber(subscriber); - var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(takeUntilSubscriber, this.notifier); - if (notifierSubscription && !takeUntilSubscriber.seenValue) { - takeUntilSubscriber.add(notifierSubscription); - return source.subscribe(takeUntilSubscriber); - } - return takeUntilSubscriber; - }; - return TakeUntilOperator; -}()); -var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeUntilSubscriber, _super); - function TakeUntilSubscriber(destination) { - var _this = _super.call(this, destination) || this; - _this.seenValue = false; - return _this; + if (typeof resultSelector === 'function') { + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, resultSelector, concurrent); } - TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.seenValue = true; - this.complete(); - }; - TakeUntilSubscriber.prototype.notifyComplete = function () { - }; - return TakeUntilSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=takeUntil.js.map + if (typeof resultSelector === 'number') { + concurrent = resultSelector; + } + return Object(_mergeMap__WEBPACK_IMPORTED_MODULE_0__["mergeMap"])(function () { return innerObservable; }, concurrent); +} +//# sourceMappingURL=mergeMapTo.js.map /***/ }), -/* 328 */ +/* 318 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return takeWhile; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "mergeScan", function() { return mergeScan; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanOperator", function() { return MergeScanOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MergeScanSubscriber", function() { return MergeScanSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(230); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(231); +/** PURE_IMPORTS_START tslib,_util_subscribeToResult,_OuterSubscriber,_InnerSubscriber PURE_IMPORTS_END */ -function takeWhile(predicate, inclusive) { - if (inclusive === void 0) { - inclusive = false; + + +function mergeScan(accumulator, seed, concurrent) { + if (concurrent === void 0) { + concurrent = Number.POSITIVE_INFINITY; } - return function (source) { - return source.lift(new TakeWhileOperator(predicate, inclusive)); - }; + return function (source) { return source.lift(new MergeScanOperator(accumulator, seed, concurrent)); }; } -var TakeWhileOperator = /*@__PURE__*/ (function () { - function TakeWhileOperator(predicate, inclusive) { - this.predicate = predicate; - this.inclusive = inclusive; +var MergeScanOperator = /*@__PURE__*/ (function () { + function MergeScanOperator(accumulator, seed, concurrent) { + this.accumulator = accumulator; + this.seed = seed; + this.concurrent = concurrent; } - TakeWhileOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + MergeScanOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new MergeScanSubscriber(subscriber, this.accumulator, this.seed, this.concurrent)); }; - return TakeWhileOperator; + return MergeScanOperator; }()); -var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeWhileSubscriber, _super); - function TakeWhileSubscriber(destination, predicate, inclusive) { + +var MergeScanSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](MergeScanSubscriber, _super); + function MergeScanSubscriber(destination, accumulator, acc, concurrent) { var _this = _super.call(this, destination) || this; - _this.predicate = predicate; - _this.inclusive = inclusive; + _this.accumulator = accumulator; + _this.acc = acc; + _this.concurrent = concurrent; + _this.hasValue = false; + _this.hasCompleted = false; + _this.buffer = []; + _this.active = 0; _this.index = 0; return _this; } - TakeWhileSubscriber.prototype._next = function (value) { - var destination = this.destination; - var result; - try { - result = this.predicate(value, this.index++); + MergeScanSubscriber.prototype._next = function (value) { + if (this.active < this.concurrent) { + var index = this.index++; + var destination = this.destination; + var ish = void 0; + try { + var accumulator = this.accumulator; + ish = accumulator(this.acc, value, index); + } + catch (e) { + return destination.error(e); + } + this.active++; + this._innerSub(ish, value, index); } - catch (err) { - destination.error(err); - return; + else { + this.buffer.push(value); } - this.nextOrComplete(value, result); }; - TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { + MergeScanSubscriber.prototype._innerSub = function (ish, value, index) { + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_3__["InnerSubscriber"](this, undefined, undefined); var destination = this.destination; - if (Boolean(predicateResult)) { - destination.next(value); - } - else { - if (this.inclusive) { - destination.next(value); + destination.add(innerSubscriber); + Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_1__["subscribeToResult"])(this, ish, value, index, innerSubscriber); + }; + MergeScanSubscriber.prototype._complete = function () { + this.hasCompleted = true; + if (this.active === 0 && this.buffer.length === 0) { + if (this.hasValue === false) { + this.destination.next(this.acc); } - destination.complete(); + this.destination.complete(); } + this.unsubscribe(); }; - return TakeWhileSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=takeWhile.js.map - - -/***/ }), -/* 329 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return tap; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(197); -/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(173); -/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */ + MergeScanSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var destination = this.destination; + this.acc = innerValue; + this.hasValue = true; + destination.next(innerValue); + }; + MergeScanSubscriber.prototype.notifyComplete = function (innerSub) { + var buffer = this.buffer; + var destination = this.destination; + destination.remove(innerSub); + this.active--; + if (buffer.length > 0) { + this._next(buffer.shift()); + } + else if (this.active === 0 && this.hasCompleted) { + if (this.hasValue === false) { + this.destination.next(this.acc); + } + this.destination.complete(); + } + }; + return MergeScanSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); +//# sourceMappingURL=mergeScan.js.map +/***/ }), +/* 319 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function tap(nextOrObserver, error, complete) { - return function tapOperatorFunction(source) { - return source.lift(new DoOperator(nextOrObserver, error, complete)); - }; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "min", function() { return min; }); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(314); +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ + +function min(comparer) { + var min = (typeof comparer === 'function') + ? function (x, y) { return comparer(x, y) < 0 ? x : y; } + : function (x, y) { return x < y ? x : y; }; + return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(min); } -var DoOperator = /*@__PURE__*/ (function () { - function DoOperator(nextOrObserver, error, complete) { - this.nextOrObserver = nextOrObserver; - this.error = error; - this.complete = complete; - } - DoOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); - }; - return DoOperator; -}()); -var TapSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TapSubscriber, _super); - function TapSubscriber(destination, observerOrNext, error, complete) { - var _this = _super.call(this, destination) || this; - _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__["isFunction"])(observerOrNext)) { - _this._context = _this; - _this._tapNext = observerOrNext; - } - else if (observerOrNext) { - _this._context = observerOrNext; - _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; - } - return _this; - } - TapSubscriber.prototype._next = function (value) { - try { - this._tapNext.call(this._context, value); - } - catch (err) { - this.destination.error(err); - return; +//# sourceMappingURL=min.js.map + + +/***/ }), +/* 320 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "multicast", function() { return multicast; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "MulticastOperator", function() { return MulticastOperator; }); +/* harmony import */ var _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(186); +/** PURE_IMPORTS_START _observable_ConnectableObservable PURE_IMPORTS_END */ + +function multicast(subjectOrSubjectFactory, selector) { + return function multicastOperatorFunction(source) { + var subjectFactory; + if (typeof subjectOrSubjectFactory === 'function') { + subjectFactory = subjectOrSubjectFactory; } - this.destination.next(value); - }; - TapSubscriber.prototype._error = function (err) { - try { - this._tapError.call(this._context, err); + else { + subjectFactory = function subjectFactory() { + return subjectOrSubjectFactory; + }; } - catch (err) { - this.destination.error(err); - return; + if (typeof selector === 'function') { + return source.lift(new MulticastOperator(subjectFactory, selector)); } - this.destination.error(err); + var connectable = Object.create(source, _observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_0__["connectableObservableDescriptor"]); + connectable.source = source; + connectable.subjectFactory = subjectFactory; + return connectable; }; - TapSubscriber.prototype._complete = function () { - try { - this._tapComplete.call(this._context); - } - catch (err) { - this.destination.error(err); - return; - } - return this.destination.complete(); +} +var MulticastOperator = /*@__PURE__*/ (function () { + function MulticastOperator(subjectFactory, selector) { + this.subjectFactory = subjectFactory; + this.selector = selector; + } + MulticastOperator.prototype.call = function (subscriber, source) { + var selector = this.selector; + var subject = this.subjectFactory(); + var subscription = selector(subject).subscribe(subscriber); + subscription.add(source.subscribe(subject)); + return subscription; }; - return TapSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=tap.js.map + return MulticastOperator; +}()); + +//# sourceMappingURL=multicast.js.map /***/ }), -/* 330 */ +/* 321 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultThrottleConfig", function() { return defaultThrottleConfig; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNextStatic", function() { return onErrorResumeNextStatic; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(243); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(231); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_observable_from,_util_isArray,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -var defaultThrottleConfig = { - leading: true, - trailing: false -}; -function throttle(durationSelector, config) { - if (config === void 0) { - config = defaultThrottleConfig; + + + +function onErrorResumeNext() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; } - return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); }; + if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) { + nextSources = nextSources[0]; + } + return function (source) { return source.lift(new OnErrorResumeNextOperator(nextSources)); }; } -var ThrottleOperator = /*@__PURE__*/ (function () { - function ThrottleOperator(durationSelector, leading, trailing) { - this.durationSelector = durationSelector; - this.leading = leading; - this.trailing = trailing; +function onErrorResumeNextStatic() { + var nextSources = []; + for (var _i = 0; _i < arguments.length; _i++) { + nextSources[_i] = arguments[_i]; } - ThrottleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + var source = null; + if (nextSources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(nextSources[0])) { + nextSources = nextSources[0]; + } + source = nextSources.shift(); + return Object(_observable_from__WEBPACK_IMPORTED_MODULE_1__["from"])(source, null).lift(new OnErrorResumeNextOperator(nextSources)); +} +var OnErrorResumeNextOperator = /*@__PURE__*/ (function () { + function OnErrorResumeNextOperator(nextSources) { + this.nextSources = nextSources; + } + OnErrorResumeNextOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new OnErrorResumeNextSubscriber(subscriber, this.nextSources)); }; - return ThrottleOperator; + return OnErrorResumeNextOperator; }()); -var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleSubscriber, _super); - function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { +var OnErrorResumeNextSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](OnErrorResumeNextSubscriber, _super); + function OnErrorResumeNextSubscriber(destination, nextSources) { var _this = _super.call(this, destination) || this; _this.destination = destination; - _this.durationSelector = durationSelector; - _this._leading = _leading; - _this._trailing = _trailing; - _this._hasValue = false; + _this.nextSources = nextSources; return _this; } - ThrottleSubscriber.prototype._next = function (value) { - this._hasValue = true; - this._sendValue = value; - if (!this._throttled) { - if (this._leading) { - this.send(); - } - else { - this.throttle(value); - } - } + OnErrorResumeNextSubscriber.prototype.notifyError = function (error, innerSub) { + this.subscribeToNextSource(); }; - ThrottleSubscriber.prototype.send = function () { - var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; - if (_hasValue) { - this.destination.next(_sendValue); - this.throttle(_sendValue); - } - this._hasValue = false; - this._sendValue = null; + OnErrorResumeNextSubscriber.prototype.notifyComplete = function (innerSub) { + this.subscribeToNextSource(); }; - ThrottleSubscriber.prototype.throttle = function (value) { - var duration = this.tryDurationSelector(value); - if (!!duration) { - this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration)); - } + OnErrorResumeNextSubscriber.prototype._error = function (err) { + this.subscribeToNextSource(); + this.unsubscribe(); }; - ThrottleSubscriber.prototype.tryDurationSelector = function (value) { - try { - return this.durationSelector(value); - } - catch (err) { - this.destination.error(err); - return null; - } + OnErrorResumeNextSubscriber.prototype._complete = function () { + this.subscribeToNextSource(); + this.unsubscribe(); }; - ThrottleSubscriber.prototype.throttlingDone = function () { - var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; - if (_throttled) { - _throttled.unsubscribe(); + OnErrorResumeNextSubscriber.prototype.subscribeToNextSource = function () { + var next = this.nextSources.shift(); + if (!!next) { + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_4__["InnerSubscriber"](this, undefined, undefined); + var destination = this.destination; + destination.add(innerSubscriber); + Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, next, undefined, undefined, innerSubscriber); } - this._throttled = null; - if (_trailing) { - this.send(); + else { + this.destination.complete(); } }; - ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.throttlingDone(); - }; - ThrottleSubscriber.prototype.notifyComplete = function () { - this.throttlingDone(); - }; - return ThrottleSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=throttle.js.map + return OnErrorResumeNextSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=onErrorResumeNext.js.map /***/ }), -/* 331 */ +/* 322 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return throttleTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairwise", function() { return pairwise; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); -/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(330); -/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ - - +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function throttleTime(duration, scheduler, config) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; - } - if (config === void 0) { - config = _throttle__WEBPACK_IMPORTED_MODULE_3__["defaultThrottleConfig"]; - } - return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; +function pairwise() { + return function (source) { return source.lift(new PairwiseOperator()); }; } -var ThrottleTimeOperator = /*@__PURE__*/ (function () { - function ThrottleTimeOperator(duration, scheduler, leading, trailing) { - this.duration = duration; - this.scheduler = scheduler; - this.leading = leading; - this.trailing = trailing; +var PairwiseOperator = /*@__PURE__*/ (function () { + function PairwiseOperator() { } - ThrottleTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + PairwiseOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new PairwiseSubscriber(subscriber)); }; - return ThrottleTimeOperator; + return PairwiseOperator; }()); -var ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleTimeSubscriber, _super); - function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { +var PairwiseSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](PairwiseSubscriber, _super); + function PairwiseSubscriber(destination) { var _this = _super.call(this, destination) || this; - _this.duration = duration; - _this.scheduler = scheduler; - _this.leading = leading; - _this.trailing = trailing; - _this._hasTrailingValue = false; - _this._trailingValue = null; + _this.hasPrev = false; return _this; } - ThrottleTimeSubscriber.prototype._next = function (value) { - if (this.throttled) { - if (this.trailing) { - this._trailingValue = value; - this._hasTrailingValue = true; - } - } - else { - this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this })); - if (this.leading) { - this.destination.next(value); - } - else if (this.trailing) { - this._trailingValue = value; - this._hasTrailingValue = true; - } - } - }; - ThrottleTimeSubscriber.prototype._complete = function () { - if (this._hasTrailingValue) { - this.destination.next(this._trailingValue); - this.destination.complete(); + PairwiseSubscriber.prototype._next = function (value) { + var pair; + if (this.hasPrev) { + pair = [this.prev, value]; } else { - this.destination.complete(); + this.hasPrev = true; } - }; - ThrottleTimeSubscriber.prototype.clearThrottle = function () { - var throttled = this.throttled; - if (throttled) { - if (this.trailing && this._hasTrailingValue) { - this.destination.next(this._trailingValue); - this._trailingValue = null; - this._hasTrailingValue = false; - } - throttled.unsubscribe(); - this.remove(throttled); - this.throttled = null; + this.prev = value; + if (pair) { + this.destination.next(pair); } }; - return ThrottleTimeSubscriber; + return PairwiseSubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -function dispatchNext(arg) { - var subscriber = arg.subscriber; - subscriber.clearThrottle(); -} -//# sourceMappingURL=throttleTime.js.map +//# sourceMappingURL=pairwise.js.map /***/ }), -/* 332 */ +/* 323 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; }); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); -/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(276); -/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(333); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(231); -/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); +/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(263); +/* harmony import */ var _filter__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(264); +/** PURE_IMPORTS_START _util_not,_filter PURE_IMPORTS_END */ -function timeInterval(scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; - } +function partition(predicate, thisArg) { return function (source) { - return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__["defer"])(function () { - return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__["scan"])(function (_a, value) { - var current = _a.current; - return ({ value: value, current: scheduler.now(), last: current }); - }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (_a) { - var current = _a.current, last = _a.last, value = _a.value; - return new TimeInterval(value, current - last); - })); - }); + return [ + Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(predicate, thisArg)(source), + Object(_filter__WEBPACK_IMPORTED_MODULE_1__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(source) + ]; }; } -var TimeInterval = /*@__PURE__*/ (function () { - function TimeInterval(value, interval) { - this.value = value; - this.interval = interval; - } - return TimeInterval; -}()); - -//# sourceMappingURL=timeInterval.js.map +//# sourceMappingURL=partition.js.map /***/ }), -/* 333 */ +/* 324 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return defer; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(218); -/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(242); -/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pluck", function() { return pluck; }); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(226); +/** PURE_IMPORTS_START _map PURE_IMPORTS_END */ -function defer(observableFactory) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var input; - try { - input = observableFactory(); - } - catch (err) { - subscriber.error(err); - return undefined; +function pluck() { + var properties = []; + for (var _i = 0; _i < arguments.length; _i++) { + properties[_i] = arguments[_i]; + } + var length = properties.length; + if (length === 0) { + throw new Error('list of properties cannot be empty.'); + } + return function (source) { return Object(_map__WEBPACK_IMPORTED_MODULE_0__["map"])(plucker(properties, length))(source); }; +} +function plucker(props, length) { + var mapper = function (x) { + var currentProp = x; + for (var i = 0; i < length; i++) { + var p = currentProp[props[i]]; + if (typeof p !== 'undefined') { + currentProp = p; + } + else { + return undefined; + } } - var source = input ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(input) : Object(_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(); - return source.subscribe(subscriber); - }); + return currentProp; + }; + return mapper; } -//# sourceMappingURL=defer.js.map +//# sourceMappingURL=pluck.js.map /***/ }), -/* 334 */ +/* 325 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); -/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(335); -/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(336); -/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(243); -/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ - - +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publish", function() { return publish; }); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(187); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(320); +/** PURE_IMPORTS_START _Subject,_multicast PURE_IMPORTS_END */ -function timeout(due, scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; - } - return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__["timeoutWith"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__["throwError"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__["TimeoutError"]()), scheduler); +function publish(selector) { + return selector ? + Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"](); }, selector) : + Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _Subject__WEBPACK_IMPORTED_MODULE_0__["Subject"]()); } -//# sourceMappingURL=timeout.js.map +//# sourceMappingURL=publish.js.map /***/ }), -/* 335 */ +/* 326 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return TimeoutError; }); -/** PURE_IMPORTS_START PURE_IMPORTS_END */ -var TimeoutErrorImpl = /*@__PURE__*/ (function () { - function TimeoutErrorImpl() { - Error.call(this); - this.message = 'Timeout has occurred'; - this.name = 'TimeoutError'; - return this; - } - TimeoutErrorImpl.prototype = /*@__PURE__*/ Object.create(Error.prototype); - return TimeoutErrorImpl; -})(); -var TimeoutError = TimeoutErrorImpl; -//# sourceMappingURL=TimeoutError.js.map +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishBehavior", function() { return publishBehavior; }); +/* harmony import */ var _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(192); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(320); +/** PURE_IMPORTS_START _BehaviorSubject,_multicast PURE_IMPORTS_END */ + + +function publishBehavior(value) { + return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _BehaviorSubject__WEBPACK_IMPORTED_MODULE_0__["BehaviorSubject"](value))(source); }; +} +//# sourceMappingURL=publishBehavior.js.map /***/ }), -/* 336 */ +/* 327 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); -/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(240); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishLast", function() { return publishLast; }); +/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(210); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(320); +/** PURE_IMPORTS_START _AsyncSubject,_multicast PURE_IMPORTS_END */ +function publishLast() { + return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(new _AsyncSubject__WEBPACK_IMPORTED_MODULE_0__["AsyncSubject"]())(source); }; +} +//# sourceMappingURL=publishLast.js.map +/***/ }), +/* 328 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -function timeoutWith(due, withObservable, scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "publishReplay", function() { return publishReplay; }); +/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(320); +/** PURE_IMPORTS_START _ReplaySubject,_multicast PURE_IMPORTS_END */ + + +function publishReplay(bufferSize, windowTime, selectorOrScheduler, scheduler) { + if (selectorOrScheduler && typeof selectorOrScheduler !== 'function') { + scheduler = selectorOrScheduler; } - return function (source) { - var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(due); - var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); - return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); - }; + var selector = typeof selectorOrScheduler === 'function' ? selectorOrScheduler : undefined; + var subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); + return function (source) { return Object(_multicast__WEBPACK_IMPORTED_MODULE_1__["multicast"])(function () { return subject; }, selector)(source); }; } -var TimeoutWithOperator = /*@__PURE__*/ (function () { - function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { - this.waitFor = waitFor; - this.absoluteTimeout = absoluteTimeout; - this.withObservable = withObservable; - this.scheduler = scheduler; - } - TimeoutWithOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); - }; - return TimeoutWithOperator; -}()); -var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TimeoutWithSubscriber, _super); - function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { - var _this = _super.call(this, destination) || this; - _this.absoluteTimeout = absoluteTimeout; - _this.waitFor = waitFor; - _this.withObservable = withObservable; - _this.scheduler = scheduler; - _this.action = null; - _this.scheduleTimeout(); - return _this; - } - TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { - var withObservable = subscriber.withObservable; - subscriber._unsubscribeAndRecycle(); - subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(subscriber, withObservable)); - }; - TimeoutWithSubscriber.prototype.scheduleTimeout = function () { - var action = this.action; - if (action) { - this.action = action.schedule(this, this.waitFor); - } - else { - this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); - } - }; - TimeoutWithSubscriber.prototype._next = function (value) { - if (!this.absoluteTimeout) { - this.scheduleTimeout(); - } - _super.prototype._next.call(this, value); - }; - TimeoutWithSubscriber.prototype._unsubscribe = function () { - this.action = null; - this.scheduler = null; - this.withObservable = null; - }; - return TimeoutWithSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); -//# sourceMappingURL=timeoutWith.js.map +//# sourceMappingURL=publishReplay.js.map /***/ }), -/* 337 */ +/* 329 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return timestamp; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timestamp", function() { return Timestamp; }); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(199); -/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(231); -/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "race", function() { return race; }); +/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(178); +/* harmony import */ var _observable_race__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); +/** PURE_IMPORTS_START _util_isArray,_observable_race PURE_IMPORTS_END */ -function timestamp(scheduler) { - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; +function race() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; } - return Object(_map__WEBPACK_IMPORTED_MODULE_1__["map"])(function (value) { return new Timestamp(value, scheduler.now()); }); + return function raceOperatorFunction(source) { + if (observables.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_0__["isArray"])(observables[0])) { + observables = observables[0]; + } + return source.lift.call(_observable_race__WEBPACK_IMPORTED_MODULE_1__["race"].apply(void 0, [source].concat(observables))); + }; } -var Timestamp = /*@__PURE__*/ (function () { - function Timestamp(value, timestamp) { - this.value = value; - this.timestamp = timestamp; - } - return Timestamp; -}()); - -//# sourceMappingURL=timestamp.js.map +//# sourceMappingURL=race.js.map /***/ }), -/* 338 */ +/* 330 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); -/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(275); -/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeat", function() { return repeat; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _observable_empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(203); +/** PURE_IMPORTS_START tslib,_Subscriber,_observable_empty PURE_IMPORTS_END */ -function toArrayReducer(arr, item, index) { - if (index === 0) { - return [item]; + + +function repeat(count) { + if (count === void 0) { + count = -1; } - arr.push(item); - return arr; -} -function toArray() { - return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(toArrayReducer, []); + return function (source) { + if (count === 0) { + return Object(_observable_empty__WEBPACK_IMPORTED_MODULE_2__["empty"])(); + } + else if (count < 0) { + return source.lift(new RepeatOperator(-1, source)); + } + else { + return source.lift(new RepeatOperator(count - 1, source)); + } + }; } -//# sourceMappingURL=toArray.js.map +var RepeatOperator = /*@__PURE__*/ (function () { + function RepeatOperator(count, source) { + this.count = count; + this.source = source; + } + RepeatOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatSubscriber(subscriber, this.count, this.source)); + }; + return RepeatOperator; +}()); +var RepeatSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatSubscriber, _super); + function RepeatSubscriber(destination, count, source) { + var _this = _super.call(this, destination) || this; + _this.count = count; + _this.source = source; + return _this; + } + RepeatSubscriber.prototype.complete = function () { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.complete.call(this); + } + else if (count > -1) { + this.count = count - 1; + } + source.subscribe(this._unsubscribeAndRecycle()); + } + }; + return RepeatSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=repeat.js.map /***/ }), -/* 339 */ +/* 331 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "window", function() { return window; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "repeatWhen", function() { return repeatWhen; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); /** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function window(windowBoundaries) { - return function windowOperatorFunction(source) { - return source.lift(new WindowOperator(windowBoundaries)); - }; +function repeatWhen(notifier) { + return function (source) { return source.lift(new RepeatWhenOperator(notifier)); }; } -var WindowOperator = /*@__PURE__*/ (function () { - function WindowOperator(windowBoundaries) { - this.windowBoundaries = windowBoundaries; +var RepeatWhenOperator = /*@__PURE__*/ (function () { + function RepeatWhenOperator(notifier) { + this.notifier = notifier; } - WindowOperator.prototype.call = function (subscriber, source) { - var windowSubscriber = new WindowSubscriber(subscriber); - var sourceSubscription = source.subscribe(windowSubscriber); - if (!sourceSubscription.closed) { - windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(windowSubscriber, this.windowBoundaries)); - } - return sourceSubscription; + RepeatWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RepeatWhenSubscriber(subscriber, this.notifier, source)); }; - return WindowOperator; + return RepeatWhenOperator; }()); -var WindowSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super); - function WindowSubscriber(destination) { +var RepeatWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RepeatWhenSubscriber, _super); + function RepeatWhenSubscriber(destination, notifier, source) { var _this = _super.call(this, destination) || this; - _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); - destination.next(_this.window); + _this.notifier = notifier; + _this.source = source; + _this.sourceIsBeingSubscribedTo = true; return _this; } - WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.openWindow(); - }; - WindowSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - WindowSubscriber.prototype.notifyComplete = function (innerSub) { - this._complete(); + RepeatWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.sourceIsBeingSubscribedTo = true; + this.source.subscribe(this); }; - WindowSubscriber.prototype._next = function (value) { - this.window.next(value); + RepeatWhenSubscriber.prototype.notifyComplete = function (innerSub) { + if (this.sourceIsBeingSubscribedTo === false) { + return _super.prototype.complete.call(this); + } }; - WindowSubscriber.prototype._error = function (err) { - this.window.error(err); - this.destination.error(err); + RepeatWhenSubscriber.prototype.complete = function () { + this.sourceIsBeingSubscribedTo = false; + if (!this.isStopped) { + if (!this.retries) { + this.subscribeToRetries(); + } + if (!this.retriesSubscription || this.retriesSubscription.closed) { + return _super.prototype.complete.call(this); + } + this._unsubscribeAndRecycle(); + this.notifications.next(); + } }; - WindowSubscriber.prototype._complete = function () { - this.window.complete(); - this.destination.complete(); + RepeatWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, notifications = _a.notifications, retriesSubscription = _a.retriesSubscription; + if (notifications) { + notifications.unsubscribe(); + this.notifications = null; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = null; + } + this.retries = null; }; - WindowSubscriber.prototype._unsubscribe = function () { - this.window = null; + RepeatWhenSubscriber.prototype._unsubscribeAndRecycle = function () { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + _super.prototype._unsubscribeAndRecycle.call(this); + this._unsubscribe = _unsubscribe; + return this; }; - WindowSubscriber.prototype.openWindow = function () { - var prevWindow = this.window; - if (prevWindow) { - prevWindow.complete(); + RepeatWhenSubscriber.prototype.subscribeToRetries = function () { + this.notifications = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + var retries; + try { + var notifier = this.notifier; + retries = notifier(this.notifications); } - var destination = this.destination; - var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); - destination.next(newWindow); + catch (e) { + return _super.prototype.complete.call(this); + } + this.retries = retries; + this.retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, retries); }; - return WindowSubscriber; + return RepeatWhenSubscriber; }(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); -//# sourceMappingURL=window.js.map +//# sourceMappingURL=repeatWhen.js.map /***/ }), -/* 340 */ +/* 332 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return windowCount; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retry", function() { return retry; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); /* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(265); -/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */ - +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function windowCount(windowSize, startWindowEvery) { - if (startWindowEvery === void 0) { - startWindowEvery = 0; +function retry(count) { + if (count === void 0) { + count = -1; } - return function windowCountOperatorFunction(source) { - return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); - }; + return function (source) { return source.lift(new RetryOperator(count, source)); }; } -var WindowCountOperator = /*@__PURE__*/ (function () { - function WindowCountOperator(windowSize, startWindowEvery) { - this.windowSize = windowSize; - this.startWindowEvery = startWindowEvery; +var RetryOperator = /*@__PURE__*/ (function () { + function RetryOperator(count, source) { + this.count = count; + this.source = source; } - WindowCountOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + RetryOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetrySubscriber(subscriber, this.count, this.source)); }; - return WindowCountOperator; + return RetryOperator; }()); -var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowCountSubscriber, _super); - function WindowCountSubscriber(destination, windowSize, startWindowEvery) { +var RetrySubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetrySubscriber, _super); + function RetrySubscriber(destination, count, source) { var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.windowSize = windowSize; - _this.startWindowEvery = startWindowEvery; - _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"]()]; - _this.count = 0; - destination.next(_this.windows[0]); + _this.count = count; + _this.source = source; return _this; } - WindowCountSubscriber.prototype._next = function (value) { - var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; - var destination = this.destination; - var windowSize = this.windowSize; - var windows = this.windows; - var len = windows.length; - for (var i = 0; i < len && !this.closed; i++) { - windows[i].next(value); - } - var c = this.count - windowSize + 1; - if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { - windows.shift().complete(); - } - if (++this.count % startWindowEvery === 0 && !this.closed) { - var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"](); - windows.push(window_1); - destination.next(window_1); - } - }; - WindowCountSubscriber.prototype._error = function (err) { - var windows = this.windows; - if (windows) { - while (windows.length > 0 && !this.closed) { - windows.shift().error(err); + RetrySubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var _a = this, source = _a.source, count = _a.count; + if (count === 0) { + return _super.prototype.error.call(this, err); } - } - this.destination.error(err); - }; - WindowCountSubscriber.prototype._complete = function () { - var windows = this.windows; - if (windows) { - while (windows.length > 0 && !this.closed) { - windows.shift().complete(); + else if (count > -1) { + this.count = count - 1; } + source.subscribe(this._unsubscribeAndRecycle()); } - this.destination.complete(); - }; - WindowCountSubscriber.prototype._unsubscribe = function () { - this.count = 0; - this.windows = null; }; - return WindowCountSubscriber; + return RetrySubscriber; }(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); -//# sourceMappingURL=windowCount.js.map +//# sourceMappingURL=retry.js.map /***/ }), -/* 341 */ +/* 333 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return windowTime; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "retryWhen", function() { return retryWhen; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(199); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); -/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(205); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(206); -/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ - - +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function windowTime(windowTimeSpan) { - var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; - var windowCreationInterval = null; - var maxWindowSize = Number.POSITIVE_INFINITY; - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[3])) { - scheduler = arguments[3]; - } - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[2])) { - scheduler = arguments[2]; - } - else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[2])) { - maxWindowSize = arguments[2]; - } - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[1])) { - scheduler = arguments[1]; - } - else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[1])) { - windowCreationInterval = arguments[1]; - } - return function windowTimeOperatorFunction(source) { - return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); - }; +function retryWhen(notifier) { + return function (source) { return source.lift(new RetryWhenOperator(notifier, source)); }; } -var WindowTimeOperator = /*@__PURE__*/ (function () { - function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { - this.windowTimeSpan = windowTimeSpan; - this.windowCreationInterval = windowCreationInterval; - this.maxWindowSize = maxWindowSize; - this.scheduler = scheduler; +var RetryWhenOperator = /*@__PURE__*/ (function () { + function RetryWhenOperator(notifier, source) { + this.notifier = notifier; + this.source = source; } - WindowTimeOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + RetryWhenOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new RetryWhenSubscriber(subscriber, this.notifier, this.source)); }; - return WindowTimeOperator; + return RetryWhenOperator; }()); -var CountedSubject = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountedSubject, _super); - function CountedSubject() { - var _this = _super !== null && _super.apply(this, arguments) || this; - _this._numberOfNextedValues = 0; - return _this; - } - CountedSubject.prototype.next = function (value) { - this._numberOfNextedValues++; - _super.prototype.next.call(this, value); - }; - Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { - get: function () { - return this._numberOfNextedValues; - }, - enumerable: true, - configurable: true - }); - return CountedSubject; -}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); -var WindowTimeSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowTimeSubscriber, _super); - function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { +var RetryWhenSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](RetryWhenSubscriber, _super); + function RetryWhenSubscriber(destination, notifier, source) { var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.windowTimeSpan = windowTimeSpan; - _this.windowCreationInterval = windowCreationInterval; - _this.maxWindowSize = maxWindowSize; - _this.scheduler = scheduler; - _this.windows = []; - var window = _this.openWindow(); - if (windowCreationInterval !== null && windowCreationInterval >= 0) { - var closeState = { subscriber: _this, window: window, context: null }; - var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; - _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); - _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); - } - else { - var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; - _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); - } + _this.notifier = notifier; + _this.source = source; return _this; } - WindowTimeSubscriber.prototype._next = function (value) { - var windows = this.windows; - var len = windows.length; - for (var i = 0; i < len; i++) { - var window_1 = windows[i]; - if (!window_1.closed) { - window_1.next(value); - if (window_1.numberOfNextedValues >= this.maxWindowSize) { - this.closeWindow(window_1); + RetryWhenSubscriber.prototype.error = function (err) { + if (!this.isStopped) { + var errors = this.errors; + var retries = this.retries; + var retriesSubscription = this.retriesSubscription; + if (!retries) { + errors = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + try { + var notifier = this.notifier; + retries = notifier(errors); + } + catch (e) { + return _super.prototype.error.call(this, e); } + retriesSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, retries); } - } - }; - WindowTimeSubscriber.prototype._error = function (err) { - var windows = this.windows; - while (windows.length > 0) { - windows.shift().error(err); - } - this.destination.error(err); - }; - WindowTimeSubscriber.prototype._complete = function () { - var windows = this.windows; - while (windows.length > 0) { - var window_2 = windows.shift(); - if (!window_2.closed) { - window_2.complete(); + else { + this.errors = null; + this.retriesSubscription = null; } + this._unsubscribeAndRecycle(); + this.errors = errors; + this.retries = retries; + this.retriesSubscription = retriesSubscription; + errors.next(err); } - this.destination.complete(); }; - WindowTimeSubscriber.prototype.openWindow = function () { - var window = new CountedSubject(); - this.windows.push(window); - var destination = this.destination; - destination.next(window); - return window; + RetryWhenSubscriber.prototype._unsubscribe = function () { + var _a = this, errors = _a.errors, retriesSubscription = _a.retriesSubscription; + if (errors) { + errors.unsubscribe(); + this.errors = null; + } + if (retriesSubscription) { + retriesSubscription.unsubscribe(); + this.retriesSubscription = null; + } + this.retries = null; }; - WindowTimeSubscriber.prototype.closeWindow = function (window) { - window.complete(); - var windows = this.windows; - windows.splice(windows.indexOf(window), 1); + RetryWhenSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + var _unsubscribe = this._unsubscribe; + this._unsubscribe = null; + this._unsubscribeAndRecycle(); + this._unsubscribe = _unsubscribe; + this.source.subscribe(this); }; - return WindowTimeSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); -function dispatchWindowTimeSpanOnly(state) { - var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; - if (window) { - subscriber.closeWindow(window); - } - state.window = subscriber.openWindow(); - this.schedule(state, windowTimeSpan); -} -function dispatchWindowCreation(state) { - var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; - var window = subscriber.openWindow(); - var action = this; - var context = { action: action, subscription: null }; - var timeSpanState = { subscriber: subscriber, window: window, context: context }; - context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); - action.add(context.subscription); - action.schedule(state, windowCreationInterval); -} -function dispatchWindowClose(state) { - var subscriber = state.subscriber, window = state.window, context = state.context; - if (context && context.action && context.subscription) { - context.action.remove(context.subscription); - } - subscriber.closeWindow(window); -} -//# sourceMappingURL=windowTime.js.map + return RetryWhenSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); +//# sourceMappingURL=retryWhen.js.map /***/ }), -/* 342 */ +/* 334 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return windowToggle; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sample", function() { return sample; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - - +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -function windowToggle(openings, closingSelector) { - return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; +function sample(notifier) { + return function (source) { return source.lift(new SampleOperator(notifier)); }; } -var WindowToggleOperator = /*@__PURE__*/ (function () { - function WindowToggleOperator(openings, closingSelector) { - this.openings = openings; - this.closingSelector = closingSelector; +var SampleOperator = /*@__PURE__*/ (function () { + function SampleOperator(notifier) { + this.notifier = notifier; } - WindowToggleOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + SampleOperator.prototype.call = function (subscriber, source) { + var sampleSubscriber = new SampleSubscriber(subscriber); + var subscription = source.subscribe(sampleSubscriber); + subscription.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(sampleSubscriber, this.notifier)); + return subscription; }; - return WindowToggleOperator; + return SampleOperator; }()); -var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowToggleSubscriber, _super); - function WindowToggleSubscriber(destination, openings, closingSelector) { - var _this = _super.call(this, destination) || this; - _this.openings = openings; - _this.closingSelector = closingSelector; - _this.contexts = []; - _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(_this, openings, openings)); +var SampleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleSubscriber, _super); + function SampleSubscriber() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this.hasValue = false; return _this; } - WindowToggleSubscriber.prototype._next = function (value) { - var contexts = this.contexts; - if (contexts) { - var len = contexts.length; - for (var i = 0; i < len; i++) { - contexts[i].window.next(value); - } - } - }; - WindowToggleSubscriber.prototype._error = function (err) { - var contexts = this.contexts; - this.contexts = null; - if (contexts) { - var len = contexts.length; - var index = -1; - while (++index < len) { - var context_1 = contexts[index]; - context_1.window.error(err); - context_1.subscription.unsubscribe(); - } - } - _super.prototype._error.call(this, err); - }; - WindowToggleSubscriber.prototype._complete = function () { - var contexts = this.contexts; - this.contexts = null; - if (contexts) { - var len = contexts.length; - var index = -1; - while (++index < len) { - var context_2 = contexts[index]; - context_2.window.complete(); - context_2.subscription.unsubscribe(); - } - } - _super.prototype._complete.call(this); - }; - WindowToggleSubscriber.prototype._unsubscribe = function () { - var contexts = this.contexts; - this.contexts = null; - if (contexts) { - var len = contexts.length; - var index = -1; - while (++index < len) { - var context_3 = contexts[index]; - context_3.window.unsubscribe(); - context_3.subscription.unsubscribe(); - } - } - }; - WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - if (outerValue === this.openings) { - var closingNotifier = void 0; - try { - var closingSelector = this.closingSelector; - closingNotifier = closingSelector(innerValue); - } - catch (e) { - return this.error(e); - } - var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); - var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](); - var context_4 = { window: window_1, subscription: subscription }; - this.contexts.push(context_4); - var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, closingNotifier, context_4); - if (innerSubscription.closed) { - this.closeWindow(this.contexts.length - 1); - } - else { - innerSubscription.context = context_4; - subscription.add(innerSubscription); - } - this.destination.next(window_1); - } - else { - this.closeWindow(this.contexts.indexOf(outerValue)); - } + SampleSubscriber.prototype._next = function (value) { + this.value = value; + this.hasValue = true; }; - WindowToggleSubscriber.prototype.notifyError = function (err) { - this.error(err); + SampleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.emitValue(); }; - WindowToggleSubscriber.prototype.notifyComplete = function (inner) { - if (inner !== this.openSubscription) { - this.closeWindow(this.contexts.indexOf(inner.context)); - } + SampleSubscriber.prototype.notifyComplete = function () { + this.emitValue(); }; - WindowToggleSubscriber.prototype.closeWindow = function (index) { - if (index === -1) { - return; + SampleSubscriber.prototype.emitValue = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.value); } - var contexts = this.contexts; - var context = contexts[index]; - var window = context.window, subscription = context.subscription; - contexts.splice(index, 1); - window.complete(); - subscription.unsubscribe(); }; - return WindowToggleSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); -//# sourceMappingURL=windowToggle.js.map + return SampleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=sample.js.map /***/ }), -/* 343 */ +/* 335 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return windowWhen; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sampleTime", function() { return sampleTime; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(265); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async PURE_IMPORTS_END */ -function windowWhen(closingSelector) { - return function windowWhenOperatorFunction(source) { - return source.lift(new WindowOperator(closingSelector)); - }; +function sampleTime(period, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + } + return function (source) { return source.lift(new SampleTimeOperator(period, scheduler)); }; } -var WindowOperator = /*@__PURE__*/ (function () { - function WindowOperator(closingSelector) { - this.closingSelector = closingSelector; +var SampleTimeOperator = /*@__PURE__*/ (function () { + function SampleTimeOperator(period, scheduler) { + this.period = period; + this.scheduler = scheduler; } - WindowOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + SampleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SampleTimeSubscriber(subscriber, this.period, this.scheduler)); }; - return WindowOperator; + return SampleTimeOperator; }()); -var WindowSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super); - function WindowSubscriber(destination, closingSelector) { +var SampleTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SampleTimeSubscriber, _super); + function SampleTimeSubscriber(destination, period, scheduler) { var _this = _super.call(this, destination) || this; - _this.destination = destination; - _this.closingSelector = closingSelector; - _this.openWindow(); + _this.period = period; + _this.scheduler = scheduler; + _this.hasValue = false; + _this.add(scheduler.schedule(dispatchNotification, period, { subscriber: _this, period: period })); return _this; } - WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.openWindow(innerSub); - }; - WindowSubscriber.prototype.notifyError = function (error, innerSub) { - this._error(error); - }; - WindowSubscriber.prototype.notifyComplete = function (innerSub) { - this.openWindow(innerSub); - }; - WindowSubscriber.prototype._next = function (value) { - this.window.next(value); - }; - WindowSubscriber.prototype._error = function (err) { - this.window.error(err); - this.destination.error(err); - this.unsubscribeClosingNotification(); - }; - WindowSubscriber.prototype._complete = function () { - this.window.complete(); - this.destination.complete(); - this.unsubscribeClosingNotification(); - }; - WindowSubscriber.prototype.unsubscribeClosingNotification = function () { - if (this.closingNotification) { - this.closingNotification.unsubscribe(); - } + SampleTimeSubscriber.prototype._next = function (value) { + this.lastValue = value; + this.hasValue = true; }; - WindowSubscriber.prototype.openWindow = function (innerSub) { - if (innerSub === void 0) { - innerSub = null; - } - if (innerSub) { - this.remove(innerSub); - innerSub.unsubscribe(); - } - var prevWindow = this.window; - if (prevWindow) { - prevWindow.complete(); - } - var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); - this.destination.next(window); - var closingNotifier; - try { - var closingSelector = this.closingSelector; - closingNotifier = closingSelector(); - } - catch (e) { - this.destination.error(e); - this.window.error(e); - return; + SampleTimeSubscriber.prototype.notifyNext = function () { + if (this.hasValue) { + this.hasValue = false; + this.destination.next(this.lastValue); } - this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, closingNotifier)); }; - return WindowSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); -//# sourceMappingURL=windowWhen.js.map + return SampleTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +function dispatchNotification(state) { + var subscriber = state.subscriber, period = state.period; + subscriber.notifyNext(); + this.schedule(state, period); +} +//# sourceMappingURL=sampleTime.js.map /***/ }), -/* 344 */ +/* 336 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return withLatestFrom; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "sequenceEqual", function() { return sequenceEqual; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualOperator", function() { return SequenceEqualOperator; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SequenceEqualSubscriber", function() { return SequenceEqualSubscriber; }); /* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(182); -/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ -function withLatestFrom() { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return function (source) { - var project; - if (typeof args[args.length - 1] === 'function') { - project = args.pop(); - } - var observables = args; - return source.lift(new WithLatestFromOperator(observables, project)); - }; +function sequenceEqual(compareTo, comparator) { + return function (source) { return source.lift(new SequenceEqualOperator(compareTo, comparator)); }; } -var WithLatestFromOperator = /*@__PURE__*/ (function () { - function WithLatestFromOperator(observables, project) { - this.observables = observables; - this.project = project; +var SequenceEqualOperator = /*@__PURE__*/ (function () { + function SequenceEqualOperator(compareTo, comparator) { + this.compareTo = compareTo; + this.comparator = comparator; } - WithLatestFromOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + SequenceEqualOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SequenceEqualSubscriber(subscriber, this.compareTo, this.comparator)); }; - return WithLatestFromOperator; + return SequenceEqualOperator; }()); -var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WithLatestFromSubscriber, _super); - function WithLatestFromSubscriber(destination, observables, project) { + +var SequenceEqualSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualSubscriber, _super); + function SequenceEqualSubscriber(destination, compareTo, comparator) { var _this = _super.call(this, destination) || this; - _this.observables = observables; - _this.project = project; - _this.toRespond = []; - var len = observables.length; - _this.values = new Array(len); - for (var i = 0; i < len; i++) { - _this.toRespond.push(i); - } - for (var i = 0; i < len; i++) { - var observable = observables[i]; - _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, observable, observable, i)); - } + _this.compareTo = compareTo; + _this.comparator = comparator; + _this._a = []; + _this._b = []; + _this._oneComplete = false; + _this.destination.add(compareTo.subscribe(new SequenceEqualCompareToSubscriber(destination, _this))); return _this; } - WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.values[outerIndex] = innerValue; - var toRespond = this.toRespond; - if (toRespond.length > 0) { - var found = toRespond.indexOf(outerIndex); - if (found !== -1) { - toRespond.splice(found, 1); - } + SequenceEqualSubscriber.prototype._next = function (value) { + if (this._oneComplete && this._b.length === 0) { + this.emit(false); + } + else { + this._a.push(value); + this.checkValues(); } }; - WithLatestFromSubscriber.prototype.notifyComplete = function () { + SequenceEqualSubscriber.prototype._complete = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + this.unsubscribe(); }; - WithLatestFromSubscriber.prototype._next = function (value) { - if (this.toRespond.length === 0) { - var args = [value].concat(this.values); - if (this.project) { - this._tryProject(args); + SequenceEqualSubscriber.prototype.checkValues = function () { + var _c = this, _a = _c._a, _b = _c._b, comparator = _c.comparator; + while (_a.length > 0 && _b.length > 0) { + var a = _a.shift(); + var b = _b.shift(); + var areEqual = false; + try { + areEqual = comparator ? comparator(a, b) : a === b; } - else { - this.destination.next(args); + catch (e) { + this.destination.error(e); + } + if (!areEqual) { + this.emit(false); } } }; - WithLatestFromSubscriber.prototype._tryProject = function (args) { - var result; - try { - result = this.project.apply(this, args); + SequenceEqualSubscriber.prototype.emit = function (value) { + var destination = this.destination; + destination.next(value); + destination.complete(); + }; + SequenceEqualSubscriber.prototype.nextB = function (value) { + if (this._oneComplete && this._a.length === 0) { + this.emit(false); } - catch (err) { - this.destination.error(err); - return; + else { + this._b.push(value); + this.checkValues(); } - this.destination.next(result); }; - return WithLatestFromSubscriber; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); -//# sourceMappingURL=withLatestFrom.js.map + SequenceEqualSubscriber.prototype.completeB = function () { + if (this._oneComplete) { + this.emit(this._a.length === 0 && this._b.length === 0); + } + else { + this._oneComplete = true; + } + }; + return SequenceEqualSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); + +var SequenceEqualCompareToSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SequenceEqualCompareToSubscriber, _super); + function SequenceEqualCompareToSubscriber(destination, parent) { + var _this = _super.call(this, destination) || this; + _this.parent = parent; + return _this; + } + SequenceEqualCompareToSubscriber.prototype._next = function (value) { + this.parent.nextB(value); + }; + SequenceEqualCompareToSubscriber.prototype._error = function (err) { + this.parent.error(err); + this.unsubscribe(); + }; + SequenceEqualCompareToSubscriber.prototype._complete = function () { + this.parent.completeB(); + this.unsubscribe(); + }; + return SequenceEqualCompareToSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=sequenceEqual.js.map /***/ }), -/* 345 */ +/* 337 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); -/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(346); -/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "share", function() { return share; }); +/* harmony import */ var _multicast__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(320); +/* harmony import */ var _refCount__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(190); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(187); +/** PURE_IMPORTS_START _multicast,_refCount,_Subject PURE_IMPORTS_END */ -function zip() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - return function zipOperatorFunction(source) { - return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_0__["zip"].apply(void 0, [source].concat(observables))); - }; + + +function shareSubjectFactory() { + return new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"](); } -//# sourceMappingURL=zip.js.map +function share() { + return function (source) { return Object(_refCount__WEBPACK_IMPORTED_MODULE_1__["refCount"])()(Object(_multicast__WEBPACK_IMPORTED_MODULE_0__["multicast"])(shareSubjectFactory)(source)); }; +} +//# sourceMappingURL=share.js.map /***/ }), -/* 346 */ +/* 338 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipOperator", function() { return ZipOperator; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "ZipSubscriber", function() { return ZipSubscriber; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _fromArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); -/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); -/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(171); -/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(182); -/* harmony import */ var _internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(188); -/** PURE_IMPORTS_START tslib,_fromArray,_util_isArray,_Subscriber,_OuterSubscriber,_util_subscribeToResult,_.._internal_symbol_iterator PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "shareReplay", function() { return shareReplay; }); +/* harmony import */ var _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); +/** PURE_IMPORTS_START _ReplaySubject PURE_IMPORTS_END */ +function shareReplay(configOrBufferSize, windowTime, scheduler) { + var config; + if (configOrBufferSize && typeof configOrBufferSize === 'object') { + config = configOrBufferSize; + } + else { + config = { + bufferSize: configOrBufferSize, + windowTime: windowTime, + refCount: false, + scheduler: scheduler + }; + } + return function (source) { return source.lift(shareReplayOperator(config)); }; +} +function shareReplayOperator(_a) { + var _b = _a.bufferSize, bufferSize = _b === void 0 ? Number.POSITIVE_INFINITY : _b, _c = _a.windowTime, windowTime = _c === void 0 ? Number.POSITIVE_INFINITY : _c, useRefCount = _a.refCount, scheduler = _a.scheduler; + var subject; + var refCount = 0; + var subscription; + var hasError = false; + var isComplete = false; + return function shareReplayOperation(source) { + refCount++; + if (!subject || hasError) { + hasError = false; + subject = new _ReplaySubject__WEBPACK_IMPORTED_MODULE_0__["ReplaySubject"](bufferSize, windowTime, scheduler); + subscription = source.subscribe({ + next: function (value) { subject.next(value); }, + error: function (err) { + hasError = true; + subject.error(err); + }, + complete: function () { + isComplete = true; + subject.complete(); + }, + }); + } + var innerSub = subject.subscribe(this); + this.add(function () { + refCount--; + innerSub.unsubscribe(); + if (subscription && !isComplete && useRefCount && refCount === 0) { + subscription.unsubscribe(); + subscription = undefined; + subject = undefined; + } + }); + }; +} +//# sourceMappingURL=shareReplay.js.map +/***/ }), +/* 339 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "single", function() { return single; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(223); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_EmptyError PURE_IMPORTS_END */ -function zip() { - var observables = []; - for (var _i = 0; _i < arguments.length; _i++) { - observables[_i] = arguments[_i]; - } - var resultSelector = observables[observables.length - 1]; - if (typeof resultSelector === 'function') { - observables.pop(); - } - return Object(_fromArray__WEBPACK_IMPORTED_MODULE_1__["fromArray"])(observables, undefined).lift(new ZipOperator(resultSelector)); +function single(predicate) { + return function (source) { return source.lift(new SingleOperator(predicate, source)); }; } -var ZipOperator = /*@__PURE__*/ (function () { - function ZipOperator(resultSelector) { - this.resultSelector = resultSelector; +var SingleOperator = /*@__PURE__*/ (function () { + function SingleOperator(predicate, source) { + this.predicate = predicate; + this.source = source; } - ZipOperator.prototype.call = function (subscriber, source) { - return source.subscribe(new ZipSubscriber(subscriber, this.resultSelector)); + SingleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SingleSubscriber(subscriber, this.predicate, this.source)); }; - return ZipOperator; + return SingleOperator; }()); - -var ZipSubscriber = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipSubscriber, _super); - function ZipSubscriber(destination, resultSelector, values) { - if (values === void 0) { - values = Object.create(null); - } +var SingleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SingleSubscriber, _super); + function SingleSubscriber(destination, predicate, source) { var _this = _super.call(this, destination) || this; - _this.iterators = []; - _this.active = 0; - _this.resultSelector = (typeof resultSelector === 'function') ? resultSelector : null; - _this.values = values; + _this.predicate = predicate; + _this.source = source; + _this.seenValue = false; + _this.index = 0; return _this; } - ZipSubscriber.prototype._next = function (value) { - var iterators = this.iterators; - if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(value)) { - iterators.push(new StaticArrayIterator(value)); - } - else if (typeof value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] === 'function') { - iterators.push(new StaticIterator(value[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]]())); + SingleSubscriber.prototype.applySingleValue = function (value) { + if (this.seenValue) { + this.destination.error('Sequence contains more than one element'); } else { - iterators.push(new ZipBufferIterator(this.destination, this, value)); + this.seenValue = true; + this.singleValue = value; } }; - ZipSubscriber.prototype._complete = function () { - var iterators = this.iterators; - var len = iterators.length; - this.unsubscribe(); - if (len === 0) { - this.destination.complete(); - return; + SingleSubscriber.prototype._next = function (value) { + var index = this.index++; + if (this.predicate) { + this.tryNext(value, index); } - this.active = len; - for (var i = 0; i < len; i++) { - var iterator = iterators[i]; - if (iterator.stillUnsubscribed) { - var destination = this.destination; - destination.add(iterator.subscribe(iterator, i)); - } - else { - this.active--; - } + else { + this.applySingleValue(value); } }; - ZipSubscriber.prototype.notifyInactive = function () { - this.active--; - if (this.active === 0) { - this.destination.complete(); + SingleSubscriber.prototype.tryNext = function (value, index) { + try { + if (this.predicate(value, index, this.source)) { + this.applySingleValue(value); + } + } + catch (err) { + this.destination.error(err); } }; - ZipSubscriber.prototype.checkIterators = function () { - var iterators = this.iterators; - var len = iterators.length; + SingleSubscriber.prototype._complete = function () { var destination = this.destination; - for (var i = 0; i < len; i++) { - var iterator = iterators[i]; - if (typeof iterator.hasValue === 'function' && !iterator.hasValue()) { - return; - } + if (this.index > 0) { + destination.next(this.seenValue ? this.singleValue : undefined); + destination.complete(); } - var shouldComplete = false; - var args = []; - for (var i = 0; i < len; i++) { - var iterator = iterators[i]; - var result = iterator.next(); - if (iterator.hasCompleted()) { - shouldComplete = true; - } - if (result.done) { - destination.complete(); - return; - } - args.push(result.value); + else { + destination.error(new _util_EmptyError__WEBPACK_IMPORTED_MODULE_2__["EmptyError"]); } - if (this.resultSelector) { - this._tryresultSelector(args); + }; + return SingleSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=single.js.map + + +/***/ }), +/* 340 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skip", function() { return skip; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +function skip(count) { + return function (source) { return source.lift(new SkipOperator(count)); }; +} +var SkipOperator = /*@__PURE__*/ (function () { + function SkipOperator(total) { + this.total = total; + } + SkipOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipSubscriber(subscriber, this.total)); + }; + return SkipOperator; +}()); +var SkipSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipSubscriber, _super); + function SkipSubscriber(destination, total) { + var _this = _super.call(this, destination) || this; + _this.total = total; + _this.count = 0; + return _this; + } + SkipSubscriber.prototype._next = function (x) { + if (++this.count > this.total) { + this.destination.next(x); } - else { - destination.next(args); + }; + return SkipSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=skip.js.map + + +/***/ }), +/* 341 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipLast", function() { return skipLast; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(222); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_ArgumentOutOfRangeError PURE_IMPORTS_END */ + + + +function skipLast(count) { + return function (source) { return source.lift(new SkipLastOperator(count)); }; +} +var SkipLastOperator = /*@__PURE__*/ (function () { + function SkipLastOperator(_skipCount) { + this._skipCount = _skipCount; + if (this._skipCount < 0) { + throw new _util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_2__["ArgumentOutOfRangeError"]; } - if (shouldComplete) { - destination.complete(); + } + SkipLastOperator.prototype.call = function (subscriber, source) { + if (this._skipCount === 0) { + return source.subscribe(new _Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"](subscriber)); + } + else { + return source.subscribe(new SkipLastSubscriber(subscriber, this._skipCount)); } }; - ZipSubscriber.prototype._tryresultSelector = function (args) { - var result; - try { - result = this.resultSelector.apply(this, args); + return SkipLastOperator; +}()); +var SkipLastSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipLastSubscriber, _super); + function SkipLastSubscriber(destination, _skipCount) { + var _this = _super.call(this, destination) || this; + _this._skipCount = _skipCount; + _this._count = 0; + _this._ring = new Array(_skipCount); + return _this; + } + SkipLastSubscriber.prototype._next = function (value) { + var skipCount = this._skipCount; + var count = this._count++; + if (count < skipCount) { + this._ring[count] = value; } - catch (err) { - this.destination.error(err); - return; + else { + var currentIndex = count % skipCount; + var ring = this._ring; + var oldValue = ring[currentIndex]; + ring[currentIndex] = value; + this.destination.next(oldValue); } - this.destination.next(result); }; - return ZipSubscriber; -}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); + return SkipLastSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=skipLast.js.map -var StaticIterator = /*@__PURE__*/ (function () { - function StaticIterator(iterator) { - this.iterator = iterator; - this.nextResult = iterator.next(); + +/***/ }), +/* 342 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipUntil", function() { return skipUntil; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ + + + + +function skipUntil(notifier) { + return function (source) { return source.lift(new SkipUntilOperator(notifier)); }; +} +var SkipUntilOperator = /*@__PURE__*/ (function () { + function SkipUntilOperator(notifier) { + this.notifier = notifier; } - StaticIterator.prototype.hasValue = function () { - return true; - }; - StaticIterator.prototype.next = function () { - var result = this.nextResult; - this.nextResult = this.iterator.next(); - return result; - }; - StaticIterator.prototype.hasCompleted = function () { - var nextResult = this.nextResult; - return nextResult && nextResult.done; + SkipUntilOperator.prototype.call = function (destination, source) { + return source.subscribe(new SkipUntilSubscriber(destination, this.notifier)); }; - return StaticIterator; + return SkipUntilOperator; }()); -var StaticArrayIterator = /*@__PURE__*/ (function () { - function StaticArrayIterator(array) { - this.array = array; - this.index = 0; - this.length = 0; - this.length = array.length; +var SkipUntilSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipUntilSubscriber, _super); + function SkipUntilSubscriber(destination, notifier) { + var _this = _super.call(this, destination) || this; + _this.hasValue = false; + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](_this, undefined, undefined); + _this.add(innerSubscriber); + _this.innerSubscription = innerSubscriber; + Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(_this, notifier, undefined, undefined, innerSubscriber); + return _this; } - StaticArrayIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () { - return this; + SkipUntilSubscriber.prototype._next = function (value) { + if (this.hasValue) { + _super.prototype._next.call(this, value); + } }; - StaticArrayIterator.prototype.next = function (value) { - var i = this.index++; - var array = this.array; - return i < this.length ? { value: array[i], done: false } : { value: null, done: true }; + SkipUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.hasValue = true; + if (this.innerSubscription) { + this.innerSubscription.unsubscribe(); + } }; - StaticArrayIterator.prototype.hasValue = function () { - return this.array.length > this.index; + SkipUntilSubscriber.prototype.notifyComplete = function () { }; - StaticArrayIterator.prototype.hasCompleted = function () { - return this.array.length === this.index; + return SkipUntilSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=skipUntil.js.map + + +/***/ }), +/* 343 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { + +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "skipWhile", function() { return skipWhile; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ + + +function skipWhile(predicate) { + return function (source) { return source.lift(new SkipWhileOperator(predicate)); }; +} +var SkipWhileOperator = /*@__PURE__*/ (function () { + function SkipWhileOperator(predicate) { + this.predicate = predicate; + } + SkipWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SkipWhileSubscriber(subscriber, this.predicate)); }; - return StaticArrayIterator; + return SkipWhileOperator; }()); -var ZipBufferIterator = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ZipBufferIterator, _super); - function ZipBufferIterator(destination, parent, observable) { +var SkipWhileSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SkipWhileSubscriber, _super); + function SkipWhileSubscriber(destination, predicate) { var _this = _super.call(this, destination) || this; - _this.parent = parent; - _this.observable = observable; - _this.stillUnsubscribed = true; - _this.buffer = []; - _this.isComplete = false; + _this.predicate = predicate; + _this.skipping = true; + _this.index = 0; return _this; } - ZipBufferIterator.prototype[_internal_symbol_iterator__WEBPACK_IMPORTED_MODULE_6__["iterator"]] = function () { - return this; - }; - ZipBufferIterator.prototype.next = function () { - var buffer = this.buffer; - if (buffer.length === 0 && this.isComplete) { - return { value: null, done: true }; + SkipWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + if (this.skipping) { + this.tryCallPredicate(value); } - else { - return { value: buffer.shift(), done: false }; + if (!this.skipping) { + destination.next(value); } }; - ZipBufferIterator.prototype.hasValue = function () { - return this.buffer.length > 0; - }; - ZipBufferIterator.prototype.hasCompleted = function () { - return this.buffer.length === 0 && this.isComplete; - }; - ZipBufferIterator.prototype.notifyComplete = function () { - if (this.buffer.length > 0) { - this.isComplete = true; - this.parent.notifyInactive(); + SkipWhileSubscriber.prototype.tryCallPredicate = function (value) { + try { + var result = this.predicate(value, this.index++); + this.skipping = Boolean(result); } - else { - this.destination.complete(); + catch (err) { + this.destination.error(err); } }; - ZipBufferIterator.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { - this.buffer.push(innerValue); - this.parent.checkIterators(); - }; - ZipBufferIterator.prototype.subscribe = function (value, index) { - return Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_5__["subscribeToResult"])(this, this.observable, this, index); - }; - return ZipBufferIterator; -}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_4__["OuterSubscriber"])); -//# sourceMappingURL=zip.js.map + return SkipWhileSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=skipWhile.js.map /***/ }), -/* 347 */ +/* 344 */ /***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; __webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return zipAll; }); -/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(346); -/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "startWith", function() { return startWith; }); +/* harmony import */ var _observable_concat__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(239); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(205); +/** PURE_IMPORTS_START _observable_concat,_util_isScheduler PURE_IMPORTS_END */ -function zipAll(project) { - return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__["ZipOperator"](project)); }; + +function startWith() { + var array = []; + for (var _i = 0; _i < arguments.length; _i++) { + array[_i] = arguments[_i]; + } + var scheduler = array[array.length - 1]; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_1__["isScheduler"])(scheduler)) { + array.pop(); + return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(array, source, scheduler); }; + } + else { + return function (source) { return Object(_observable_concat__WEBPACK_IMPORTED_MODULE_0__["concat"])(array, source); }; + } } -//# sourceMappingURL=zipAll.js.map +//# sourceMappingURL=startWith.js.map /***/ }), -/* 348 */ -/***/ (function(module, exports, __webpack_require__) { +/* 345 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "subscribeOn", function() { return subscribeOn; }); +/* harmony import */ var _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(346); +/** PURE_IMPORTS_START _observable_SubscribeOnObservable PURE_IMPORTS_END */ +function subscribeOn(scheduler, delay) { + if (delay === void 0) { + delay = 0; + } + return function subscribeOnOperatorFunction(source) { + return source.lift(new SubscribeOnOperator(scheduler, delay)); + }; +} +var SubscribeOnOperator = /*@__PURE__*/ (function () { + function SubscribeOnOperator(scheduler, delay) { + this.scheduler = scheduler; + this.delay = delay; + } + SubscribeOnOperator.prototype.call = function (subscriber, source) { + return new _observable_SubscribeOnObservable__WEBPACK_IMPORTED_MODULE_0__["SubscribeOnObservable"](source, this.delay, this.scheduler).subscribe(subscriber); + }; + return SubscribeOnOperator; +}()); +//# sourceMappingURL=subscribeOn.js.map -const callbacks = new Set(); -let called = false; - -function exit(exit, signal) { - if (called) { - return; - } - called = true; +/***/ }), +/* 346 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - for (const callback of callbacks) { - callback(); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "SubscribeOnObservable", function() { return SubscribeOnObservable; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(170); +/* harmony import */ var _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(211); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(257); +/** PURE_IMPORTS_START tslib,_Observable,_scheduler_asap,_util_isNumeric PURE_IMPORTS_END */ - if (exit === true) { - process.exit(128 + signal); // eslint-disable-line unicorn/no-process-exit - } -} -module.exports = callback => { - callbacks.add(callback); - if (callbacks.size === 1) { - process.once('exit', exit); - process.once('SIGINT', exit.bind(null, true, 2)); - process.once('SIGTERM', exit.bind(null, true, 15)); - // PM2 Cluster shutdown message. Caught to support async handlers with pm2, needed because - // explicitly calling process.exit() doesn't trigger the beforeExit event, and the exit - // event cannot support async handlers, since the event loop is never called after it. - process.on('message', message => { - if (message === 'shutdown') { - exit(true, -128); - } - }); - } +var SubscribeOnObservable = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SubscribeOnObservable, _super); + function SubscribeOnObservable(source, delayTime, scheduler) { + if (delayTime === void 0) { + delayTime = 0; + } + if (scheduler === void 0) { + scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; + } + var _this = _super.call(this) || this; + _this.source = source; + _this.delayTime = delayTime; + _this.scheduler = scheduler; + if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_3__["isNumeric"])(delayTime) || delayTime < 0) { + _this.delayTime = 0; + } + if (!scheduler || typeof scheduler.schedule !== 'function') { + _this.scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; + } + return _this; + } + SubscribeOnObservable.create = function (source, delay, scheduler) { + if (delay === void 0) { + delay = 0; + } + if (scheduler === void 0) { + scheduler = _scheduler_asap__WEBPACK_IMPORTED_MODULE_2__["asap"]; + } + return new SubscribeOnObservable(source, delay, scheduler); + }; + SubscribeOnObservable.dispatch = function (arg) { + var source = arg.source, subscriber = arg.subscriber; + return this.add(source.subscribe(subscriber)); + }; + SubscribeOnObservable.prototype._subscribe = function (subscriber) { + var delay = this.delayTime; + var source = this.source; + var scheduler = this.scheduler; + return scheduler.schedule(SubscribeOnObservable.dispatch, delay, { + source: source, subscriber: subscriber + }); + }; + return SubscribeOnObservable; +}(_Observable__WEBPACK_IMPORTED_MODULE_1__["Observable"])); - return () => { - callbacks.delete(callback); - }; -}; +//# sourceMappingURL=SubscribeOnObservable.js.map /***/ }), -/* 349 */ -/***/ (function(module, exports, __webpack_require__) { +/* 347 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchAll", function() { return switchAll; }); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(348); +/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(220); +/** PURE_IMPORTS_START _switchMap,_util_identity PURE_IMPORTS_END */ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -const $isCliError = Symbol('isCliError'); -function createCliError(message) { - const error = new Error(message); - error[$isCliError] = true; - return error; -} -exports.createCliError = createCliError; -function isCliError(error) { - return error && !!error[$isCliError]; + +function switchAll() { + return Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(_util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]); } -exports.isCliError = isCliError; +//# sourceMappingURL=switchAll.js.map /***/ }), -/* 350 */ -/***/ (function(module, exports, __webpack_require__) { +/* 348 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMap", function() { return switchMap; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(226); +/* harmony import */ var _observable_from__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(243); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_InnerSubscriber,_util_subscribeToResult,_map,_observable_from PURE_IMPORTS_END */ -/* - * Licensed to Elasticsearch B.V. under one or more contributor - * license agreements. See the NOTICE file distributed with - * this work for additional information regarding copyright - * ownership. Elasticsearch B.V. licenses this file to you under - * the Apache License, Version 2.0 (the "License"); you may - * not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, - * software distributed under the License is distributed on an - * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY - * KIND, either express or implied. See the License for the - * specific language governing permissions and limitations - * under the License. - */ -Object.defineProperty(exports, "__esModule", { value: true }); -const tslib_1 = __webpack_require__(36); -const execa_1 = tslib_1.__importDefault(__webpack_require__(351)); -const fs_1 = __webpack_require__(23); -const Rx = tslib_1.__importStar(__webpack_require__(391)); -const operators_1 = __webpack_require__(169); -const chalk_1 = tslib_1.__importDefault(__webpack_require__(2)); -const tree_kill_1 = tslib_1.__importDefault(__webpack_require__(411)); -const util_1 = __webpack_require__(29); -const treeKillAsync = util_1.promisify((...args) => tree_kill_1.default(...args)); -const observe_lines_1 = __webpack_require__(412); -const errors_1 = __webpack_require__(349); -const SECOND = 1000; -const STOP_TIMEOUT = 30 * SECOND; -async function withTimeout(attempt, ms, onTimeout) { - const TIMEOUT = Symbol('timeout'); - try { - await Promise.race([ - attempt(), - new Promise((_, reject) => setTimeout(() => reject(TIMEOUT), ms)), - ]); - } - catch (error) { - if (error === TIMEOUT) { - await onTimeout(); - } - else { - throw error; - } + + + + + +function switchMap(project, resultSelector) { + if (typeof resultSelector === 'function') { + return function (source) { return source.pipe(switchMap(function (a, i) { return Object(_observable_from__WEBPACK_IMPORTED_MODULE_5__["from"])(project(a, i)).pipe(Object(_map__WEBPACK_IMPORTED_MODULE_4__["map"])(function (b, ii) { return resultSelector(a, b, i, ii); })); })); }; } + return function (source) { return source.lift(new SwitchMapOperator(project)); }; } -function startProc(name, options, log) { - const { cmd, args, cwd, env, stdin } = options; - log.info('[%s] > %s', name, cmd, args.join(' ')); - // spawn fails with ENOENT when either the - // cmd or cwd don't exist, so we check for the cwd - // ahead of time so that the error is less ambiguous - try { - if (!fs_1.statSync(cwd).isDirectory()) { - throw new Error(`cwd "${cwd}" exists but is not a directory`); - } - } - catch (err) { - if (err.code === 'ENOENT') { - throw new Error(`cwd "${cwd}" does not exist`); - } - } - const childProcess = execa_1.default(cmd, args, { - cwd, - env, - stdio: ['pipe', 'pipe', 'pipe'], - preferLocal: true, - }); - if (stdin) { - childProcess.stdin.end(stdin, 'utf8'); +var SwitchMapOperator = /*@__PURE__*/ (function () { + function SwitchMapOperator(project) { + this.project = project; } - else { - childProcess.stdin.end(); + SwitchMapOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new SwitchMapSubscriber(subscriber, this.project)); + }; + return SwitchMapOperator; +}()); +var SwitchMapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](SwitchMapSubscriber, _super); + function SwitchMapSubscriber(destination, project) { + var _this = _super.call(this, destination) || this; + _this.project = project; + _this.index = 0; + return _this; } - let stopCalled = false; - const outcome$ = Rx.race( - // observe first exit event - Rx.fromEvent(childProcess, 'exit').pipe(operators_1.take(1), operators_1.map(([code]) => { - if (stopCalled) { - return null; - } - // JVM exits with 143 on SIGTERM and 130 on SIGINT, dont' treat then as errors - if (code > 0 && !(code === 143 || code === 130)) { - throw errors_1.createCliError(`[${name}] exited with code ${code}`); + SwitchMapSubscriber.prototype._next = function (value) { + var result; + var index = this.index++; + try { + result = this.project(value, index); } - return code; - })), - // observe first error event - Rx.fromEvent(childProcess, 'error').pipe(operators_1.take(1), operators_1.mergeMap(err => Rx.throwError(err)))).pipe(operators_1.share()); - const lines$ = Rx.merge(observe_lines_1.observeLines(childProcess.stdout), observe_lines_1.observeLines(childProcess.stderr)).pipe(operators_1.tap(line => log.write(` ${chalk_1.default.gray('proc')} [${chalk_1.default.gray(name)}] ${line}`)), operators_1.share()); - const outcomePromise = Rx.merge(lines$.pipe(operators_1.ignoreElements()), outcome$).toPromise(); - async function stop(signal) { - if (stopCalled) { + catch (error) { + this.destination.error(error); return; } - stopCalled = true; - await withTimeout(async () => { - log.debug(`Sending "${signal}" to proc "${name}"`); - await treeKillAsync(childProcess.pid, signal); - await outcomePromise; - }, STOP_TIMEOUT, async () => { - log.warning(`Proc "${name}" was sent "${signal}" didn't emit the "exit" or "error" events after ${STOP_TIMEOUT} ms, sending SIGKILL`); - await treeKillAsync(childProcess.pid, 'SIGKILL'); - }); - await withTimeout(async () => { - try { - await outcomePromise; - } - catch (error) { - // ignore - } - }, STOP_TIMEOUT, async () => { - throw new Error(`Proc "${name}" was stopped but never emitted either the "exit" or "error" event after ${STOP_TIMEOUT} ms`); - }); - } - return { - name, - lines$, - outcome$, - outcomePromise, - stop, + this._innerSub(result, value, index); }; -} -exports.startProc = startProc; + SwitchMapSubscriber.prototype._innerSub = function (result, value, index) { + var innerSubscription = this.innerSubscription; + if (innerSubscription) { + innerSubscription.unsubscribe(); + } + var innerSubscriber = new _InnerSubscriber__WEBPACK_IMPORTED_MODULE_2__["InnerSubscriber"](this, undefined, undefined); + var destination = this.destination; + destination.add(innerSubscriber); + this.innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, result, value, index, innerSubscriber); + }; + SwitchMapSubscriber.prototype._complete = function () { + var innerSubscription = this.innerSubscription; + if (!innerSubscription || innerSubscription.closed) { + _super.prototype._complete.call(this); + } + this.unsubscribe(); + }; + SwitchMapSubscriber.prototype._unsubscribe = function () { + this.innerSubscription = null; + }; + SwitchMapSubscriber.prototype.notifyComplete = function (innerSub) { + var destination = this.destination; + destination.remove(innerSub); + this.innerSubscription = null; + if (this.isStopped) { + _super.prototype._complete.call(this); + } + }; + SwitchMapSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.destination.next(innerValue); + }; + return SwitchMapSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=switchMap.js.map /***/ }), -/* 351 */ -/***/ (function(module, exports, __webpack_require__) { +/* 349 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "switchMapTo", function() { return switchMapTo; }); +/* harmony import */ var _switchMap__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(348); +/** PURE_IMPORTS_START _switchMap PURE_IMPORTS_END */ -const path = __webpack_require__(16); -const childProcess = __webpack_require__(352); -const crossSpawn = __webpack_require__(353); -const stripFinalNewline = __webpack_require__(366); -const npmRunPath = __webpack_require__(367); -const onetime = __webpack_require__(368); -const makeError = __webpack_require__(370); -const normalizeStdio = __webpack_require__(375); -const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(376); -const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(380); -const {mergePromise, getSpawnedPromise} = __webpack_require__(389); -const {joinCommand, parseCommand} = __webpack_require__(390); +function switchMapTo(innerObservable, resultSelector) { + return resultSelector ? Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }, resultSelector) : Object(_switchMap__WEBPACK_IMPORTED_MODULE_0__["switchMap"])(function () { return innerObservable; }); +} +//# sourceMappingURL=switchMapTo.js.map -const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; -const getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => { - const env = extendEnv ? {...process.env, ...envOption} : envOption; +/***/ }), +/* 350 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (preferLocal) { - return npmRunPath.env({env, cwd: localDir, execPath}); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeUntil", function() { return takeUntil; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - return env; -}; -const handleArgs = (file, args, options = {}) => { - const parsed = crossSpawn._parse(file, args, options); - file = parsed.command; - args = parsed.args; - options = parsed.options; - options = { - maxBuffer: DEFAULT_MAX_BUFFER, - buffer: true, - stripFinalNewline: true, - extendEnv: true, - preferLocal: false, - localDir: options.cwd || process.cwd(), - execPath: process.execPath, - encoding: 'utf8', - reject: true, - cleanup: true, - all: false, - windowsHide: true, - ...options - }; +function takeUntil(notifier) { + return function (source) { return source.lift(new TakeUntilOperator(notifier)); }; +} +var TakeUntilOperator = /*@__PURE__*/ (function () { + function TakeUntilOperator(notifier) { + this.notifier = notifier; + } + TakeUntilOperator.prototype.call = function (subscriber, source) { + var takeUntilSubscriber = new TakeUntilSubscriber(subscriber); + var notifierSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(takeUntilSubscriber, this.notifier); + if (notifierSubscription && !takeUntilSubscriber.seenValue) { + takeUntilSubscriber.add(notifierSubscription); + return source.subscribe(takeUntilSubscriber); + } + return takeUntilSubscriber; + }; + return TakeUntilOperator; +}()); +var TakeUntilSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeUntilSubscriber, _super); + function TakeUntilSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.seenValue = false; + return _this; + } + TakeUntilSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.seenValue = true; + this.complete(); + }; + TakeUntilSubscriber.prototype.notifyComplete = function () { + }; + return TakeUntilSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=takeUntil.js.map - options.env = getEnv(options); - options.stdio = normalizeStdio(options); +/***/ }), +/* 351 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - if (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') { - // #116 - args.unshift('/q'); - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "takeWhile", function() { return takeWhile; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */ - return {file, args, options, parsed}; -}; -const handleOutput = (options, value, error) => { - if (typeof value !== 'string' && !Buffer.isBuffer(value)) { - // When `execa.sync()` errors, we normalize it to '' to mimic `execa()` - return error === undefined ? undefined : ''; - } +function takeWhile(predicate, inclusive) { + if (inclusive === void 0) { + inclusive = false; + } + return function (source) { + return source.lift(new TakeWhileOperator(predicate, inclusive)); + }; +} +var TakeWhileOperator = /*@__PURE__*/ (function () { + function TakeWhileOperator(predicate, inclusive) { + this.predicate = predicate; + this.inclusive = inclusive; + } + TakeWhileOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive)); + }; + return TakeWhileOperator; +}()); +var TakeWhileSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TakeWhileSubscriber, _super); + function TakeWhileSubscriber(destination, predicate, inclusive) { + var _this = _super.call(this, destination) || this; + _this.predicate = predicate; + _this.inclusive = inclusive; + _this.index = 0; + return _this; + } + TakeWhileSubscriber.prototype._next = function (value) { + var destination = this.destination; + var result; + try { + result = this.predicate(value, this.index++); + } + catch (err) { + destination.error(err); + return; + } + this.nextOrComplete(value, result); + }; + TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) { + var destination = this.destination; + if (Boolean(predicateResult)) { + destination.next(value); + } + else { + if (this.inclusive) { + destination.next(value); + } + destination.complete(); + } + }; + return TakeWhileSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=takeWhile.js.map - if (options.stripFinalNewline) { - return stripFinalNewline(value); - } - return value; -}; +/***/ }), +/* 352 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -const execa = (file, args, options) => { - const parsed = handleArgs(file, args, options); - const command = joinCommand(file, args); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "tap", function() { return tap; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(185); +/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(173); +/** PURE_IMPORTS_START tslib,_Subscriber,_util_noop,_util_isFunction PURE_IMPORTS_END */ - let spawned; - try { - spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options); - } catch (error) { - // Ensure the returned error is always both a promise and a child process - const dummySpawned = new childProcess.ChildProcess(); - const errorPromise = Promise.reject(makeError({ - error, - stdout: '', - stderr: '', - all: '', - command, - parsed, - timedOut: false, - isCanceled: false, - killed: false - })); - return mergePromise(dummySpawned, errorPromise); - } - const spawnedPromise = getSpawnedPromise(spawned); - const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise); - const processDone = setExitHandler(spawned, parsed.options, timedPromise); - - const context = {isCanceled: false}; - - spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned)); - spawned.cancel = spawnedCancel.bind(null, spawned, context); - - const handlePromise = async () => { - const [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone); - const stdout = handleOutput(parsed.options, stdoutResult); - const stderr = handleOutput(parsed.options, stderrResult); - const all = handleOutput(parsed.options, allResult); - - if (error || exitCode !== 0 || signal !== null) { - const returnedError = makeError({ - error, - exitCode, - signal, - stdout, - stderr, - all, - command, - parsed, - timedOut, - isCanceled: context.isCanceled, - killed: spawned.killed - }); - if (!parsed.options.reject) { - return returnedError; - } - throw returnedError; - } +function tap(nextOrObserver, error, complete) { + return function tapOperatorFunction(source) { + return source.lift(new DoOperator(nextOrObserver, error, complete)); + }; +} +var DoOperator = /*@__PURE__*/ (function () { + function DoOperator(nextOrObserver, error, complete) { + this.nextOrObserver = nextOrObserver; + this.error = error; + this.complete = complete; + } + DoOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TapSubscriber(subscriber, this.nextOrObserver, this.error, this.complete)); + }; + return DoOperator; +}()); +var TapSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TapSubscriber, _super); + function TapSubscriber(destination, observerOrNext, error, complete) { + var _this = _super.call(this, destination) || this; + _this._tapNext = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapError = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapComplete = _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapError = error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapComplete = complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_3__["isFunction"])(observerOrNext)) { + _this._context = _this; + _this._tapNext = observerOrNext; + } + else if (observerOrNext) { + _this._context = observerOrNext; + _this._tapNext = observerOrNext.next || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapError = observerOrNext.error || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + _this._tapComplete = observerOrNext.complete || _util_noop__WEBPACK_IMPORTED_MODULE_2__["noop"]; + } + return _this; + } + TapSubscriber.prototype._next = function (value) { + try { + this._tapNext.call(this._context, value); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(value); + }; + TapSubscriber.prototype._error = function (err) { + try { + this._tapError.call(this._context, err); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.error(err); + }; + TapSubscriber.prototype._complete = function () { + try { + this._tapComplete.call(this._context); + } + catch (err) { + this.destination.error(err); + return; + } + return this.destination.complete(); + }; + return TapSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=tap.js.map - return { - command, - exitCode: 0, - stdout, - stderr, - all, - failed: false, - timedOut: false, - isCanceled: false, - killed: false - }; - }; - const handlePromiseOnce = onetime(handlePromise); +/***/ }), +/* 353 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "defaultThrottleConfig", function() { return defaultThrottleConfig; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttle", function() { return throttle; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ - handleInput(spawned, parsed.options.input); - spawned.all = makeAllStream(spawned, parsed.options); - return mergePromise(spawned, handlePromiseOnce); +var defaultThrottleConfig = { + leading: true, + trailing: false }; +function throttle(durationSelector, config) { + if (config === void 0) { + config = defaultThrottleConfig; + } + return function (source) { return source.lift(new ThrottleOperator(durationSelector, config.leading, config.trailing)); }; +} +var ThrottleOperator = /*@__PURE__*/ (function () { + function ThrottleOperator(durationSelector, leading, trailing) { + this.durationSelector = durationSelector; + this.leading = leading; + this.trailing = trailing; + } + ThrottleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleSubscriber(subscriber, this.durationSelector, this.leading, this.trailing)); + }; + return ThrottleOperator; +}()); +var ThrottleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleSubscriber, _super); + function ThrottleSubscriber(destination, durationSelector, _leading, _trailing) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.durationSelector = durationSelector; + _this._leading = _leading; + _this._trailing = _trailing; + _this._hasValue = false; + return _this; + } + ThrottleSubscriber.prototype._next = function (value) { + this._hasValue = true; + this._sendValue = value; + if (!this._throttled) { + if (this._leading) { + this.send(); + } + else { + this.throttle(value); + } + } + }; + ThrottleSubscriber.prototype.send = function () { + var _a = this, _hasValue = _a._hasValue, _sendValue = _a._sendValue; + if (_hasValue) { + this.destination.next(_sendValue); + this.throttle(_sendValue); + } + this._hasValue = false; + this._sendValue = null; + }; + ThrottleSubscriber.prototype.throttle = function (value) { + var duration = this.tryDurationSelector(value); + if (!!duration) { + this.add(this._throttled = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(this, duration)); + } + }; + ThrottleSubscriber.prototype.tryDurationSelector = function (value) { + try { + return this.durationSelector(value); + } + catch (err) { + this.destination.error(err); + return null; + } + }; + ThrottleSubscriber.prototype.throttlingDone = function () { + var _a = this, _throttled = _a._throttled, _trailing = _a._trailing; + if (_throttled) { + _throttled.unsubscribe(); + } + this._throttled = null; + if (_trailing) { + this.send(); + } + }; + ThrottleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.throttlingDone(); + }; + ThrottleSubscriber.prototype.notifyComplete = function () { + this.throttlingDone(); + }; + return ThrottleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=throttle.js.map -module.exports = execa; - -module.exports.sync = (file, args, options) => { - const parsed = handleArgs(file, args, options); - const command = joinCommand(file, args); - - validateInputSync(parsed.options); - let result; - try { - result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options); - } catch (error) { - throw makeError({ - error, - stdout: '', - stderr: '', - all: '', - command, - parsed, - timedOut: false, - isCanceled: false, - killed: false - }); - } +/***/ }), +/* 354 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const stdout = handleOutput(parsed.options, result.stdout, result.error); - const stderr = handleOutput(parsed.options, result.stderr, result.error); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "throttleTime", function() { return throttleTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); +/* harmony import */ var _throttle__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(353); +/** PURE_IMPORTS_START tslib,_Subscriber,_scheduler_async,_throttle PURE_IMPORTS_END */ - if (result.error || result.status !== 0 || result.signal !== null) { - const error = makeError({ - stdout, - stderr, - error: result.error, - signal: result.signal, - exitCode: result.status, - command, - parsed, - timedOut: result.error && result.error.code === 'ETIMEDOUT', - isCanceled: false, - killed: result.signal !== null - }); - if (!parsed.options.reject) { - return error; - } - throw error; - } - return { - command, - exitCode: 0, - stdout, - stderr, - failed: false, - timedOut: false, - isCanceled: false, - killed: false - }; -}; +function throttleTime(duration, scheduler, config) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + } + if (config === void 0) { + config = _throttle__WEBPACK_IMPORTED_MODULE_3__["defaultThrottleConfig"]; + } + return function (source) { return source.lift(new ThrottleTimeOperator(duration, scheduler, config.leading, config.trailing)); }; +} +var ThrottleTimeOperator = /*@__PURE__*/ (function () { + function ThrottleTimeOperator(duration, scheduler, leading, trailing) { + this.duration = duration; + this.scheduler = scheduler; + this.leading = leading; + this.trailing = trailing; + } + ThrottleTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new ThrottleTimeSubscriber(subscriber, this.duration, this.scheduler, this.leading, this.trailing)); + }; + return ThrottleTimeOperator; +}()); +var ThrottleTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](ThrottleTimeSubscriber, _super); + function ThrottleTimeSubscriber(destination, duration, scheduler, leading, trailing) { + var _this = _super.call(this, destination) || this; + _this.duration = duration; + _this.scheduler = scheduler; + _this.leading = leading; + _this.trailing = trailing; + _this._hasTrailingValue = false; + _this._trailingValue = null; + return _this; + } + ThrottleTimeSubscriber.prototype._next = function (value) { + if (this.throttled) { + if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + else { + this.add(this.throttled = this.scheduler.schedule(dispatchNext, this.duration, { subscriber: this })); + if (this.leading) { + this.destination.next(value); + } + else if (this.trailing) { + this._trailingValue = value; + this._hasTrailingValue = true; + } + } + }; + ThrottleTimeSubscriber.prototype._complete = function () { + if (this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this.destination.complete(); + } + else { + this.destination.complete(); + } + }; + ThrottleTimeSubscriber.prototype.clearThrottle = function () { + var throttled = this.throttled; + if (throttled) { + if (this.trailing && this._hasTrailingValue) { + this.destination.next(this._trailingValue); + this._trailingValue = null; + this._hasTrailingValue = false; + } + throttled.unsubscribe(); + this.remove(throttled); + this.throttled = null; + } + }; + return ThrottleTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +function dispatchNext(arg) { + var subscriber = arg.subscriber; + subscriber.clearThrottle(); +} +//# sourceMappingURL=throttleTime.js.map -module.exports.command = (command, options) => { - const [file, ...args] = parseCommand(command); - return execa(file, args, options); -}; -module.exports.commandSync = (command, options) => { - const [file, ...args] = parseCommand(command); - return execa.sync(file, args, options); -}; +/***/ }), +/* 355 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports.node = (scriptPath, args, options = {}) => { - if (args && !Array.isArray(args) && typeof args === 'object') { - options = args; - args = []; - } +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeInterval", function() { return timeInterval; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "TimeInterval", function() { return TimeInterval; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(215); +/* harmony import */ var _scan__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(315); +/* harmony import */ var _observable_defer__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(250); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(226); +/** PURE_IMPORTS_START _scheduler_async,_scan,_observable_defer,_map PURE_IMPORTS_END */ - const stdio = normalizeStdio.node(options); - const {nodePath = process.execPath, nodeOptions = process.execArgv} = options; - return execa( - nodePath, - [ - ...nodeOptions, - scriptPath, - ...(Array.isArray(args) ? args : []) - ], - { - ...options, - stdin: undefined, - stdout: undefined, - stderr: undefined, - stdio, - shell: false - } - ); -}; +function timeInterval(scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return function (source) { + return Object(_observable_defer__WEBPACK_IMPORTED_MODULE_2__["defer"])(function () { + return source.pipe(Object(_scan__WEBPACK_IMPORTED_MODULE_1__["scan"])(function (_a, value) { + var current = _a.current; + return ({ value: value, current: scheduler.now(), last: current }); + }, { current: scheduler.now(), value: undefined, last: undefined }), Object(_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (_a) { + var current = _a.current, last = _a.last, value = _a.value; + return new TimeInterval(value, current - last); + })); + }); + }; +} +var TimeInterval = /*@__PURE__*/ (function () { + function TimeInterval(value, interval) { + this.value = value; + this.interval = interval; + } + return TimeInterval; +}()); -/***/ }), -/* 352 */ -/***/ (function(module, exports) { +//# sourceMappingURL=timeInterval.js.map -module.exports = require("child_process"); /***/ }), -/* 353 */ -/***/ (function(module, exports, __webpack_require__) { +/* 356 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeout", function() { return timeout; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(215); +/* harmony import */ var _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(224); +/* harmony import */ var _timeoutWith__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(357); +/* harmony import */ var _observable_throwError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(209); +/** PURE_IMPORTS_START _scheduler_async,_util_TimeoutError,_timeoutWith,_observable_throwError PURE_IMPORTS_END */ -const cp = __webpack_require__(352); -const parse = __webpack_require__(354); -const enoent = __webpack_require__(365); - -function spawn(command, args, options) { - // Parse the arguments - const parsed = parse(command, args, options); - - // Spawn the child process - const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); - - // Hook into child process "exit" event to emit an error if the command - // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 - enoent.hookChildProcess(spawned, parsed); - - return spawned; -} - -function spawnSync(command, args, options) { - // Parse the arguments - const parsed = parse(command, args, options); - - // Spawn the child process - const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); - // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 - result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); - return result; +function timeout(due, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; + } + return Object(_timeoutWith__WEBPACK_IMPORTED_MODULE_2__["timeoutWith"])(due, Object(_observable_throwError__WEBPACK_IMPORTED_MODULE_3__["throwError"])(new _util_TimeoutError__WEBPACK_IMPORTED_MODULE_1__["TimeoutError"]()), scheduler); } - -module.exports = spawn; -module.exports.spawn = spawn; -module.exports.sync = spawnSync; - -module.exports._parse = parse; -module.exports._enoent = enoent; +//# sourceMappingURL=timeout.js.map /***/ }), -/* 354 */ -/***/ (function(module, exports, __webpack_require__) { +/* 357 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timeoutWith", function() { return timeoutWith; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(215); +/* harmony import */ var _util_isDate__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(289); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_scheduler_async,_util_isDate,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const path = __webpack_require__(16); -const resolveCommand = __webpack_require__(355); -const escape = __webpack_require__(361); -const readShebang = __webpack_require__(362); - -const isWin = process.platform === 'win32'; -const isExecutableRegExp = /\.(?:com|exe)$/i; -const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; - -function detectShebang(parsed) { - parsed.file = resolveCommand(parsed); - const shebang = parsed.file && readShebang(parsed.file); - if (shebang) { - parsed.args.unshift(parsed.file); - parsed.command = shebang; - return resolveCommand(parsed); +function timeoutWith(due, withObservable, scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; } - - return parsed.file; + return function (source) { + var absoluteTimeout = Object(_util_isDate__WEBPACK_IMPORTED_MODULE_2__["isDate"])(due); + var waitFor = absoluteTimeout ? (+due - scheduler.now()) : Math.abs(due); + return source.lift(new TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler)); + }; } - -function parseNonShell(parsed) { - if (!isWin) { - return parsed; +var TimeoutWithOperator = /*@__PURE__*/ (function () { + function TimeoutWithOperator(waitFor, absoluteTimeout, withObservable, scheduler) { + this.waitFor = waitFor; + this.absoluteTimeout = absoluteTimeout; + this.withObservable = withObservable; + this.scheduler = scheduler; } + TimeoutWithOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new TimeoutWithSubscriber(subscriber, this.absoluteTimeout, this.waitFor, this.withObservable, this.scheduler)); + }; + return TimeoutWithOperator; +}()); +var TimeoutWithSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](TimeoutWithSubscriber, _super); + function TimeoutWithSubscriber(destination, absoluteTimeout, waitFor, withObservable, scheduler) { + var _this = _super.call(this, destination) || this; + _this.absoluteTimeout = absoluteTimeout; + _this.waitFor = waitFor; + _this.withObservable = withObservable; + _this.scheduler = scheduler; + _this.action = null; + _this.scheduleTimeout(); + return _this; + } + TimeoutWithSubscriber.dispatchTimeout = function (subscriber) { + var withObservable = subscriber.withObservable; + subscriber._unsubscribeAndRecycle(); + subscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(subscriber, withObservable)); + }; + TimeoutWithSubscriber.prototype.scheduleTimeout = function () { + var action = this.action; + if (action) { + this.action = action.schedule(this, this.waitFor); + } + else { + this.add(this.action = this.scheduler.schedule(TimeoutWithSubscriber.dispatchTimeout, this.waitFor, this)); + } + }; + TimeoutWithSubscriber.prototype._next = function (value) { + if (!this.absoluteTimeout) { + this.scheduleTimeout(); + } + _super.prototype._next.call(this, value); + }; + TimeoutWithSubscriber.prototype._unsubscribe = function () { + this.action = null; + this.scheduler = null; + this.withObservable = null; + }; + return TimeoutWithSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=timeoutWith.js.map - // Detect & add support for shebangs - const commandFile = detectShebang(parsed); - - // We don't need a shell if the command filename is an executable - const needsShell = !isExecutableRegExp.test(commandFile); - - // If a shell is required, use cmd.exe and take care of escaping everything correctly - // Note that `forceShell` is an hidden option used only in tests - if (parsed.options.forceShell || needsShell) { - // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` - // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument - // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, - // we need to double escape them - const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); - // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) - // This is necessary otherwise it will always fail with ENOENT in those cases - parsed.command = path.normalize(parsed.command); +/***/ }), +/* 358 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - // Escape command & arguments - parsed.command = escape.command(parsed.command); - parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "timestamp", function() { return timestamp; }); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "Timestamp", function() { return Timestamp; }); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(215); +/* harmony import */ var _map__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(226); +/** PURE_IMPORTS_START _scheduler_async,_map PURE_IMPORTS_END */ - const shellCommand = [parsed.command].concat(parsed.args).join(' '); - parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; - parsed.command = process.env.comspec || 'cmd.exe'; - parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped +function timestamp(scheduler) { + if (scheduler === void 0) { + scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_0__["async"]; } - - return parsed; + return Object(_map__WEBPACK_IMPORTED_MODULE_1__["map"])(function (value) { return new Timestamp(value, scheduler.now()); }); } - -function parse(command, args, options) { - // Normalize arguments, similar to nodejs - if (args && !Array.isArray(args)) { - options = args; - args = null; +var Timestamp = /*@__PURE__*/ (function () { + function Timestamp(value, timestamp) { + this.value = value; + this.timestamp = timestamp; } + return Timestamp; +}()); - args = args ? args.slice(0) : []; // Clone array to avoid changing the original - options = Object.assign({}, options); // Clone object to avoid changing the original - - // Build our parsed object - const parsed = { - command, - args, - options, - file: undefined, - original: { - command, - args, - }, - }; - - // Delegate further parsing to shell or non-shell - return options.shell ? parsed : parseNonShell(parsed); -} - -module.exports = parse; +//# sourceMappingURL=timestamp.js.map /***/ }), -/* 355 */ -/***/ (function(module, exports, __webpack_require__) { +/* 359 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "toArray", function() { return toArray; }); +/* harmony import */ var _reduce__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(314); +/** PURE_IMPORTS_START _reduce PURE_IMPORTS_END */ - -const path = __webpack_require__(16); -const which = __webpack_require__(356); -const pathKey = __webpack_require__(360)(); - -function resolveCommandAttempt(parsed, withoutPathExt) { - const cwd = process.cwd(); - const hasCustomCwd = parsed.options.cwd != null; - // Worker threads do not have process.chdir() - const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined; - - // If a custom `cwd` was specified, we need to change the process cwd - // because `which` will do stat calls but does not support a custom cwd - if (shouldSwitchCwd) { - try { - process.chdir(parsed.options.cwd); - } catch (err) { - /* Empty */ - } - } - - let resolved; - - try { - resolved = which.sync(parsed.command, { - path: (parsed.options.env || process.env)[pathKey], - pathExt: withoutPathExt ? path.delimiter : undefined, - }); - } catch (e) { - /* Empty */ - } finally { - if (shouldSwitchCwd) { - process.chdir(cwd); - } - } - - // If we successfully resolved, ensure that an absolute path is returned - // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it - if (resolved) { - resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); +function toArrayReducer(arr, item, index) { + if (index === 0) { + return [item]; } - - return resolved; + arr.push(item); + return arr; } - -function resolveCommand(parsed) { - return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); +function toArray() { + return Object(_reduce__WEBPACK_IMPORTED_MODULE_0__["reduce"])(toArrayReducer, []); } - -module.exports = resolveCommand; +//# sourceMappingURL=toArray.js.map /***/ }), -/* 356 */ -/***/ (function(module, exports, __webpack_require__) { - -const isWindows = process.platform === 'win32' || - process.env.OSTYPE === 'cygwin' || - process.env.OSTYPE === 'msys' - -const path = __webpack_require__(16) -const COLON = isWindows ? ';' : ':' -const isexe = __webpack_require__(357) +/* 360 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -const getNotFoundError = (cmd) => - Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "window", function() { return window; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const getPathInfo = (cmd, opt) => { - const colon = opt.colon || COLON - // If it has a slash, then we don't bother searching the pathenv. - // just check the file itself, and that's it. - const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [''] - : ( - [ - // windows always checks the cwd first - ...(isWindows ? [process.cwd()] : []), - ...(opt.path || process.env.PATH || - /* istanbul ignore next: very unusual */ '').split(colon), - ] - ) - const pathExtExe = isWindows - ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' - : '' - const pathExt = isWindows ? pathExtExe.split(colon) : [''] - if (isWindows) { - if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') - pathExt.unshift('') - } - return { - pathEnv, - pathExt, - pathExtExe, - } +function window(windowBoundaries) { + return function windowOperatorFunction(source) { + return source.lift(new WindowOperator(windowBoundaries)); + }; } +var WindowOperator = /*@__PURE__*/ (function () { + function WindowOperator(windowBoundaries) { + this.windowBoundaries = windowBoundaries; + } + WindowOperator.prototype.call = function (subscriber, source) { + var windowSubscriber = new WindowSubscriber(subscriber); + var sourceSubscription = source.subscribe(windowSubscriber); + if (!sourceSubscription.closed) { + windowSubscriber.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(windowSubscriber, this.windowBoundaries)); + } + return sourceSubscription; + }; + return WindowOperator; +}()); +var WindowSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super); + function WindowSubscriber(destination) { + var _this = _super.call(this, destination) || this; + _this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + destination.next(_this.window); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openWindow(); + }; + WindowSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this._complete(); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + }; + WindowSubscriber.prototype._unsubscribe = function () { + this.window = null; + }; + WindowSubscriber.prototype.openWindow = function () { + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var destination = this.destination; + var newWindow = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + destination.next(newWindow); + }; + return WindowSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); +//# sourceMappingURL=window.js.map -const which = (cmd, opt, cb) => { - if (typeof opt === 'function') { - cb = opt - opt = {} - } - if (!opt) - opt = {} - - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - - const step = i => new Promise((resolve, reject) => { - if (i === pathEnv.length) - return opt.all && found.length ? resolve(found) - : reject(getNotFoundError(cmd)) - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw +/***/ }), +/* 361 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowCount", function() { return windowCount; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(172); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(187); +/** PURE_IMPORTS_START tslib,_Subscriber,_Subject PURE_IMPORTS_END */ - resolve(subStep(p, i, 0)) - }) - const subStep = (p, i, ii) => new Promise((resolve, reject) => { - if (ii === pathExt.length) - return resolve(step(i + 1)) - const ext = pathExt[ii] - isexe(p + ext, { pathExt: pathExtExe }, (er, is) => { - if (!er && is) { - if (opt.all) - found.push(p + ext) - else - return resolve(p + ext) - } - return resolve(subStep(p, i, ii + 1)) - }) - }) - return cb ? step(0).then(res => cb(null, res), cb) : step(0) +function windowCount(windowSize, startWindowEvery) { + if (startWindowEvery === void 0) { + startWindowEvery = 0; + } + return function windowCountOperatorFunction(source) { + return source.lift(new WindowCountOperator(windowSize, startWindowEvery)); + }; } - -const whichSync = (cmd, opt) => { - opt = opt || {} - - const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) - const found = [] - - for (let i = 0; i < pathEnv.length; i ++) { - const ppRaw = pathEnv[i] - const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw - - const pCmd = path.join(pathPart, cmd) - const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd - : pCmd - - for (let j = 0; j < pathExt.length; j ++) { - const cur = p + pathExt[j] - try { - const is = isexe.sync(cur, { pathExt: pathExtExe }) - if (is) { - if (opt.all) - found.push(cur) - else - return cur - } - } catch (ex) {} +var WindowCountOperator = /*@__PURE__*/ (function () { + function WindowCountOperator(windowSize, startWindowEvery) { + this.windowSize = windowSize; + this.startWindowEvery = startWindowEvery; } - } - - if (opt.all && found.length) - return found + WindowCountOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowCountSubscriber(subscriber, this.windowSize, this.startWindowEvery)); + }; + return WindowCountOperator; +}()); +var WindowCountSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowCountSubscriber, _super); + function WindowCountSubscriber(destination, windowSize, startWindowEvery) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowSize = windowSize; + _this.startWindowEvery = startWindowEvery; + _this.windows = [new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"]()]; + _this.count = 0; + destination.next(_this.windows[0]); + return _this; + } + WindowCountSubscriber.prototype._next = function (value) { + var startWindowEvery = (this.startWindowEvery > 0) ? this.startWindowEvery : this.windowSize; + var destination = this.destination; + var windowSize = this.windowSize; + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len && !this.closed; i++) { + windows[i].next(value); + } + var c = this.count - windowSize + 1; + if (c >= 0 && c % startWindowEvery === 0 && !this.closed) { + windows.shift().complete(); + } + if (++this.count % startWindowEvery === 0 && !this.closed) { + var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_2__["Subject"](); + windows.push(window_1); + destination.next(window_1); + } + }; + WindowCountSubscriber.prototype._error = function (err) { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().error(err); + } + } + this.destination.error(err); + }; + WindowCountSubscriber.prototype._complete = function () { + var windows = this.windows; + if (windows) { + while (windows.length > 0 && !this.closed) { + windows.shift().complete(); + } + } + this.destination.complete(); + }; + WindowCountSubscriber.prototype._unsubscribe = function () { + this.count = 0; + this.windows = null; + }; + return WindowCountSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_1__["Subscriber"])); +//# sourceMappingURL=windowCount.js.map - if (opt.nothrow) - return null - throw getNotFoundError(cmd) -} +/***/ }), +/* 362 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { -module.exports = which -which.sync = whichSync +"use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowTime", function() { return windowTime; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(215); +/* harmony import */ var _Subscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(172); +/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(257); +/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(205); +/** PURE_IMPORTS_START tslib,_Subject,_scheduler_async,_Subscriber,_util_isNumeric,_util_isScheduler PURE_IMPORTS_END */ -/***/ }), -/* 357 */ -/***/ (function(module, exports, __webpack_require__) { -var fs = __webpack_require__(23) -var core -if (process.platform === 'win32' || global.TESTING_WINDOWS) { - core = __webpack_require__(358) -} else { - core = __webpack_require__(359) -} -module.exports = isexe -isexe.sync = sync -function isexe (path, options, cb) { - if (typeof options === 'function') { - cb = options - options = {} - } - if (!cb) { - if (typeof Promise !== 'function') { - throw new TypeError('callback not provided') +function windowTime(windowTimeSpan) { + var scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_2__["async"]; + var windowCreationInterval = null; + var maxWindowSize = Number.POSITIVE_INFINITY; + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[3])) { + scheduler = arguments[3]; } - - return new Promise(function (resolve, reject) { - isexe(path, options || {}, function (er, is) { - if (er) { - reject(er) - } else { - resolve(is) - } - }) - }) - } - - core(path, options || {}, function (er, is) { - // ignore EACCES because that just means we aren't allowed to run it - if (er) { - if (er.code === 'EACCES' || options && options.ignoreErrors) { - er = null - is = false - } + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[2])) { + scheduler = arguments[2]; } - cb(er, is) - }) -} - -function sync (path, options) { - // my kingdom for a filtered catch - try { - return core.sync(path, options || {}) - } catch (er) { - if (options && options.ignoreErrors || er.code === 'EACCES') { - return false - } else { - throw er + else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[2])) { + maxWindowSize = arguments[2]; } - } -} - - -/***/ }), -/* 358 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = isexe -isexe.sync = sync - -var fs = __webpack_require__(23) - -function checkPathExt (path, options) { - var pathext = options.pathExt !== undefined ? - options.pathExt : process.env.PATHEXT - - if (!pathext) { - return true - } - - pathext = pathext.split(';') - if (pathext.indexOf('') !== -1) { - return true - } - for (var i = 0; i < pathext.length; i++) { - var p = pathext[i].toLowerCase() - if (p && path.substr(-p.length).toLowerCase() === p) { - return true + if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(arguments[1])) { + scheduler = arguments[1]; } - } - return false -} - -function checkStat (stat, path, options) { - if (!stat.isSymbolicLink() && !stat.isFile()) { - return false - } - return checkPathExt(path, options) -} - -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, path, options)) - }) -} - -function sync (path, options) { - return checkStat(fs.statSync(path), path, options) -} - - -/***/ }), -/* 359 */ -/***/ (function(module, exports, __webpack_require__) { - -module.exports = isexe -isexe.sync = sync - -var fs = __webpack_require__(23) - -function isexe (path, options, cb) { - fs.stat(path, function (er, stat) { - cb(er, er ? false : checkStat(stat, options)) - }) + else if (Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_4__["isNumeric"])(arguments[1])) { + windowCreationInterval = arguments[1]; + } + return function windowTimeOperatorFunction(source) { + return source.lift(new WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler)); + }; } - -function sync (path, options) { - return checkStat(fs.statSync(path), options) +var WindowTimeOperator = /*@__PURE__*/ (function () { + function WindowTimeOperator(windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + this.windowTimeSpan = windowTimeSpan; + this.windowCreationInterval = windowCreationInterval; + this.maxWindowSize = maxWindowSize; + this.scheduler = scheduler; + } + WindowTimeOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowTimeSubscriber(subscriber, this.windowTimeSpan, this.windowCreationInterval, this.maxWindowSize, this.scheduler)); + }; + return WindowTimeOperator; +}()); +var CountedSubject = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](CountedSubject, _super); + function CountedSubject() { + var _this = _super !== null && _super.apply(this, arguments) || this; + _this._numberOfNextedValues = 0; + return _this; + } + CountedSubject.prototype.next = function (value) { + this._numberOfNextedValues++; + _super.prototype.next.call(this, value); + }; + Object.defineProperty(CountedSubject.prototype, "numberOfNextedValues", { + get: function () { + return this._numberOfNextedValues; + }, + enumerable: true, + configurable: true + }); + return CountedSubject; +}(_Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"])); +var WindowTimeSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowTimeSubscriber, _super); + function WindowTimeSubscriber(destination, windowTimeSpan, windowCreationInterval, maxWindowSize, scheduler) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.windowTimeSpan = windowTimeSpan; + _this.windowCreationInterval = windowCreationInterval; + _this.maxWindowSize = maxWindowSize; + _this.scheduler = scheduler; + _this.windows = []; + var window = _this.openWindow(); + if (windowCreationInterval !== null && windowCreationInterval >= 0) { + var closeState = { subscriber: _this, window: window, context: null }; + var creationState = { windowTimeSpan: windowTimeSpan, windowCreationInterval: windowCreationInterval, subscriber: _this, scheduler: scheduler }; + _this.add(scheduler.schedule(dispatchWindowClose, windowTimeSpan, closeState)); + _this.add(scheduler.schedule(dispatchWindowCreation, windowCreationInterval, creationState)); + } + else { + var timeSpanOnlyState = { subscriber: _this, window: window, windowTimeSpan: windowTimeSpan }; + _this.add(scheduler.schedule(dispatchWindowTimeSpanOnly, windowTimeSpan, timeSpanOnlyState)); + } + return _this; + } + WindowTimeSubscriber.prototype._next = function (value) { + var windows = this.windows; + var len = windows.length; + for (var i = 0; i < len; i++) { + var window_1 = windows[i]; + if (!window_1.closed) { + window_1.next(value); + if (window_1.numberOfNextedValues >= this.maxWindowSize) { + this.closeWindow(window_1); + } + } + } + }; + WindowTimeSubscriber.prototype._error = function (err) { + var windows = this.windows; + while (windows.length > 0) { + windows.shift().error(err); + } + this.destination.error(err); + }; + WindowTimeSubscriber.prototype._complete = function () { + var windows = this.windows; + while (windows.length > 0) { + var window_2 = windows.shift(); + if (!window_2.closed) { + window_2.complete(); + } + } + this.destination.complete(); + }; + WindowTimeSubscriber.prototype.openWindow = function () { + var window = new CountedSubject(); + this.windows.push(window); + var destination = this.destination; + destination.next(window); + return window; + }; + WindowTimeSubscriber.prototype.closeWindow = function (window) { + window.complete(); + var windows = this.windows; + windows.splice(windows.indexOf(window), 1); + }; + return WindowTimeSubscriber; +}(_Subscriber__WEBPACK_IMPORTED_MODULE_3__["Subscriber"])); +function dispatchWindowTimeSpanOnly(state) { + var subscriber = state.subscriber, windowTimeSpan = state.windowTimeSpan, window = state.window; + if (window) { + subscriber.closeWindow(window); + } + state.window = subscriber.openWindow(); + this.schedule(state, windowTimeSpan); } - -function checkStat (stat, options) { - return stat.isFile() && checkMode(stat, options) +function dispatchWindowCreation(state) { + var windowTimeSpan = state.windowTimeSpan, subscriber = state.subscriber, scheduler = state.scheduler, windowCreationInterval = state.windowCreationInterval; + var window = subscriber.openWindow(); + var action = this; + var context = { action: action, subscription: null }; + var timeSpanState = { subscriber: subscriber, window: window, context: context }; + context.subscription = scheduler.schedule(dispatchWindowClose, windowTimeSpan, timeSpanState); + action.add(context.subscription); + action.schedule(state, windowCreationInterval); } - -function checkMode (stat, options) { - var mod = stat.mode - var uid = stat.uid - var gid = stat.gid - - var myUid = options.uid !== undefined ? - options.uid : process.getuid && process.getuid() - var myGid = options.gid !== undefined ? - options.gid : process.getgid && process.getgid() - - var u = parseInt('100', 8) - var g = parseInt('010', 8) - var o = parseInt('001', 8) - var ug = u | g - - var ret = (mod & o) || - (mod & g) && gid === myGid || - (mod & u) && uid === myUid || - (mod & ug) && myUid === 0 - - return ret +function dispatchWindowClose(state) { + var subscriber = state.subscriber, window = state.window, context = state.context; + if (context && context.action && context.subscription) { + context.action.remove(context.subscription); + } + subscriber.closeWindow(window); } +//# sourceMappingURL=windowTime.js.map /***/ }), -/* 360 */ -/***/ (function(module, exports, __webpack_require__) { +/* 363 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowToggle", function() { return windowToggle; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(177); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_Subject,_Subscription,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const pathKey = (options = {}) => { - const environment = options.env || process.env; - const platform = options.platform || process.platform; - if (platform !== 'win32') { - return 'PATH'; - } - return Object.keys(environment).find(key => key.toUpperCase() === 'PATH') || 'Path'; -}; -module.exports = pathKey; -// TODO: Remove this for the next major release -module.exports.default = pathKey; +function windowToggle(openings, closingSelector) { + return function (source) { return source.lift(new WindowToggleOperator(openings, closingSelector)); }; +} +var WindowToggleOperator = /*@__PURE__*/ (function () { + function WindowToggleOperator(openings, closingSelector) { + this.openings = openings; + this.closingSelector = closingSelector; + } + WindowToggleOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowToggleSubscriber(subscriber, this.openings, this.closingSelector)); + }; + return WindowToggleOperator; +}()); +var WindowToggleSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowToggleSubscriber, _super); + function WindowToggleSubscriber(destination, openings, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.openings = openings; + _this.closingSelector = closingSelector; + _this.contexts = []; + _this.add(_this.openSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(_this, openings, openings)); + return _this; + } + WindowToggleSubscriber.prototype._next = function (value) { + var contexts = this.contexts; + if (contexts) { + var len = contexts.length; + for (var i = 0; i < len; i++) { + contexts[i].window.next(value); + } + } + }; + WindowToggleSubscriber.prototype._error = function (err) { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_1 = contexts[index]; + context_1.window.error(err); + context_1.subscription.unsubscribe(); + } + } + _super.prototype._error.call(this, err); + }; + WindowToggleSubscriber.prototype._complete = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_2 = contexts[index]; + context_2.window.complete(); + context_2.subscription.unsubscribe(); + } + } + _super.prototype._complete.call(this); + }; + WindowToggleSubscriber.prototype._unsubscribe = function () { + var contexts = this.contexts; + this.contexts = null; + if (contexts) { + var len = contexts.length; + var index = -1; + while (++index < len) { + var context_3 = contexts[index]; + context_3.window.unsubscribe(); + context_3.subscription.unsubscribe(); + } + } + }; + WindowToggleSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + if (outerValue === this.openings) { + var closingNotifier = void 0; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(innerValue); + } + catch (e) { + return this.error(e); + } + var window_1 = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_2__["Subscription"](); + var context_4 = { window: window_1, subscription: subscription }; + this.contexts.push(context_4); + var innerSubscription = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_4__["subscribeToResult"])(this, closingNotifier, context_4); + if (innerSubscription.closed) { + this.closeWindow(this.contexts.length - 1); + } + else { + innerSubscription.context = context_4; + subscription.add(innerSubscription); + } + this.destination.next(window_1); + } + else { + this.closeWindow(this.contexts.indexOf(outerValue)); + } + }; + WindowToggleSubscriber.prototype.notifyError = function (err) { + this.error(err); + }; + WindowToggleSubscriber.prototype.notifyComplete = function (inner) { + if (inner !== this.openSubscription) { + this.closeWindow(this.contexts.indexOf(inner.context)); + } + }; + WindowToggleSubscriber.prototype.closeWindow = function (index) { + if (index === -1) { + return; + } + var contexts = this.contexts; + var context = contexts[index]; + var window = context.window, subscription = context.subscription; + contexts.splice(index, 1); + window.complete(); + subscription.unsubscribe(); + }; + return WindowToggleSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_3__["OuterSubscriber"])); +//# sourceMappingURL=windowToggle.js.map /***/ }), -/* 361 */ -/***/ (function(module, exports, __webpack_require__) { +/* 364 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "windowWhen", function() { return windowWhen; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _Subject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(187); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_Subject,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -// See http://www.robvanderwoude.com/escapechars.php -const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; -function escapeCommand(arg) { - // Escape meta chars - arg = arg.replace(metaCharsRegExp, '^$1'); - return arg; +function windowWhen(closingSelector) { + return function windowWhenOperatorFunction(source) { + return source.lift(new WindowOperator(closingSelector)); + }; } - -function escapeArgument(arg, doubleEscapeMetaChars) { - // Convert to string - arg = `${arg}`; - - // Algorithm below is based on https://qntm.org/cmd - - // Sequence of backslashes followed by a double quote: - // double up all the backslashes and escape the double quote - arg = arg.replace(/(\\*)"/g, '$1$1\\"'); - - // Sequence of backslashes followed by the end of the string - // (which will become a double quote later): - // double up all the backslashes - arg = arg.replace(/(\\*)$/, '$1$1'); - - // All other backslashes occur literally - - // Quote the whole thing: - arg = `"${arg}"`; - - // Escape meta chars - arg = arg.replace(metaCharsRegExp, '^$1'); - - // Double escape meta chars if necessary - if (doubleEscapeMetaChars) { - arg = arg.replace(metaCharsRegExp, '^$1'); +var WindowOperator = /*@__PURE__*/ (function () { + function WindowOperator(closingSelector) { + this.closingSelector = closingSelector; } - - return arg; -} - -module.exports.command = escapeCommand; -module.exports.argument = escapeArgument; + WindowOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WindowSubscriber(subscriber, this.closingSelector)); + }; + return WindowOperator; +}()); +var WindowSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WindowSubscriber, _super); + function WindowSubscriber(destination, closingSelector) { + var _this = _super.call(this, destination) || this; + _this.destination = destination; + _this.closingSelector = closingSelector; + _this.openWindow(); + return _this; + } + WindowSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype.notifyError = function (error, innerSub) { + this._error(error); + }; + WindowSubscriber.prototype.notifyComplete = function (innerSub) { + this.openWindow(innerSub); + }; + WindowSubscriber.prototype._next = function (value) { + this.window.next(value); + }; + WindowSubscriber.prototype._error = function (err) { + this.window.error(err); + this.destination.error(err); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype._complete = function () { + this.window.complete(); + this.destination.complete(); + this.unsubscribeClosingNotification(); + }; + WindowSubscriber.prototype.unsubscribeClosingNotification = function () { + if (this.closingNotification) { + this.closingNotification.unsubscribe(); + } + }; + WindowSubscriber.prototype.openWindow = function (innerSub) { + if (innerSub === void 0) { + innerSub = null; + } + if (innerSub) { + this.remove(innerSub); + innerSub.unsubscribe(); + } + var prevWindow = this.window; + if (prevWindow) { + prevWindow.complete(); + } + var window = this.window = new _Subject__WEBPACK_IMPORTED_MODULE_1__["Subject"](); + this.destination.next(window); + var closingNotifier; + try { + var closingSelector = this.closingSelector; + closingNotifier = closingSelector(); + } + catch (e) { + this.destination.error(e); + this.window.error(e); + return; + } + this.add(this.closingNotification = Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_3__["subscribeToResult"])(this, closingNotifier)); + }; + return WindowSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_2__["OuterSubscriber"])); +//# sourceMappingURL=windowWhen.js.map /***/ }), -/* 362 */ -/***/ (function(module, exports, __webpack_require__) { +/* 365 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "withLatestFrom", function() { return withLatestFrom; }); +/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); +/* harmony import */ var _OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(229); +/* harmony import */ var _util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(230); +/** PURE_IMPORTS_START tslib,_OuterSubscriber,_util_subscribeToResult PURE_IMPORTS_END */ -const fs = __webpack_require__(23); -const shebangCommand = __webpack_require__(363); - -function readShebang(command) { - // Read the first 150 bytes from the file - const size = 150; - const buffer = Buffer.alloc(size); - let fd; - - try { - fd = fs.openSync(command, 'r'); - fs.readSync(fd, buffer, 0, size, 0); - fs.closeSync(fd); - } catch (e) { /* Empty */ } - - // Attempt to extract shebang (null is returned if not a shebang) - return shebangCommand(buffer.toString()); +function withLatestFrom() { + var args = []; + for (var _i = 0; _i < arguments.length; _i++) { + args[_i] = arguments[_i]; + } + return function (source) { + var project; + if (typeof args[args.length - 1] === 'function') { + project = args.pop(); + } + var observables = args; + return source.lift(new WithLatestFromOperator(observables, project)); + }; } - -module.exports = readShebang; +var WithLatestFromOperator = /*@__PURE__*/ (function () { + function WithLatestFromOperator(observables, project) { + this.observables = observables; + this.project = project; + } + WithLatestFromOperator.prototype.call = function (subscriber, source) { + return source.subscribe(new WithLatestFromSubscriber(subscriber, this.observables, this.project)); + }; + return WithLatestFromOperator; +}()); +var WithLatestFromSubscriber = /*@__PURE__*/ (function (_super) { + tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](WithLatestFromSubscriber, _super); + function WithLatestFromSubscriber(destination, observables, project) { + var _this = _super.call(this, destination) || this; + _this.observables = observables; + _this.project = project; + _this.toRespond = []; + var len = observables.length; + _this.values = new Array(len); + for (var i = 0; i < len; i++) { + _this.toRespond.push(i); + } + for (var i = 0; i < len; i++) { + var observable = observables[i]; + _this.add(Object(_util_subscribeToResult__WEBPACK_IMPORTED_MODULE_2__["subscribeToResult"])(_this, observable, observable, i)); + } + return _this; + } + WithLatestFromSubscriber.prototype.notifyNext = function (outerValue, innerValue, outerIndex, innerIndex, innerSub) { + this.values[outerIndex] = innerValue; + var toRespond = this.toRespond; + if (toRespond.length > 0) { + var found = toRespond.indexOf(outerIndex); + if (found !== -1) { + toRespond.splice(found, 1); + } + } + }; + WithLatestFromSubscriber.prototype.notifyComplete = function () { + }; + WithLatestFromSubscriber.prototype._next = function (value) { + if (this.toRespond.length === 0) { + var args = [value].concat(this.values); + if (this.project) { + this._tryProject(args); + } + else { + this.destination.next(args); + } + } + }; + WithLatestFromSubscriber.prototype._tryProject = function (args) { + var result; + try { + result = this.project.apply(this, args); + } + catch (err) { + this.destination.error(err); + return; + } + this.destination.next(result); + }; + return WithLatestFromSubscriber; +}(_OuterSubscriber__WEBPACK_IMPORTED_MODULE_1__["OuterSubscriber"])); +//# sourceMappingURL=withLatestFrom.js.map /***/ }), -/* 363 */ -/***/ (function(module, exports, __webpack_require__) { +/* 366 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return zip; }); +/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(269); +/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ -const shebangRegex = __webpack_require__(364); - -module.exports = (string = '') => { - const match = string.match(shebangRegex); - - if (!match) { - return null; - } - - const [path, argument] = match[0].replace(/#! ?/, '').split(' '); - const binary = path.split('/').pop(); - - if (binary === 'env') { - return argument; - } - - return argument ? `${binary} ${argument}` : binary; -}; +function zip() { + var observables = []; + for (var _i = 0; _i < arguments.length; _i++) { + observables[_i] = arguments[_i]; + } + return function zipOperatorFunction(source) { + return source.lift.call(_observable_zip__WEBPACK_IMPORTED_MODULE_0__["zip"].apply(void 0, [source].concat(observables))); + }; +} +//# sourceMappingURL=zip.js.map /***/ }), -/* 364 */ -/***/ (function(module, exports, __webpack_require__) { +/* 367 */ +/***/ (function(module, __webpack_exports__, __webpack_require__) { "use strict"; +__webpack_require__.r(__webpack_exports__); +/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "zipAll", function() { return zipAll; }); +/* harmony import */ var _observable_zip__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(269); +/** PURE_IMPORTS_START _observable_zip PURE_IMPORTS_END */ -module.exports = /^#!(.*)/; +function zipAll(project) { + return function (source) { return source.lift(new _observable_zip__WEBPACK_IMPORTED_MODULE_0__["ZipOperator"](project)); }; +} +//# sourceMappingURL=zipAll.js.map /***/ }), -/* 365 */ +/* 368 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const isWin = process.platform === 'win32'; - -function notFoundError(original, syscall) { - return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { - code: 'ENOENT', - errno: 'ENOENT', - syscall: `${syscall} ${original.command}`, - path: original.command, - spawnargs: original.args, - }); -} - -function hookChildProcess(cp, parsed) { - if (!isWin) { - return; - } +const callbacks = new Set(); +let called = false; - const originalEmit = cp.emit; +function exit(exit, signal) { + if (called) { + return; + } - cp.emit = function (name, arg1) { - // If emitting "exit" event and exit code is 1, we need to check if - // the command exists and emit an "error" instead - // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 - if (name === 'exit') { - const err = verifyENOENT(arg1, parsed, 'spawn'); + called = true; - if (err) { - return originalEmit.call(cp, 'error', err); - } - } + for (const callback of callbacks) { + callback(); + } - return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params - }; + if (exit === true) { + process.exit(128 + signal); // eslint-disable-line unicorn/no-process-exit + } } -function verifyENOENT(status, parsed) { - if (isWin && status === 1 && !parsed.file) { - return notFoundError(parsed.original, 'spawn'); - } - - return null; -} +module.exports = callback => { + callbacks.add(callback); -function verifyENOENTSync(status, parsed) { - if (isWin && status === 1 && !parsed.file) { - return notFoundError(parsed.original, 'spawnSync'); - } + if (callbacks.size === 1) { + process.once('exit', exit); + process.once('SIGINT', exit.bind(null, true, 2)); + process.once('SIGTERM', exit.bind(null, true, 15)); - return null; -} + // PM2 Cluster shutdown message. Caught to support async handlers with pm2, needed because + // explicitly calling process.exit() doesn't trigger the beforeExit event, and the exit + // event cannot support async handlers, since the event loop is never called after it. + process.on('message', message => { + if (message === 'shutdown') { + exit(true, -128); + } + }); + } -module.exports = { - hookChildProcess, - verifyENOENT, - verifyENOENTSync, - notFoundError, + return () => { + callbacks.delete(callback); + }; }; /***/ }), -/* 366 */ +/* 369 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +const $isCliError = Symbol('isCliError'); +function createCliError(message) { + const error = new Error(message); + error[$isCliError] = true; + return error; +} +exports.createCliError = createCliError; +function isCliError(error) { + return error && !!error[$isCliError]; +} +exports.isCliError = isCliError; -module.exports = input => { - const LF = typeof input === 'string' ? '\n' : '\n'.charCodeAt(); - const CR = typeof input === 'string' ? '\r' : '\r'.charCodeAt(); - if (input[input.length - 1] === LF) { - input = input.slice(0, input.length - 1); - } +/***/ }), +/* 370 */ +/***/ (function(module, exports, __webpack_require__) { - if (input[input.length - 1] === CR) { - input = input.slice(0, input.length - 1); - } +"use strict"; - return input; -}; +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ +Object.defineProperty(exports, "__esModule", { value: true }); +const tslib_1 = __webpack_require__(36); +const execa_1 = tslib_1.__importDefault(__webpack_require__(371)); +const fs_1 = __webpack_require__(23); +const Rx = tslib_1.__importStar(__webpack_require__(169)); +const operators_1 = __webpack_require__(270); +const chalk_1 = tslib_1.__importDefault(__webpack_require__(2)); +const tree_kill_1 = tslib_1.__importDefault(__webpack_require__(411)); +const util_1 = __webpack_require__(29); +const treeKillAsync = util_1.promisify((...args) => tree_kill_1.default(...args)); +const observe_lines_1 = __webpack_require__(412); +const errors_1 = __webpack_require__(369); +const SECOND = 1000; +const STOP_TIMEOUT = 30 * SECOND; +async function withTimeout(attempt, ms, onTimeout) { + const TIMEOUT = Symbol('timeout'); + try { + await Promise.race([ + attempt(), + new Promise((_, reject) => setTimeout(() => reject(TIMEOUT), ms)), + ]); + } + catch (error) { + if (error === TIMEOUT) { + await onTimeout(); + } + else { + throw error; + } + } +} +function startProc(name, options, log) { + const { cmd, args, cwd, env, stdin } = options; + log.info('[%s] > %s', name, cmd, args.join(' ')); + // spawn fails with ENOENT when either the + // cmd or cwd don't exist, so we check for the cwd + // ahead of time so that the error is less ambiguous + try { + if (!fs_1.statSync(cwd).isDirectory()) { + throw new Error(`cwd "${cwd}" exists but is not a directory`); + } + } + catch (err) { + if (err.code === 'ENOENT') { + throw new Error(`cwd "${cwd}" does not exist`); + } + } + const childProcess = execa_1.default(cmd, args, { + cwd, + env, + stdio: ['pipe', 'pipe', 'pipe'], + preferLocal: true, + }); + if (stdin) { + childProcess.stdin.end(stdin, 'utf8'); + } + else { + childProcess.stdin.end(); + } + let stopCalled = false; + const outcome$ = Rx.race( + // observe first exit event + Rx.fromEvent(childProcess, 'exit').pipe(operators_1.take(1), operators_1.map(([code]) => { + if (stopCalled) { + return null; + } + // JVM exits with 143 on SIGTERM and 130 on SIGINT, dont' treat then as errors + if (code > 0 && !(code === 143 || code === 130)) { + throw errors_1.createCliError(`[${name}] exited with code ${code}`); + } + return code; + })), + // observe first error event + Rx.fromEvent(childProcess, 'error').pipe(operators_1.take(1), operators_1.mergeMap(err => Rx.throwError(err)))).pipe(operators_1.share()); + const lines$ = Rx.merge(observe_lines_1.observeLines(childProcess.stdout), observe_lines_1.observeLines(childProcess.stderr)).pipe(operators_1.tap(line => log.write(` ${chalk_1.default.gray('proc')} [${chalk_1.default.gray(name)}] ${line}`)), operators_1.share()); + const outcomePromise = Rx.merge(lines$.pipe(operators_1.ignoreElements()), outcome$).toPromise(); + async function stop(signal) { + if (stopCalled) { + return; + } + stopCalled = true; + await withTimeout(async () => { + log.debug(`Sending "${signal}" to proc "${name}"`); + await treeKillAsync(childProcess.pid, signal); + await outcomePromise; + }, STOP_TIMEOUT, async () => { + log.warning(`Proc "${name}" was sent "${signal}" didn't emit the "exit" or "error" events after ${STOP_TIMEOUT} ms, sending SIGKILL`); + await treeKillAsync(childProcess.pid, 'SIGKILL'); + }); + await withTimeout(async () => { + try { + await outcomePromise; + } + catch (error) { + // ignore + } + }, STOP_TIMEOUT, async () => { + throw new Error(`Proc "${name}" was stopped but never emitted either the "exit" or "error" event after ${STOP_TIMEOUT} ms`); + }); + } + return { + name, + lines$, + outcome$, + outcomePromise, + stop, + }; +} +exports.startProc = startProc; /***/ }), -/* 367 */ +/* 371 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; const path = __webpack_require__(16); -const pathKey = __webpack_require__(360); +const childProcess = __webpack_require__(372); +const crossSpawn = __webpack_require__(373); +const stripFinalNewline = __webpack_require__(386); +const npmRunPath = __webpack_require__(387); +const onetime = __webpack_require__(388); +const makeError = __webpack_require__(390); +const normalizeStdio = __webpack_require__(395); +const {spawnedKill, spawnedCancel, setupTimeout, setExitHandler} = __webpack_require__(396); +const {handleInput, getSpawnedResult, makeAllStream, validateInputSync} = __webpack_require__(400); +const {mergePromise, getSpawnedPromise} = __webpack_require__(409); +const {joinCommand, parseCommand} = __webpack_require__(410); -const npmRunPath = options => { - options = { - cwd: process.cwd(), - path: process.env[pathKey()], - execPath: process.execPath, - ...options - }; +const DEFAULT_MAX_BUFFER = 1000 * 1000 * 100; - let previous; - let cwdPath = path.resolve(options.cwd); - const result = []; +const getEnv = ({env: envOption, extendEnv, preferLocal, localDir, execPath}) => { + const env = extendEnv ? {...process.env, ...envOption} : envOption; - while (previous !== cwdPath) { - result.push(path.join(cwdPath, 'node_modules/.bin')); - previous = cwdPath; - cwdPath = path.resolve(cwdPath, '..'); + if (preferLocal) { + return npmRunPath.env({env, cwd: localDir, execPath}); } - // Ensure the running `node` binary is used - const execPathDir = path.resolve(options.cwd, options.execPath, '..'); - result.unshift(execPathDir); - - return result.concat(options.path).join(path.delimiter); + return env; }; -module.exports = npmRunPath; -// TODO: Remove this for the next major release -module.exports.default = npmRunPath; +const handleArgs = (file, args, options = {}) => { + const parsed = crossSpawn._parse(file, args, options); + file = parsed.command; + args = parsed.args; + options = parsed.options; -module.exports.env = options => { options = { - env: process.env, + maxBuffer: DEFAULT_MAX_BUFFER, + buffer: true, + stripFinalNewline: true, + extendEnv: true, + preferLocal: false, + localDir: options.cwd || process.cwd(), + execPath: process.execPath, + encoding: 'utf8', + reject: true, + cleanup: true, + all: false, + windowsHide: true, ...options }; - const env = {...options.env}; - const path = pathKey({env}); + options.env = getEnv(options); - options.path = env[path]; - env[path] = module.exports(options); + options.stdio = normalizeStdio(options); - return env; -}; + if (process.platform === 'win32' && path.basename(file, '.exe') === 'cmd') { + // #116 + args.unshift('/q'); + } + return {file, args, options, parsed}; +}; -/***/ }), -/* 368 */ -/***/ (function(module, exports, __webpack_require__) { +const handleOutput = (options, value, error) => { + if (typeof value !== 'string' && !Buffer.isBuffer(value)) { + // When `execa.sync()` errors, we normalize it to '' to mimic `execa()` + return error === undefined ? undefined : ''; + } -"use strict"; + if (options.stripFinalNewline) { + return stripFinalNewline(value); + } -const mimicFn = __webpack_require__(369); + return value; +}; -const calledFunctions = new WeakMap(); +const execa = (file, args, options) => { + const parsed = handleArgs(file, args, options); + const command = joinCommand(file, args); -const oneTime = (fn, options = {}) => { - if (typeof fn !== 'function') { - throw new TypeError('Expected a function'); + let spawned; + try { + spawned = childProcess.spawn(parsed.file, parsed.args, parsed.options); + } catch (error) { + // Ensure the returned error is always both a promise and a child process + const dummySpawned = new childProcess.ChildProcess(); + const errorPromise = Promise.reject(makeError({ + error, + stdout: '', + stderr: '', + all: '', + command, + parsed, + timedOut: false, + isCanceled: false, + killed: false + })); + return mergePromise(dummySpawned, errorPromise); } - let ret; - let isCalled = false; - let callCount = 0; - const functionName = fn.displayName || fn.name || ''; + const spawnedPromise = getSpawnedPromise(spawned); + const timedPromise = setupTimeout(spawned, parsed.options, spawnedPromise); + const processDone = setExitHandler(spawned, parsed.options, timedPromise); - const onetime = function (...args) { - calledFunctions.set(onetime, ++callCount); + const context = {isCanceled: false}; - if (isCalled) { - if (options.throw === true) { - throw new Error(`Function \`${functionName}\` can only be called once`); - } + spawned.kill = spawnedKill.bind(null, spawned.kill.bind(spawned)); + spawned.cancel = spawnedCancel.bind(null, spawned, context); - return ret; - } + const handlePromise = async () => { + const [{error, exitCode, signal, timedOut}, stdoutResult, stderrResult, allResult] = await getSpawnedResult(spawned, parsed.options, processDone); + const stdout = handleOutput(parsed.options, stdoutResult); + const stderr = handleOutput(parsed.options, stderrResult); + const all = handleOutput(parsed.options, allResult); - isCalled = true; - ret = fn.apply(this, args); - fn = null; + if (error || exitCode !== 0 || signal !== null) { + const returnedError = makeError({ + error, + exitCode, + signal, + stdout, + stderr, + all, + command, + parsed, + timedOut, + isCanceled: context.isCanceled, + killed: spawned.killed + }); - return ret; + if (!parsed.options.reject) { + return returnedError; + } + + throw returnedError; + } + + return { + command, + exitCode: 0, + stdout, + stderr, + all, + failed: false, + timedOut: false, + isCanceled: false, + killed: false + }; }; - mimicFn(onetime, fn); - calledFunctions.set(onetime, callCount); + const handlePromiseOnce = onetime(handlePromise); - return onetime; -}; + crossSpawn._enoent.hookChildProcess(spawned, parsed.parsed); -module.exports = oneTime; -// TODO: Remove this for the next major release -module.exports.default = oneTime; + handleInput(spawned, parsed.options.input); -module.exports.callCount = fn => { - if (!calledFunctions.has(fn)) { - throw new Error(`The given function \`${fn.name}\` is not wrapped by the \`onetime\` package`); - } + spawned.all = makeAllStream(spawned, parsed.options); - return calledFunctions.get(fn); + return mergePromise(spawned, handlePromiseOnce); }; +module.exports = execa; -/***/ }), -/* 369 */ -/***/ (function(module, exports, __webpack_require__) { +module.exports.sync = (file, args, options) => { + const parsed = handleArgs(file, args, options); + const command = joinCommand(file, args); -"use strict"; + validateInputSync(parsed.options); + + let result; + try { + result = childProcess.spawnSync(parsed.file, parsed.args, parsed.options); + } catch (error) { + throw makeError({ + error, + stdout: '', + stderr: '', + all: '', + command, + parsed, + timedOut: false, + isCanceled: false, + killed: false + }); + } + const stdout = handleOutput(parsed.options, result.stdout, result.error); + const stderr = handleOutput(parsed.options, result.stderr, result.error); -const mimicFn = (to, from) => { - for (const prop of Reflect.ownKeys(from)) { - Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); + if (result.error || result.status !== 0 || result.signal !== null) { + const error = makeError({ + stdout, + stderr, + error: result.error, + signal: result.signal, + exitCode: result.status, + command, + parsed, + timedOut: result.error && result.error.code === 'ETIMEDOUT', + isCanceled: false, + killed: result.signal !== null + }); + + if (!parsed.options.reject) { + return error; + } + + throw error; } - return to; + return { + command, + exitCode: 0, + stdout, + stderr, + failed: false, + timedOut: false, + isCanceled: false, + killed: false + }; }; -module.exports = mimicFn; -// TODO: Remove this for the next major release -module.exports.default = mimicFn; +module.exports.command = (command, options) => { + const [file, ...args] = parseCommand(command); + return execa(file, args, options); +}; +module.exports.commandSync = (command, options) => { + const [file, ...args] = parseCommand(command); + return execa.sync(file, args, options); +}; -/***/ }), -/* 370 */ -/***/ (function(module, exports, __webpack_require__) { +module.exports.node = (scriptPath, args, options = {}) => { + if (args && !Array.isArray(args) && typeof args === 'object') { + options = args; + args = []; + } -"use strict"; + const stdio = normalizeStdio.node(options); -const {signalsByName} = __webpack_require__(371); + const {nodePath = process.execPath, nodeOptions = process.execArgv} = options; -const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => { - if (timedOut) { - return `timed out after ${timeout} milliseconds`; - } + return execa( + nodePath, + [ + ...nodeOptions, + scriptPath, + ...(Array.isArray(args) ? args : []) + ], + { + ...options, + stdin: undefined, + stdout: undefined, + stderr: undefined, + stdio, + shell: false + } + ); +}; - if (isCanceled) { - return 'was canceled'; - } - if (errorCode !== undefined) { - return `failed with ${errorCode}`; - } +/***/ }), +/* 372 */ +/***/ (function(module, exports) { - if (signal !== undefined) { - return `was killed with ${signal} (${signalDescription})`; - } +module.exports = require("child_process"); - if (exitCode !== undefined) { - return `failed with exit code ${exitCode}`; - } +/***/ }), +/* 373 */ +/***/ (function(module, exports, __webpack_require__) { - return 'failed'; -}; +"use strict"; -const makeError = ({ - stdout, - stderr, - all, - error, - signal, - exitCode, - command, - timedOut, - isCanceled, - killed, - parsed: {options: {timeout}} -}) => { - // `signal` and `exitCode` emitted on `spawned.on('exit')` event can be `null`. - // We normalize them to `undefined` - exitCode = exitCode === null ? undefined : exitCode; - signal = signal === null ? undefined : signal; - const signalDescription = signal === undefined ? undefined : signalsByName[signal].description; - const errorCode = error && error.code; +const cp = __webpack_require__(372); +const parse = __webpack_require__(374); +const enoent = __webpack_require__(385); - const prefix = getErrorPrefix({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}); - const execaMessage = `Command ${prefix}: ${command}`; - const shortMessage = error instanceof Error ? `${execaMessage}\n${error.message}` : execaMessage; - const message = [shortMessage, stderr, stdout].filter(Boolean).join('\n'); +function spawn(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); - if (error instanceof Error) { - error.originalMessage = error.message; - error.message = message; - } else { - error = new Error(message); - } + // Spawn the child process + const spawned = cp.spawn(parsed.command, parsed.args, parsed.options); - error.shortMessage = shortMessage; - error.command = command; - error.exitCode = exitCode; - error.signal = signal; - error.signalDescription = signalDescription; - error.stdout = stdout; - error.stderr = stderr; + // Hook into child process "exit" event to emit an error if the command + // does not exists, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + enoent.hookChildProcess(spawned, parsed); - if (all !== undefined) { - error.all = all; - } + return spawned; +} - if ('bufferedData' in error) { - delete error.bufferedData; - } +function spawnSync(command, args, options) { + // Parse the arguments + const parsed = parse(command, args, options); - error.failed = true; - error.timedOut = Boolean(timedOut); - error.isCanceled = isCanceled; - error.killed = killed && !timedOut; + // Spawn the child process + const result = cp.spawnSync(parsed.command, parsed.args, parsed.options); - return error; -}; + // Analyze if the command does not exist, see: https://github.com/IndigoUnited/node-cross-spawn/issues/16 + result.error = result.error || enoent.verifyENOENTSync(result.status, parsed); -module.exports = makeError; + return result; +} + +module.exports = spawn; +module.exports.spawn = spawn; +module.exports.sync = spawnSync; + +module.exports._parse = parse; +module.exports._enoent = enoent; /***/ }), -/* 371 */ +/* 374 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports,"__esModule",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=__webpack_require__(11); -var _signals=__webpack_require__(372); -var _realtime=__webpack_require__(374); +const path = __webpack_require__(16); +const resolveCommand = __webpack_require__(375); +const escape = __webpack_require__(381); +const readShebang = __webpack_require__(382); +const isWin = process.platform === 'win32'; +const isExecutableRegExp = /\.(?:com|exe)$/i; +const isCmdShimRegExp = /node_modules[\\/].bin[\\/][^\\/]+\.cmd$/i; -const getSignalsByName=function(){ -const signals=(0,_signals.getSignals)(); -return signals.reduce(getSignalByName,{}); -}; +function detectShebang(parsed) { + parsed.file = resolveCommand(parsed); -const getSignalByName=function( -signalByNameMemo, -{name,number,description,supported,action,forced,standard}) -{ -return{ -...signalByNameMemo, -[name]:{name,number,description,supported,action,forced,standard}}; + const shebang = parsed.file && readShebang(parsed.file); -}; + if (shebang) { + parsed.args.unshift(parsed.file); + parsed.command = shebang; -const signalsByName=getSignalsByName();exports.signalsByName=signalsByName; + return resolveCommand(parsed); + } + return parsed.file; +} +function parseNonShell(parsed) { + if (!isWin) { + return parsed; + } + // Detect & add support for shebangs + const commandFile = detectShebang(parsed); -const getSignalsByNumber=function(){ -const signals=(0,_signals.getSignals)(); -const length=_realtime.SIGRTMAX+1; -const signalsA=Array.from({length},(value,number)=> -getSignalByNumber(number,signals)); + // We don't need a shell if the command filename is an executable + const needsShell = !isExecutableRegExp.test(commandFile); -return Object.assign({},...signalsA); -}; + // If a shell is required, use cmd.exe and take care of escaping everything correctly + // Note that `forceShell` is an hidden option used only in tests + if (parsed.options.forceShell || needsShell) { + // Need to double escape meta chars if the command is a cmd-shim located in `node_modules/.bin/` + // The cmd-shim simply calls execute the package bin file with NodeJS, proxying any argument + // Because the escape of metachars with ^ gets interpreted when the cmd.exe is first called, + // we need to double escape them + const needsDoubleEscapeMetaChars = isCmdShimRegExp.test(commandFile); -const getSignalByNumber=function(number,signals){ -const signal=findSignalByNumber(number,signals); + // Normalize posix paths into OS compatible paths (e.g.: foo/bar -> foo\bar) + // This is necessary otherwise it will always fail with ENOENT in those cases + parsed.command = path.normalize(parsed.command); -if(signal===undefined){ -return{}; -} + // Escape command & arguments + parsed.command = escape.command(parsed.command); + parsed.args = parsed.args.map((arg) => escape.argument(arg, needsDoubleEscapeMetaChars)); -const{name,description,supported,action,forced,standard}=signal; -return{ -[number]:{ -name, -number, -description, -supported, -action, -forced, -standard}}; + const shellCommand = [parsed.command].concat(parsed.args).join(' '); + parsed.args = ['/d', '/s', '/c', `"${shellCommand}"`]; + parsed.command = process.env.comspec || 'cmd.exe'; + parsed.options.windowsVerbatimArguments = true; // Tell node's spawn that the arguments are already escaped + } -}; + return parsed; +} +function parse(command, args, options) { + // Normalize arguments, similar to nodejs + if (args && !Array.isArray(args)) { + options = args; + args = null; + } + args = args ? args.slice(0) : []; // Clone array to avoid changing the original + options = Object.assign({}, options); // Clone object to avoid changing the original -const findSignalByNumber=function(number,signals){ -const signal=signals.find(({name})=>_os.constants.signals[name]===number); + // Build our parsed object + const parsed = { + command, + args, + options, + file: undefined, + original: { + command, + args, + }, + }; -if(signal!==undefined){ -return signal; + // Delegate further parsing to shell or non-shell + return options.shell ? parsed : parseNonShell(parsed); } -return signals.find(signalA=>signalA.number===number); -}; +module.exports = parse; -const signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumber; -//# sourceMappingURL=main.js.map /***/ }), -/* 372 */ +/* 375 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -Object.defineProperty(exports,"__esModule",{value:true});exports.getSignals=void 0;var _os=__webpack_require__(11); -var _core=__webpack_require__(373); -var _realtime=__webpack_require__(374); +const path = __webpack_require__(16); +const which = __webpack_require__(376); +const pathKey = __webpack_require__(380)(); +function resolveCommandAttempt(parsed, withoutPathExt) { + const cwd = process.cwd(); + const hasCustomCwd = parsed.options.cwd != null; + // Worker threads do not have process.chdir() + const shouldSwitchCwd = hasCustomCwd && process.chdir !== undefined; -const getSignals=function(){ -const realtimeSignals=(0,_realtime.getRealtimeSignals)(); -const signals=[..._core.SIGNALS,...realtimeSignals].map(normalizeSignal); -return signals; -};exports.getSignals=getSignals; + // If a custom `cwd` was specified, we need to change the process cwd + // because `which` will do stat calls but does not support a custom cwd + if (shouldSwitchCwd) { + try { + process.chdir(parsed.options.cwd); + } catch (err) { + /* Empty */ + } + } + let resolved; + try { + resolved = which.sync(parsed.command, { + path: (parsed.options.env || process.env)[pathKey], + pathExt: withoutPathExt ? path.delimiter : undefined, + }); + } catch (e) { + /* Empty */ + } finally { + if (shouldSwitchCwd) { + process.chdir(cwd); + } + } + // If we successfully resolved, ensure that an absolute path is returned + // Note that when a custom `cwd` was used, we need to resolve to an absolute path based on it + if (resolved) { + resolved = path.resolve(hasCustomCwd ? parsed.options.cwd : '', resolved); + } + return resolved; +} +function resolveCommand(parsed) { + return resolveCommandAttempt(parsed) || resolveCommandAttempt(parsed, true); +} +module.exports = resolveCommand; -const normalizeSignal=function({ -name, -number:defaultNumber, -description, -action, -forced=false, -standard}) -{ -const{ -signals:{[name]:constantSignal}}= -_os.constants; -const supported=constantSignal!==undefined; -const number=supported?constantSignal:defaultNumber; -return{name,number,description,supported,action,forced,standard}; -}; -//# sourceMappingURL=signals.js.map /***/ }), -/* 373 */ +/* 376 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; -Object.defineProperty(exports,"__esModule",{value:true});exports.SIGNALS=void 0; - -const SIGNALS=[ -{ -name:"SIGHUP", -number:1, -action:"terminate", -description:"Terminal closed", -standard:"posix"}, +const isWindows = process.platform === 'win32' || + process.env.OSTYPE === 'cygwin' || + process.env.OSTYPE === 'msys' -{ -name:"SIGINT", -number:2, -action:"terminate", -description:"User interruption with CTRL-C", -standard:"ansi"}, +const path = __webpack_require__(16) +const COLON = isWindows ? ';' : ':' +const isexe = __webpack_require__(377) -{ -name:"SIGQUIT", -number:3, -action:"core", -description:"User interruption with CTRL-\\", -standard:"posix"}, +const getNotFoundError = (cmd) => + Object.assign(new Error(`not found: ${cmd}`), { code: 'ENOENT' }) -{ -name:"SIGILL", -number:4, -action:"core", -description:"Invalid machine instruction", -standard:"ansi"}, +const getPathInfo = (cmd, opt) => { + const colon = opt.colon || COLON -{ -name:"SIGTRAP", -number:5, -action:"core", -description:"Debugger breakpoint", -standard:"posix"}, + // If it has a slash, then we don't bother searching the pathenv. + // just check the file itself, and that's it. + const pathEnv = cmd.match(/\//) || isWindows && cmd.match(/\\/) ? [''] + : ( + [ + // windows always checks the cwd first + ...(isWindows ? [process.cwd()] : []), + ...(opt.path || process.env.PATH || + /* istanbul ignore next: very unusual */ '').split(colon), + ] + ) + const pathExtExe = isWindows + ? opt.pathExt || process.env.PATHEXT || '.EXE;.CMD;.BAT;.COM' + : '' + const pathExt = isWindows ? pathExtExe.split(colon) : [''] -{ -name:"SIGABRT", -number:6, -action:"core", -description:"Aborted", -standard:"ansi"}, + if (isWindows) { + if (cmd.indexOf('.') !== -1 && pathExt[0] !== '') + pathExt.unshift('') + } -{ -name:"SIGIOT", -number:6, -action:"core", -description:"Aborted", -standard:"bsd"}, + return { + pathEnv, + pathExt, + pathExtExe, + } +} -{ -name:"SIGBUS", -number:7, -action:"core", -description: -"Bus error due to misaligned, non-existing address or paging error", -standard:"bsd"}, +const which = (cmd, opt, cb) => { + if (typeof opt === 'function') { + cb = opt + opt = {} + } + if (!opt) + opt = {} -{ -name:"SIGEMT", -number:7, -action:"terminate", -description:"Command should be emulated but is not implemented", -standard:"other"}, + const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) + const found = [] -{ -name:"SIGFPE", -number:8, -action:"core", -description:"Floating point arithmetic error", -standard:"ansi"}, + const step = i => new Promise((resolve, reject) => { + if (i === pathEnv.length) + return opt.all && found.length ? resolve(found) + : reject(getNotFoundError(cmd)) -{ -name:"SIGKILL", -number:9, -action:"terminate", -description:"Forced termination", -standard:"posix", -forced:true}, + const ppRaw = pathEnv[i] + const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw -{ -name:"SIGUSR1", -number:10, -action:"terminate", -description:"Application-specific signal", -standard:"posix"}, + const pCmd = path.join(pathPart, cmd) + const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd + : pCmd -{ -name:"SIGSEGV", -number:11, -action:"core", -description:"Segmentation fault", -standard:"ansi"}, + resolve(subStep(p, i, 0)) + }) -{ -name:"SIGUSR2", -number:12, -action:"terminate", -description:"Application-specific signal", -standard:"posix"}, + const subStep = (p, i, ii) => new Promise((resolve, reject) => { + if (ii === pathExt.length) + return resolve(step(i + 1)) + const ext = pathExt[ii] + isexe(p + ext, { pathExt: pathExtExe }, (er, is) => { + if (!er && is) { + if (opt.all) + found.push(p + ext) + else + return resolve(p + ext) + } + return resolve(subStep(p, i, ii + 1)) + }) + }) -{ -name:"SIGPIPE", -number:13, -action:"terminate", -description:"Broken pipe or socket", -standard:"posix"}, + return cb ? step(0).then(res => cb(null, res), cb) : step(0) +} -{ -name:"SIGALRM", -number:14, -action:"terminate", -description:"Timeout or timer", -standard:"posix"}, +const whichSync = (cmd, opt) => { + opt = opt || {} -{ -name:"SIGTERM", -number:15, -action:"terminate", -description:"Termination", -standard:"ansi"}, + const { pathEnv, pathExt, pathExtExe } = getPathInfo(cmd, opt) + const found = [] -{ -name:"SIGSTKFLT", -number:16, -action:"terminate", -description:"Stack is empty or overflowed", -standard:"other"}, + for (let i = 0; i < pathEnv.length; i ++) { + const ppRaw = pathEnv[i] + const pathPart = /^".*"$/.test(ppRaw) ? ppRaw.slice(1, -1) : ppRaw -{ -name:"SIGCHLD", -number:17, -action:"ignore", -description:"Child process terminated, paused or unpaused", -standard:"posix"}, + const pCmd = path.join(pathPart, cmd) + const p = !pathPart && /^\.[\\\/]/.test(cmd) ? cmd.slice(0, 2) + pCmd + : pCmd -{ -name:"SIGCLD", -number:17, -action:"ignore", -description:"Child process terminated, paused or unpaused", -standard:"other"}, + for (let j = 0; j < pathExt.length; j ++) { + const cur = p + pathExt[j] + try { + const is = isexe.sync(cur, { pathExt: pathExtExe }) + if (is) { + if (opt.all) + found.push(cur) + else + return cur + } + } catch (ex) {} + } + } -{ -name:"SIGCONT", -number:18, -action:"unpause", -description:"Unpaused", -standard:"posix", -forced:true}, + if (opt.all && found.length) + return found -{ -name:"SIGSTOP", -number:19, -action:"pause", -description:"Paused", -standard:"posix", -forced:true}, + if (opt.nothrow) + return null -{ -name:"SIGTSTP", -number:20, -action:"pause", -description:"Paused using CTRL-Z or \"suspend\"", -standard:"posix"}, + throw getNotFoundError(cmd) +} -{ -name:"SIGTTIN", -number:21, -action:"pause", -description:"Background process cannot read terminal input", -standard:"posix"}, +module.exports = which +which.sync = whichSync -{ -name:"SIGBREAK", -number:21, -action:"terminate", -description:"User interruption with CTRL-BREAK", -standard:"other"}, -{ -name:"SIGTTOU", -number:22, -action:"pause", -description:"Background process cannot write to terminal output", -standard:"posix"}, +/***/ }), +/* 377 */ +/***/ (function(module, exports, __webpack_require__) { -{ -name:"SIGURG", -number:23, -action:"ignore", -description:"Socket received out-of-band data", -standard:"bsd"}, +var fs = __webpack_require__(23) +var core +if (process.platform === 'win32' || global.TESTING_WINDOWS) { + core = __webpack_require__(378) +} else { + core = __webpack_require__(379) +} -{ -name:"SIGXCPU", -number:24, -action:"core", -description:"Process timed out", -standard:"bsd"}, +module.exports = isexe +isexe.sync = sync -{ -name:"SIGXFSZ", -number:25, -action:"core", -description:"File too big", -standard:"bsd"}, +function isexe (path, options, cb) { + if (typeof options === 'function') { + cb = options + options = {} + } -{ -name:"SIGVTALRM", -number:26, -action:"terminate", -description:"Timeout or timer", -standard:"bsd"}, + if (!cb) { + if (typeof Promise !== 'function') { + throw new TypeError('callback not provided') + } -{ -name:"SIGPROF", -number:27, -action:"terminate", -description:"Timeout or timer", -standard:"bsd"}, + return new Promise(function (resolve, reject) { + isexe(path, options || {}, function (er, is) { + if (er) { + reject(er) + } else { + resolve(is) + } + }) + }) + } -{ -name:"SIGWINCH", -number:28, -action:"ignore", -description:"Terminal window size changed", -standard:"bsd"}, + core(path, options || {}, function (er, is) { + // ignore EACCES because that just means we aren't allowed to run it + if (er) { + if (er.code === 'EACCES' || options && options.ignoreErrors) { + er = null + is = false + } + } + cb(er, is) + }) +} -{ -name:"SIGIO", -number:29, -action:"terminate", -description:"I/O is available", -standard:"other"}, +function sync (path, options) { + // my kingdom for a filtered catch + try { + return core.sync(path, options || {}) + } catch (er) { + if (options && options.ignoreErrors || er.code === 'EACCES') { + return false + } else { + throw er + } + } +} -{ -name:"SIGPOLL", -number:29, -action:"terminate", -description:"Watched event", -standard:"other"}, -{ -name:"SIGINFO", -number:29, -action:"ignore", -description:"Request for process information", -standard:"other"}, +/***/ }), +/* 378 */ +/***/ (function(module, exports, __webpack_require__) { -{ -name:"SIGPWR", -number:30, -action:"terminate", -description:"Device running out of power", -standard:"systemv"}, +module.exports = isexe +isexe.sync = sync -{ -name:"SIGSYS", -number:31, -action:"core", -description:"Invalid system call", -standard:"other"}, +var fs = __webpack_require__(23) -{ -name:"SIGUNUSED", -number:31, -action:"terminate", -description:"Invalid system call", -standard:"other"}];exports.SIGNALS=SIGNALS; -//# sourceMappingURL=core.js.map +function checkPathExt (path, options) { + var pathext = options.pathExt !== undefined ? + options.pathExt : process.env.PATHEXT -/***/ }), -/* 374 */ -/***/ (function(module, exports, __webpack_require__) { + if (!pathext) { + return true + } -"use strict"; -Object.defineProperty(exports,"__esModule",{value:true});exports.SIGRTMAX=exports.getRealtimeSignals=void 0; -const getRealtimeSignals=function(){ -const length=SIGRTMAX-SIGRTMIN+1; -return Array.from({length},getRealtimeSignal); -};exports.getRealtimeSignals=getRealtimeSignals; + pathext = pathext.split(';') + if (pathext.indexOf('') !== -1) { + return true + } + for (var i = 0; i < pathext.length; i++) { + var p = pathext[i].toLowerCase() + if (p && path.substr(-p.length).toLowerCase() === p) { + return true + } + } + return false +} -const getRealtimeSignal=function(value,index){ -return{ -name:`SIGRT${index+1}`, -number:SIGRTMIN+index, -action:"terminate", -description:"Application-specific signal (realtime)", -standard:"posix"}; +function checkStat (stat, path, options) { + if (!stat.isSymbolicLink() && !stat.isFile()) { + return false + } + return checkPathExt(path, options) +} -}; +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, path, options)) + }) +} + +function sync (path, options) { + return checkStat(fs.statSync(path), path, options) +} -const SIGRTMIN=34; -const SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX; -//# sourceMappingURL=realtime.js.map /***/ }), -/* 375 */ +/* 379 */ /***/ (function(module, exports, __webpack_require__) { -"use strict"; +module.exports = isexe +isexe.sync = sync -const aliases = ['stdin', 'stdout', 'stderr']; +var fs = __webpack_require__(23) -const hasAlias = opts => aliases.some(alias => opts[alias] !== undefined); +function isexe (path, options, cb) { + fs.stat(path, function (er, stat) { + cb(er, er ? false : checkStat(stat, options)) + }) +} -const normalizeStdio = opts => { - if (!opts) { - return; - } +function sync (path, options) { + return checkStat(fs.statSync(path), options) +} - const {stdio} = opts; +function checkStat (stat, options) { + return stat.isFile() && checkMode(stat, options) +} - if (stdio === undefined) { - return aliases.map(alias => opts[alias]); - } +function checkMode (stat, options) { + var mod = stat.mode + var uid = stat.uid + var gid = stat.gid - if (hasAlias(opts)) { - throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map(alias => `\`${alias}\``).join(', ')}`); - } + var myUid = options.uid !== undefined ? + options.uid : process.getuid && process.getuid() + var myGid = options.gid !== undefined ? + options.gid : process.getgid && process.getgid() - if (typeof stdio === 'string') { - return stdio; - } + var u = parseInt('100', 8) + var g = parseInt('010', 8) + var o = parseInt('001', 8) + var ug = u | g - if (!Array.isArray(stdio)) { - throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); - } + var ret = (mod & o) || + (mod & g) && gid === myGid || + (mod & u) && uid === myUid || + (mod & ug) && myUid === 0 - const length = Math.max(stdio.length, aliases.length); - return Array.from({length}, (value, index) => stdio[index]); -}; + return ret +} -module.exports = normalizeStdio; -// `ipc` is pushed unless it is already present -module.exports.node = opts => { - const stdio = normalizeStdio(opts); +/***/ }), +/* 380 */ +/***/ (function(module, exports, __webpack_require__) { - if (stdio === 'ipc') { - return 'ipc'; - } +"use strict"; - if (stdio === undefined || typeof stdio === 'string') { - return [stdio, stdio, stdio, 'ipc']; - } - if (stdio.includes('ipc')) { - return stdio; +const pathKey = (options = {}) => { + const environment = options.env || process.env; + const platform = options.platform || process.platform; + + if (platform !== 'win32') { + return 'PATH'; } - return [...stdio, 'ipc']; + return Object.keys(environment).find(key => key.toUpperCase() === 'PATH') || 'Path'; }; +module.exports = pathKey; +// TODO: Remove this for the next major release +module.exports.default = pathKey; + /***/ }), -/* 376 */ +/* 381 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const os = __webpack_require__(11); -const onExit = __webpack_require__(377); -const DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5; +// See http://www.robvanderwoude.com/escapechars.php +const metaCharsRegExp = /([()\][%!^"`<>&|;, *?])/g; -// Monkey-patches `childProcess.kill()` to add `forceKillAfterTimeout` behavior -const spawnedKill = (kill, signal = 'SIGTERM', options = {}) => { - const killResult = kill(signal); - setKillTimeout(kill, signal, options, killResult); - return killResult; -}; +function escapeCommand(arg) { + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); -const setKillTimeout = (kill, signal, options, killResult) => { - if (!shouldForceKill(signal, options, killResult)) { - return; - } + return arg; +} - const timeout = getForceKillAfterTimeout(options); - const t = setTimeout(() => { - kill('SIGKILL'); - }, timeout); +function escapeArgument(arg, doubleEscapeMetaChars) { + // Convert to string + arg = `${arg}`; - // Guarded because there's no `.unref()` when `execa` is used in the renderer - // process in Electron. This cannot be tested since we don't run tests in - // Electron. - // istanbul ignore else - if (t.unref) { - t.unref(); - } -}; + // Algorithm below is based on https://qntm.org/cmd -const shouldForceKill = (signal, {forceKillAfterTimeout}, killResult) => { - return isSigterm(signal) && forceKillAfterTimeout !== false && killResult; -}; + // Sequence of backslashes followed by a double quote: + // double up all the backslashes and escape the double quote + arg = arg.replace(/(\\*)"/g, '$1$1\\"'); -const isSigterm = signal => { - return signal === os.constants.signals.SIGTERM || - (typeof signal === 'string' && signal.toUpperCase() === 'SIGTERM'); -}; + // Sequence of backslashes followed by the end of the string + // (which will become a double quote later): + // double up all the backslashes + arg = arg.replace(/(\\*)$/, '$1$1'); -const getForceKillAfterTimeout = ({forceKillAfterTimeout = true}) => { - if (forceKillAfterTimeout === true) { - return DEFAULT_FORCE_KILL_TIMEOUT; - } + // All other backslashes occur literally - if (!Number.isInteger(forceKillAfterTimeout) || forceKillAfterTimeout < 0) { - throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`); - } + // Quote the whole thing: + arg = `"${arg}"`; - return forceKillAfterTimeout; -}; + // Escape meta chars + arg = arg.replace(metaCharsRegExp, '^$1'); -// `childProcess.cancel()` -const spawnedCancel = (spawned, context) => { - const killResult = spawned.kill(); + // Double escape meta chars if necessary + if (doubleEscapeMetaChars) { + arg = arg.replace(metaCharsRegExp, '^$1'); + } - if (killResult) { - context.isCanceled = true; - } -}; + return arg; +} -const timeoutKill = (spawned, signal, reject) => { - spawned.kill(signal); - reject(Object.assign(new Error('Timed out'), {timedOut: true, signal})); -}; +module.exports.command = escapeCommand; +module.exports.argument = escapeArgument; -// `timeout` option handling -const setupTimeout = (spawned, {timeout, killSignal = 'SIGTERM'}, spawnedPromise) => { - if (timeout === 0 || timeout === undefined) { - return spawnedPromise; - } - if (!Number.isInteger(timeout) || timeout < 0) { - throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`); - } +/***/ }), +/* 382 */ +/***/ (function(module, exports, __webpack_require__) { - let timeoutId; - const timeoutPromise = new Promise((resolve, reject) => { - timeoutId = setTimeout(() => { - timeoutKill(spawned, killSignal, reject); - }, timeout); - }); +"use strict"; - const safeSpawnedPromise = spawnedPromise.finally(() => { - clearTimeout(timeoutId); - }); - return Promise.race([timeoutPromise, safeSpawnedPromise]); -}; +const fs = __webpack_require__(23); +const shebangCommand = __webpack_require__(383); -// `cleanup` option handling -const setExitHandler = async (spawned, {cleanup, detached}, timedPromise) => { - if (!cleanup || detached) { - return timedPromise; - } +function readShebang(command) { + // Read the first 150 bytes from the file + const size = 150; + const buffer = Buffer.alloc(size); - const removeExitHandler = onExit(() => { - spawned.kill(); - }); + let fd; - return timedPromise.finally(() => { - removeExitHandler(); - }); -}; + try { + fd = fs.openSync(command, 'r'); + fs.readSync(fd, buffer, 0, size, 0); + fs.closeSync(fd); + } catch (e) { /* Empty */ } -module.exports = { - spawnedKill, - spawnedCancel, - setupTimeout, - setExitHandler -}; + // Attempt to extract shebang (null is returned if not a shebang) + return shebangCommand(buffer.toString()); +} + +module.exports = readShebang; /***/ }), -/* 377 */ +/* 383 */ /***/ (function(module, exports, __webpack_require__) { -// Note: since nyc uses this module to output coverage, any lines -// that are in the direct sync flow of nyc's outputCoverage are -// ignored, since we can never get coverage for them. -var assert = __webpack_require__(30) -var signals = __webpack_require__(378) - -var EE = __webpack_require__(379) -/* istanbul ignore if */ -if (typeof EE !== 'function') { - EE = EE.EventEmitter -} - -var emitter -if (process.__signal_exit_emitter__) { - emitter = process.__signal_exit_emitter__ -} else { - emitter = process.__signal_exit_emitter__ = new EE() - emitter.count = 0 - emitter.emitted = {} -} - -// Because this emitter is a global, we have to check to see if a -// previous version of this library failed to enable infinite listeners. -// I know what you're about to say. But literally everything about -// signal-exit is a compromise with evil. Get used to it. -if (!emitter.infinite) { - emitter.setMaxListeners(Infinity) - emitter.infinite = true -} - -module.exports = function (cb, opts) { - assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler') +"use strict"; - if (loaded === false) { - load() - } +const shebangRegex = __webpack_require__(384); - var ev = 'exit' - if (opts && opts.alwaysLast) { - ev = 'afterexit' - } +module.exports = (string = '') => { + const match = string.match(shebangRegex); - var remove = function () { - emitter.removeListener(ev, cb) - if (emitter.listeners('exit').length === 0 && - emitter.listeners('afterexit').length === 0) { - unload() - } - } - emitter.on(ev, cb) + if (!match) { + return null; + } - return remove -} + const [path, argument] = match[0].replace(/#! ?/, '').split(' '); + const binary = path.split('/').pop(); -module.exports.unload = unload -function unload () { - if (!loaded) { - return - } - loaded = false + if (binary === 'env') { + return argument; + } - signals.forEach(function (sig) { - try { - process.removeListener(sig, sigListeners[sig]) - } catch (er) {} - }) - process.emit = originalProcessEmit - process.reallyExit = originalProcessReallyExit - emitter.count -= 1 -} + return argument ? `${binary} ${argument}` : binary; +}; -function emit (event, code, signal) { - if (emitter.emitted[event]) { - return - } - emitter.emitted[event] = true - emitter.emit(event, code, signal) -} -// { : , ... } -var sigListeners = {} -signals.forEach(function (sig) { - sigListeners[sig] = function listener () { - // If there are no other listeners, an exit is coming! - // Simplest way: remove us and then re-send the signal. - // We know that this will kill the process, so we can - // safely emit now. - var listeners = process.listeners(sig) - if (listeners.length === emitter.count) { - unload() - emit('exit', null, sig) - /* istanbul ignore next */ - emit('afterexit', null, sig) - /* istanbul ignore next */ - process.kill(process.pid, sig) - } - } -}) +/***/ }), +/* 384 */ +/***/ (function(module, exports, __webpack_require__) { -module.exports.signals = function () { - return signals -} +"use strict"; -module.exports.load = load +module.exports = /^#!(.*)/; -var loaded = false -function load () { - if (loaded) { - return - } - loaded = true +/***/ }), +/* 385 */ +/***/ (function(module, exports, __webpack_require__) { - // This is the number of onSignalExit's that are in play. - // It's important so that we can count the correct number of - // listeners on signals, and don't wait for the other one to - // handle it instead of us. - emitter.count += 1 +"use strict"; - signals = signals.filter(function (sig) { - try { - process.on(sig, sigListeners[sig]) - return true - } catch (er) { - return false - } - }) - process.emit = processEmit - process.reallyExit = processReallyExit -} +const isWin = process.platform === 'win32'; -var originalProcessReallyExit = process.reallyExit -function processReallyExit (code) { - process.exitCode = code || 0 - emit('exit', process.exitCode, null) - /* istanbul ignore next */ - emit('afterexit', process.exitCode, null) - /* istanbul ignore next */ - originalProcessReallyExit.call(process, process.exitCode) +function notFoundError(original, syscall) { + return Object.assign(new Error(`${syscall} ${original.command} ENOENT`), { + code: 'ENOENT', + errno: 'ENOENT', + syscall: `${syscall} ${original.command}`, + path: original.command, + spawnargs: original.args, + }); } -var originalProcessEmit = process.emit -function processEmit (ev, arg) { - if (ev === 'exit') { - if (arg !== undefined) { - process.exitCode = arg +function hookChildProcess(cp, parsed) { + if (!isWin) { + return; } - var ret = originalProcessEmit.apply(this, arguments) - emit('exit', process.exitCode, null) - /* istanbul ignore next */ - emit('afterexit', process.exitCode, null) - return ret - } else { - return originalProcessEmit.apply(this, arguments) - } -} + const originalEmit = cp.emit; -/***/ }), -/* 378 */ -/***/ (function(module, exports) { + cp.emit = function (name, arg1) { + // If emitting "exit" event and exit code is 1, we need to check if + // the command exists and emit an "error" instead + // See https://github.com/IndigoUnited/node-cross-spawn/issues/16 + if (name === 'exit') { + const err = verifyENOENT(arg1, parsed, 'spawn'); -// This is not the set of all possible signals. -// -// It IS, however, the set of all signals that trigger -// an exit on either Linux or BSD systems. Linux is a -// superset of the signal names supported on BSD, and -// the unknown signals just fail to register, so we can -// catch that easily enough. -// -// Don't bother with SIGKILL. It's uncatchable, which -// means that we can't fire any callbacks anyway. -// -// If a user does happen to register a handler on a non- -// fatal signal like SIGWINCH or something, and then -// exit, it'll end up firing `process.emit('exit')`, so -// the handler will be fired anyway. -// -// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised -// artificially, inherently leave the process in a -// state from which it is not safe to try and enter JS -// listeners. -module.exports = [ - 'SIGABRT', - 'SIGALRM', - 'SIGHUP', - 'SIGINT', - 'SIGTERM' -] + if (err) { + return originalEmit.call(cp, 'error', err); + } + } -if (process.platform !== 'win32') { - module.exports.push( - 'SIGVTALRM', - 'SIGXCPU', - 'SIGXFSZ', - 'SIGUSR2', - 'SIGTRAP', - 'SIGSYS', - 'SIGQUIT', - 'SIGIOT' - // should detect profiler and enable/disable accordingly. - // see #21 - // 'SIGPROF' - ) + return originalEmit.apply(cp, arguments); // eslint-disable-line prefer-rest-params + }; } -if (process.platform === 'linux') { - module.exports.push( - 'SIGIO', - 'SIGPOLL', - 'SIGPWR', - 'SIGSTKFLT', - 'SIGUNUSED' - ) +function verifyENOENT(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawn'); + } + + return null; } +function verifyENOENTSync(status, parsed) { + if (isWin && status === 1 && !parsed.file) { + return notFoundError(parsed.original, 'spawnSync'); + } -/***/ }), -/* 379 */ -/***/ (function(module, exports) { + return null; +} + +module.exports = { + hookChildProcess, + verifyENOENT, + verifyENOENTSync, + notFoundError, +}; -module.exports = require("events"); /***/ }), -/* 380 */ +/* 386 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; -const isStream = __webpack_require__(381); -const getStream = __webpack_require__(382); -const mergeStream = __webpack_require__(388); -// `input` option -const handleInput = (spawned, input) => { - // Checking for stdin is workaround for https://github.com/nodejs/node/issues/26852 - // TODO: Remove `|| spawned.stdin === undefined` once we drop support for Node.js <=12.2.0 - if (input === undefined || spawned.stdin === undefined) { - return; - } +module.exports = input => { + const LF = typeof input === 'string' ? '\n' : '\n'.charCodeAt(); + const CR = typeof input === 'string' ? '\r' : '\r'.charCodeAt(); - if (isStream(input)) { - input.pipe(spawned.stdin); - } else { - spawned.stdin.end(input); + if (input[input.length - 1] === LF) { + input = input.slice(0, input.length - 1); } -}; -// `all` interleaves `stdout` and `stderr` -const makeAllStream = (spawned, {all}) => { - if (!all || (!spawned.stdout && !spawned.stderr)) { - return; + if (input[input.length - 1] === CR) { + input = input.slice(0, input.length - 1); } - const mixed = mergeStream(); + return input; +}; - if (spawned.stdout) { - mixed.add(spawned.stdout); - } - if (spawned.stderr) { - mixed.add(spawned.stderr); - } +/***/ }), +/* 387 */ +/***/ (function(module, exports, __webpack_require__) { - return mixed; -}; +"use strict"; -// On failure, `result.stdout|stderr|all` should contain the currently buffered stream -const getBufferedData = async (stream, streamPromise) => { - if (!stream) { - return; - } +const path = __webpack_require__(16); +const pathKey = __webpack_require__(380); - stream.destroy(); +const npmRunPath = options => { + options = { + cwd: process.cwd(), + path: process.env[pathKey()], + execPath: process.execPath, + ...options + }; - try { - return await streamPromise; - } catch (error) { - return error.bufferedData; - } -}; + let previous; + let cwdPath = path.resolve(options.cwd); + const result = []; -const getStreamPromise = (stream, {encoding, buffer, maxBuffer}) => { - if (!stream || !buffer) { - return; + while (previous !== cwdPath) { + result.push(path.join(cwdPath, 'node_modules/.bin')); + previous = cwdPath; + cwdPath = path.resolve(cwdPath, '..'); } - if (encoding) { - return getStream(stream, {encoding, maxBuffer}); - } + // Ensure the running `node` binary is used + const execPathDir = path.resolve(options.cwd, options.execPath, '..'); + result.unshift(execPathDir); - return getStream.buffer(stream, {maxBuffer}); + return result.concat(options.path).join(path.delimiter); }; -// Retrieve result of child process: exit code, signal, error, streams (stdout/stderr/all) -const getSpawnedResult = async ({stdout, stderr, all}, {encoding, buffer, maxBuffer}, processDone) => { - const stdoutPromise = getStreamPromise(stdout, {encoding, buffer, maxBuffer}); - const stderrPromise = getStreamPromise(stderr, {encoding, buffer, maxBuffer}); - const allPromise = getStreamPromise(all, {encoding, buffer, maxBuffer: maxBuffer * 2}); +module.exports = npmRunPath; +// TODO: Remove this for the next major release +module.exports.default = npmRunPath; - try { - return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]); - } catch (error) { - return Promise.all([ - {error, signal: error.signal, timedOut: error.timedOut}, - getBufferedData(stdout, stdoutPromise), - getBufferedData(stderr, stderrPromise), - getBufferedData(all, allPromise) - ]); - } -}; +module.exports.env = options => { + options = { + env: process.env, + ...options + }; -const validateInputSync = ({input}) => { - if (isStream(input)) { - throw new TypeError('The `input` option cannot be a stream in sync mode'); - } -}; + const env = {...options.env}; + const path = pathKey({env}); -module.exports = { - handleInput, - makeAllStream, - getSpawnedResult, - validateInputSync -}; + options.path = env[path]; + env[path] = module.exports(options); + return env; +}; /***/ }), -/* 381 */ +/* 388 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +const mimicFn = __webpack_require__(389); -const isStream = stream => - stream !== null && - typeof stream === 'object' && - typeof stream.pipe === 'function'; - -isStream.writable = stream => - isStream(stream) && - stream.writable !== false && - typeof stream._write === 'function' && - typeof stream._writableState === 'object'; +const calledFunctions = new WeakMap(); -isStream.readable = stream => - isStream(stream) && - stream.readable !== false && - typeof stream._read === 'function' && - typeof stream._readableState === 'object'; +const oneTime = (fn, options = {}) => { + if (typeof fn !== 'function') { + throw new TypeError('Expected a function'); + } -isStream.duplex = stream => - isStream.writable(stream) && - isStream.readable(stream); + let ret; + let isCalled = false; + let callCount = 0; + const functionName = fn.displayName || fn.name || ''; -isStream.transform = stream => - isStream.duplex(stream) && - typeof stream._transform === 'function' && - typeof stream._transformState === 'object'; + const onetime = function (...args) { + calledFunctions.set(onetime, ++callCount); -module.exports = isStream; + if (isCalled) { + if (options.throw === true) { + throw new Error(`Function \`${functionName}\` can only be called once`); + } + return ret; + } -/***/ }), -/* 382 */ -/***/ (function(module, exports, __webpack_require__) { + isCalled = true; + ret = fn.apply(this, args); + fn = null; -"use strict"; + return ret; + }; -const pump = __webpack_require__(383); -const bufferStream = __webpack_require__(387); + mimicFn(onetime, fn); + calledFunctions.set(onetime, callCount); -class MaxBufferError extends Error { - constructor() { - super('maxBuffer exceeded'); - this.name = 'MaxBufferError'; - } -} + return onetime; +}; -async function getStream(inputStream, options) { - if (!inputStream) { - return Promise.reject(new Error('Expected a stream')); - } +module.exports = oneTime; +// TODO: Remove this for the next major release +module.exports.default = oneTime; - options = { - maxBuffer: Infinity, - ...options - }; +module.exports.callCount = fn => { + if (!calledFunctions.has(fn)) { + throw new Error(`The given function \`${fn.name}\` is not wrapped by the \`onetime\` package`); + } - const {maxBuffer} = options; + return calledFunctions.get(fn); +}; - let stream; - await new Promise((resolve, reject) => { - const rejectPromise = error => { - if (error) { // A null check - error.bufferedData = stream.getBufferedValue(); - } - reject(error); - }; +/***/ }), +/* 389 */ +/***/ (function(module, exports, __webpack_require__) { - stream = pump(inputStream, bufferStream(options), error => { - if (error) { - rejectPromise(error); - return; - } +"use strict"; - resolve(); - }); - stream.on('data', () => { - if (stream.getBufferedLength() > maxBuffer) { - rejectPromise(new MaxBufferError()); - } - }); - }); +const mimicFn = (to, from) => { + for (const prop of Reflect.ownKeys(from)) { + Object.defineProperty(to, prop, Object.getOwnPropertyDescriptor(from, prop)); + } - return stream.getBufferedValue(); -} + return to; +}; -module.exports = getStream; +module.exports = mimicFn; // TODO: Remove this for the next major release -module.exports.default = getStream; -module.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'}); -module.exports.array = (stream, options) => getStream(stream, {...options, array: true}); -module.exports.MaxBufferError = MaxBufferError; +module.exports.default = mimicFn; /***/ }), -/* 383 */ +/* 390 */ /***/ (function(module, exports, __webpack_require__) { -var once = __webpack_require__(384) -var eos = __webpack_require__(386) -var fs = __webpack_require__(23) // we only need fs to get the ReadStream and WriteStream prototypes - -var noop = function () {} -var ancient = /^v?\.0/.test(process.version) +"use strict"; -var isFn = function (fn) { - return typeof fn === 'function' -} +const {signalsByName} = __webpack_require__(391); -var isFS = function (stream) { - if (!ancient) return false // newer node version do not need to care about fs is a special way - if (!fs) return false // browser - return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) -} +const getErrorPrefix = ({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}) => { + if (timedOut) { + return `timed out after ${timeout} milliseconds`; + } -var isRequest = function (stream) { - return stream.setHeader && isFn(stream.abort) -} + if (isCanceled) { + return 'was canceled'; + } -var destroyer = function (stream, reading, writing, callback) { - callback = once(callback) + if (errorCode !== undefined) { + return `failed with ${errorCode}`; + } - var closed = false - stream.on('close', function () { - closed = true - }) + if (signal !== undefined) { + return `was killed with ${signal} (${signalDescription})`; + } - eos(stream, {readable: reading, writable: writing}, function (err) { - if (err) return callback(err) - closed = true - callback() - }) + if (exitCode !== undefined) { + return `failed with exit code ${exitCode}`; + } - var destroyed = false - return function (err) { - if (closed) return - if (destroyed) return - destroyed = true + return 'failed'; +}; - if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks - if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want +const makeError = ({ + stdout, + stderr, + all, + error, + signal, + exitCode, + command, + timedOut, + isCanceled, + killed, + parsed: {options: {timeout}} +}) => { + // `signal` and `exitCode` emitted on `spawned.on('exit')` event can be `null`. + // We normalize them to `undefined` + exitCode = exitCode === null ? undefined : exitCode; + signal = signal === null ? undefined : signal; + const signalDescription = signal === undefined ? undefined : signalsByName[signal].description; - if (isFn(stream.destroy)) return stream.destroy() + const errorCode = error && error.code; - callback(err || new Error('stream was destroyed')) - } -} + const prefix = getErrorPrefix({timedOut, timeout, errorCode, signal, signalDescription, exitCode, isCanceled}); + const execaMessage = `Command ${prefix}: ${command}`; + const shortMessage = error instanceof Error ? `${execaMessage}\n${error.message}` : execaMessage; + const message = [shortMessage, stderr, stdout].filter(Boolean).join('\n'); -var call = function (fn) { - fn() -} + if (error instanceof Error) { + error.originalMessage = error.message; + error.message = message; + } else { + error = new Error(message); + } -var pipe = function (from, to) { - return from.pipe(to) -} + error.shortMessage = shortMessage; + error.command = command; + error.exitCode = exitCode; + error.signal = signal; + error.signalDescription = signalDescription; + error.stdout = stdout; + error.stderr = stderr; -var pump = function () { - var streams = Array.prototype.slice.call(arguments) - var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop + if (all !== undefined) { + error.all = all; + } - if (Array.isArray(streams[0])) streams = streams[0] - if (streams.length < 2) throw new Error('pump requires two streams per minimum') + if ('bufferedData' in error) { + delete error.bufferedData; + } - var error - var destroys = streams.map(function (stream, i) { - var reading = i < streams.length - 1 - var writing = i > 0 - return destroyer(stream, reading, writing, function (err) { - if (!error) error = err - if (err) destroys.forEach(call) - if (reading) return - destroys.forEach(call) - callback(error) - }) - }) + error.failed = true; + error.timedOut = Boolean(timedOut); + error.isCanceled = isCanceled; + error.killed = killed && !timedOut; - return streams.reduce(pipe) -} + return error; +}; -module.exports = pump +module.exports = makeError; /***/ }), -/* 384 */ +/* 391 */ /***/ (function(module, exports, __webpack_require__) { -var wrappy = __webpack_require__(385) -module.exports = wrappy(once) -module.exports.strict = wrappy(onceStrict) - -once.proto = once(function () { - Object.defineProperty(Function.prototype, 'once', { - value: function () { - return once(this) - }, - configurable: true - }) - - Object.defineProperty(Function.prototype, 'onceStrict', { - value: function () { - return onceStrict(this) - }, - configurable: true - }) -}) - -function once (fn) { - var f = function () { - if (f.called) return f.value - f.called = true - return f.value = fn.apply(this, arguments) - } - f.called = false - return f -} - -function onceStrict (fn) { - var f = function () { - if (f.called) - throw new Error(f.onceError) - f.called = true - return f.value = fn.apply(this, arguments) - } - var name = fn.name || 'Function wrapped with `once`' - f.onceError = name + " shouldn't be called more than once" - f.called = false - return f -} - +"use strict"; +Object.defineProperty(exports,"__esModule",{value:true});exports.signalsByNumber=exports.signalsByName=void 0;var _os=__webpack_require__(11); -/***/ }), -/* 385 */ -/***/ (function(module, exports) { +var _signals=__webpack_require__(392); +var _realtime=__webpack_require__(394); -// Returns a wrapper function that returns a wrapped callback -// The wrapper function should do some stuff, and return a -// presumably different callback function. -// This makes sure that own properties are retained, so that -// decorations and such are not lost along the way. -module.exports = wrappy -function wrappy (fn, cb) { - if (fn && cb) return wrappy(fn)(cb) - if (typeof fn !== 'function') - throw new TypeError('need wrapper function') - Object.keys(fn).forEach(function (k) { - wrapper[k] = fn[k] - }) +const getSignalsByName=function(){ +const signals=(0,_signals.getSignals)(); +return signals.reduce(getSignalByName,{}); +}; - return wrapper +const getSignalByName=function( +signalByNameMemo, +{name,number,description,supported,action,forced,standard}) +{ +return{ +...signalByNameMemo, +[name]:{name,number,description,supported,action,forced,standard}}; - function wrapper() { - var args = new Array(arguments.length) - for (var i = 0; i < args.length; i++) { - args[i] = arguments[i] - } - var ret = fn.apply(this, args) - var cb = args[args.length-1] - if (typeof ret === 'function' && ret !== cb) { - Object.keys(cb).forEach(function (k) { - ret[k] = cb[k] - }) - } - return ret - } -} +}; +const signalsByName=getSignalsByName();exports.signalsByName=signalsByName; -/***/ }), -/* 386 */ -/***/ (function(module, exports, __webpack_require__) { -var once = __webpack_require__(384); -var noop = function() {}; -var isRequest = function(stream) { - return stream.setHeader && typeof stream.abort === 'function'; -}; +const getSignalsByNumber=function(){ +const signals=(0,_signals.getSignals)(); +const length=_realtime.SIGRTMAX+1; +const signalsA=Array.from({length},(value,number)=> +getSignalByNumber(number,signals)); -var isChildProcess = function(stream) { - return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +return Object.assign({},...signalsA); }; -var eos = function(stream, opts, callback) { - if (typeof opts === 'function') return eos(stream, null, opts); - if (!opts) opts = {}; - - callback = once(callback || noop); - - var ws = stream._writableState; - var rs = stream._readableState; - var readable = opts.readable || (opts.readable !== false && stream.readable); - var writable = opts.writable || (opts.writable !== false && stream.writable); - - var onlegacyfinish = function() { - if (!stream.writable) onfinish(); - }; - - var onfinish = function() { - writable = false; - if (!readable) callback.call(stream); - }; +const getSignalByNumber=function(number,signals){ +const signal=findSignalByNumber(number,signals); - var onend = function() { - readable = false; - if (!writable) callback.call(stream); - }; +if(signal===undefined){ +return{}; +} - var onexit = function(exitCode) { - callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); - }; +const{name,description,supported,action,forced,standard}=signal; +return{ +[number]:{ +name, +number, +description, +supported, +action, +forced, +standard}}; - var onerror = function(err) { - callback.call(stream, err); - }; - var onclose = function() { - if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); - if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); - }; +}; - var onrequest = function() { - stream.req.on('finish', onfinish); - }; - if (isRequest(stream)) { - stream.on('complete', onfinish); - stream.on('abort', onclose); - if (stream.req) onrequest(); - else stream.on('request', onrequest); - } else if (writable && !ws) { // legacy streams - stream.on('end', onlegacyfinish); - stream.on('close', onlegacyfinish); - } - if (isChildProcess(stream)) stream.on('exit', onexit); +const findSignalByNumber=function(number,signals){ +const signal=signals.find(({name})=>_os.constants.signals[name]===number); - stream.on('end', onend); - stream.on('finish', onfinish); - if (opts.error !== false) stream.on('error', onerror); - stream.on('close', onclose); +if(signal!==undefined){ +return signal; +} - return function() { - stream.removeListener('complete', onfinish); - stream.removeListener('abort', onclose); - stream.removeListener('request', onrequest); - if (stream.req) stream.req.removeListener('finish', onfinish); - stream.removeListener('end', onlegacyfinish); - stream.removeListener('close', onlegacyfinish); - stream.removeListener('finish', onfinish); - stream.removeListener('exit', onexit); - stream.removeListener('end', onend); - stream.removeListener('error', onerror); - stream.removeListener('close', onclose); - }; +return signals.find(signalA=>signalA.number===number); }; -module.exports = eos; - +const signalsByNumber=getSignalsByNumber();exports.signalsByNumber=signalsByNumber; +//# sourceMappingURL=main.js.map /***/ }), -/* 387 */ +/* 392 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +Object.defineProperty(exports,"__esModule",{value:true});exports.getSignals=void 0;var _os=__webpack_require__(11); -const {PassThrough: PassThroughStream} = __webpack_require__(27); - -module.exports = options => { - options = {...options}; - - const {array} = options; - let {encoding} = options; - const isBuffer = encoding === 'buffer'; - let objectMode = false; - - if (array) { - objectMode = !(encoding || isBuffer); - } else { - encoding = encoding || 'utf8'; - } +var _core=__webpack_require__(393); +var _realtime=__webpack_require__(394); - if (isBuffer) { - encoding = null; - } - const stream = new PassThroughStream({objectMode}); - if (encoding) { - stream.setEncoding(encoding); - } +const getSignals=function(){ +const realtimeSignals=(0,_realtime.getRealtimeSignals)(); +const signals=[..._core.SIGNALS,...realtimeSignals].map(normalizeSignal); +return signals; +};exports.getSignals=getSignals; - let length = 0; - const chunks = []; - stream.on('data', chunk => { - chunks.push(chunk); - if (objectMode) { - length = chunks.length; - } else { - length += chunk.length; - } - }); - stream.getBufferedValue = () => { - if (array) { - return chunks; - } - return isBuffer ? Buffer.concat(chunks, length) : chunks.join(''); - }; - stream.getBufferedLength = () => length; - return stream; +const normalizeSignal=function({ +name, +number:defaultNumber, +description, +action, +forced=false, +standard}) +{ +const{ +signals:{[name]:constantSignal}}= +_os.constants; +const supported=constantSignal!==undefined; +const number=supported?constantSignal:defaultNumber; +return{name,number,description,supported,action,forced,standard}; }; - +//# sourceMappingURL=signals.js.map /***/ }), -/* 388 */ +/* 393 */ /***/ (function(module, exports, __webpack_require__) { "use strict"; +Object.defineProperty(exports,"__esModule",{value:true});exports.SIGNALS=void 0; +const SIGNALS=[ +{ +name:"SIGHUP", +number:1, +action:"terminate", +description:"Terminal closed", +standard:"posix"}, -const { PassThrough } = __webpack_require__(27); - -module.exports = function (/*streams...*/) { - var sources = [] - var output = new PassThrough({objectMode: true}) - - output.setMaxListeners(0) +{ +name:"SIGINT", +number:2, +action:"terminate", +description:"User interruption with CTRL-C", +standard:"ansi"}, - output.add = add - output.isEmpty = isEmpty +{ +name:"SIGQUIT", +number:3, +action:"core", +description:"User interruption with CTRL-\\", +standard:"posix"}, - output.on('unpipe', remove) +{ +name:"SIGILL", +number:4, +action:"core", +description:"Invalid machine instruction", +standard:"ansi"}, - Array.prototype.slice.call(arguments).forEach(add) +{ +name:"SIGTRAP", +number:5, +action:"core", +description:"Debugger breakpoint", +standard:"posix"}, - return output +{ +name:"SIGABRT", +number:6, +action:"core", +description:"Aborted", +standard:"ansi"}, - function add (source) { - if (Array.isArray(source)) { - source.forEach(add) - return this - } +{ +name:"SIGIOT", +number:6, +action:"core", +description:"Aborted", +standard:"bsd"}, - sources.push(source); - source.once('end', remove.bind(null, source)) - source.once('error', output.emit.bind(output, 'error')) - source.pipe(output, {end: false}) - return this - } +{ +name:"SIGBUS", +number:7, +action:"core", +description: +"Bus error due to misaligned, non-existing address or paging error", +standard:"bsd"}, - function isEmpty () { - return sources.length == 0; - } +{ +name:"SIGEMT", +number:7, +action:"terminate", +description:"Command should be emulated but is not implemented", +standard:"other"}, - function remove (source) { - sources = sources.filter(function (it) { return it !== source }) - if (!sources.length && output.readable) { output.end() } - } -} +{ +name:"SIGFPE", +number:8, +action:"core", +description:"Floating point arithmetic error", +standard:"ansi"}, +{ +name:"SIGKILL", +number:9, +action:"terminate", +description:"Forced termination", +standard:"posix", +forced:true}, -/***/ }), -/* 389 */ -/***/ (function(module, exports, __webpack_require__) { +{ +name:"SIGUSR1", +number:10, +action:"terminate", +description:"Application-specific signal", +standard:"posix"}, -"use strict"; +{ +name:"SIGSEGV", +number:11, +action:"core", +description:"Segmentation fault", +standard:"ansi"}, -const mergePromiseProperty = (spawned, promise, property) => { - // Starting the main `promise` is deferred to avoid consuming streams - const value = typeof promise === 'function' ? - (...args) => promise()[property](...args) : - promise[property].bind(promise); +{ +name:"SIGUSR2", +number:12, +action:"terminate", +description:"Application-specific signal", +standard:"posix"}, - Object.defineProperty(spawned, property, { - value, - writable: true, - enumerable: false, - configurable: true - }); -}; +{ +name:"SIGPIPE", +number:13, +action:"terminate", +description:"Broken pipe or socket", +standard:"posix"}, -// The return value is a mixin of `childProcess` and `Promise` -const mergePromise = (spawned, promise) => { - mergePromiseProperty(spawned, promise, 'then'); - mergePromiseProperty(spawned, promise, 'catch'); - mergePromiseProperty(spawned, promise, 'finally'); - return spawned; -}; +{ +name:"SIGALRM", +number:14, +action:"terminate", +description:"Timeout or timer", +standard:"posix"}, -// Use promises instead of `child_process` events -const getSpawnedPromise = spawned => { - return new Promise((resolve, reject) => { - spawned.on('exit', (exitCode, signal) => { - resolve({exitCode, signal}); - }); +{ +name:"SIGTERM", +number:15, +action:"terminate", +description:"Termination", +standard:"ansi"}, - spawned.on('error', error => { - reject(error); - }); +{ +name:"SIGSTKFLT", +number:16, +action:"terminate", +description:"Stack is empty or overflowed", +standard:"other"}, - if (spawned.stdin) { - spawned.stdin.on('error', error => { - reject(error); - }); - } - }); -}; +{ +name:"SIGCHLD", +number:17, +action:"ignore", +description:"Child process terminated, paused or unpaused", +standard:"posix"}, -module.exports = { - mergePromise, - getSpawnedPromise -}; +{ +name:"SIGCLD", +number:17, +action:"ignore", +description:"Child process terminated, paused or unpaused", +standard:"other"}, +{ +name:"SIGCONT", +number:18, +action:"unpause", +description:"Unpaused", +standard:"posix", +forced:true}, +{ +name:"SIGSTOP", +number:19, +action:"pause", +description:"Paused", +standard:"posix", +forced:true}, -/***/ }), -/* 390 */ -/***/ (function(module, exports, __webpack_require__) { +{ +name:"SIGTSTP", +number:20, +action:"pause", +description:"Paused using CTRL-Z or \"suspend\"", +standard:"posix"}, -"use strict"; +{ +name:"SIGTTIN", +number:21, +action:"pause", +description:"Background process cannot read terminal input", +standard:"posix"}, -const SPACES_REGEXP = / +/g; +{ +name:"SIGBREAK", +number:21, +action:"terminate", +description:"User interruption with CTRL-BREAK", +standard:"other"}, -const joinCommand = (file, args = []) => { - if (!Array.isArray(args)) { - return file; - } +{ +name:"SIGTTOU", +number:22, +action:"pause", +description:"Background process cannot write to terminal output", +standard:"posix"}, - return [file, ...args].join(' '); -}; +{ +name:"SIGURG", +number:23, +action:"ignore", +description:"Socket received out-of-band data", +standard:"bsd"}, -// Allow spaces to be escaped by a backslash if not meant as a delimiter -const handleEscaping = (tokens, token, index) => { - if (index === 0) { - return [token]; - } +{ +name:"SIGXCPU", +number:24, +action:"core", +description:"Process timed out", +standard:"bsd"}, - const previousToken = tokens[tokens.length - 1]; +{ +name:"SIGXFSZ", +number:25, +action:"core", +description:"File too big", +standard:"bsd"}, - if (previousToken.endsWith('\\')) { - return [...tokens.slice(0, -1), `${previousToken.slice(0, -1)} ${token}`]; - } +{ +name:"SIGVTALRM", +number:26, +action:"terminate", +description:"Timeout or timer", +standard:"bsd"}, - return [...tokens, token]; -}; +{ +name:"SIGPROF", +number:27, +action:"terminate", +description:"Timeout or timer", +standard:"bsd"}, -// Handle `execa.command()` -const parseCommand = command => { - return command - .trim() - .split(SPACES_REGEXP) - .reduce(handleEscaping, []); -}; +{ +name:"SIGWINCH", +number:28, +action:"ignore", +description:"Terminal window size changed", +standard:"bsd"}, -module.exports = { - joinCommand, - parseCommand -}; +{ +name:"SIGIO", +number:29, +action:"terminate", +description:"I/O is available", +standard:"other"}, +{ +name:"SIGPOLL", +number:29, +action:"terminate", +description:"Watched event", +standard:"other"}, -/***/ }), -/* 391 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +{ +name:"SIGINFO", +number:29, +action:"ignore", +description:"Request for process information", +standard:"other"}, -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony import */ var _internal_Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Observable", function() { return _internal_Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"]; }); +{ +name:"SIGPWR", +number:30, +action:"terminate", +description:"Device running out of power", +standard:"systemv"}, -/* harmony import */ var _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(283); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ConnectableObservable", function() { return _internal_observable_ConnectableObservable__WEBPACK_IMPORTED_MODULE_1__["ConnectableObservable"]; }); +{ +name:"SIGSYS", +number:31, +action:"core", +description:"Invalid system call", +standard:"other"}, -/* harmony import */ var _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(264); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "GroupedObservable", function() { return _internal_operators_groupBy__WEBPACK_IMPORTED_MODULE_2__["GroupedObservable"]; }); +{ +name:"SIGUNUSED", +number:31, +action:"terminate", +description:"Invalid system call", +standard:"other"}];exports.SIGNALS=SIGNALS; +//# sourceMappingURL=core.js.map -/* harmony import */ var _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(190); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "observable", function() { return _internal_symbol_observable__WEBPACK_IMPORTED_MODULE_3__["observable"]; }); +/***/ }), +/* 394 */ +/***/ (function(module, exports, __webpack_require__) { -/* harmony import */ var _internal_Subject__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(265); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subject", function() { return _internal_Subject__WEBPACK_IMPORTED_MODULE_4__["Subject"]; }); +"use strict"; +Object.defineProperty(exports,"__esModule",{value:true});exports.SIGRTMAX=exports.getRealtimeSignals=void 0; +const getRealtimeSignals=function(){ +const length=SIGRTMAX-SIGRTMIN+1; +return Array.from({length},getRealtimeSignal); +};exports.getRealtimeSignals=getRealtimeSignals; -/* harmony import */ var _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(293); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "BehaviorSubject", function() { return _internal_BehaviorSubject__WEBPACK_IMPORTED_MODULE_5__["BehaviorSubject"]; }); +const getRealtimeSignal=function(value,index){ +return{ +name:`SIGRT${index+1}`, +number:SIGRTMIN+index, +action:"terminate", +description:"Application-specific signal (realtime)", +standard:"posix"}; -/* harmony import */ var _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__ = __webpack_require__(297); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ReplaySubject", function() { return _internal_ReplaySubject__WEBPACK_IMPORTED_MODULE_6__["ReplaySubject"]; }); - -/* harmony import */ var _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__ = __webpack_require__(295); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "AsyncSubject", function() { return _internal_AsyncSubject__WEBPACK_IMPORTED_MODULE_7__["AsyncSubject"]; }); - -/* harmony import */ var _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__ = __webpack_require__(320); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asapScheduler", function() { return _internal_scheduler_asap__WEBPACK_IMPORTED_MODULE_8__["asap"]; }); - -/* harmony import */ var _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__ = __webpack_require__(199); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "asyncScheduler", function() { return _internal_scheduler_async__WEBPACK_IMPORTED_MODULE_9__["async"]; }); - -/* harmony import */ var _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__ = __webpack_require__(298); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "queueScheduler", function() { return _internal_scheduler_queue__WEBPACK_IMPORTED_MODULE_10__["queue"]; }); - -/* harmony import */ var _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__ = __webpack_require__(392); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "animationFrameScheduler", function() { return _internal_scheduler_animationFrame__WEBPACK_IMPORTED_MODULE_11__["animationFrame"]; }); - -/* harmony import */ var _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__ = __webpack_require__(395); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualTimeScheduler"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return _internal_scheduler_VirtualTimeScheduler__WEBPACK_IMPORTED_MODULE_12__["VirtualAction"]; }); - -/* harmony import */ var _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__ = __webpack_require__(203); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Scheduler", function() { return _internal_Scheduler__WEBPACK_IMPORTED_MODULE_13__["Scheduler"]; }); - -/* harmony import */ var _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__ = __webpack_require__(177); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscription", function() { return _internal_Subscription__WEBPACK_IMPORTED_MODULE_14__["Subscription"]; }); - -/* harmony import */ var _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__ = __webpack_require__(172); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Subscriber", function() { return _internal_Subscriber__WEBPACK_IMPORTED_MODULE_15__["Subscriber"]; }); - -/* harmony import */ var _internal_Notification__WEBPACK_IMPORTED_MODULE_16__ = __webpack_require__(241); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "Notification", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_16__["Notification"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NotificationKind", function() { return _internal_Notification__WEBPACK_IMPORTED_MODULE_16__["NotificationKind"]; }); - -/* harmony import */ var _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__ = __webpack_require__(196); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pipe", function() { return _internal_util_pipe__WEBPACK_IMPORTED_MODULE_17__["pipe"]; }); - -/* harmony import */ var _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__ = __webpack_require__(197); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "noop", function() { return _internal_util_noop__WEBPACK_IMPORTED_MODULE_18__["noop"]; }); - -/* harmony import */ var _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__ = __webpack_require__(232); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "identity", function() { return _internal_util_identity__WEBPACK_IMPORTED_MODULE_19__["identity"]; }); - -/* harmony import */ var _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__ = __webpack_require__(396); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return _internal_util_isObservable__WEBPACK_IMPORTED_MODULE_20__["isObservable"]; }); - -/* harmony import */ var _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__ = __webpack_require__(250); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ArgumentOutOfRangeError", function() { return _internal_util_ArgumentOutOfRangeError__WEBPACK_IMPORTED_MODULE_21__["ArgumentOutOfRangeError"]; }); - -/* harmony import */ var _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__ = __webpack_require__(253); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EmptyError", function() { return _internal_util_EmptyError__WEBPACK_IMPORTED_MODULE_22__["EmptyError"]; }); - -/* harmony import */ var _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__ = __webpack_require__(266); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "ObjectUnsubscribedError", function() { return _internal_util_ObjectUnsubscribedError__WEBPACK_IMPORTED_MODULE_23__["ObjectUnsubscribedError"]; }); - -/* harmony import */ var _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__ = __webpack_require__(180); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "UnsubscriptionError", function() { return _internal_util_UnsubscriptionError__WEBPACK_IMPORTED_MODULE_24__["UnsubscriptionError"]; }); - -/* harmony import */ var _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__ = __webpack_require__(335); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "TimeoutError", function() { return _internal_util_TimeoutError__WEBPACK_IMPORTED_MODULE_25__["TimeoutError"]; }); - -/* harmony import */ var _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__ = __webpack_require__(397); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return _internal_observable_bindCallback__WEBPACK_IMPORTED_MODULE_26__["bindCallback"]; }); - -/* harmony import */ var _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__ = __webpack_require__(398); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return _internal_observable_bindNodeCallback__WEBPACK_IMPORTED_MODULE_27__["bindNodeCallback"]; }); - -/* harmony import */ var _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__ = __webpack_require__(214); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "combineLatest", function() { return _internal_observable_combineLatest__WEBPACK_IMPORTED_MODULE_28__["combineLatest"]; }); - -/* harmony import */ var _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__ = __webpack_require__(226); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "concat", function() { return _internal_observable_concat__WEBPACK_IMPORTED_MODULE_29__["concat"]; }); - -/* harmony import */ var _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__ = __webpack_require__(333); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "defer", function() { return _internal_observable_defer__WEBPACK_IMPORTED_MODULE_30__["defer"]; }); - -/* harmony import */ var _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__ = __webpack_require__(242); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "empty", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["empty"]; }); - -/* harmony import */ var _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__ = __webpack_require__(399); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return _internal_observable_forkJoin__WEBPACK_IMPORTED_MODULE_32__["forkJoin"]; }); - -/* harmony import */ var _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__ = __webpack_require__(218); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "from", function() { return _internal_observable_from__WEBPACK_IMPORTED_MODULE_33__["from"]; }); - -/* harmony import */ var _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__ = __webpack_require__(400); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return _internal_observable_fromEvent__WEBPACK_IMPORTED_MODULE_34__["fromEvent"]; }); - -/* harmony import */ var _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__ = __webpack_require__(401); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return _internal_observable_fromEventPattern__WEBPACK_IMPORTED_MODULE_35__["fromEventPattern"]; }); - -/* harmony import */ var _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__ = __webpack_require__(402); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return _internal_observable_generate__WEBPACK_IMPORTED_MODULE_36__["generate"]; }); - -/* harmony import */ var _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__ = __webpack_require__(403); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return _internal_observable_iif__WEBPACK_IMPORTED_MODULE_37__["iif"]; }); - -/* harmony import */ var _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__ = __webpack_require__(404); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return _internal_observable_interval__WEBPACK_IMPORTED_MODULE_38__["interval"]; }); - -/* harmony import */ var _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__ = __webpack_require__(278); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "merge", function() { return _internal_observable_merge__WEBPACK_IMPORTED_MODULE_39__["merge"]; }); - -/* harmony import */ var _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__ = __webpack_require__(405); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "never", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["never"]; }); - -/* harmony import */ var _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__ = __webpack_require__(227); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "of", function() { return _internal_observable_of__WEBPACK_IMPORTED_MODULE_41__["of"]; }); - -/* harmony import */ var _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__ = __webpack_require__(406); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return _internal_observable_onErrorResumeNext__WEBPACK_IMPORTED_MODULE_42__["onErrorResumeNext"]; }); - -/* harmony import */ var _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__ = __webpack_require__(407); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return _internal_observable_pairs__WEBPACK_IMPORTED_MODULE_43__["pairs"]; }); - -/* harmony import */ var _internal_observable_partition__WEBPACK_IMPORTED_MODULE_44__ = __webpack_require__(408); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return _internal_observable_partition__WEBPACK_IMPORTED_MODULE_44__["partition"]; }); - -/* harmony import */ var _internal_observable_race__WEBPACK_IMPORTED_MODULE_45__ = __webpack_require__(302); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "race", function() { return _internal_observable_race__WEBPACK_IMPORTED_MODULE_45__["race"]; }); - -/* harmony import */ var _internal_observable_range__WEBPACK_IMPORTED_MODULE_46__ = __webpack_require__(409); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "range", function() { return _internal_observable_range__WEBPACK_IMPORTED_MODULE_46__["range"]; }); - -/* harmony import */ var _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_47__ = __webpack_require__(243); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "throwError", function() { return _internal_observable_throwError__WEBPACK_IMPORTED_MODULE_47__["throwError"]; }); - -/* harmony import */ var _internal_observable_timer__WEBPACK_IMPORTED_MODULE_48__ = __webpack_require__(204); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "timer", function() { return _internal_observable_timer__WEBPACK_IMPORTED_MODULE_48__["timer"]; }); - -/* harmony import */ var _internal_observable_using__WEBPACK_IMPORTED_MODULE_49__ = __webpack_require__(410); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "using", function() { return _internal_observable_using__WEBPACK_IMPORTED_MODULE_49__["using"]; }); - -/* harmony import */ var _internal_observable_zip__WEBPACK_IMPORTED_MODULE_50__ = __webpack_require__(346); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "zip", function() { return _internal_observable_zip__WEBPACK_IMPORTED_MODULE_50__["zip"]; }); - -/* harmony import */ var _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_51__ = __webpack_require__(219); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "scheduled", function() { return _internal_scheduled_scheduled__WEBPACK_IMPORTED_MODULE_51__["scheduled"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "EMPTY", function() { return _internal_observable_empty__WEBPACK_IMPORTED_MODULE_31__["EMPTY"]; }); - -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return _internal_observable_never__WEBPACK_IMPORTED_MODULE_40__["NEVER"]; }); - -/* harmony import */ var _internal_config__WEBPACK_IMPORTED_MODULE_52__ = __webpack_require__(175); -/* harmony reexport (safe) */ __webpack_require__.d(__webpack_exports__, "config", function() { return _internal_config__WEBPACK_IMPORTED_MODULE_52__["config"]; }); - -/** PURE_IMPORTS_START PURE_IMPORTS_END */ +}; +const SIGRTMIN=34; +const SIGRTMAX=64;exports.SIGRTMAX=SIGRTMAX; +//# sourceMappingURL=realtime.js.map +/***/ }), +/* 395 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const aliases = ['stdin', 'stdout', 'stderr']; +const hasAlias = opts => aliases.some(alias => opts[alias] !== undefined); +const normalizeStdio = opts => { + if (!opts) { + return; + } + const {stdio} = opts; + if (stdio === undefined) { + return aliases.map(alias => opts[alias]); + } + if (hasAlias(opts)) { + throw new Error(`It's not possible to provide \`stdio\` in combination with one of ${aliases.map(alias => `\`${alias}\``).join(', ')}`); + } + if (typeof stdio === 'string') { + return stdio; + } + if (!Array.isArray(stdio)) { + throw new TypeError(`Expected \`stdio\` to be of type \`string\` or \`Array\`, got \`${typeof stdio}\``); + } + const length = Math.max(stdio.length, aliases.length); + return Array.from({length}, (value, index) => stdio[index]); +}; +module.exports = normalizeStdio; +// `ipc` is pushed unless it is already present +module.exports.node = opts => { + const stdio = normalizeStdio(opts); + if (stdio === 'ipc') { + return 'ipc'; + } + if (stdio === undefined || typeof stdio === 'string') { + return [stdio, stdio, stdio, 'ipc']; + } + if (stdio.includes('ipc')) { + return stdio; + } + return [...stdio, 'ipc']; +}; +/***/ }), +/* 396 */ +/***/ (function(module, exports, __webpack_require__) { +"use strict"; +const os = __webpack_require__(11); +const onExit = __webpack_require__(397); +const DEFAULT_FORCE_KILL_TIMEOUT = 1000 * 5; +// Monkey-patches `childProcess.kill()` to add `forceKillAfterTimeout` behavior +const spawnedKill = (kill, signal = 'SIGTERM', options = {}) => { + const killResult = kill(signal); + setKillTimeout(kill, signal, options, killResult); + return killResult; +}; +const setKillTimeout = (kill, signal, options, killResult) => { + if (!shouldForceKill(signal, options, killResult)) { + return; + } + const timeout = getForceKillAfterTimeout(options); + const t = setTimeout(() => { + kill('SIGKILL'); + }, timeout); + // Guarded because there's no `.unref()` when `execa` is used in the renderer + // process in Electron. This cannot be tested since we don't run tests in + // Electron. + // istanbul ignore else + if (t.unref) { + t.unref(); + } +}; +const shouldForceKill = (signal, {forceKillAfterTimeout}, killResult) => { + return isSigterm(signal) && forceKillAfterTimeout !== false && killResult; +}; +const isSigterm = signal => { + return signal === os.constants.signals.SIGTERM || + (typeof signal === 'string' && signal.toUpperCase() === 'SIGTERM'); +}; +const getForceKillAfterTimeout = ({forceKillAfterTimeout = true}) => { + if (forceKillAfterTimeout === true) { + return DEFAULT_FORCE_KILL_TIMEOUT; + } + if (!Number.isInteger(forceKillAfterTimeout) || forceKillAfterTimeout < 0) { + throw new TypeError(`Expected the \`forceKillAfterTimeout\` option to be a non-negative integer, got \`${forceKillAfterTimeout}\` (${typeof forceKillAfterTimeout})`); + } + return forceKillAfterTimeout; +}; +// `childProcess.cancel()` +const spawnedCancel = (spawned, context) => { + const killResult = spawned.kill(); + if (killResult) { + context.isCanceled = true; + } +}; +const timeoutKill = (spawned, signal, reject) => { + spawned.kill(signal); + reject(Object.assign(new Error('Timed out'), {timedOut: true, signal})); +}; +// `timeout` option handling +const setupTimeout = (spawned, {timeout, killSignal = 'SIGTERM'}, spawnedPromise) => { + if (timeout === 0 || timeout === undefined) { + return spawnedPromise; + } + if (!Number.isInteger(timeout) || timeout < 0) { + throw new TypeError(`Expected the \`timeout\` option to be a non-negative integer, got \`${timeout}\` (${typeof timeout})`); + } + let timeoutId; + const timeoutPromise = new Promise((resolve, reject) => { + timeoutId = setTimeout(() => { + timeoutKill(spawned, killSignal, reject); + }, timeout); + }); + const safeSpawnedPromise = spawnedPromise.finally(() => { + clearTimeout(timeoutId); + }); + return Promise.race([timeoutPromise, safeSpawnedPromise]); +}; +// `cleanup` option handling +const setExitHandler = async (spawned, {cleanup, detached}, timedPromise) => { + if (!cleanup || detached) { + return timedPromise; + } + const removeExitHandler = onExit(() => { + spawned.kill(); + }); + return timedPromise.finally(() => { + removeExitHandler(); + }); +}; +module.exports = { + spawnedKill, + spawnedCancel, + setupTimeout, + setExitHandler +}; +/***/ }), +/* 397 */ +/***/ (function(module, exports, __webpack_require__) { +// Note: since nyc uses this module to output coverage, any lines +// that are in the direct sync flow of nyc's outputCoverage are +// ignored, since we can never get coverage for them. +var assert = __webpack_require__(30) +var signals = __webpack_require__(398) +var EE = __webpack_require__(399) +/* istanbul ignore if */ +if (typeof EE !== 'function') { + EE = EE.EventEmitter +} +var emitter +if (process.__signal_exit_emitter__) { + emitter = process.__signal_exit_emitter__ +} else { + emitter = process.__signal_exit_emitter__ = new EE() + emitter.count = 0 + emitter.emitted = {} +} +// Because this emitter is a global, we have to check to see if a +// previous version of this library failed to enable infinite listeners. +// I know what you're about to say. But literally everything about +// signal-exit is a compromise with evil. Get used to it. +if (!emitter.infinite) { + emitter.setMaxListeners(Infinity) + emitter.infinite = true +} +module.exports = function (cb, opts) { + assert.equal(typeof cb, 'function', 'a callback must be provided for exit handler') + if (loaded === false) { + load() + } + var ev = 'exit' + if (opts && opts.alwaysLast) { + ev = 'afterexit' + } + var remove = function () { + emitter.removeListener(ev, cb) + if (emitter.listeners('exit').length === 0 && + emitter.listeners('afterexit').length === 0) { + unload() + } + } + emitter.on(ev, cb) -//# sourceMappingURL=index.js.map + return remove +} +module.exports.unload = unload +function unload () { + if (!loaded) { + return + } + loaded = false -/***/ }), -/* 392 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + signals.forEach(function (sig) { + try { + process.removeListener(sig, sigListeners[sig]) + } catch (er) {} + }) + process.emit = originalProcessEmit + process.reallyExit = originalProcessReallyExit + emitter.count -= 1 +} -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "animationFrame", function() { return animationFrame; }); -/* harmony import */ var _AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(393); -/* harmony import */ var _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(394); -/** PURE_IMPORTS_START _AnimationFrameAction,_AnimationFrameScheduler PURE_IMPORTS_END */ +function emit (event, code, signal) { + if (emitter.emitted[event]) { + return + } + emitter.emitted[event] = true + emitter.emit(event, code, signal) +} +// { : , ... } +var sigListeners = {} +signals.forEach(function (sig) { + sigListeners[sig] = function listener () { + // If there are no other listeners, an exit is coming! + // Simplest way: remove us and then re-send the signal. + // We know that this will kill the process, so we can + // safely emit now. + var listeners = process.listeners(sig) + if (listeners.length === emitter.count) { + unload() + emit('exit', null, sig) + /* istanbul ignore next */ + emit('afterexit', null, sig) + /* istanbul ignore next */ + process.kill(process.pid, sig) + } + } +}) -var animationFrame = /*@__PURE__*/ new _AnimationFrameScheduler__WEBPACK_IMPORTED_MODULE_1__["AnimationFrameScheduler"](_AnimationFrameAction__WEBPACK_IMPORTED_MODULE_0__["AnimationFrameAction"]); -//# sourceMappingURL=animationFrame.js.map +module.exports.signals = function () { + return signals +} +module.exports.load = load -/***/ }), -/* 393 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +var loaded = false -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameAction", function() { return AnimationFrameAction; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); -/** PURE_IMPORTS_START tslib,_AsyncAction PURE_IMPORTS_END */ +function load () { + if (loaded) { + return + } + loaded = true + // This is the number of onSignalExit's that are in play. + // It's important so that we can count the correct number of + // listeners on signals, and don't wait for the other one to + // handle it instead of us. + emitter.count += 1 -var AnimationFrameAction = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameAction, _super); - function AnimationFrameAction(scheduler, work) { - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - return _this; + signals = signals.filter(function (sig) { + try { + process.on(sig, sigListeners[sig]) + return true + } catch (er) { + return false } - AnimationFrameAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if (delay !== null && delay > 0) { - return _super.prototype.requestAsyncId.call(this, scheduler, id, delay); - } - scheduler.actions.push(this); - return scheduler.scheduled || (scheduler.scheduled = requestAnimationFrame(function () { return scheduler.flush(null); })); - }; - AnimationFrameAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - if ((delay !== null && delay > 0) || (delay === null && this.delay > 0)) { - return _super.prototype.recycleAsyncId.call(this, scheduler, id, delay); - } - if (scheduler.actions.length === 0) { - cancelAnimationFrame(id); - scheduler.scheduled = undefined; - } - return undefined; - }; - return AnimationFrameAction; -}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); - -//# sourceMappingURL=AnimationFrameAction.js.map - - -/***/ }), -/* 394 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + }) -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "AnimationFrameScheduler", function() { return AnimationFrameScheduler; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(202); -/** PURE_IMPORTS_START tslib,_AsyncScheduler PURE_IMPORTS_END */ + process.emit = processEmit + process.reallyExit = processReallyExit +} +var originalProcessReallyExit = process.reallyExit +function processReallyExit (code) { + process.exitCode = code || 0 + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + /* istanbul ignore next */ + originalProcessReallyExit.call(process, process.exitCode) +} -var AnimationFrameScheduler = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](AnimationFrameScheduler, _super); - function AnimationFrameScheduler() { - return _super !== null && _super.apply(this, arguments) || this; +var originalProcessEmit = process.emit +function processEmit (ev, arg) { + if (ev === 'exit') { + if (arg !== undefined) { + process.exitCode = arg } - AnimationFrameScheduler.prototype.flush = function (action) { - this.active = true; - this.scheduled = undefined; - var actions = this.actions; - var error; - var index = -1; - var count = actions.length; - action = action || actions.shift(); - do { - if (error = action.execute(action.state, action.delay)) { - break; - } - } while (++index < count && (action = actions.shift())); - this.active = false; - if (error) { - while (++index < count && (action = actions.shift())) { - action.unsubscribe(); - } - throw error; - } - }; - return AnimationFrameScheduler; -}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_1__["AsyncScheduler"])); - -//# sourceMappingURL=AnimationFrameScheduler.js.map + var ret = originalProcessEmit.apply(this, arguments) + emit('exit', process.exitCode, null) + /* istanbul ignore next */ + emit('afterexit', process.exitCode, null) + return ret + } else { + return originalProcessEmit.apply(this, arguments) + } +} /***/ }), -/* 395 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualTimeScheduler", function() { return VirtualTimeScheduler; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "VirtualAction", function() { return VirtualAction; }); -/* harmony import */ var tslib__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(36); -/* harmony import */ var _AsyncAction__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(200); -/* harmony import */ var _AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(202); -/** PURE_IMPORTS_START tslib,_AsyncAction,_AsyncScheduler PURE_IMPORTS_END */ - - +/* 398 */ +/***/ (function(module, exports) { -var VirtualTimeScheduler = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualTimeScheduler, _super); - function VirtualTimeScheduler(SchedulerAction, maxFrames) { - if (SchedulerAction === void 0) { - SchedulerAction = VirtualAction; - } - if (maxFrames === void 0) { - maxFrames = Number.POSITIVE_INFINITY; - } - var _this = _super.call(this, SchedulerAction, function () { return _this.frame; }) || this; - _this.maxFrames = maxFrames; - _this.frame = 0; - _this.index = -1; - return _this; - } - VirtualTimeScheduler.prototype.flush = function () { - var _a = this, actions = _a.actions, maxFrames = _a.maxFrames; - var error, action; - while ((action = actions[0]) && action.delay <= maxFrames) { - actions.shift(); - this.frame = action.delay; - if (error = action.execute(action.state, action.delay)) { - break; - } - } - if (error) { - while (action = actions.shift()) { - action.unsubscribe(); - } - throw error; - } - }; - VirtualTimeScheduler.frameTimeFactor = 10; - return VirtualTimeScheduler; -}(_AsyncScheduler__WEBPACK_IMPORTED_MODULE_2__["AsyncScheduler"])); +// This is not the set of all possible signals. +// +// It IS, however, the set of all signals that trigger +// an exit on either Linux or BSD systems. Linux is a +// superset of the signal names supported on BSD, and +// the unknown signals just fail to register, so we can +// catch that easily enough. +// +// Don't bother with SIGKILL. It's uncatchable, which +// means that we can't fire any callbacks anyway. +// +// If a user does happen to register a handler on a non- +// fatal signal like SIGWINCH or something, and then +// exit, it'll end up firing `process.emit('exit')`, so +// the handler will be fired anyway. +// +// SIGBUS, SIGFPE, SIGSEGV and SIGILL, when not raised +// artificially, inherently leave the process in a +// state from which it is not safe to try and enter JS +// listeners. +module.exports = [ + 'SIGABRT', + 'SIGALRM', + 'SIGHUP', + 'SIGINT', + 'SIGTERM' +] -var VirtualAction = /*@__PURE__*/ (function (_super) { - tslib__WEBPACK_IMPORTED_MODULE_0__["__extends"](VirtualAction, _super); - function VirtualAction(scheduler, work, index) { - if (index === void 0) { - index = scheduler.index += 1; - } - var _this = _super.call(this, scheduler, work) || this; - _this.scheduler = scheduler; - _this.work = work; - _this.index = index; - _this.active = true; - _this.index = scheduler.index = index; - return _this; - } - VirtualAction.prototype.schedule = function (state, delay) { - if (delay === void 0) { - delay = 0; - } - if (!this.id) { - return _super.prototype.schedule.call(this, state, delay); - } - this.active = false; - var action = new VirtualAction(this.scheduler, this.work); - this.add(action); - return action.schedule(state, delay); - }; - VirtualAction.prototype.requestAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - this.delay = scheduler.frame + delay; - var actions = scheduler.actions; - actions.push(this); - actions.sort(VirtualAction.sortActions); - return true; - }; - VirtualAction.prototype.recycleAsyncId = function (scheduler, id, delay) { - if (delay === void 0) { - delay = 0; - } - return undefined; - }; - VirtualAction.prototype._execute = function (state, delay) { - if (this.active === true) { - return _super.prototype._execute.call(this, state, delay); - } - }; - VirtualAction.sortActions = function (a, b) { - if (a.delay === b.delay) { - if (a.index === b.index) { - return 0; - } - else if (a.index > b.index) { - return 1; - } - else { - return -1; - } - } - else if (a.delay > b.delay) { - return 1; - } - else { - return -1; - } - }; - return VirtualAction; -}(_AsyncAction__WEBPACK_IMPORTED_MODULE_1__["AsyncAction"])); +if (process.platform !== 'win32') { + module.exports.push( + 'SIGVTALRM', + 'SIGXCPU', + 'SIGXFSZ', + 'SIGUSR2', + 'SIGTRAP', + 'SIGSYS', + 'SIGQUIT', + 'SIGIOT' + // should detect profiler and enable/disable accordingly. + // see #21 + // 'SIGPROF' + ) +} -//# sourceMappingURL=VirtualTimeScheduler.js.map +if (process.platform === 'linux') { + module.exports.push( + 'SIGIO', + 'SIGPOLL', + 'SIGPWR', + 'SIGSTKFLT', + 'SIGUNUSED' + ) +} /***/ }), -/* 396 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { - -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "isObservable", function() { return isObservable; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ - -function isObservable(obj) { - return !!obj && (obj instanceof _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"] || (typeof obj.lift === 'function' && typeof obj.subscribe === 'function')); -} -//# sourceMappingURL=isObservable.js.map +/* 399 */ +/***/ (function(module, exports) { +module.exports = require("events"); /***/ }), -/* 397 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 400 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindCallback", function() { return bindCallback; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(295); -/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); -/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(194); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(178); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(206); -/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isArray,_util_isScheduler PURE_IMPORTS_END */ - - - +const isStream = __webpack_require__(401); +const getStream = __webpack_require__(402); +const mergeStream = __webpack_require__(408); +// `input` option +const handleInput = (spawned, input) => { + // Checking for stdin is workaround for https://github.com/nodejs/node/issues/26852 + // TODO: Remove `|| spawned.stdin === undefined` once we drop support for Node.js <=12.2.0 + if (input === undefined || spawned.stdin === undefined) { + return; + } -function bindCallback(callbackFunc, resultSelector, scheduler) { - if (resultSelector) { - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_5__["isScheduler"])(resultSelector)) { - scheduler = resultSelector; - } - else { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return bindCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_4__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - }; - } - } - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var context = this; - var subject; - var params = { - context: context, - subject: subject, - callbackFunc: callbackFunc, - scheduler: scheduler, - }; - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - if (!scheduler) { - if (!subject) { - subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); - subject.complete(); - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_3__["canReportError"])(subject)) { - subject.error(err); - } - else { - console.warn(err); - } - } - } - return subject.subscribe(subscriber); - } - else { - var state = { - args: args, subscriber: subscriber, params: params, - }; - return scheduler.schedule(dispatch, 0, state); - } - }); - }; -} -function dispatch(state) { - var _this = this; - var self = this; - var args = state.args, subscriber = state.subscriber, params = state.params; - var callbackFunc = params.callbackFunc, context = params.context, scheduler = params.scheduler; - var subject = params.subject; - if (!subject) { - subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; - _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - subject.error(err); - } - } - this.add(subject.subscribe(subscriber)); -} -function dispatchNext(state) { - var value = state.value, subject = state.subject; - subject.next(value); - subject.complete(); -} -function dispatchError(state) { - var err = state.err, subject = state.subject; - subject.error(err); -} -//# sourceMappingURL=bindCallback.js.map + if (isStream(input)) { + input.pipe(spawned.stdin); + } else { + spawned.stdin.end(input); + } +}; +// `all` interleaves `stdout` and `stderr` +const makeAllStream = (spawned, {all}) => { + if (!all || (!spawned.stdout && !spawned.stderr)) { + return; + } -/***/ }), -/* 398 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + const mixed = mergeStream(); -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "bindNodeCallback", function() { return bindNodeCallback; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(295); -/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); -/* harmony import */ var _util_canReportError__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(194); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(206); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_5__ = __webpack_require__(178); -/** PURE_IMPORTS_START _Observable,_AsyncSubject,_operators_map,_util_canReportError,_util_isScheduler,_util_isArray PURE_IMPORTS_END */ + if (spawned.stdout) { + mixed.add(spawned.stdout); + } + if (spawned.stderr) { + mixed.add(spawned.stderr); + } + return mixed; +}; +// On failure, `result.stdout|stderr|all` should contain the currently buffered stream +const getBufferedData = async (stream, streamPromise) => { + if (!stream) { + return; + } + stream.destroy(); + try { + return await streamPromise; + } catch (error) { + return error.bufferedData; + } +}; + +const getStreamPromise = (stream, {encoding, buffer, maxBuffer}) => { + if (!stream || !buffer) { + return; + } + + if (encoding) { + return getStream(stream, {encoding, maxBuffer}); + } + + return getStream.buffer(stream, {maxBuffer}); +}; + +// Retrieve result of child process: exit code, signal, error, streams (stdout/stderr/all) +const getSpawnedResult = async ({stdout, stderr, all}, {encoding, buffer, maxBuffer}, processDone) => { + const stdoutPromise = getStreamPromise(stdout, {encoding, buffer, maxBuffer}); + const stderrPromise = getStreamPromise(stderr, {encoding, buffer, maxBuffer}); + const allPromise = getStreamPromise(all, {encoding, buffer, maxBuffer: maxBuffer * 2}); + + try { + return await Promise.all([processDone, stdoutPromise, stderrPromise, allPromise]); + } catch (error) { + return Promise.all([ + {error, signal: error.signal, timedOut: error.timedOut}, + getBufferedData(stdout, stdoutPromise), + getBufferedData(stderr, stderrPromise), + getBufferedData(all, allPromise) + ]); + } +}; + +const validateInputSync = ({input}) => { + if (isStream(input)) { + throw new TypeError('The `input` option cannot be a stream in sync mode'); + } +}; + +module.exports = { + handleInput, + makeAllStream, + getSpawnedResult, + validateInputSync +}; -function bindNodeCallback(callbackFunc, resultSelector, scheduler) { - if (resultSelector) { - if (Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_4__["isScheduler"])(resultSelector)) { - scheduler = resultSelector; - } - else { - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - return bindNodeCallback(callbackFunc, scheduler).apply(void 0, args).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_5__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - }; - } - } - return function () { - var args = []; - for (var _i = 0; _i < arguments.length; _i++) { - args[_i] = arguments[_i]; - } - var params = { - subject: undefined, - args: args, - callbackFunc: callbackFunc, - scheduler: scheduler, - context: this, - }; - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var context = params.context; - var subject = params.subject; - if (!scheduler) { - if (!subject) { - subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - var err = innerArgs.shift(); - if (err) { - subject.error(err); - return; - } - subject.next(innerArgs.length <= 1 ? innerArgs[0] : innerArgs); - subject.complete(); - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - if (Object(_util_canReportError__WEBPACK_IMPORTED_MODULE_3__["canReportError"])(subject)) { - subject.error(err); - } - else { - console.warn(err); - } - } - } - return subject.subscribe(subscriber); - } - else { - return scheduler.schedule(dispatch, 0, { params: params, subscriber: subscriber, context: context }); - } - }); - }; -} -function dispatch(state) { - var _this = this; - var params = state.params, subscriber = state.subscriber, context = state.context; - var callbackFunc = params.callbackFunc, args = params.args, scheduler = params.scheduler; - var subject = params.subject; - if (!subject) { - subject = params.subject = new _AsyncSubject__WEBPACK_IMPORTED_MODULE_1__["AsyncSubject"](); - var handler = function () { - var innerArgs = []; - for (var _i = 0; _i < arguments.length; _i++) { - innerArgs[_i] = arguments[_i]; - } - var err = innerArgs.shift(); - if (err) { - _this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); - } - else { - var value = innerArgs.length <= 1 ? innerArgs[0] : innerArgs; - _this.add(scheduler.schedule(dispatchNext, 0, { value: value, subject: subject })); - } - }; - try { - callbackFunc.apply(context, args.concat([handler])); - } - catch (err) { - this.add(scheduler.schedule(dispatchError, 0, { err: err, subject: subject })); - } - } - this.add(subject.subscribe(subscriber)); -} -function dispatchNext(arg) { - var value = arg.value, subject = arg.subject; - subject.next(value); - subject.complete(); -} -function dispatchError(arg) { - var err = arg.err, subject = arg.subject; - subject.error(err); -} -//# sourceMappingURL=bindNodeCallback.js.map /***/ }), -/* 399 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 401 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "forkJoin", function() { return forkJoin; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); -/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(231); -/* harmony import */ var _util_isObject__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(179); -/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(218); -/** PURE_IMPORTS_START _Observable,_util_isArray,_operators_map,_util_isObject,_from PURE_IMPORTS_END */ +const isStream = stream => + stream !== null && + typeof stream === 'object' && + typeof stream.pipe === 'function'; +isStream.writable = stream => + isStream(stream) && + stream.writable !== false && + typeof stream._write === 'function' && + typeof stream._writableState === 'object'; +isStream.readable = stream => + isStream(stream) && + stream.readable !== false && + typeof stream._read === 'function' && + typeof stream._readableState === 'object'; -function forkJoin() { - var sources = []; - for (var _i = 0; _i < arguments.length; _i++) { - sources[_i] = arguments[_i]; - } - if (sources.length === 1) { - var first_1 = sources[0]; - if (Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(first_1)) { - return forkJoinInternal(first_1, null); - } - if (Object(_util_isObject__WEBPACK_IMPORTED_MODULE_3__["isObject"])(first_1) && Object.getPrototypeOf(first_1) === Object.prototype) { - var keys = Object.keys(first_1); - return forkJoinInternal(keys.map(function (key) { return first_1[key]; }), keys); - } - } - if (typeof sources[sources.length - 1] === 'function') { - var resultSelector_1 = sources.pop(); - sources = (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(sources[0])) ? sources[0] : sources; - return forkJoinInternal(sources, null).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_2__["map"])(function (args) { return resultSelector_1.apply(void 0, args); })); - } - return forkJoinInternal(sources, null); -} -function forkJoinInternal(sources, keys) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var len = sources.length; - if (len === 0) { - subscriber.complete(); - return; - } - var values = new Array(len); - var completed = 0; - var emitted = 0; - var _loop_1 = function (i) { - var source = Object(_from__WEBPACK_IMPORTED_MODULE_4__["from"])(sources[i]); - var hasValue = false; - subscriber.add(source.subscribe({ - next: function (value) { - if (!hasValue) { - hasValue = true; - emitted++; - } - values[i] = value; - }, - error: function (err) { return subscriber.error(err); }, - complete: function () { - completed++; - if (completed === len || !hasValue) { - if (emitted === len) { - subscriber.next(keys ? - keys.reduce(function (result, key, i) { return (result[key] = values[i], result); }, {}) : - values); - } - subscriber.complete(); - } - } - })); - }; - for (var i = 0; i < len; i++) { - _loop_1(i); - } - }); -} -//# sourceMappingURL=forkJoin.js.map +isStream.duplex = stream => + isStream.writable(stream) && + isStream.readable(stream); + +isStream.transform = stream => + isStream.duplex(stream) && + typeof stream._transform === 'function' && + typeof stream._transformState === 'object'; + +module.exports = isStream; /***/ }), -/* 400 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 402 */ +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEvent", function() { return fromEvent; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); -/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); -/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(231); -/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ +const pump = __webpack_require__(403); +const bufferStream = __webpack_require__(407); +class MaxBufferError extends Error { + constructor() { + super('maxBuffer exceeded'); + this.name = 'MaxBufferError'; + } +} +async function getStream(inputStream, options) { + if (!inputStream) { + return Promise.reject(new Error('Expected a stream')); + } -var toString = /*@__PURE__*/ (function () { return Object.prototype.toString; })(); -function fromEvent(target, eventName, options, resultSelector) { - if (Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(options)) { - resultSelector = options; - options = undefined; - } - if (resultSelector) { - return fromEvent(target, eventName, options).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - function handler(e) { - if (arguments.length > 1) { - subscriber.next(Array.prototype.slice.call(arguments)); - } - else { - subscriber.next(e); - } - } - setupSubscription(target, eventName, handler, subscriber, options); - }); -} -function setupSubscription(sourceObj, eventName, handler, subscriber, options) { - var unsubscribe; - if (isEventTarget(sourceObj)) { - var source_1 = sourceObj; - sourceObj.addEventListener(eventName, handler, options); - unsubscribe = function () { return source_1.removeEventListener(eventName, handler, options); }; - } - else if (isJQueryStyleEventEmitter(sourceObj)) { - var source_2 = sourceObj; - sourceObj.on(eventName, handler); - unsubscribe = function () { return source_2.off(eventName, handler); }; - } - else if (isNodeStyleEventEmitter(sourceObj)) { - var source_3 = sourceObj; - sourceObj.addListener(eventName, handler); - unsubscribe = function () { return source_3.removeListener(eventName, handler); }; - } - else if (sourceObj && sourceObj.length) { - for (var i = 0, len = sourceObj.length; i < len; i++) { - setupSubscription(sourceObj[i], eventName, handler, subscriber, options); - } - } - else { - throw new TypeError('Invalid event target'); - } - subscriber.add(unsubscribe); + options = { + maxBuffer: Infinity, + ...options + }; + + const {maxBuffer} = options; + + let stream; + await new Promise((resolve, reject) => { + const rejectPromise = error => { + if (error) { // A null check + error.bufferedData = stream.getBufferedValue(); + } + + reject(error); + }; + + stream = pump(inputStream, bufferStream(options), error => { + if (error) { + rejectPromise(error); + return; + } + + resolve(); + }); + + stream.on('data', () => { + if (stream.getBufferedLength() > maxBuffer) { + rejectPromise(new MaxBufferError()); + } + }); + }); + + return stream.getBufferedValue(); } -function isNodeStyleEventEmitter(sourceObj) { - return sourceObj && typeof sourceObj.addListener === 'function' && typeof sourceObj.removeListener === 'function'; + +module.exports = getStream; +// TODO: Remove this for the next major release +module.exports.default = getStream; +module.exports.buffer = (stream, options) => getStream(stream, {...options, encoding: 'buffer'}); +module.exports.array = (stream, options) => getStream(stream, {...options, array: true}); +module.exports.MaxBufferError = MaxBufferError; + + +/***/ }), +/* 403 */ +/***/ (function(module, exports, __webpack_require__) { + +var once = __webpack_require__(404) +var eos = __webpack_require__(406) +var fs = __webpack_require__(23) // we only need fs to get the ReadStream and WriteStream prototypes + +var noop = function () {} +var ancient = /^v?\.0/.test(process.version) + +var isFn = function (fn) { + return typeof fn === 'function' } -function isJQueryStyleEventEmitter(sourceObj) { - return sourceObj && typeof sourceObj.on === 'function' && typeof sourceObj.off === 'function'; + +var isFS = function (stream) { + if (!ancient) return false // newer node version do not need to care about fs is a special way + if (!fs) return false // browser + return (stream instanceof (fs.ReadStream || noop) || stream instanceof (fs.WriteStream || noop)) && isFn(stream.close) } -function isEventTarget(sourceObj) { - return sourceObj && typeof sourceObj.addEventListener === 'function' && typeof sourceObj.removeEventListener === 'function'; + +var isRequest = function (stream) { + return stream.setHeader && isFn(stream.abort) } -//# sourceMappingURL=fromEvent.js.map +var destroyer = function (stream, reading, writing, callback) { + callback = once(callback) -/***/ }), -/* 401 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var closed = false + stream.on('close', function () { + closed = true + }) -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "fromEventPattern", function() { return fromEventPattern; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(178); -/* harmony import */ var _util_isFunction__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(173); -/* harmony import */ var _operators_map__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(231); -/** PURE_IMPORTS_START _Observable,_util_isArray,_util_isFunction,_operators_map PURE_IMPORTS_END */ + eos(stream, {readable: reading, writable: writing}, function (err) { + if (err) return callback(err) + closed = true + callback() + }) + var destroyed = false + return function (err) { + if (closed) return + if (destroyed) return + destroyed = true + if (isFS(stream)) return stream.close(noop) // use close for fs streams to avoid fd leaks + if (isRequest(stream)) return stream.abort() // request.destroy just do .end - .abort is what we want + if (isFn(stream.destroy)) return stream.destroy() -function fromEventPattern(addHandler, removeHandler, resultSelector) { - if (resultSelector) { - return fromEventPattern(addHandler, removeHandler).pipe(Object(_operators_map__WEBPACK_IMPORTED_MODULE_3__["map"])(function (args) { return Object(_util_isArray__WEBPACK_IMPORTED_MODULE_1__["isArray"])(args) ? resultSelector.apply(void 0, args) : resultSelector(args); })); - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var handler = function () { - var e = []; - for (var _i = 0; _i < arguments.length; _i++) { - e[_i] = arguments[_i]; - } - return subscriber.next(e.length === 1 ? e[0] : e); - }; - var retValue; - try { - retValue = addHandler(handler); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (!Object(_util_isFunction__WEBPACK_IMPORTED_MODULE_2__["isFunction"])(removeHandler)) { - return undefined; - } - return function () { return removeHandler(handler, retValue); }; - }); + callback(err || new Error('stream was destroyed')) + } } -//# sourceMappingURL=fromEventPattern.js.map +var call = function (fn) { + fn() +} -/***/ }), -/* 402 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +var pipe = function (from, to) { + return from.pipe(to) +} -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "generate", function() { return generate; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_identity__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(232); -/* harmony import */ var _util_isScheduler__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(206); -/** PURE_IMPORTS_START _Observable,_util_identity,_util_isScheduler PURE_IMPORTS_END */ +var pump = function () { + var streams = Array.prototype.slice.call(arguments) + var callback = isFn(streams[streams.length - 1] || noop) && streams.pop() || noop + if (Array.isArray(streams[0])) streams = streams[0] + if (streams.length < 2) throw new Error('pump requires two streams per minimum') + var error + var destroys = streams.map(function (stream, i) { + var reading = i < streams.length - 1 + var writing = i > 0 + return destroyer(stream, reading, writing, function (err) { + if (!error) error = err + if (err) destroys.forEach(call) + if (reading) return + destroys.forEach(call) + callback(error) + }) + }) -function generate(initialStateOrOptions, condition, iterate, resultSelectorOrObservable, scheduler) { - var resultSelector; - var initialState; - if (arguments.length == 1) { - var options = initialStateOrOptions; - initialState = options.initialState; - condition = options.condition; - iterate = options.iterate; - resultSelector = options.resultSelector || _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]; - scheduler = options.scheduler; - } - else if (resultSelectorOrObservable === undefined || Object(_util_isScheduler__WEBPACK_IMPORTED_MODULE_2__["isScheduler"])(resultSelectorOrObservable)) { - initialState = initialStateOrOptions; - resultSelector = _util_identity__WEBPACK_IMPORTED_MODULE_1__["identity"]; - scheduler = resultSelectorOrObservable; - } - else { - initialState = initialStateOrOptions; - resultSelector = resultSelectorOrObservable; - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var state = initialState; - if (scheduler) { - return scheduler.schedule(dispatch, 0, { - subscriber: subscriber, - iterate: iterate, - condition: condition, - resultSelector: resultSelector, - state: state - }); - } - do { - if (condition) { - var conditionResult = void 0; - try { - conditionResult = condition(state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (!conditionResult) { - subscriber.complete(); - break; - } - } - var value = void 0; - try { - value = resultSelector(state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - subscriber.next(value); - if (subscriber.closed) { - break; - } - try { - state = iterate(state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - } while (true); - return undefined; - }); + return streams.reduce(pipe) } -function dispatch(state) { - var subscriber = state.subscriber, condition = state.condition; - if (subscriber.closed) { - return undefined; - } - if (state.needIterate) { - try { - state.state = state.iterate(state.state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - } - else { - state.needIterate = true; - } - if (condition) { - var conditionResult = void 0; - try { - conditionResult = condition(state.state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (!conditionResult) { - subscriber.complete(); - return undefined; - } - if (subscriber.closed) { - return undefined; - } - } - var value; - try { - value = state.resultSelector(state.state); - } - catch (err) { - subscriber.error(err); - return undefined; - } - if (subscriber.closed) { - return undefined; - } - subscriber.next(value); - if (subscriber.closed) { - return undefined; - } - return this.schedule(state); + +module.exports = pump + + +/***/ }), +/* 404 */ +/***/ (function(module, exports, __webpack_require__) { + +var wrappy = __webpack_require__(405) +module.exports = wrappy(once) +module.exports.strict = wrappy(onceStrict) + +once.proto = once(function () { + Object.defineProperty(Function.prototype, 'once', { + value: function () { + return once(this) + }, + configurable: true + }) + + Object.defineProperty(Function.prototype, 'onceStrict', { + value: function () { + return onceStrict(this) + }, + configurable: true + }) +}) + +function once (fn) { + var f = function () { + if (f.called) return f.value + f.called = true + return f.value = fn.apply(this, arguments) + } + f.called = false + return f +} + +function onceStrict (fn) { + var f = function () { + if (f.called) + throw new Error(f.onceError) + f.called = true + return f.value = fn.apply(this, arguments) + } + var name = fn.name || 'Function wrapped with `once`' + f.onceError = name + " shouldn't be called more than once" + f.called = false + return f } -//# sourceMappingURL=generate.js.map /***/ }), -/* 403 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 405 */ +/***/ (function(module, exports) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "iif", function() { return iif; }); -/* harmony import */ var _defer__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(333); -/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(242); -/** PURE_IMPORTS_START _defer,_empty PURE_IMPORTS_END */ +// Returns a wrapper function that returns a wrapped callback +// The wrapper function should do some stuff, and return a +// presumably different callback function. +// This makes sure that own properties are retained, so that +// decorations and such are not lost along the way. +module.exports = wrappy +function wrappy (fn, cb) { + if (fn && cb) return wrappy(fn)(cb) + if (typeof fn !== 'function') + throw new TypeError('need wrapper function') -function iif(condition, trueResult, falseResult) { - if (trueResult === void 0) { - trueResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; + Object.keys(fn).forEach(function (k) { + wrapper[k] = fn[k] + }) + + return wrapper + + function wrapper() { + var args = new Array(arguments.length) + for (var i = 0; i < args.length; i++) { + args[i] = arguments[i] } - if (falseResult === void 0) { - falseResult = _empty__WEBPACK_IMPORTED_MODULE_1__["EMPTY"]; + var ret = fn.apply(this, args) + var cb = args[args.length-1] + if (typeof ret === 'function' && ret !== cb) { + Object.keys(cb).forEach(function (k) { + ret[k] = cb[k] + }) } - return Object(_defer__WEBPACK_IMPORTED_MODULE_0__["defer"])(function () { return condition() ? trueResult : falseResult; }); + return ret + } } -//# sourceMappingURL=iif.js.map /***/ }), -/* 404 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/* 406 */ +/***/ (function(module, exports, __webpack_require__) { -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "interval", function() { return interval; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _scheduler_async__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(199); -/* harmony import */ var _util_isNumeric__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(205); -/** PURE_IMPORTS_START _Observable,_scheduler_async,_util_isNumeric PURE_IMPORTS_END */ +var once = __webpack_require__(404); +var noop = function() {}; +var isRequest = function(stream) { + return stream.setHeader && typeof stream.abort === 'function'; +}; -function interval(period, scheduler) { - if (period === void 0) { - period = 0; - } - if (scheduler === void 0) { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; - } - if (!Object(_util_isNumeric__WEBPACK_IMPORTED_MODULE_2__["isNumeric"])(period) || period < 0) { - period = 0; - } - if (!scheduler || typeof scheduler.schedule !== 'function') { - scheduler = _scheduler_async__WEBPACK_IMPORTED_MODULE_1__["async"]; - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - subscriber.add(scheduler.schedule(dispatch, period, { subscriber: subscriber, counter: 0, period: period })); - return subscriber; - }); -} -function dispatch(state) { - var subscriber = state.subscriber, counter = state.counter, period = state.period; - subscriber.next(counter); - this.schedule({ subscriber: subscriber, counter: counter + 1, period: period }, period); -} -//# sourceMappingURL=interval.js.map +var isChildProcess = function(stream) { + return stream.stdio && Array.isArray(stream.stdio) && stream.stdio.length === 3 +}; +var eos = function(stream, opts, callback) { + if (typeof opts === 'function') return eos(stream, null, opts); + if (!opts) opts = {}; -/***/ }), -/* 405 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + callback = once(callback || noop); -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "NEVER", function() { return NEVER; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "never", function() { return never; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _util_noop__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(197); -/** PURE_IMPORTS_START _Observable,_util_noop PURE_IMPORTS_END */ + var ws = stream._writableState; + var rs = stream._readableState; + var readable = opts.readable || (opts.readable !== false && stream.readable); + var writable = opts.writable || (opts.writable !== false && stream.writable); + var onlegacyfinish = function() { + if (!stream.writable) onfinish(); + }; -var NEVER = /*@__PURE__*/ new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](_util_noop__WEBPACK_IMPORTED_MODULE_1__["noop"]); -function never() { - return NEVER; -} -//# sourceMappingURL=never.js.map + var onfinish = function() { + writable = false; + if (!readable) callback.call(stream); + }; + + var onend = function() { + readable = false; + if (!writable) callback.call(stream); + }; + var onexit = function(exitCode) { + callback.call(stream, exitCode ? new Error('exited with error code: ' + exitCode) : null); + }; -/***/ }), -/* 406 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { + var onerror = function(err) { + callback.call(stream, err); + }; -"use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "onErrorResumeNext", function() { return onErrorResumeNext; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(218); -/* harmony import */ var _util_isArray__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(178); -/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(242); -/** PURE_IMPORTS_START _Observable,_from,_util_isArray,_empty PURE_IMPORTS_END */ + var onclose = function() { + if (readable && !(rs && rs.ended)) return callback.call(stream, new Error('premature close')); + if (writable && !(ws && ws.ended)) return callback.call(stream, new Error('premature close')); + }; + + var onrequest = function() { + stream.req.on('finish', onfinish); + }; + if (isRequest(stream)) { + stream.on('complete', onfinish); + stream.on('abort', onclose); + if (stream.req) onrequest(); + else stream.on('request', onrequest); + } else if (writable && !ws) { // legacy streams + stream.on('end', onlegacyfinish); + stream.on('close', onlegacyfinish); + } + if (isChildProcess(stream)) stream.on('exit', onexit); + stream.on('end', onend); + stream.on('finish', onfinish); + if (opts.error !== false) stream.on('error', onerror); + stream.on('close', onclose); -function onErrorResumeNext() { - var sources = []; - for (var _i = 0; _i < arguments.length; _i++) { - sources[_i] = arguments[_i]; - } - if (sources.length === 0) { - return _empty__WEBPACK_IMPORTED_MODULE_3__["EMPTY"]; - } - var first = sources[0], remainder = sources.slice(1); - if (sources.length === 1 && Object(_util_isArray__WEBPACK_IMPORTED_MODULE_2__["isArray"])(first)) { - return onErrorResumeNext.apply(void 0, first); - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var subNext = function () { return subscriber.add(onErrorResumeNext.apply(void 0, remainder).subscribe(subscriber)); }; - return Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(first).subscribe({ - next: function (value) { subscriber.next(value); }, - error: subNext, - complete: subNext, - }); - }); -} -//# sourceMappingURL=onErrorResumeNext.js.map + return function() { + stream.removeListener('complete', onfinish); + stream.removeListener('abort', onclose); + stream.removeListener('request', onrequest); + if (stream.req) stream.req.removeListener('finish', onfinish); + stream.removeListener('end', onlegacyfinish); + stream.removeListener('close', onlegacyfinish); + stream.removeListener('finish', onfinish); + stream.removeListener('exit', onexit); + stream.removeListener('end', onend); + stream.removeListener('error', onerror); + stream.removeListener('close', onclose); + }; +}; + +module.exports = eos; /***/ }), /* 407 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "pairs", function() { return pairs; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _Subscription__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(177); -/** PURE_IMPORTS_START _Observable,_Subscription PURE_IMPORTS_END */ +const {PassThrough: PassThroughStream} = __webpack_require__(27); -function pairs(obj, scheduler) { - if (!scheduler) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var keys = Object.keys(obj); - for (var i = 0; i < keys.length && !subscriber.closed; i++) { - var key = keys[i]; - if (obj.hasOwnProperty(key)) { - subscriber.next([key, obj[key]]); - } - } - subscriber.complete(); - }); - } - else { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var keys = Object.keys(obj); - var subscription = new _Subscription__WEBPACK_IMPORTED_MODULE_1__["Subscription"](); - subscription.add(scheduler.schedule(dispatch, 0, { keys: keys, index: 0, subscriber: subscriber, subscription: subscription, obj: obj })); - return subscription; - }); - } -} -function dispatch(state) { - var keys = state.keys, index = state.index, subscriber = state.subscriber, subscription = state.subscription, obj = state.obj; - if (!subscriber.closed) { - if (index < keys.length) { - var key = keys[index]; - subscriber.next([key, obj[key]]); - subscription.add(this.schedule({ keys: keys, index: index + 1, subscriber: subscriber, subscription: subscription, obj: obj })); - } - else { - subscriber.complete(); - } - } -} -//# sourceMappingURL=pairs.js.map +module.exports = options => { + options = {...options}; + + const {array} = options; + let {encoding} = options; + const isBuffer = encoding === 'buffer'; + let objectMode = false; + + if (array) { + objectMode = !(encoding || isBuffer); + } else { + encoding = encoding || 'utf8'; + } + + if (isBuffer) { + encoding = null; + } + + const stream = new PassThroughStream({objectMode}); + + if (encoding) { + stream.setEncoding(encoding); + } + + let length = 0; + const chunks = []; + + stream.on('data', chunk => { + chunks.push(chunk); + + if (objectMode) { + length = chunks.length; + } else { + length += chunk.length; + } + }); + + stream.getBufferedValue = () => { + if (array) { + return chunks; + } + + return isBuffer ? Buffer.concat(chunks, length) : chunks.join(''); + }; + + stream.getBufferedLength = () => length; + + return stream; +}; /***/ }), /* 408 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "partition", function() { return partition; }); -/* harmony import */ var _util_not__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(289); -/* harmony import */ var _util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(184); -/* harmony import */ var _operators_filter__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(251); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(193); -/** PURE_IMPORTS_START _util_not,_util_subscribeTo,_operators_filter,_Observable PURE_IMPORTS_END */ +const { PassThrough } = __webpack_require__(27); + +module.exports = function (/*streams...*/) { + var sources = [] + var output = new PassThrough({objectMode: true}) + output.setMaxListeners(0) -function partition(source, predicate, thisArg) { - return [ - Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__["filter"])(predicate, thisArg)(new _Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(source))), - Object(_operators_filter__WEBPACK_IMPORTED_MODULE_2__["filter"])(Object(_util_not__WEBPACK_IMPORTED_MODULE_0__["not"])(predicate, thisArg))(new _Observable__WEBPACK_IMPORTED_MODULE_3__["Observable"](Object(_util_subscribeTo__WEBPACK_IMPORTED_MODULE_1__["subscribeTo"])(source))) - ]; + output.add = add + output.isEmpty = isEmpty + + output.on('unpipe', remove) + + Array.prototype.slice.call(arguments).forEach(add) + + return output + + function add (source) { + if (Array.isArray(source)) { + source.forEach(add) + return this + } + + sources.push(source); + source.once('end', remove.bind(null, source)) + source.once('error', output.emit.bind(output, 'error')) + source.pipe(output, {end: false}) + return this + } + + function isEmpty () { + return sources.length == 0; + } + + function remove (source) { + sources = sources.filter(function (it) { return it !== source }) + if (!sources.length && output.readable) { output.end() } + } } -//# sourceMappingURL=partition.js.map /***/ }), /* 409 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "range", function() { return range; }); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "dispatch", function() { return dispatch; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/** PURE_IMPORTS_START _Observable PURE_IMPORTS_END */ -function range(start, count, scheduler) { - if (start === void 0) { - start = 0; - } - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - if (count === undefined) { - count = start; - start = 0; - } - var index = 0; - var current = start; - if (scheduler) { - return scheduler.schedule(dispatch, 0, { - index: index, count: count, start: start, subscriber: subscriber - }); - } - else { - do { - if (index++ >= count) { - subscriber.complete(); - break; - } - subscriber.next(current++); - if (subscriber.closed) { - break; - } - } while (true); - } - return undefined; - }); -} -function dispatch(state) { - var start = state.start, index = state.index, count = state.count, subscriber = state.subscriber; - if (index >= count) { - subscriber.complete(); - return; - } - subscriber.next(start); - if (subscriber.closed) { - return; - } - state.index = index + 1; - state.start = start + 1; - this.schedule(state); -} -//# sourceMappingURL=range.js.map +const mergePromiseProperty = (spawned, promise, property) => { + // Starting the main `promise` is deferred to avoid consuming streams + const value = typeof promise === 'function' ? + (...args) => promise()[property](...args) : + promise[property].bind(promise); + + Object.defineProperty(spawned, property, { + value, + writable: true, + enumerable: false, + configurable: true + }); +}; + +// The return value is a mixin of `childProcess` and `Promise` +const mergePromise = (spawned, promise) => { + mergePromiseProperty(spawned, promise, 'then'); + mergePromiseProperty(spawned, promise, 'catch'); + mergePromiseProperty(spawned, promise, 'finally'); + return spawned; +}; + +// Use promises instead of `child_process` events +const getSpawnedPromise = spawned => { + return new Promise((resolve, reject) => { + spawned.on('exit', (exitCode, signal) => { + resolve({exitCode, signal}); + }); + + spawned.on('error', error => { + reject(error); + }); + + if (spawned.stdin) { + spawned.stdin.on('error', error => { + reject(error); + }); + } + }); +}; + +module.exports = { + mergePromise, + getSpawnedPromise +}; + /***/ }), /* 410 */ -/***/ (function(module, __webpack_exports__, __webpack_require__) { +/***/ (function(module, exports, __webpack_require__) { "use strict"; -__webpack_require__.r(__webpack_exports__); -/* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "using", function() { return using; }); -/* harmony import */ var _Observable__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(193); -/* harmony import */ var _from__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(218); -/* harmony import */ var _empty__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(242); -/** PURE_IMPORTS_START _Observable,_from,_empty PURE_IMPORTS_END */ +const SPACES_REGEXP = / +/g; +const joinCommand = (file, args = []) => { + if (!Array.isArray(args)) { + return file; + } -function using(resourceFactory, observableFactory) { - return new _Observable__WEBPACK_IMPORTED_MODULE_0__["Observable"](function (subscriber) { - var resource; - try { - resource = resourceFactory(); - } - catch (err) { - subscriber.error(err); - return undefined; - } - var result; - try { - result = observableFactory(resource); - } - catch (err) { - subscriber.error(err); - return undefined; - } - var source = result ? Object(_from__WEBPACK_IMPORTED_MODULE_1__["from"])(result) : _empty__WEBPACK_IMPORTED_MODULE_2__["EMPTY"]; - var subscription = source.subscribe(subscriber); - return function () { - subscription.unsubscribe(); - if (resource) { - resource.unsubscribe(); - } - }; - }); -} -//# sourceMappingURL=using.js.map + return [file, ...args].join(' '); +}; + +// Allow spaces to be escaped by a backslash if not meant as a delimiter +const handleEscaping = (tokens, token, index) => { + if (index === 0) { + return [token]; + } + + const previousToken = tokens[tokens.length - 1]; + + if (previousToken.endsWith('\\')) { + return [...tokens.slice(0, -1), `${previousToken.slice(0, -1)} ${token}`]; + } + + return [...tokens, token]; +}; + +// Handle `execa.command()` +const parseCommand = command => { + return command + .trim() + .split(SPACES_REGEXP) + .reduce(handleEscaping, []); +}; + +module.exports = { + joinCommand, + parseCommand +}; /***/ }), @@ -36357,7 +36363,7 @@ function using(resourceFactory, observableFactory) { "use strict"; -var childProcess = __webpack_require__(352); +var childProcess = __webpack_require__(372); var spawn = childProcess.spawn; var exec = childProcess.exec; @@ -36501,8 +36507,8 @@ function buildProcessTree (parentPid, tree, pidsToProcess, spawnChildProcessesLi */ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = __webpack_require__(36); -const Rx = tslib_1.__importStar(__webpack_require__(391)); -const operators_1 = __webpack_require__(169); +const Rx = tslib_1.__importStar(__webpack_require__(169)); +const operators_1 = __webpack_require__(270); const SEP = /\r?\n/; const observe_readable_1 = __webpack_require__(413); /** @@ -36570,8 +36576,8 @@ exports.observeLines = observeLines; */ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = __webpack_require__(36); -const Rx = tslib_1.__importStar(__webpack_require__(391)); -const operators_1 = __webpack_require__(169); +const Rx = tslib_1.__importStar(__webpack_require__(169)); +const operators_1 = __webpack_require__(270); /** * Produces an Observable from a ReadableSteam that: * - completes on the first "end" event @@ -36645,7 +36651,7 @@ exports.ToolingLogCollectingWriter = tooling_log_collecting_writer_1.ToolingLogC */ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = __webpack_require__(36); -const Rx = tslib_1.__importStar(__webpack_require__(391)); +const Rx = tslib_1.__importStar(__webpack_require__(169)); const tooling_log_text_writer_1 = __webpack_require__(416); class ToolingLog { constructor(writerConfig) { @@ -39453,7 +39459,7 @@ Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = __webpack_require__(36); const util_1 = __webpack_require__(29); // @ts-ignore @types are outdated and module is super simple -const exit_hook_1 = tslib_1.__importDefault(__webpack_require__(348)); +const exit_hook_1 = tslib_1.__importDefault(__webpack_require__(368)); const tooling_log_1 = __webpack_require__(414); const fail_1 = __webpack_require__(446); const flags_1 = __webpack_require__(447); @@ -44319,7 +44325,7 @@ var rp = __webpack_require__(504) var minimatch = __webpack_require__(506) var Minimatch = minimatch.Minimatch var inherits = __webpack_require__(510) -var EE = __webpack_require__(379).EventEmitter +var EE = __webpack_require__(399).EventEmitter var path = __webpack_require__(16) var assert = __webpack_require__(30) var isAbsolute = __webpack_require__(512) @@ -44334,7 +44340,7 @@ var util = __webpack_require__(29) var childrenIgnored = common.childrenIgnored var isIgnored = common.isIgnored -var once = __webpack_require__(384) +var once = __webpack_require__(404) function glob (pattern, options, cb) { if (typeof options === 'function') cb = options, options = {} @@ -47483,9 +47489,9 @@ function childrenIgnored (self, path) { /* 515 */ /***/ (function(module, exports, __webpack_require__) { -var wrappy = __webpack_require__(385) +var wrappy = __webpack_require__(405) var reqs = Object.create(null) -var once = __webpack_require__(384) +var once = __webpack_require__(404) module.exports = wrappy(inflight) @@ -53616,7 +53622,7 @@ module.exports._cleanupOnExit = cleanupOnExit var fs = __webpack_require__(552) var MurmurHash3 = __webpack_require__(556) -var onExit = __webpack_require__(377) +var onExit = __webpack_require__(397) var path = __webpack_require__(16) var activeFiles = {} @@ -55267,7 +55273,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "spawnStreaming", function() { return spawnStreaming; }); /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(2); /* harmony import */ var chalk__WEBPACK_IMPORTED_MODULE_0___default = /*#__PURE__*/__webpack_require__.n(chalk__WEBPACK_IMPORTED_MODULE_0__); -/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(351); +/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(371); /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(execa__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var log_symbols__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(565); /* harmony import */ var log_symbols__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(log_symbols__WEBPACK_IMPORTED_MODULE_2__); @@ -56988,7 +56994,7 @@ __webpack_require__.r(__webpack_exports__); /* harmony import */ var crypto__WEBPACK_IMPORTED_MODULE_1___default = /*#__PURE__*/__webpack_require__.n(crypto__WEBPACK_IMPORTED_MODULE_1__); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2__ = __webpack_require__(29); /* harmony import */ var util__WEBPACK_IMPORTED_MODULE_2___default = /*#__PURE__*/__webpack_require__.n(util__WEBPACK_IMPORTED_MODULE_2__); -/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(351); +/* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_3__ = __webpack_require__(371); /* harmony import */ var execa__WEBPACK_IMPORTED_MODULE_3___default = /*#__PURE__*/__webpack_require__.n(execa__WEBPACK_IMPORTED_MODULE_3__); /* harmony import */ var _yarn_lock__WEBPACK_IMPORTED_MODULE_4__ = __webpack_require__(582); /* @@ -59784,7 +59790,7 @@ exports.f = __webpack_require__(33) ? Object.defineProperty : function definePro /* 54 */ /***/ (function(module, exports) { -module.exports = __webpack_require__(379); +module.exports = __webpack_require__(399); /***/ }), /* 55 */ @@ -68254,7 +68260,7 @@ var rp = __webpack_require__(504) var minimatch = __webpack_require__(506) var Minimatch = minimatch.Minimatch var inherits = __webpack_require__(592) -var EE = __webpack_require__(379).EventEmitter +var EE = __webpack_require__(399).EventEmitter var path = __webpack_require__(16) var assert = __webpack_require__(30) var isAbsolute = __webpack_require__(512) @@ -68269,7 +68275,7 @@ var util = __webpack_require__(29) var childrenIgnored = common.childrenIgnored var isIgnored = common.isIgnored -var once = __webpack_require__(384) +var once = __webpack_require__(404) function glob (pattern, options, cb) { if (typeof options === 'function') cb = options, options = {} @@ -74366,7 +74372,7 @@ function callSuccessCallback(callback, entries) { "use strict"; Object.defineProperty(exports, "__esModule", { value: true }); -const events_1 = __webpack_require__(379); +const events_1 = __webpack_require__(399); const fsScandir = __webpack_require__(635); const fastq = __webpack_require__(644); const common = __webpack_require__(646); @@ -78154,7 +78160,7 @@ exports.toggle = (force, stream) => { "use strict"; const onetime = __webpack_require__(682); -const signalExit = __webpack_require__(377); +const signalExit = __webpack_require__(397); module.exports = onetime(() => { signalExit(() => { @@ -78402,8 +78408,8 @@ const WatchCommand = { "use strict"; __webpack_require__.r(__webpack_exports__); /* harmony export (binding) */ __webpack_require__.d(__webpack_exports__, "waitUntilWatchIsReady", function() { return waitUntilWatchIsReady; }); -/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(391); -/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(169); +/* harmony import */ var rxjs__WEBPACK_IMPORTED_MODULE_0__ = __webpack_require__(169); +/* harmony import */ var rxjs_operators__WEBPACK_IMPORTED_MODULE_1__ = __webpack_require__(270); /* * Licensed to Elasticsearch B.V. under one or more contributor * license agreements. See the NOTICE file distributed with @@ -79570,7 +79576,7 @@ async function copyToBuild(project, kibanaRoot, buildRoot) { "use strict"; -const EventEmitter = __webpack_require__(379); +const EventEmitter = __webpack_require__(399); const path = __webpack_require__(16); const os = __webpack_require__(11); const pAll = __webpack_require__(708); @@ -80107,7 +80113,7 @@ var rp = __webpack_require__(504) var minimatch = __webpack_require__(506) var Minimatch = minimatch.Minimatch var inherits = __webpack_require__(715) -var EE = __webpack_require__(379).EventEmitter +var EE = __webpack_require__(399).EventEmitter var path = __webpack_require__(16) var assert = __webpack_require__(30) var isAbsolute = __webpack_require__(512) @@ -80122,7 +80128,7 @@ var util = __webpack_require__(29) var childrenIgnored = common.childrenIgnored var isIgnored = common.isIgnored -var once = __webpack_require__(384) +var once = __webpack_require__(404) function glob (pattern, options, cb) { if (typeof options === 'function') cb = options, options = {} @@ -104781,7 +104787,7 @@ function readdirSync (dir, options, internalOptions) { const Readable = __webpack_require__(27).Readable; -const EventEmitter = __webpack_require__(379).EventEmitter; +const EventEmitter = __webpack_require__(399).EventEmitter; const path = __webpack_require__(16); const normalizeOptions = __webpack_require__(894); const stat = __webpack_require__(896); @@ -110030,7 +110036,7 @@ function coerce (version, options) { "use strict"; -const EventEmitter = __webpack_require__(379); +const EventEmitter = __webpack_require__(399); const written = new WeakMap(); From 4966b2695a811e83c45513f7ab3761b30d29d63b Mon Sep 17 00:00:00 2001 From: Candace Park <56409205+parkiino@users.noreply.github.com> Date: Mon, 11 May 2020 14:56:05 -0400 Subject: [PATCH 29/67] Fixes #65661 failing endpoint host details policy response test (#66060) * Fixed failing endpoint host details policy response test #65661 --- .../plugins/endpoint/common/generate_data.ts | 24 ++++++++++++------- .../endpoint/view/hosts/index.test.tsx | 24 +++++++++++++++---- 2 files changed, 35 insertions(+), 13 deletions(-) diff --git a/x-pack/plugins/endpoint/common/generate_data.ts b/x-pack/plugins/endpoint/common/generate_data.ts index ff8add42a508..1d5ea46dcc08 100644 --- a/x-pack/plugins/endpoint/common/generate_data.ts +++ b/x-pack/plugins/endpoint/common/generate_data.ts @@ -536,8 +536,14 @@ export class EndpointDocGenerator { /** * Generates a Host Policy response message */ - public generatePolicyResponse(ts = new Date().getTime()): HostPolicyResponse { + public generatePolicyResponse( + ts = new Date().getTime(), + allStatus?: HostPolicyResponseActionStatus + ): HostPolicyResponse { const policyVersion = this.seededUUIDv4(); + const status = () => { + return allStatus || this.randomHostPolicyResponseActionStatus(); + }; return { '@timestamp': ts, agent: { @@ -588,7 +594,7 @@ export class EndpointDocGenerator { status: HostPolicyResponseActionStatus.success, }, detect_image_load_events: { - message: 'Successfuly started image load event reporting', + message: 'Successfully started image load event reporting', status: HostPolicyResponseActionStatus.success, }, detect_process_events: { @@ -596,15 +602,15 @@ export class EndpointDocGenerator { status: HostPolicyResponseActionStatus.success, }, download_global_artifacts: { - message: 'Failed to download EXE model', + message: 'Succesfully downloaded global artifacts', status: HostPolicyResponseActionStatus.success, }, load_config: { - message: 'successfully parsed configuration', + message: 'Successfully parsed configuration', status: HostPolicyResponseActionStatus.success, }, load_malware_model: { - message: 'Error deserializing EXE model; no valid malware model installed', + message: 'Successfully loaded malware model', status: HostPolicyResponseActionStatus.success, }, read_elasticsearch_config: { @@ -649,19 +655,19 @@ export class EndpointDocGenerator { configurations: { events: { concerned_actions: ['download_model'], - status: this.randomHostPolicyResponseActionStatus(), + status: status(), }, logging: { concerned_actions: this.randomHostPolicyResponseActions(), - status: this.randomHostPolicyResponseActionStatus(), + status: status(), }, malware: { concerned_actions: this.randomHostPolicyResponseActions(), - status: this.randomHostPolicyResponseActionStatus(), + status: status(), }, streaming: { concerned_actions: this.randomHostPolicyResponseActions(), - status: this.randomHostPolicyResponseActionStatus(), + status: status(), }, }, }, diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.test.tsx b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.test.tsx index aaeff935b32b..808429ccef0c 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.test.tsx +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.test.tsx @@ -328,8 +328,20 @@ describe('when on the hosts page', () => { expect(statusHealth).not.toBeNull(); expect(message).not.toBeNull(); }); - it('should not show any numbered badges if all actions are succesful', () => { - return renderResult.findByTestId('hostDetailsPolicyResponseAttentionBadge').catch(e => { + it('should not show any numbered badges if all actions are successful', () => { + const policyResponse = docGenerator.generatePolicyResponse( + new Date().getTime(), + HostPolicyResponseActionStatus.success + ); + reactTestingLibrary.act(() => { + store.dispatch({ + type: 'serverReturnedHostPolicyResponse', + payload: { + policy_response: policyResponse, + }, + }); + }); + return renderResult.findAllByTestId('hostDetailsPolicyResponseAttentionBadge').catch(e => { expect(e).not.toBeNull(); }); }); @@ -337,14 +349,18 @@ describe('when on the hosts page', () => { reactTestingLibrary.act(() => { dispatchServerReturnedHostPolicyResponse(HostPolicyResponseActionStatus.failure); }); - const attentionBadge = renderResult.findByTestId('hostDetailsPolicyResponseAttentionBadge'); + const attentionBadge = renderResult.findAllByTestId( + 'hostDetailsPolicyResponseAttentionBadge' + ); expect(attentionBadge).not.toBeNull(); }); it('should show a numbered badge if at least one action has a warning', () => { reactTestingLibrary.act(() => { dispatchServerReturnedHostPolicyResponse(HostPolicyResponseActionStatus.warning); }); - const attentionBadge = renderResult.findByTestId('hostDetailsPolicyResponseAttentionBadge'); + const attentionBadge = renderResult.findAllByTestId( + 'hostDetailsPolicyResponseAttentionBadge' + ); expect(attentionBadge).not.toBeNull(); }); it('should include the back to details link', async () => { From e2d945ff0bacd7cd950b823e0a935429e04cb768 Mon Sep 17 00:00:00 2001 From: Zacqary Adam Xeper Date: Mon, 11 May 2020 14:04:57 -0500 Subject: [PATCH 30/67] [Metrics UI] Add framework for recovery messaging to metric threshold alerts (non-functional) (#65339) --- .../lib/alerting/metric_threshold/messages.ts | 45 ++++++++++++++- .../metric_threshold_executor.test.ts | 55 ++++++++++++++++++- 2 files changed, 98 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/messages.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/messages.ts index 4878574e39d1..4add0ee9af5d 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/messages.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/messages.ts @@ -24,7 +24,6 @@ export const stateToAlertMessage = { [AlertStates.ERROR]: i18n.translate('xpack.infra.metrics.alerting.threshold.errorState', { defaultMessage: 'ERROR', }), - // TODO: Implement recovered message state [AlertStates.OK]: i18n.translate('xpack.infra.metrics.alerting.threshold.okState', { defaultMessage: 'OK [Recovered]', }), @@ -62,6 +61,33 @@ const comparatorToI18n = (comparator: Comparator, threshold: number[], currentVa } }; +const recoveredComparatorToI18n = ( + comparator: Comparator, + threshold: number[], + currentValue: number +) => { + const belowText = i18n.translate('xpack.infra.metrics.alerting.threshold.belowRecovery', { + defaultMessage: 'below', + }); + const aboveText = i18n.translate('xpack.infra.metrics.alerting.threshold.aboveRecovery', { + defaultMessage: 'above', + }); + switch (comparator) { + case Comparator.BETWEEN: + return currentValue < threshold[0] ? belowText : aboveText; + case Comparator.OUTSIDE_RANGE: + return i18n.translate('xpack.infra.metrics.alerting.threshold.betweenRecovery', { + defaultMessage: 'between', + }); + case Comparator.GT: + case Comparator.GT_OR_EQ: + return belowText; + case Comparator.LT: + case Comparator.LT_OR_EQ: + return aboveText; + } +}; + const thresholdToI18n = ([a, b]: number[]) => { if (typeof b === 'undefined') return a; return i18n.translate('xpack.infra.metrics.alerting.threshold.thresholdRange', { @@ -87,6 +113,23 @@ export const buildFiredAlertReason: (alertResult: { }, }); +export const buildRecoveredAlertReason: (alertResult: { + metric: string; + comparator: Comparator; + threshold: number[]; + currentValue: number; +}) => string = ({ metric, comparator, threshold, currentValue }) => + i18n.translate('xpack.infra.metrics.alerting.threshold.recoveredAlertReason', { + defaultMessage: + '{metric} is now {comparator} a threshold of {threshold} (current value is {currentValue})', + values: { + metric, + comparator: recoveredComparatorToI18n(comparator, threshold, currentValue), + threshold: thresholdToI18n(threshold), + currentValue, + }, + }); + export const buildNoDataAlertReason: (alertResult: { metric: string; timeSize: number; diff --git a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts index ed5efc147395..19efc88e216c 100644 --- a/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts +++ b/x-pack/plugins/infra/server/lib/alerting/metric_threshold/metric_threshold_executor.test.ts @@ -20,6 +20,8 @@ interface AlertTestInstance { state: any; } +let persistAlertInstances = false; // eslint-disable-line + describe('The metric threshold alert type', () => { describe('querying the entire infrastructure', () => { const instanceID = 'test-*'; @@ -313,6 +315,50 @@ describe('The metric threshold alert type', () => { expect(getState(instanceID).alertState).toBe(AlertStates.NO_DATA); }); }); + + // describe('querying a metric that later recovers', () => { + // const instanceID = 'test-*'; + // const execute = (threshold: number[]) => + // executor({ + // services, + // params: { + // criteria: [ + // { + // ...baseCriterion, + // comparator: Comparator.GT, + // threshold, + // }, + // ], + // }, + // }); + // beforeAll(() => (persistAlertInstances = true)); + // afterAll(() => (persistAlertInstances = false)); + + // test('sends a recovery alert as soon as the metric recovers', async () => { + // await execute([0.5]); + // expect(mostRecentAction(instanceID).id).toBe(FIRED_ACTIONS.id); + // expect(getState(instanceID).alertState).toBe(AlertStates.ALERT); + // await execute([2]); + // expect(mostRecentAction(instanceID).id).toBe(FIRED_ACTIONS.id); + // expect(getState(instanceID).alertState).toBe(AlertStates.OK); + // }); + // test('does not continue to send a recovery alert if the metric is still OK', async () => { + // await execute([2]); + // expect(mostRecentAction(instanceID)).toBe(undefined); + // expect(getState(instanceID).alertState).toBe(AlertStates.OK); + // await execute([2]); + // expect(mostRecentAction(instanceID)).toBe(undefined); + // expect(getState(instanceID).alertState).toBe(AlertStates.OK); + // }); + // test('sends a recovery alert again once the metric alerts and recovers again', async () => { + // await execute([0.5]); + // expect(mostRecentAction(instanceID).id).toBe(FIRED_ACTIONS.id); + // expect(getState(instanceID).alertState).toBe(AlertStates.ALERT); + // await execute([2]); + // expect(mostRecentAction(instanceID).id).toBe(FIRED_ACTIONS.id); + // expect(getState(instanceID).alertState).toBe(AlertStates.OK); + // }); + // }); }); const createMockStaticConfiguration = (sources: any) => ({ @@ -397,12 +443,19 @@ services.savedObjectsClient.get.mockImplementation(async (type: string, sourceId const alertInstances = new Map(); services.alertInstanceFactory.mockImplementation((instanceID: string) => { - const alertInstance: AlertTestInstance = { + const newAlertInstance: AlertTestInstance = { instance: alertsMock.createAlertInstanceFactory(), actionQueue: [], state: {}, }; + const alertInstance: AlertTestInstance = persistAlertInstances + ? alertInstances.get(instanceID) || newAlertInstance + : newAlertInstance; alertInstances.set(instanceID, alertInstance); + + alertInstance.instance.getState.mockImplementation(() => { + return alertInstance.state; + }); alertInstance.instance.replaceState.mockImplementation((newState: any) => { alertInstance.state = newState; return alertInstance.instance; From f4d27b283876405aaa3713f3907ce3c31a467d66 Mon Sep 17 00:00:00 2001 From: Tim Sullivan Date: Mon, 11 May 2020 12:49:19 -0700 Subject: [PATCH 31/67] [Reporting/Test] Add Functional test for download CSV (#65401) * [Reporting/Test] Add Functional test for download CSV * add todo * add fs.existsSync check to find download * debug * handle timeout * validate toast * different way of getting repo_root --- test/functional/services/find.ts | 2 +- .../apps/dashboard/reporting/download_csv.ts | 68 ++++++++++ .../apps/dashboard/reporting/index.ts | 122 +---------------- .../apps/dashboard/reporting/screenshots.ts | 127 ++++++++++++++++++ .../functional/page_objects/reporting_page.ts | 5 +- 5 files changed, 203 insertions(+), 121 deletions(-) create mode 100644 x-pack/test/functional/apps/dashboard/reporting/download_csv.ts create mode 100644 x-pack/test/functional/apps/dashboard/reporting/screenshots.ts diff --git a/test/functional/services/find.ts b/test/functional/services/find.ts index bdcc5ba95e9f..09fc32115f68 100644 --- a/test/functional/services/find.ts +++ b/test/functional/services/find.ts @@ -198,7 +198,7 @@ export async function FindProvider({ getService }: FtrProviderContext) { if (isDisplayed) { return descendant; } else { - throw new Error('Element is not displayed'); + throw new Error(`Element "${selector}" is not displayed`); } } diff --git a/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts b/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts new file mode 100644 index 000000000000..b66f9d2baeb3 --- /dev/null +++ b/x-pack/test/functional/apps/dashboard/reporting/download_csv.ts @@ -0,0 +1,68 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { REPO_ROOT } from '@kbn/dev-utils'; +import expect from '@kbn/expect'; +import fs from 'fs'; +import path from 'path'; +import * as Rx from 'rxjs'; +import { filter, first, map, timeout } from 'rxjs/operators'; +import { FtrProviderContext } from '../../../ftr_provider_context'; + +const csvPath = path.resolve(REPO_ROOT, 'target/functional-tests/downloads/Ecommerce Data.csv'); + +export default function({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + const dashboardPanelActions = getService('dashboardPanelActions'); + const log = getService('log'); + const testSubjects = getService('testSubjects'); + const PageObjects = getPageObjects(['reporting', 'common', 'dashboard']); + + describe('Reporting Download CSV', () => { + before('initialize tests', async () => { + log.debug('ReportingPage:initTests'); + await esArchiver.loadIfNeeded('reporting/ecommerce'); + await esArchiver.loadIfNeeded('reporting/ecommerce_kibana'); + await browser.setWindowSize(1600, 850); + }); + + after('clean up archives and previous file download', async () => { + await esArchiver.unload('reporting/ecommerce'); + await esArchiver.unload('reporting/ecommerce_kibana'); + try { + fs.unlinkSync(csvPath); + } catch (e) { + // nothing to worry + } + }); + + it('Downloads a CSV export of a saved search panel', async function() { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); + const savedSearchPanel = await testSubjects.find('embeddablePanelHeading-EcommerceData'); + await dashboardPanelActions.toggleContextMenu(savedSearchPanel); + + await testSubjects.existOrFail('embeddablePanelAction-downloadCsvReport'); // wait for the full panel to display or else the test runner could click the wrong option! + await testSubjects.click('embeddablePanelAction-downloadCsvReport'); + await testSubjects.existOrFail('csvDownloadStarted'); // validate toast panel + + // check every 100ms for the file to exist in the download dir + // just wait up to 5 seconds + const success$ = Rx.interval(100).pipe( + map(() => fs.existsSync(csvPath)), + filter(value => value === true), + first(), + timeout(5000) + ); + + const fileExists = await success$.toPromise(); + expect(fileExists).to.be(true); + + // no need to validate download contents, API Integration tests do that some different variations + }); + }); +} diff --git a/x-pack/test/functional/apps/dashboard/reporting/index.ts b/x-pack/test/functional/apps/dashboard/reporting/index.ts index 796e15b4e270..1dc2a958e3dd 100644 --- a/x-pack/test/functional/apps/dashboard/reporting/index.ts +++ b/x-pack/test/functional/apps/dashboard/reporting/index.ts @@ -3,125 +3,11 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ - -import expect from '@kbn/expect'; -import fs from 'fs'; -import path from 'path'; -import { promisify } from 'util'; import { FtrProviderContext } from '../../../ftr_provider_context'; -import { checkIfPngsMatch } from './lib/compare_pngs'; - -const writeFileAsync = promisify(fs.writeFile); -const mkdirAsync = promisify(fs.mkdir); - -const REPORTS_FOLDER = path.resolve(__dirname, 'reports'); - -export default function({ getService, getPageObjects }: FtrProviderContext) { - const esArchiver = getService('esArchiver'); - const browser = getService('browser'); - const log = getService('log'); - const config = getService('config'); - const PageObjects = getPageObjects(['reporting', 'common', 'dashboard']); - - describe('Reporting', () => { - before('initialize tests', async () => { - log.debug('ReportingPage:initTests'); - await esArchiver.loadIfNeeded('reporting/ecommerce'); - await esArchiver.loadIfNeeded('reporting/ecommerce_kibana'); - await browser.setWindowSize(1600, 850); - }); - after('clean up archives', async () => { - await esArchiver.unload('reporting/ecommerce'); - await esArchiver.unload('reporting/ecommerce_kibana'); - }); - - describe('Print PDF button', () => { - it('is not available if new', async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.clickNewDashboard(); - await PageObjects.reporting.openPdfReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); - }); - - it('becomes available when saved', async () => { - await PageObjects.dashboard.saveDashboard('My PDF Dashboard'); - await PageObjects.reporting.openPdfReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); - }); - }); - - describe('Print Layout', () => { - it('downloads a PDF file', async function() { - // Generating and then comparing reports can take longer than the default 60s timeout because the comparePngs - // function is taking about 15 seconds per comparison in jenkins. - this.timeout(300000); - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); - await PageObjects.reporting.openPdfReportingPanel(); - await PageObjects.reporting.checkUsePrintLayout(); - await PageObjects.reporting.clickGenerateReportButton(); - - const url = await PageObjects.reporting.getReportURL(60000); - const res = await PageObjects.reporting.getResponse(url); - - expect(res.statusCode).to.equal(200); - expect(res.headers['content-type']).to.equal('application/pdf'); - }); - }); - - describe('Print PNG button', () => { - it('is not available if new', async () => { - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.clickNewDashboard(); - await PageObjects.reporting.openPngReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); - }); - - it('becomes available when saved', async () => { - await PageObjects.dashboard.saveDashboard('My PNG Dash'); - await PageObjects.reporting.openPngReportingPanel(); - expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); - }); - }); - - describe('Preserve Layout', () => { - it('matches baseline report', async function() { - const writeSessionReport = async (name: string, rawPdf: Buffer, reportExt: string) => { - const sessionDirectory = path.resolve(REPORTS_FOLDER, 'session'); - await mkdirAsync(sessionDirectory, { recursive: true }); - const sessionReportPath = path.resolve(sessionDirectory, `${name}.${reportExt}`); - await writeFileAsync(sessionReportPath, rawPdf); - return sessionReportPath; - }; - const getBaselineReportPath = (fileName: string, reportExt: string) => { - const baselineFolder = path.resolve(REPORTS_FOLDER, 'baseline'); - const fullPath = path.resolve(baselineFolder, `${fileName}.${reportExt}`); - log.debug(`getBaselineReportPath (${fullPath})`); - return fullPath; - }; - - this.timeout(300000); - - await PageObjects.common.navigateToApp('dashboard'); - await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); - await PageObjects.reporting.openPngReportingPanel(); - await PageObjects.reporting.forceSharedItemsContainerSize({ width: 1405 }); - await PageObjects.reporting.clickGenerateReportButton(); - await PageObjects.reporting.removeForceSharedItemsContainerSize(); - - const url = await PageObjects.reporting.getReportURL(60000); - const reportData = await PageObjects.reporting.getRawPdfReportData(url); - const reportFileName = 'dashboard_preserve_layout'; - const sessionReportPath = await writeSessionReport(reportFileName, reportData, 'png'); - const percentSimilar = await checkIfPngsMatch( - sessionReportPath, - getBaselineReportPath(reportFileName, 'png'), - config.get('screenshots.directory'), - log - ); - expect(percentSimilar).to.be.lessThan(0.1); - }); - }); +export default function({ loadTestFile }: FtrProviderContext) { + describe('Reporting', function() { + loadTestFile(require.resolve('./screenshots')); + loadTestFile(require.resolve('./download_csv')); }); } diff --git a/x-pack/test/functional/apps/dashboard/reporting/screenshots.ts b/x-pack/test/functional/apps/dashboard/reporting/screenshots.ts new file mode 100644 index 000000000000..2cc1686b8c7c --- /dev/null +++ b/x-pack/test/functional/apps/dashboard/reporting/screenshots.ts @@ -0,0 +1,127 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import fs from 'fs'; +import path from 'path'; +import { promisify } from 'util'; +import { FtrProviderContext } from '../../../ftr_provider_context'; +import { checkIfPngsMatch } from './lib/compare_pngs'; + +const writeFileAsync = promisify(fs.writeFile); +const mkdirAsync = promisify(fs.mkdir); + +const REPORTS_FOLDER = path.resolve(__dirname, 'reports'); + +export default function({ getService, getPageObjects }: FtrProviderContext) { + const esArchiver = getService('esArchiver'); + const browser = getService('browser'); + const log = getService('log'); + const config = getService('config'); + const PageObjects = getPageObjects(['reporting', 'common', 'dashboard']); + + describe('Screenshots', () => { + before('initialize tests', async () => { + log.debug('ReportingPage:initTests'); + await esArchiver.loadIfNeeded('reporting/ecommerce'); + await esArchiver.loadIfNeeded('reporting/ecommerce_kibana'); + await browser.setWindowSize(1600, 850); + }); + after('clean up archives', async () => { + await esArchiver.unload('reporting/ecommerce'); + await esArchiver.unload('reporting/ecommerce_kibana'); + }); + + describe('Print PDF button', () => { + it('is not available if new', async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.reporting.openPdfReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); + }); + + it('becomes available when saved', async () => { + await PageObjects.dashboard.saveDashboard('My PDF Dashboard'); + await PageObjects.reporting.openPdfReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); + }); + }); + + describe('Print Layout', () => { + it('downloads a PDF file', async function() { + // Generating and then comparing reports can take longer than the default 60s timeout because the comparePngs + // function is taking about 15 seconds per comparison in jenkins. + this.timeout(300000); + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); + await PageObjects.reporting.openPdfReportingPanel(); + await PageObjects.reporting.checkUsePrintLayout(); + await PageObjects.reporting.clickGenerateReportButton(); + + const url = await PageObjects.reporting.getReportURL(60000); + const res = await PageObjects.reporting.getResponse(url); + + expect(res.statusCode).to.equal(200); + expect(res.headers['content-type']).to.equal('application/pdf'); + }); + }); + + describe('Print PNG button', () => { + it('is not available if new', async () => { + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.clickNewDashboard(); + await PageObjects.reporting.openPngReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be('true'); + }); + + it('becomes available when saved', async () => { + await PageObjects.dashboard.saveDashboard('My PNG Dash'); + await PageObjects.reporting.openPngReportingPanel(); + expect(await PageObjects.reporting.isGenerateReportButtonDisabled()).to.be(null); + }); + }); + + describe('Preserve Layout', () => { + it('matches baseline report', async function() { + const writeSessionReport = async (name: string, rawPdf: Buffer, reportExt: string) => { + const sessionDirectory = path.resolve(REPORTS_FOLDER, 'session'); + await mkdirAsync(sessionDirectory, { recursive: true }); + const sessionReportPath = path.resolve(sessionDirectory, `${name}.${reportExt}`); + await writeFileAsync(sessionReportPath, rawPdf); + return sessionReportPath; + }; + const getBaselineReportPath = (fileName: string, reportExt: string) => { + const baselineFolder = path.resolve(REPORTS_FOLDER, 'baseline'); + const fullPath = path.resolve(baselineFolder, `${fileName}.${reportExt}`); + log.debug(`getBaselineReportPath (${fullPath})`); + return fullPath; + }; + + this.timeout(300000); + + await PageObjects.common.navigateToApp('dashboard'); + await PageObjects.dashboard.loadSavedDashboard('Ecom Dashboard'); + await PageObjects.reporting.openPngReportingPanel(); + await PageObjects.reporting.forceSharedItemsContainerSize({ width: 1405 }); + await PageObjects.reporting.clickGenerateReportButton(); + await PageObjects.reporting.removeForceSharedItemsContainerSize(); + + const url = await PageObjects.reporting.getReportURL(60000); + const reportData = await PageObjects.reporting.getRawPdfReportData(url); + const reportFileName = 'dashboard_preserve_layout'; + const sessionReportPath = await writeSessionReport(reportFileName, reportData, 'png'); + const percentSimilar = await checkIfPngsMatch( + sessionReportPath, + getBaselineReportPath(reportFileName, 'png'), + config.get('screenshots.directory'), + log + ); + + expect(percentSimilar).to.be.lessThan(0.1); + }); + }); + }); +} diff --git a/x-pack/test/functional/page_objects/reporting_page.ts b/x-pack/test/functional/page_objects/reporting_page.ts index 2c20519a8d21..320171f8c89c 100644 --- a/x-pack/test/functional/page_objects/reporting_page.ts +++ b/x-pack/test/functional/page_objects/reporting_page.ts @@ -9,10 +9,11 @@ import { FtrProviderContext } from 'test/functional/ftr_provider_context'; import { parse } from 'url'; export function ReportingPageProvider({ getService, getPageObjects }: FtrProviderContext) { - const retry = getService('retry'); + const browser = getService('browser'); const log = getService('log'); + const retry = getService('retry'); const testSubjects = getService('testSubjects'); - const browser = getService('browser'); + const PageObjects = getPageObjects(['common', 'security' as any, 'share', 'timePicker']); // FIXME: Security PageObject is not Typescript class ReportingPage { From 207df60d6cb4447dee58e88adb174d93f44debf9 Mon Sep 17 00:00:00 2001 From: Ryland Herrick Date: Mon, 11 May 2020 14:55:12 -0500 Subject: [PATCH 32/67] [SIEM][Detections] Restrict ML rule modification to ML Admins (#65583) * Move common ML types and functions into siem/common These revolve around capabilities/permissions checks which were previously only used on the client. Now that we have need to make similar checks on the server, we can/should move these up to be shared. * Use ML's Capabilities type in lieu of our own There was already some drift between these types preventing our helpers from being used with the ML services; this will prevent further drift. * Add authorization helpers for ML Some of this responsibility will move to ML services in the near future, but for now we still need to restrict SIEM users from performing certain actions. * Use mlAuthz on our import rule route The tests were a little tricky because the use of spyOn/clear was preventing (rather, clearing the mocks from) the use of jest.mock(). I found a workaround with mockRestore(), which was easy to verify because the mock would throw an error if it wasn't removed, and we'd import multiple rules if a default mock was used. The threading through of ML can go away if/when ML adds their services to the request handler context. * Add mlAuthz checks to remaining rule routes * Remove validateLicenseForRuleType This is now unused and redundant with the mlAuthz module. * Fix failing tests These were missed when the helpers were moved to common/, but are also unneeded. * Cleanup: fixing type errors * Clean up some types from ML A recent upstream refactor in ML added top-level exports; this uses them where possible. * Refactor mlAuthz to defer authz validation until validator is called This prevents us from unnecessarily calling ml services if e.g. we're not dealing with an ML rule. This also adds a failing test for the next-to-be-implemented feature: cashing the async validation for subsequent validator calls. * Cache validation promise The purpose of the `buildMlAuthz` function is to store state (request, license, ml). Since `validateMlAuthz` should be idempotent for the duration of this object's lifecycle, we should cache the result the first time we call it; this is effectively memoization since the arguments do not change. * Make our result caching more explicit Extracts a caching helper function. * Add additional unit tests around some edge cases This is the best form of documentation, thanks Frank! * Remove redundant test setup * Empty messages are invalid If we somehow generate an empty message string, the validation should fail as we were attempting to assign _something_ as a failure message. * Fix validity logic valid: message !== null was the opposite of what I wanted; a validation is valid if it has no message (i.e. it's undefined). * Prevent patching of ML rules by non-ML admins This required refactoring patchRules to accept the rule to be patched, so that we can check its attributes before performing the update. * Fix our update_prepackaged_rules route patchRules no longer does the fetch; we need to perform this ourselves. * Fix update_prepackaged_rules tests This notably synchronizes the entirety of the updates, as our tests were failing due to the asynchronous nature of the updates. * Remove id and ruleId from patchRules parameters Instead of fetching the rule within patchRules, we now pass it in. Co-authored-by: Elastic Machine --- .../empty_ml_capabilities.ts | 15 +- .../has_ml_admin_permissions.test.ts | 2 +- .../has_ml_admin_permissions.ts | 12 +- .../has_ml_user_permissions.test.ts | 2 +- .../has_ml_user_permissions.ts | 4 +- .../helpers.test.ts} | 2 +- .../helpers.ts} | 2 +- .../ml/anomaly/use_anomalies_table_data.ts | 2 +- .../components/ml/api/get_ml_capabilities.ts | 7 +- .../permissions/ml_capabilities_provider.tsx | 6 +- .../ml/tables/anomalies_host_table.tsx | 2 +- .../ml/tables/anomalies_network_table.tsx | 2 +- .../siem/public/components/ml/types.ts | 47 +--- .../components/ml_popover/helpers.test.tsx | 4 - .../ml_popover/hooks/use_siem_jobs.tsx | 2 +- .../ml_popover/jobs_table/job_switch.tsx | 2 +- .../components/ml_popover/ml_popover.test.tsx | 4 - .../components/ml_popover/ml_popover.tsx | 2 +- .../page/hosts/host_overview/index.tsx | 2 +- .../page/network/ip_overview/index.tsx | 2 +- .../detection_engine/rules/all/columns.tsx | 2 +- .../detection_engine/rules/all/index.tsx | 2 +- .../description_step/ml_job_description.tsx | 2 +- .../rules/components/ml_job_select/index.tsx | 2 +- .../components/select_rule_type/index.tsx | 2 +- .../components/step_define_rule/index.tsx | 4 +- .../components/step_define_rule/schema.tsx | 2 +- .../detection_engine/rules/create/helpers.ts | 2 +- .../detection_engine/rules/details/index.tsx | 2 +- .../pages/detection_engine/rules/helpers.tsx | 2 +- .../siem/public/pages/hosts/details/index.tsx | 2 +- .../plugins/siem/public/pages/hosts/hosts.tsx | 2 +- .../siem/public/pages/network/index.tsx | 2 +- .../rules/create_rules_bulk_route.test.ts | 20 +- .../routes/rules/create_rules_bulk_route.ts | 10 +- .../routes/rules/create_rules_route.test.ts | 21 +- .../routes/rules/create_rules_route.ts | 16 +- .../routes/rules/import_rules_route.test.ts | 41 ++- .../routes/rules/import_rules_route.ts | 18 +- .../rules/patch_rules_bulk_route.test.ts | 46 ++- .../routes/rules/patch_rules_bulk_route.ts | 26 +- .../routes/rules/patch_rules_route.test.ts | 43 ++- .../routes/rules/patch_rules_route.ts | 32 ++- .../rules/update_rules_bulk_route.test.ts | 22 +- .../routes/rules/update_rules_bulk_route.ts | 15 +- .../routes/rules/update_rules_route.test.ts | 24 +- .../routes/rules/update_rules_route.ts | 17 +- .../schemas/response/check_type_dependents.ts | 2 +- .../lib/detection_engine/routes/utils.test.ts | 34 --- .../lib/detection_engine/routes/utils.ts | 30 -- .../rules/patch_rules.test.ts | 26 +- .../lib/detection_engine/rules/patch_rules.ts | 5 +- .../lib/detection_engine/rules/types.ts | 6 +- .../rules/update_prepacked_rules.test.ts | 17 +- .../rules/update_prepacked_rules.ts | 120 ++++---- .../signals/signal_rule_alert_type.ts | 2 +- .../server/lib/machine_learning/authz.test.ts | 265 ++++++++++++++++++ .../siem/server/lib/machine_learning/authz.ts | 120 ++++++++ .../server/lib/machine_learning/cache.test.ts | 41 +++ .../siem/server/lib/machine_learning/cache.ts | 24 ++ .../siem/server/lib/machine_learning/mocks.ts | 32 +++ .../lib/machine_learning/validation.test.ts | 36 +++ .../server/lib/machine_learning/validation.ts | 33 +++ x-pack/plugins/siem/server/plugin.ts | 3 +- x-pack/plugins/siem/server/routes/index.ts | 17 +- 65 files changed, 935 insertions(+), 380 deletions(-) rename x-pack/plugins/siem/{public/components/ml => common/machine_learning}/empty_ml_capabilities.ts (76%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_admin_permissions.test.ts (96%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_admin_permissions.ts (79%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_user_permissions.test.ts (94%) rename x-pack/plugins/siem/{public/components/ml/permissions => common/machine_learning}/has_ml_user_permissions.ts (81%) rename x-pack/plugins/siem/common/{detection_engine/ml_helpers.test.ts => machine_learning/helpers.test.ts} (96%) rename x-pack/plugins/siem/common/{detection_engine/ml_helpers.ts => machine_learning/helpers.ts} (95%) create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/authz.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/cache.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/mocks.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts create mode 100644 x-pack/plugins/siem/server/lib/machine_learning/validation.ts diff --git a/x-pack/plugins/siem/public/components/ml/empty_ml_capabilities.ts b/x-pack/plugins/siem/common/machine_learning/empty_ml_capabilities.ts similarity index 76% rename from x-pack/plugins/siem/public/components/ml/empty_ml_capabilities.ts rename to x-pack/plugins/siem/common/machine_learning/empty_ml_capabilities.ts index 9c8610ccd628..0d6a13c108b0 100644 --- a/x-pack/plugins/siem/public/components/ml/empty_ml_capabilities.ts +++ b/x-pack/plugins/siem/common/machine_learning/empty_ml_capabilities.ts @@ -4,10 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilities } from './types'; +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; -export const emptyMlCapabilities: MlCapabilities = { +export const emptyMlCapabilities: MlCapabilitiesResponse = { capabilities: { + canAccessML: false, + canGetAnnotations: false, + canCreateAnnotation: false, + canDeleteAnnotation: false, canGetJobs: false, canCreateJob: false, canDeleteJob: false, @@ -26,11 +30,8 @@ export const emptyMlCapabilities: MlCapabilities = { canCreateFilter: false, canDeleteFilter: false, canFindFileStructure: false, - canGetDataFrame: false, - canDeleteDataFrame: false, - canPreviewDataFrame: false, - canCreateDataFrame: false, - canStartStopDataFrame: false, + canCreateDatafeed: false, + canDeleteDatafeed: false, canGetDataFrameAnalytics: false, canDeleteDataFrameAnalytics: false, canCreateDataFrameAnalytics: false, diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.test.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.test.ts similarity index 96% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.test.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.test.ts index ee237b42bede..9824ce1232cb 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.test.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.test.ts @@ -6,7 +6,7 @@ import { hasMlAdminPermissions } from './has_ml_admin_permissions'; import { cloneDeep } from 'lodash/fp'; -import { emptyMlCapabilities } from '../empty_ml_capabilities'; +import { emptyMlCapabilities } from './empty_ml_capabilities'; describe('has_ml_admin_permissions', () => { let mlCapabilities = cloneDeep(emptyMlCapabilities); diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.ts similarity index 79% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.ts index 6fe142cf8e58..106e9aabbc71 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_admin_permissions.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_admin_permissions.ts @@ -4,21 +4,21 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; -export const hasMlAdminPermissions = (capabilities: MlCapabilities): boolean => +export const hasMlAdminPermissions = (capabilities: MlCapabilitiesResponse): boolean => getDataFeedPermissions(capabilities) && getJobPermissions(capabilities) && getFilterPermissions(capabilities) && getCalendarPermissions(capabilities); -const getDataFeedPermissions = ({ capabilities }: MlCapabilities): boolean => +const getDataFeedPermissions = ({ capabilities }: MlCapabilitiesResponse): boolean => capabilities.canGetDatafeeds && capabilities.canStartStopDatafeed && capabilities.canUpdateDatafeed && capabilities.canPreviewDatafeed; -const getJobPermissions = ({ capabilities }: MlCapabilities): boolean => +const getJobPermissions = ({ capabilities }: MlCapabilitiesResponse): boolean => capabilities.canCreateJob && capabilities.canGetJobs && capabilities.canUpdateJob && @@ -27,8 +27,8 @@ const getJobPermissions = ({ capabilities }: MlCapabilities): boolean => capabilities.canCloseJob && capabilities.canForecastJob; -const getFilterPermissions = ({ capabilities }: MlCapabilities) => +const getFilterPermissions = ({ capabilities }: MlCapabilitiesResponse) => capabilities.canGetFilters && capabilities.canCreateFilter && capabilities.canDeleteFilter; -const getCalendarPermissions = ({ capabilities }: MlCapabilities) => +const getCalendarPermissions = ({ capabilities }: MlCapabilitiesResponse) => capabilities.canCreateCalendar && capabilities.canGetCalendars && capabilities.canDeleteCalendar; diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.test.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.test.ts similarity index 94% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.test.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.test.ts index e3804055f2ab..4d58cda81d71 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.test.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.test.ts @@ -6,7 +6,7 @@ import { cloneDeep } from 'lodash/fp'; import { hasMlUserPermissions } from './has_ml_user_permissions'; -import { emptyMlCapabilities } from '../empty_ml_capabilities'; +import { emptyMlCapabilities } from './empty_ml_capabilities'; describe('has_ml_user_permissions', () => { let mlCapabilities = cloneDeep(emptyMlCapabilities); diff --git a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.ts b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.ts similarity index 81% rename from x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.ts rename to x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.ts index 2d55b7d74f93..dd746e4737bb 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/has_ml_user_permissions.ts +++ b/x-pack/plugins/siem/common/machine_learning/has_ml_user_permissions.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../ml/common/types/capabilities'; -export const hasMlUserPermissions = (capabilities: MlCapabilities): boolean => +export const hasMlUserPermissions = (capabilities: MlCapabilitiesResponse): boolean => capabilities.capabilities.canGetJobs && capabilities.capabilities.canGetDatafeeds && capabilities.capabilities.canGetCalendars; diff --git a/x-pack/plugins/siem/common/detection_engine/ml_helpers.test.ts b/x-pack/plugins/siem/common/machine_learning/helpers.test.ts similarity index 96% rename from x-pack/plugins/siem/common/detection_engine/ml_helpers.test.ts rename to x-pack/plugins/siem/common/machine_learning/helpers.test.ts index ba93b2e4b8a0..ce343f75933d 100644 --- a/x-pack/plugins/siem/common/detection_engine/ml_helpers.test.ts +++ b/x-pack/plugins/siem/common/machine_learning/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { isJobStarted, isJobLoading, isJobFailed } from './ml_helpers'; +import { isJobStarted, isJobLoading, isJobFailed } from './helpers'; describe('isJobStarted', () => { test('returns false if only jobState is enabled', () => { diff --git a/x-pack/plugins/siem/common/detection_engine/ml_helpers.ts b/x-pack/plugins/siem/common/machine_learning/helpers.ts similarity index 95% rename from x-pack/plugins/siem/common/detection_engine/ml_helpers.ts rename to x-pack/plugins/siem/common/machine_learning/helpers.ts index e4158d08d448..fe3eb79a6f61 100644 --- a/x-pack/plugins/siem/common/detection_engine/ml_helpers.ts +++ b/x-pack/plugins/siem/common/machine_learning/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { RuleType } from './types'; +import { RuleType } from '../detection_engine/types'; // Based on ML Job/Datafeed States from x-pack/legacy/plugins/ml/common/constants/states.js const enabledStates = ['started', 'opened']; diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts b/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts index d64bd3a64e94..67efda67a20a 100644 --- a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts +++ b/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts @@ -9,7 +9,7 @@ import { useState, useEffect } from 'react'; import { DEFAULT_ANOMALY_SCORE } from '../../../../common/constants'; import { anomaliesTableData } from '../api/anomalies_table_data'; import { InfluencerInput, Anomalies, CriteriaFields } from '../types'; -import { hasMlUserPermissions } from '../permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { useSiemJobs } from '../../ml_popover/hooks/use_siem_jobs'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; import { useStateToaster, errorToToaster } from '../../toasters'; diff --git a/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts b/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts index e69abc1a86e0..e6a792e779b0 100644 --- a/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts +++ b/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts @@ -4,8 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { InfluencerInput, MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../../../ml/public'; import { KibanaServices } from '../../../lib/kibana'; +import { InfluencerInput } from '../types'; export interface Body { jobIds: string[]; @@ -20,8 +21,8 @@ export interface Body { maxExamples: number; } -export const getMlCapabilities = async (signal: AbortSignal): Promise => { - return KibanaServices.get().http.fetch('/api/ml/ml_capabilities', { +export const getMlCapabilities = async (signal: AbortSignal): Promise => { + return KibanaServices.get().http.fetch('/api/ml/ml_capabilities', { method: 'GET', asSystemRequest: true, signal, diff --git a/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx b/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx index eee44abb4420..9326c53b6064 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx +++ b/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx @@ -6,14 +6,14 @@ import React, { useState, useEffect } from 'react'; -import { MlCapabilities } from '../types'; +import { MlCapabilitiesResponse } from '../../../../../ml/public'; +import { emptyMlCapabilities } from '../../../../common/machine_learning/empty_ml_capabilities'; import { getMlCapabilities } from '../api/get_ml_capabilities'; -import { emptyMlCapabilities } from '../empty_ml_capabilities'; import { errorToToaster, useStateToaster } from '../../toasters'; import * as i18n from './translations'; -interface MlCapabilitiesProvider extends MlCapabilities { +interface MlCapabilitiesProvider extends MlCapabilitiesResponse { capabilitiesFetched: boolean; } diff --git a/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx b/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx index 16bde076ef76..3272042732df 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx +++ b/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx @@ -9,13 +9,13 @@ import React from 'react'; import { useAnomaliesTableData } from '../anomaly/use_anomalies_table_data'; import { HeaderSection } from '../../header_section'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import * as i18n from './translations'; import { getAnomaliesHostTableColumnsCurated } from './get_anomalies_host_table_columns'; import { convertAnomaliesToHosts } from './convert_anomalies_to_hosts'; import { Loader } from '../../loader'; import { getIntervalFromAnomalies } from '../anomaly/get_interval_from_anomalies'; import { AnomaliesHostTableProps } from '../types'; -import { hasMlUserPermissions } from '../permissions/has_ml_user_permissions'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; import { BasicTable } from './basic_table'; import { hostEquality } from './host_equality'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx b/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx index bba6355f0b8b..cc3b1196f843 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx +++ b/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx @@ -8,13 +8,13 @@ import React from 'react'; import { useAnomaliesTableData } from '../anomaly/use_anomalies_table_data'; import { HeaderSection } from '../../header_section'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import * as i18n from './translations'; import { convertAnomaliesToNetwork } from './convert_anomalies_to_network'; import { Loader } from '../../loader'; import { AnomaliesNetworkTableProps } from '../types'; import { getAnomaliesNetworkTableColumnsCurated } from './get_anomalies_network_table_columns'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../permissions/has_ml_user_permissions'; import { BasicTable } from './basic_table'; import { networkEquality } from './network_equality'; import { getCriteriaFromNetworkType } from '../criteria/get_criteria_from_network_type'; diff --git a/x-pack/plugins/siem/public/components/ml/types.ts b/x-pack/plugins/siem/public/components/ml/types.ts index 953fb9f761ea..f70c7d3eb034 100644 --- a/x-pack/plugins/siem/public/components/ml/types.ts +++ b/x-pack/plugins/siem/public/components/ml/types.ts @@ -4,15 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Influencer } from '../../../../ml/public'; + import { HostsType } from '../../store/hosts/model'; import { NetworkType } from '../../store/network/model'; import { FlowTarget } from '../../graphql/types'; -export interface Influencer { - influencer_field_name: string; - influencer_field_values: string[]; -} - export interface Source { job_id: string; result_type: string; @@ -35,11 +32,6 @@ export interface Source { influencers: Influencer[]; } -export interface Influencer { - influencer_field_name: string; - influencer_field_values: string[]; -} - export interface CriteriaFields { fieldName: string; fieldValue: string; @@ -100,41 +92,6 @@ export type AnomaliesNetworkTableProps = HostOrNetworkProps & { flowTarget?: FlowTarget; }; -export interface MlCapabilities { - capabilities: { - canGetJobs: boolean; - canCreateJob: boolean; - canDeleteJob: boolean; - canOpenJob: boolean; - canCloseJob: boolean; - canForecastJob: boolean; - canGetDatafeeds: boolean; - canStartStopDatafeed: boolean; - canUpdateJob: boolean; - canUpdateDatafeed: boolean; - canPreviewDatafeed: boolean; - canGetCalendars: boolean; - canCreateCalendar: boolean; - canDeleteCalendar: boolean; - canGetFilters: boolean; - canCreateFilter: boolean; - canDeleteFilter: boolean; - canFindFileStructure: boolean; - canGetDataFrame: boolean; - canDeleteDataFrame: boolean; - canPreviewDataFrame: boolean; - canCreateDataFrame: boolean; - canStartStopDataFrame: boolean; - canGetDataFrameAnalytics: boolean; - canDeleteDataFrameAnalytics: boolean; - canCreateDataFrameAnalytics: boolean; - canStartStopDataFrameAnalytics: boolean; - }; - isPlatinumOrTrialLicense: boolean; - mlFeatureEnabledInSpace: boolean; - upgradeInProgress: boolean; -} - const sourceOrDestination = ['source.ip', 'destination.ip']; export const isDestinationOrSource = (value: string | null): value is DestinationOrSource => diff --git a/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx b/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx index 26ebfeb91629..0b8da6be57e1 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx @@ -7,10 +7,6 @@ import { mockSiemJobs } from './__mocks__/api'; import { filterJobs, getStablePatternTitles, searchFilter } from './helpers'; -jest.mock('../ml/permissions/has_ml_admin_permissions', () => ({ - hasMlAdminPermissions: () => true, -})); - describe('helpers', () => { describe('filterJobs', () => { test('returns all jobs when no filter is suplied', () => { diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx b/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx index 7bcbf4afa10c..98e74208b3dc 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx @@ -9,7 +9,7 @@ import { useEffect, useState } from 'react'; import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { checkRecognizer, getJobsSummary, getModules } from '../api'; import { SiemJob } from '../types'; -import { hasMlUserPermissions } from '../../ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { errorToToaster, useStateToaster } from '../../toasters'; import { useUiSetting$ } from '../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx b/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx index e7b14f2e80bf..7de2f0fbfbc5 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx @@ -11,7 +11,7 @@ import { isJobLoading, isJobFailed, isJobStarted, -} from '../../../../common/detection_engine/ml_helpers'; +} from '../../../../common/machine_learning/helpers'; import { SiemJob } from '../types'; const StaticSwitch = styled(EuiSwitch)` diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx index 3c93e1c195cd..cf4ac87bdb5e 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx @@ -11,10 +11,6 @@ import { MlPopover } from './ml_popover'; jest.mock('../../lib/kibana'); -jest.mock('../ml/permissions/has_ml_admin_permissions', () => ({ - hasMlAdminPermissions: () => true, -})); - describe('MlPopover', () => { test('shows upgrade popover on mouse click', () => { const wrapper = mountWithIntl(); diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx index 6ea5cba4b37e..e7f7770ee87f 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx +++ b/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx @@ -12,7 +12,7 @@ import styled from 'styled-components'; import { useKibana } from '../../lib/kibana'; import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../lib/telemetry'; -import { hasMlAdminPermissions } from '../ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; import { errorToToaster, useStateToaster, ActionToaster } from '../toasters'; import { setupMlJob, startDatafeeds, stopDatafeeds } from './api'; import { filterJobs } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx b/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx index 4d0e6a737d30..223a16fec77a 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx +++ b/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx @@ -19,7 +19,7 @@ import { InspectButton, InspectButtonContainer } from '../../../inspect'; import { HostItem } from '../../../../graphql/types'; import { Loader } from '../../../loader'; import { IPDetailsLink } from '../../../links'; -import { hasMlUserPermissions } from '../../../ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import { useMlCapabilities } from '../../../ml_popover/hooks/use_ml_capabilities'; import { AnomalyScores } from '../../../ml/score/anomaly_scores'; import { Anomalies, NarrowDateRange } from '../../../ml/types'; diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx b/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx index 56b59ca97156..456deaac0fb1 100644 --- a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx +++ b/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx @@ -31,7 +31,7 @@ import { Loader } from '../../../loader'; import { Anomalies, NarrowDateRange } from '../../../ml/types'; import { AnomalyScores } from '../../../ml/score/anomaly_scores'; import { useMlCapabilities } from '../../../ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../../../ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import { InspectButton, InspectButtonContainer } from '../../../inspect'; interface OwnProps { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx index 8e79f037d82b..542a004cb372 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx @@ -19,7 +19,7 @@ import { FormattedRelative } from '@kbn/i18n/react'; import * as H from 'history'; import React, { Dispatch } from 'react'; -import { isMlRule } from '../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; import { Rule, RuleStatus } from '../../../../containers/detection_engine/rules'; import { getEmptyTagValue } from '../../../../components/empty_value'; import { FormattedDate } from '../../../../components/formatted_date'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx index 18ca4d42bd01..d9a2fafd144b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx @@ -48,7 +48,7 @@ import { showRulesTable } from './helpers'; import { allRulesReducer, State } from './reducer'; import { RulesTableFilters } from './rules_table_filters/rules_table_filters'; import { useMlCapabilities } from '../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlAdminPermissions } from '../../../../components/ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; const SORT_FIELD = 'enabled'; const initialState: State = { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx index 79993c37e549..33d3dbcba863 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx @@ -8,7 +8,7 @@ import React from 'react'; import styled from 'styled-components'; import { EuiBadge, EuiIcon, EuiLink, EuiToolTip } from '@elastic/eui'; -import { isJobStarted } from '../../../../../../common/detection_engine/ml_helpers'; +import { isJobStarted } from '../../../../../../common/machine_learning/helpers'; import { useKibana } from '../../../../../lib/kibana'; import { SiemJob } from '../../../../../components/ml_popover/types'; import { ListItems } from './types'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx index 4fb9faaea711..c011c06e8654 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx @@ -17,7 +17,7 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; -import { isJobStarted } from '../../../../../../common/detection_engine/ml_helpers'; +import { isJobStarted } from '../../../../../../common/machine_learning/helpers'; import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; import { useSiemJobs } from '../../../../../components/ml_popover/hooks/use_siem_jobs'; import { useKibana } from '../../../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx index 6f3d299da8d4..dc9a832f820b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx @@ -16,7 +16,7 @@ import { EuiText, } from '@elastic/eui'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { RuleType } from '../../../../../../common/detection_engine/types'; import { FieldHook } from '../../../../../shared_imports'; import { useKibana } from '../../../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx index b6887badc56b..3517c6fb21e6 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx @@ -10,7 +10,7 @@ import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; import { DEFAULT_INDEX_KEY } from '../../../../../../common/constants'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { IIndexPattern } from '../../../../../../../../../src/plugins/data/public'; import { useFetchIndexPatterns } from '../../../../../containers/detection_engine/rules'; import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; @@ -38,7 +38,7 @@ import { import { schema } from './schema'; import * as i18n from './translations'; import { filterRuleFieldsForType, RuleFields } from '../../create/helpers'; -import { hasMlAdminPermissions } from '../../../../../components/ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; const CommonUseField = getUseField({ component: Field }); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx index 8915c5f0a224..08832c5dfe4f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx @@ -9,7 +9,7 @@ import { EuiText } from '@elastic/eui'; import { isEmpty } from 'lodash/fp'; import React from 'react'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { esKuery } from '../../../../../../../../../src/plugins/data/public'; import { FieldValueQueryBar } from '../query_bar'; import { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts b/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts index 7ad116c31336..b912c182a7c6 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts @@ -11,7 +11,7 @@ import deepmerge from 'deepmerge'; import { NOTIFICATION_THROTTLE_NO_ACTIONS } from '../../../../../common/constants'; import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; import { RuleType } from '../../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; import { NewRule } from '../../../../containers/detection_engine/rules'; import { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx index 3e45c892e23d..6a43c217e5ff 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx @@ -69,7 +69,7 @@ import { RuleStatusFailedCallOut } from './status_failed_callout'; import { FailureHistory } from './failure_history'; import { RuleStatus } from '../components/rule_status'; import { useMlCapabilities } from '../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlAdminPermissions } from '../../../../components/ml/permissions/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; enum RuleDetailTabs { signals = 'signals', diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx b/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx index 2ccbffd86407..3dbcf3b2425c 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx @@ -11,7 +11,7 @@ import memoizeOne from 'memoize-one'; import { useLocation } from 'react-router-dom'; import { RuleAlertAction, RuleType } from '../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../common/machine_learning/helpers'; import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; import { Filter } from '../../../../../../../src/plugins/data/public'; import { Rule } from '../../../containers/detection_engine/rules'; diff --git a/x-pack/plugins/siem/public/pages/hosts/details/index.tsx b/x-pack/plugins/siem/public/pages/hosts/details/index.tsx index 730c93b43709..afed0fab0ade 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/index.tsx +++ b/x-pack/plugins/siem/public/pages/hosts/details/index.tsx @@ -15,7 +15,7 @@ import { HeaderPage } from '../../../components/header_page'; import { LastEventTime } from '../../../components/last_event_time'; import { AnomalyTableProvider } from '../../../components/ml/anomaly/anomaly_table_provider'; import { hostToCriteria } from '../../../components/ml/criteria/host_to_criteria'; -import { hasMlUserPermissions } from '../../../components/ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; import { useMlCapabilities } from '../../../components/ml_popover/hooks/use_ml_capabilities'; import { scoreIntervalToDateTime } from '../../../components/ml/score/score_interval_to_datetime'; import { SiemNavigation } from '../../../components/navigation'; diff --git a/x-pack/plugins/siem/public/pages/hosts/hosts.tsx b/x-pack/plugins/siem/public/pages/hosts/hosts.tsx index 2fbbc0d96a1e..0e29d634d07a 100644 --- a/x-pack/plugins/siem/public/pages/hosts/hosts.tsx +++ b/x-pack/plugins/siem/public/pages/hosts/hosts.tsx @@ -14,7 +14,7 @@ import { UpdateDateRange } from '../../components/charts/common'; import { FiltersGlobal } from '../../components/filters_global'; import { HeaderPage } from '../../components/header_page'; import { LastEventTime } from '../../components/last_event_time'; -import { hasMlUserPermissions } from '../../components/ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { SiemNavigation } from '../../components/navigation'; import { KpiHostsComponent } from '../../components/page/hosts'; import { manageQuery } from '../../components/page/manage_query'; diff --git a/x-pack/plugins/siem/public/pages/network/index.tsx b/x-pack/plugins/siem/public/pages/network/index.tsx index babc153823b5..412e51e74059 100644 --- a/x-pack/plugins/siem/public/pages/network/index.tsx +++ b/x-pack/plugins/siem/public/pages/network/index.tsx @@ -8,7 +8,7 @@ import React, { useMemo } from 'react'; import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; import { useMlCapabilities } from '../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../../components/ml/permissions/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { FlowTarget } from '../../graphql/types'; import { IPDetails } from './ip_details'; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts index e6facf6f3b7a..473d183c8a8f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.test.ts @@ -5,6 +5,8 @@ */ import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { typicalPayload, getReadBulkRequest, @@ -19,9 +21,12 @@ import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { createRulesBulkRoute } from './create_rules_bulk_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('create_rules_bulk', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -34,12 +39,13 @@ describe('create_rules_bulk', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.clusterClient.callAsCurrentUser.mockResolvedValue(getNonEmptyIndex()); // index exists clients.alertsClient.find.mockResolvedValue(getEmptyFindResult()); // no existing rules clients.alertsClient.create.mockResolvedValue(getResult()); // successful creation - createRulesBulkRoute(server.router); + createRulesBulkRoute(server.router, ml); }); describe('status codes', () => { @@ -64,16 +70,20 @@ describe('create_rules_bulk', () => { }); describe('unhappy paths', () => { - it('returns an error object if creating an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 error object if ML Authz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const response = await server.inject(createBulkMlRuleRequest(), context); expect(response.status).toEqual(200); expect(response.body).toEqual([ { error: { - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, rule_id: 'rule-1', }, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts index cf841a9c88b3..371faccfbe47 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_bulk_route.ts @@ -8,6 +8,9 @@ import uuid from 'uuid'; import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { createRules } from '../../rules/create_rules'; import { RuleAlertParamsRest } from '../../types'; import { readRules } from '../../rules/read_rules'; @@ -19,13 +22,12 @@ import { createBulkErrorObject, buildRouteValidation, buildSiemResponse, - validateLicenseForRuleType, } from '../utils'; import { createRulesBulkSchema } from '../schemas/create_rules_bulk_schema'; import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; -export const createRulesBulkRoute = (router: IRouter) => { +export const createRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.post( { path: `${DETECTION_ENGINE_RULES_URL}/_bulk_create`, @@ -47,6 +49,8 @@ export const createRulesBulkRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + const ruleDefinitions = request.body; const dupes = getDuplicates(ruleDefinitions, 'rule_id'); @@ -89,7 +93,7 @@ export const createRulesBulkRoute = (router: IRouter) => { } = payloadRule; const ruleIdOrUuid = ruleId ?? uuid.v4(); try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); + throwHttpError(await mlAuthz.validateRuleType(type)); const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const indexExists = await getIndexExists(clusterClient.callAsCurrentUser, finalIndex); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts index f15f47432f83..afdcda7da251 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.test.ts @@ -16,15 +16,19 @@ import { getFindResultWithSingleHit, createMlRuleRequest, } from '../__mocks__/request_responses'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { createRulesRoute } from './create_rules_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; jest.mock('../../rules/update_rules_notifications'); +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); describe('create_rules', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -37,13 +41,14 @@ describe('create_rules', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.clusterClient.callAsCurrentUser.mockResolvedValue(getNonEmptyIndex()); // index exists clients.alertsClient.find.mockResolvedValue(getEmptyFindResult()); // no current rules clients.alertsClient.create.mockResolvedValue(getResult()); // creation succeeds clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); // needed to transform - createRulesRoute(server.router); + createRulesRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -86,14 +91,18 @@ describe('create_rules', () => { expect(response.status).toEqual(200); }); - it('rejects the request if licensing is not platinum', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 if ML Authz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const response = await server.inject(createMlRuleRequest(), context); - expect(response.status).toEqual(400); + expect(response.status).toEqual(403); expect(response.body).toEqual({ - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts index 6605b5abfcb0..7cbb22221679 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/create_rules_route.ts @@ -8,22 +8,20 @@ import uuid from 'uuid'; import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { createRules } from '../../rules/create_rules'; import { readRules } from '../../rules/read_rules'; import { RuleAlertParamsRest } from '../../types'; import { transformValidate } from './validate'; import { getIndexExists } from '../../index/get_index_exists'; import { createRulesSchema } from '../schemas/create_rules_schema'; -import { - buildRouteValidation, - transformError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; -export const createRulesRoute = (router: IRouter): void => { +export const createRulesRoute = (router: IRouter, ml: SetupPlugins['ml']): void => { router.post( { path: DETECTION_ENGINE_RULES_URL, @@ -70,7 +68,6 @@ export const createRulesRoute = (router: IRouter): void => { const siemResponse = buildSiemResponse(response); try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); const alertsClient = context.alerting?.getAlertsClient(); const clusterClient = context.core.elasticsearch.dataClient; const savedObjectsClient = context.core.savedObjects.client; @@ -80,6 +77,9 @@ export const createRulesRoute = (router: IRouter): void => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + throwHttpError(await mlAuthz.validateRuleType(type)); + const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const indexExists = await getIndexExists(clusterClient.callAsCurrentUser, finalIndex); if (!indexExists) { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts index 91685a68a60a..c33c917c2e98 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.test.ts @@ -9,8 +9,6 @@ import { ruleIdsToNdJsonString, rulesToNdJsonString, getSimpleRuleWithId, - getSimpleRule, - getSimpleMlRule, } from '../__mocks__/utils'; import { getImportRulesRequest, @@ -22,10 +20,14 @@ import { getNonEmptyIndex, } from '../__mocks__/request_responses'; import { createMockConfig, requestContextMock, serverMock, requestMock } from '../__mocks__'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { importRulesRoute } from './import_rules_route'; import * as createRulesStreamFromNdJson from '../../rules/create_rules_stream_from_ndjson'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('import_rules_route', () => { beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -39,25 +41,20 @@ describe('import_rules_route', () => { let server: ReturnType; let request: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeEach(() => { - // jest carries state between mocked implementations when using - // spyOn. So now we're doing all three of these. - // https://github.com/facebook/jest/issues/7136#issuecomment-565976599 - jest.resetAllMocks(); - jest.restoreAllMocks(); - jest.clearAllMocks(); - server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); config = createMockConfig(); const hapiStream = buildHapiStream(ruleIdsToNdJsonString(['rule-1'])); request = getImportRulesRequest(hapiStream); + ml = mlServicesMock.create(); clients.clusterClient.callAsCurrentUser.mockResolvedValue(getNonEmptyIndex()); // index exists clients.alertsClient.find.mockResolvedValue(getEmptyFindResult()); // no extant rules - importRulesRoute(server.router, config); + importRulesRoute(server.router, config, ml); }); describe('status codes', () => { @@ -83,11 +80,12 @@ describe('import_rules_route', () => { }); describe('unhappy paths', () => { - it('returns an error object if creating an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); - const rules = [getSimpleRule(), getSimpleMlRule('rule-2')]; - const hapiStreamWithMlRule = buildHapiStream(rulesToNdJsonString(rules)); - request = getImportRulesRequest(hapiStreamWithMlRule); + it('returns a 403 error object if ML Authz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const response = await server.inject(request, context); expect(response.status).toEqual(200); @@ -95,20 +93,19 @@ describe('import_rules_route', () => { errors: [ { error: { - message: - 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, - rule_id: 'rule-2', + rule_id: 'rule-1', }, ], success: false, - success_count: 1, + success_count: 0, }); }); test('returns error if createPromiseFromStreams throws error', async () => { - jest + const transformMock = jest .spyOn(createRulesStreamFromNdJson, 'createRulesStreamFromNdJson') .mockImplementation(() => { throw new Error('Test error'); @@ -116,6 +113,8 @@ describe('import_rules_route', () => { const response = await server.inject(request, context); expect(response.status).toEqual(500); expect(response.body).toEqual({ message: 'Test error', status_code: 500 }); + + transformMock.mockRestore(); }); test('returns an error if the index does not exist', async () => { diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts index 9ba083ae4808..00010027f106 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/import_rules_route.ts @@ -11,6 +11,9 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { createPromiseFromStreams } from '../../../../../../../../src/legacy/utils/streams'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { ConfigType } from '../../../../config'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { createRules } from '../../rules/create_rules'; import { ImportRulesRequestParams } from '../../rules/types'; import { readRules } from '../../rules/read_rules'; @@ -24,7 +27,6 @@ import { isImportRegular, transformError, buildSiemResponse, - validateLicenseForRuleType, } from '../utils'; import { ImportRuleAlertRest } from '../../types'; import { patchRules } from '../../rules/patch_rules'; @@ -38,7 +40,7 @@ type PromiseFromStreams = ImportRuleAlertRest | Error; const CHUNK_PARSED_OBJECT_SIZE = 10; -export const importRulesRoute = (router: IRouter, config: ConfigType) => { +export const importRulesRoute = (router: IRouter, config: ConfigType, ml: SetupPlugins['ml']) => { router.post( { path: `${DETECTION_ENGINE_RULES_URL}/_import`, @@ -67,6 +69,8 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + const { filename } = request.body.file.hapi; const fileExtension = extname(filename).toLowerCase(); if (fileExtension !== '.ndjson') { @@ -148,10 +152,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { } = parsedRule; try { - validateLicenseForRuleType({ - license: context.licensing.license, - ruleType: type, - }); + throwHttpError(await mlAuthz.validateRuleType(type)); const rule = await readRules({ alertsClient, ruleId }); if (rule == null) { @@ -207,8 +208,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { timelineTitle, meta, filters, - id: undefined, - ruleId, + rule, index, interval, maxSignals, @@ -240,7 +240,7 @@ export const importRulesRoute = (router: IRouter, config: ConfigType) => { resolve( createBulkErrorObject({ ruleId, - statusCode: 400, + statusCode: err.statusCode ?? 400, message: err.message, }) ); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts index a1f39936dd67..24b2d5631b3a 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.test.ts @@ -5,6 +5,8 @@ */ import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, typicalPayload, @@ -17,9 +19,12 @@ import { serverMock, requestContextMock, requestMock } from '../__mocks__'; import { patchRulesBulkRoute } from './patch_rules_bulk_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('patch_rules_bulk', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -32,11 +37,12 @@ describe('patch_rules_bulk', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.alertsClient.update.mockResolvedValue(getResult()); // update succeeds - patchRulesBulkRoute(server.router); + patchRulesBulkRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -90,21 +96,51 @@ describe('patch_rules_bulk', () => { expect(response.body).toEqual({ message: 'Not Found', status_code: 404 }); }); - it('rejects patching of an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('rejects patching a rule to ML if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'patch', path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, body: [typicalMlRulePayload()], }); + const response = await server.inject(request, context); + expect(response.status).toEqual(200); + expect(response.body).toEqual([ + { + error: { + message: 'mocked validation message', + status_code: 403, + }, + rule_id: 'rule-1', + }, + ]); + }); + + it('rejects patching an existing ML rule if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); + const { type, ...payloadWithoutType } = typicalMlRulePayload(); + const request = requestMock.create({ + method: 'patch', + path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, + body: [payloadWithoutType], + }); const response = await server.inject(request, context); + expect(response.status).toEqual(200); expect(response.body).toEqual([ { error: { - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, rule_id: 'rule-1', }, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts index 201e1f823b4c..69789fe94662 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_bulk_route.ts @@ -6,13 +6,11 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { PatchRuleAlertParamsRest } from '../../rules/types'; -import { - transformBulkError, - buildRouteValidation, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { transformBulkError, buildRouteValidation, buildSiemResponse } from '../utils'; import { getIdBulkError } from './utils'; import { transformValidateBulkError, validate } from './validate'; import { patchRulesBulkSchema } from '../schemas/patch_rules_bulk_schema'; @@ -20,8 +18,9 @@ import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { patchRules } from '../../rules/patch_rules'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; +import { readRules } from '../../rules/read_rules'; -export const patchRulesBulkRoute = (router: IRouter) => { +export const patchRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.patch( { path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, @@ -42,6 +41,7 @@ export const patchRulesBulkRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); const ruleStatusClient = ruleStatusSavedObjectsClientFactory(savedObjectsClient); const rules = await Promise.all( request.body.map(async payloadRule => { @@ -81,10 +81,18 @@ export const patchRulesBulkRoute = (router: IRouter) => { const idOrRuleIdOrUnknown = id ?? ruleId ?? '(unknown id)'; try { if (type) { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); + // reject an unauthorized "promotion" to ML + throwHttpError(await mlAuthz.validateRuleType(type)); + } + + const existingRule = await readRules({ alertsClient, ruleId, id }); + if (existingRule?.params.type) { + // reject an unauthorized modification of an ML rule + throwHttpError(await mlAuthz.validateRuleType(existingRule?.params.type)); } const rule = await patchRules({ + rule: existingRule, alertsClient, description, enabled, @@ -99,8 +107,6 @@ export const patchRulesBulkRoute = (router: IRouter) => { timelineTitle, meta, filters, - id, - ruleId, index, interval, maxSignals, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts index dbb0a3bb3e1d..9ae7e83ef798 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.test.ts @@ -5,6 +5,8 @@ */ import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, getFindResultStatus, @@ -19,9 +21,12 @@ import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { patchRulesRoute } from './patch_rules_route'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('patch_rules', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -34,13 +39,14 @@ describe('patch_rules', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.get.mockResolvedValue(getResult()); // existing rule clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // existing rule clients.alertsClient.update.mockResolvedValue(getResult()); // successful update clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); // successful transform - patchRulesRoute(server.router); + patchRulesRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -112,8 +118,12 @@ describe('patch_rules', () => { ); }); - it('rejects patching a rule to ML if licensing is not platinum', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('rejects patching a rule to ML if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'patch', path: DETECTION_ENGINE_RULES_URL, @@ -121,10 +131,31 @@ describe('patch_rules', () => { }); const response = await server.inject(request, context); - expect(response.status).toEqual(400); + expect(response.status).toEqual(403); + expect(response.body).toEqual({ + message: 'mocked validation message', + status_code: 403, + }); + }); + + it('rejects patching an ML rule if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); + const { type, ...payloadWithoutType } = typicalMlRulePayload(); + const request = requestMock.create({ + method: 'patch', + path: DETECTION_ENGINE_RULES_URL, + body: payloadWithoutType, + }); + const response = await server.inject(request, context); + + expect(response.status).toEqual(403); expect(response.body).toEqual({ - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts index 00ccd3059b38..ae23e0efc857 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/patch_rules_route.ts @@ -6,21 +6,20 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { patchRules } from '../../rules/patch_rules'; import { PatchRuleAlertParamsRest } from '../../rules/types'; import { patchRulesSchema } from '../schemas/patch_rules_schema'; -import { - buildRouteValidation, - transformError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { getIdError } from './utils'; import { transformValidate } from './validate'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; +import { readRules } from '../../rules/read_rules'; -export const patchRulesRoute = (router: IRouter) => { +export const patchRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.patch( { path: DETECTION_ENGINE_RULES_URL, @@ -68,10 +67,6 @@ export const patchRulesRoute = (router: IRouter) => { const siemResponse = buildSiemResponse(response); try { - if (type) { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); - } - const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; @@ -79,6 +74,18 @@ export const patchRulesRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + if (type) { + // reject an unauthorized "promotion" to ML + throwHttpError(await mlAuthz.validateRuleType(type)); + } + + const existingRule = await readRules({ alertsClient, ruleId, id }); + if (existingRule?.params.type) { + // reject an unauthorized modification of an ML rule + throwHttpError(await mlAuthz.validateRuleType(existingRule?.params.type)); + } + const ruleStatusClient = ruleStatusSavedObjectsClientFactory(savedObjectsClient); const rule = await patchRules({ alertsClient, @@ -95,8 +102,7 @@ export const patchRulesRoute = (router: IRouter) => { timelineTitle, meta, filters, - id, - ruleId, + rule: existingRule, index, interval, maxSignals, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts index 332a47d0c0fc..e48c72ce9579 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.test.ts @@ -4,6 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ +import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, getResult, @@ -16,12 +19,14 @@ import { import { serverMock, requestContextMock, requestMock } from '../__mocks__'; import { updateRulesBulkRoute } from './update_rules_bulk_route'; import { BulkError } from '../utils'; -import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); + describe('update_rules_bulk', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -34,12 +39,13 @@ describe('update_rules_bulk', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); clients.alertsClient.update.mockResolvedValue(getResult()); clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatus()); - updateRulesBulkRoute(server.router); + updateRulesBulkRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -92,8 +98,12 @@ describe('update_rules_bulk', () => { expect(response.body).toEqual(expected); }); - it('returns an error object if creating an ML rule with an insufficient license', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 error object if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'put', path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, @@ -105,8 +115,8 @@ describe('update_rules_bulk', () => { expect(response.body).toEqual([ { error: { - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }, rule_id: 'rule-1', }, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts index 6d8f2243787e..11892898d214 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_bulk_route.ts @@ -6,22 +6,20 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { UpdateRuleAlertParamsRest } from '../../rules/types'; import { getIdBulkError } from './utils'; import { transformValidateBulkError, validate } from './validate'; -import { - buildRouteValidation, - transformBulkError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformBulkError, buildSiemResponse } from '../utils'; import { updateRulesBulkSchema } from '../schemas/update_rules_bulk_schema'; import { updateRules } from '../../rules/update_rules'; import { rulesBulkSchema } from '../schemas/response/rules_bulk_schema'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; -export const updateRulesBulkRoute = (router: IRouter) => { +export const updateRulesBulkRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.put( { path: `${DETECTION_ENGINE_RULES_URL}/_bulk_update`, @@ -43,6 +41,7 @@ export const updateRulesBulkRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); const ruleStatusClient = ruleStatusSavedObjectsClientFactory(savedObjectsClient); const rules = await Promise.all( request.body.map(async payloadRule => { @@ -83,7 +82,7 @@ export const updateRulesBulkRoute = (router: IRouter) => { const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const idOrRuleIdOrUnknown = id ?? ruleId ?? '(unknown id)'; try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); + throwHttpError(await mlAuthz.validateRuleType(type)); const rule = await updateRules({ alertsClient, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts index 53c52153e84e..ce25a0204a60 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.test.ts @@ -4,7 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { updateRulesRoute } from './update_rules_route'; +import { mlServicesMock, mlAuthzMock as mockMlAuthzFactory } from '../../../machine_learning/mocks'; +import { buildMlAuthz } from '../../../machine_learning/authz'; import { getEmptyFindResult, getResult, @@ -19,11 +20,15 @@ import { requestContextMock, serverMock, requestMock } from '../__mocks__'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../../feature_flags'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; +import { updateRulesRoute } from './update_rules_route'; + +jest.mock('../../../machine_learning/authz', () => mockMlAuthzFactory.create()); jest.mock('../../rules/update_rules_notifications'); describe('update_rules', () => { let server: ReturnType; let { clients, context } = requestContextMock.createTools(); + let ml: ReturnType; beforeAll(() => { setFeatureFlagsForTestsOnly(); @@ -36,13 +41,14 @@ describe('update_rules', () => { beforeEach(() => { server = serverMock.create(); ({ clients, context } = requestContextMock.createTools()); + ml = mlServicesMock.create(); clients.alertsClient.get.mockResolvedValue(getResult()); // existing rule clients.alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); // rule exists clients.alertsClient.update.mockResolvedValue(getResult()); // successful update clients.savedObjectsClient.find.mockResolvedValue(getFindResultStatusEmpty()); // successful transform - updateRulesRoute(server.router); + updateRulesRoute(server.router, ml); }); describe('status codes with actionClient and alertClient', () => { @@ -106,8 +112,12 @@ describe('update_rules', () => { }); }); - it('rejects the request if licensing is not adequate', async () => { - (context.licensing.license.hasAtLeast as jest.Mock).mockReturnValue(false); + it('returns a 403 if mlAuthz fails', async () => { + (buildMlAuthz as jest.Mock).mockReturnValueOnce({ + validateRuleType: jest + .fn() + .mockResolvedValue({ valid: false, message: 'mocked validation message' }), + }); const request = requestMock.create({ method: 'put', path: DETECTION_ENGINE_RULES_URL, @@ -115,10 +125,10 @@ describe('update_rules', () => { }); const response = await server.inject(request, context); - expect(response.status).toEqual(400); + expect(response.status).toEqual(403); expect(response.body).toEqual({ - message: 'Your license does not support machine learning. Please upgrade your license.', - status_code: 400, + message: 'mocked validation message', + status_code: 403, }); }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts index bfbeef8be2fe..f15154a09657 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/rules/update_rules_route.ts @@ -6,21 +6,19 @@ import { IRouter } from '../../../../../../../../src/core/server'; import { DETECTION_ENGINE_RULES_URL } from '../../../../../common/constants'; +import { SetupPlugins } from '../../../../plugin'; +import { buildMlAuthz } from '../../../machine_learning/authz'; +import { throwHttpError } from '../../../machine_learning/validation'; import { UpdateRuleAlertParamsRest } from '../../rules/types'; import { updateRulesSchema } from '../schemas/update_rules_schema'; -import { - buildRouteValidation, - transformError, - buildSiemResponse, - validateLicenseForRuleType, -} from '../utils'; +import { buildRouteValidation, transformError, buildSiemResponse } from '../utils'; import { getIdError } from './utils'; import { transformValidate } from './validate'; import { updateRules } from '../../rules/update_rules'; import { updateRulesNotifications } from '../../rules/update_rules_notifications'; import { ruleStatusSavedObjectsClientFactory } from '../../signals/rule_status_saved_objects_client'; -export const updateRulesRoute = (router: IRouter) => { +export const updateRulesRoute = (router: IRouter, ml: SetupPlugins['ml']) => { router.put( { path: DETECTION_ENGINE_RULES_URL, @@ -69,8 +67,6 @@ export const updateRulesRoute = (router: IRouter) => { const siemResponse = buildSiemResponse(response); try { - validateLicenseForRuleType({ license: context.licensing.license, ruleType: type }); - const alertsClient = context.alerting?.getAlertsClient(); const savedObjectsClient = context.core.savedObjects.client; const siemClient = context.siem?.getSiemClient(); @@ -80,6 +76,9 @@ export const updateRulesRoute = (router: IRouter) => { return siemResponse.error({ statusCode: 404 }); } + const mlAuthz = buildMlAuthz({ license: context.licensing.license, ml, request }); + throwHttpError(await mlAuthz.validateRuleType(type)); + const finalIndex = outputIndex ?? siemClient.getSignalsIndex(); const rule = await updateRules({ alertsClient, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts index 25e76f367037..1c1bee58f0c9 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/schemas/response/check_type_dependents.ts @@ -8,7 +8,7 @@ import * as t from 'io-ts'; import { Either, left, fold } from 'fp-ts/lib/Either'; import { pipe } from 'fp-ts/lib/pipeable'; -import { isMlRule } from '../../../../../../common/detection_engine/ml_helpers'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; import { dependentRulesSchema, RequiredRulesSchema, diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts index 8af5df605691..fdb1cd148c7f 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.test.ts @@ -19,11 +19,9 @@ import { transformImportError, convertToSnakeCase, SiemResponseFactory, - validateLicenseForRuleType, } from './utils'; import { responseMock } from './__mocks__'; import { setFeatureFlagsForTestsOnly, unSetFeatureFlagsForTestsOnly } from '../feature_flags'; -import { licensingMock } from '../../../../../licensing/server/mocks'; describe('utils', () => { beforeAll(() => { @@ -361,36 +359,4 @@ describe('utils', () => { ); }); }); - - describe('validateLicenseForRuleType', () => { - let licenseMock: ReturnType; - - beforeEach(() => { - licenseMock = licensingMock.createLicenseMock(); - }); - - it('throws a BadRequestError if operating on an ML Rule with an insufficient license', () => { - licenseMock.hasAtLeast.mockReturnValue(false); - - expect(() => - validateLicenseForRuleType({ license: licenseMock, ruleType: 'machine_learning' }) - ).toThrowError(BadRequestError); - }); - - it('does not throw if operating on an ML Rule with a sufficient license', () => { - licenseMock.hasAtLeast.mockReturnValue(true); - - expect(() => - validateLicenseForRuleType({ license: licenseMock, ruleType: 'machine_learning' }) - ).not.toThrowError(BadRequestError); - }); - - it('does not throw if operating on a query rule', () => { - licenseMock.hasAtLeast.mockReturnValue(false); - - expect(() => - validateLicenseForRuleType({ license: licenseMock, ruleType: 'query' }) - ).not.toThrowError(BadRequestError); - }); - }); }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts index 52493a9be9b8..9903840b99c6 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/routes/utils.ts @@ -7,17 +7,12 @@ import Boom from 'boom'; import Joi from 'joi'; import { has, snakeCase } from 'lodash/fp'; -import { i18n } from '@kbn/i18n'; import { RouteValidationFunction, KibanaResponseFactory, CustomHttpResponseOptions, } from '../../../../../../../src/core/server'; -import { ILicense } from '../../../../../licensing/server'; -import { MINIMUM_ML_LICENSE } from '../../../../common/constants'; -import { RuleType } from '../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../common/detection_engine/ml_helpers'; import { BadRequestError } from '../errors/bad_request_error'; export interface OutputError { @@ -294,28 +289,3 @@ export const convertToSnakeCase = >( return { ...acc, [newKey]: obj[item] }; }, {}); }; - -/** - * Checks the current Kibana License against the rule under operation. - * - * @param license ILicense representing the user license - * @param ruleType the type of the current rule - * - * @throws BadRequestError if rule and license are incompatible - */ -export const validateLicenseForRuleType = ({ - license, - ruleType, -}: { - license: ILicense; - ruleType: RuleType; -}): void => { - if (isMlRule(ruleType) && !license.hasAtLeast(MINIMUM_ML_LICENSE)) { - const message = i18n.translate('xpack.siem.licensing.unsupportedMachineLearningMessage', { - defaultMessage: - 'Your license does not support machine learning. Please upgrade your license.', - }); - - throw new BadRequestError(message); - } -}; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts index c551eb164ee0..a42500223012 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.test.ts @@ -19,14 +19,14 @@ describe('patchRules', () => { }); it('should call alertsClient.disable is the rule was enabled and enabled is false', async () => { - const rule = getResult(); - alertsClient.get.mockResolvedValue(getResult()); + const existingRule = getResult(); + const params = getResult().params; await patchRules({ alertsClient, savedObjectsClient, - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - ...rule.params, + rule: existingRule, + ...params, enabled: false, interval: '', name: '', @@ -35,23 +35,23 @@ describe('patchRules', () => { expect(alertsClient.disable).toHaveBeenCalledWith( expect.objectContaining({ - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + id: existingRule.id, }) ); }); it('should call alertsClient.enable is the rule was disabled and enabled is true', async () => { - const rule = getResult(); - alertsClient.get.mockResolvedValue({ + const existingRule = { ...getResult(), enabled: false, - }); + }; + const params = getResult().params; await patchRules({ alertsClient, savedObjectsClient, - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', - ...rule.params, + rule: existingRule, + ...params, enabled: true, interval: '', name: '', @@ -60,13 +60,13 @@ describe('patchRules', () => { expect(alertsClient.enable).toHaveBeenCalledWith( expect.objectContaining({ - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + id: existingRule.id, }) ); }); it('calls the alertsClient with ML params', async () => { - alertsClient.get.mockResolvedValue(getMlResult()); + const existingRule = getMlResult(); const params = { ...getMlResult().params, anomalyThreshold: 55, @@ -76,7 +76,7 @@ describe('patchRules', () => { await patchRules({ alertsClient, savedObjectsClient, - id: '04128c15-0d1b-4716-a4c5-46997ac7f3bd', + rule: existingRule, ...params, }); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts index da5e90ec14b0..6dfb72532afb 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/patch_rules.ts @@ -6,7 +6,6 @@ import { defaults } from 'lodash/fp'; import { PartialAlert } from '../../../../../alerting/server'; -import { readRules } from './read_rules'; import { PatchRuleParams } from './types'; import { addTags } from './add_tags'; import { calculateVersion, calculateName, calculateInterval } from './utils'; @@ -28,12 +27,11 @@ export const patchRules = async ({ filters, from, immutable, - id, - ruleId, index, interval, maxSignals, riskScore, + rule, name, severity, tags, @@ -47,7 +45,6 @@ export const patchRules = async ({ anomalyThreshold, machineLearningJobId, }: PatchRuleParams): Promise => { - const rule = await readRules({ alertsClient, ruleId, id }); if (rule == null) { return null; } diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts index b5dbfc92cf52..217a966478e7 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/types.ts @@ -14,7 +14,7 @@ import { SavedObjectsClientContract, } from 'kibana/server'; import { AlertsClient, PartialAlert } from '../../../../../alerting/server'; -import { Alert } from '../../../../../alerting/common'; +import { Alert, SanitizedAlert } from '../../../../../alerting/common'; import { SIGNALS_ID } from '../../../../common/constants'; import { RuleAlertParams, RuleTypeParams, RuleAlertParamsRest } from '../types'; @@ -140,8 +140,8 @@ export interface Clients { alertsClient: AlertsClient; } -export type PatchRuleParams = Partial> & { - id: string | undefined | null; +export type PatchRuleParams = Partial> & { + rule: SanitizedAlert | null; savedObjectsClient: SavedObjectsClientContract; } & Clients; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts index e8fb4fa96ab5..2d77e9a707f7 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.test.ts @@ -6,7 +6,10 @@ import { savedObjectsClientMock } from '../../../../../../../src/core/server/mocks'; import { alertsClientMock } from '../../../../../alerting/server/mocks'; -import { mockPrepackagedRule } from '../routes/__mocks__/request_responses'; +import { + mockPrepackagedRule, + getFindResultWithSingleHit, +} from '../routes/__mocks__/request_responses'; import { updatePrepackagedRules } from './update_prepacked_rules'; import { patchRules } from './patch_rules'; jest.mock('./patch_rules'); @@ -31,6 +34,7 @@ describe('updatePrepackagedRules', () => { ]; const outputIndex = 'outputIndex'; const prepackagedRule = mockPrepackagedRule(); + alertsClient.find.mockResolvedValue(getFindResultWithSingleHit()); await updatePrepackagedRules( alertsClient, @@ -40,17 +44,8 @@ describe('updatePrepackagedRules', () => { ); expect(patchRules).toHaveBeenCalledWith( - expect.objectContaining({ - ruleId: 'rule-1', - }) - ); - expect(patchRules).not.toHaveBeenCalledWith( - expect.objectContaining({ + expect.not.objectContaining({ enabled: true, - }) - ); - expect(patchRules).not.toHaveBeenCalledWith( - expect.objectContaining({ actions, }) ); diff --git a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts index 4c183c51d16e..618dee26b481 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/rules/update_prepacked_rules.ts @@ -8,6 +8,7 @@ import { SavedObjectsClientContract } from 'kibana/server'; import { AlertsClient } from '../../../../../alerting/server'; import { patchRules } from './patch_rules'; import { PrepackagedRules } from '../types'; +import { readRules } from './read_rules'; export const updatePrepackagedRules = async ( alertsClient: AlertsClient, @@ -15,63 +16,66 @@ export const updatePrepackagedRules = async ( rules: PrepackagedRules[], outputIndex: string ): Promise => { - await rules.forEach(async rule => { - const { - description, - false_positives: falsePositives, - from, - immutable, - query, - language, - saved_id: savedId, - meta, - filters, - rule_id: ruleId, - index, - interval, - max_signals: maxSignals, - risk_score: riskScore, - name, - severity, - tags, - to, - type, - threat, - references, - version, - note, - } = rule; + await Promise.all( + rules.map(async rule => { + const { + description, + false_positives: falsePositives, + from, + immutable, + query, + language, + saved_id: savedId, + meta, + filters, + rule_id: ruleId, + index, + interval, + max_signals: maxSignals, + risk_score: riskScore, + name, + severity, + tags, + to, + type, + threat, + references, + version, + note, + } = rule; - // Note: we do not pass down enabled as we do not want to suddenly disable - // or enable rules on the user when they were not expecting it if a rule updates - return patchRules({ - alertsClient, - description, - falsePositives, - from, - immutable, - query, - language, - outputIndex, - id: undefined, // We never have an id when updating from pre-packaged rules - savedId, - savedObjectsClient, - meta, - filters, - ruleId, - index, - interval, - maxSignals, - riskScore, - name, - severity, - tags, - to, - type, - threat, - references, - version, - note, - }); - }); + const existingRule = await readRules({ alertsClient, ruleId, id: undefined }); + + // Note: we do not pass down enabled as we do not want to suddenly disable + // or enable rules on the user when they were not expecting it if a rule updates + return patchRules({ + alertsClient, + description, + falsePositives, + from, + immutable, + query, + language, + outputIndex, + rule: existingRule, + savedId, + savedObjectsClient, + meta, + filters, + index, + interval, + maxSignals, + riskScore, + name, + severity, + tags, + to, + type, + threat, + references, + version, + note, + }); + }) + ); }; diff --git a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts index ca259b358172..6160f34faef3 100644 --- a/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts +++ b/x-pack/plugins/siem/server/lib/detection_engine/signals/signal_rule_alert_type.ts @@ -8,7 +8,7 @@ import { performance } from 'perf_hooks'; import { Logger, KibanaRequest } from 'src/core/server'; import { SIGNALS_ID, DEFAULT_SEARCH_AFTER_PAGE_SIZE } from '../../../../common/constants'; -import { isJobStarted, isMlRule } from '../../../../common/detection_engine/ml_helpers'; +import { isJobStarted, isMlRule } from '../../../../common/machine_learning/helpers'; import { SetupPlugins } from '../../../plugin'; import { buildEventsSearchQuery } from './build_events_query'; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts b/x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts new file mode 100644 index 000000000000..93c3a74c7137 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/authz.test.ts @@ -0,0 +1,265 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { KibanaRequest } from '../../../../../../src/core/server'; +import { httpServerMock } from '../../../../../../src/core/server/mocks'; +import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; +import { mlServicesMock } from './mocks'; +import { hasMlLicense, isMlAdmin, buildMlAuthz } from './authz'; +import { licensingMock } from '../../../../licensing/server/mocks'; + +jest.mock('../../../common/machine_learning/has_ml_admin_permissions'); + +describe('isMlAdmin', () => { + it('returns true if hasMlAdminPermissions is true', async () => { + const mockMl = mlServicesMock.create(); + const request = httpServerMock.createKibanaRequest(); + (hasMlAdminPermissions as jest.Mock).mockReturnValue(true); + + expect(await isMlAdmin({ ml: mockMl, request })).toEqual(true); + }); + + it('returns false if hasMlAdminPermissions is false', async () => { + const mockMl = mlServicesMock.create(); + const request = httpServerMock.createKibanaRequest(); + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + + expect(await isMlAdmin({ ml: mockMl, request })).toEqual(false); + }); +}); + +describe('hasMlLicense', () => { + let licenseMock: ReturnType; + + beforeEach(() => { + licenseMock = licensingMock.createLicenseMock(); + }); + + it('returns false for an insufficient license', () => { + licenseMock.hasAtLeast.mockReturnValue(false); + + expect(hasMlLicense(licenseMock)).toEqual(false); + }); + + it('returns true for a sufficient license', () => { + licenseMock.hasAtLeast.mockReturnValue(true); + + expect(hasMlLicense(licenseMock)).toEqual(true); + }); +}); + +describe('mlAuthz', () => { + let licenseMock: ReturnType; + let mlMock: ReturnType; + let request: KibanaRequest; + + beforeEach(() => { + licenseMock = licensingMock.createLicenseMock(); + mlMock = mlServicesMock.create(); + request = httpServerMock.createKibanaRequest(); + }); + + describe('#validateRuleType', () => { + it('is valid for a non-ML rule when ML plugin is unavailable', async () => { + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: undefined, + request, + }); + + const validation = await mlAuthz.validateRuleType('query'); + + expect(validation.valid).toEqual(true); + }); + + it('is invalid for an ML rule when ML plugin is unavailable', async () => { + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: undefined, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(false); + expect(validation.message).toEqual( + 'The machine learning plugin is not available. Try enabling the plugin.' + ); + }); + + it('is valid for a non-ML rule when license is insufficient', async () => { + licenseMock.hasAtLeast.mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('query'); + + expect(validation.valid).toEqual(true); + }); + + it('is invalid for an ML rule when license is insufficient', async () => { + licenseMock.hasAtLeast.mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(false); + expect(validation.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + }); + + it('is valid for a non-ML rule when not an ML Admin', async () => { + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('query'); + + expect(validation.valid).toEqual(true); + }); + + it('is invalid for an ML rule when not an ML Admin', async () => { + licenseMock.hasAtLeast.mockReturnValue(true); // prevents short-circuit on license check + (hasMlAdminPermissions as jest.Mock).mockReturnValue(false); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(false); + expect(validation.message).toEqual( + 'The current user is not a machine learning administrator.' + ); + }); + + it('is valid for an ML rule if ML available, license is sufficient, and an ML Admin', async () => { + licenseMock.hasAtLeast.mockReturnValue(true); + (hasMlAdminPermissions as jest.Mock).mockReturnValue(true); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validation = await mlAuthz.validateRuleType('machine_learning'); + + expect(validation.valid).toEqual(true); + expect(validation.message).toBeUndefined(); + }); + + it('only calls ml services once for multiple invocations', async () => { + const mockMlCapabilities = jest.fn(); + mlMock.mlSystemProvider.mockImplementation(() => ({ + mlInfo: jest.fn(), + mlSearch: jest.fn(), + mlCapabilities: mockMlCapabilities, + })); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + await mlAuthz.validateRuleType('machine_learning'); + await mlAuthz.validateRuleType('machine_learning'); + await mlAuthz.validateRuleType('machine_learning'); + + expect(mockMlCapabilities).toHaveBeenCalledTimes(1); + }); + + it('does not call ml services for non-ML rules', async () => { + const mockMlCapabilities = jest.fn(); + mlMock.mlSystemProvider.mockImplementation(() => ({ + mlInfo: jest.fn(), + mlSearch: jest.fn(), + mlCapabilities: mockMlCapabilities, + })); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + await mlAuthz.validateRuleType('query'); + await mlAuthz.validateRuleType('query'); + await mlAuthz.validateRuleType('query'); + + expect(mockMlCapabilities).not.toHaveBeenCalled(); + }); + + it('validates the same cache result per request if permissions change mid-stream', async () => { + licenseMock.hasAtLeast.mockReturnValueOnce(false); + licenseMock.hasAtLeast.mockReturnValueOnce(true); + + const mlAuthz = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validationFirst = await mlAuthz.validateRuleType('machine_learning'); + const validationSecond = await mlAuthz.validateRuleType('machine_learning'); + + expect(validationFirst.valid).toEqual(false); + expect(validationFirst.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + expect(validationSecond.valid).toEqual(false); + expect(validationSecond.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + }); + + it('will invalidate the cache result if the builder is called a second time after a license change', async () => { + licenseMock.hasAtLeast.mockReturnValueOnce(false); + licenseMock.hasAtLeast.mockReturnValueOnce(true); + (hasMlAdminPermissions as jest.Mock).mockReturnValueOnce(true); + + const mlAuthzFirst = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const mlAuthzSecond = buildMlAuthz({ + license: licenseMock, + ml: mlMock, + request, + }); + + const validationFirst = await mlAuthzFirst.validateRuleType('machine_learning'); + const validationSecond = await mlAuthzSecond.validateRuleType('machine_learning'); + + expect(validationFirst.valid).toEqual(false); + expect(validationFirst.message).toEqual( + 'Your license does not support machine learning. Please upgrade your license.' + ); + expect(validationSecond.valid).toEqual(true); + expect(validationSecond.message).toBeUndefined(); + }); + }); +}); diff --git a/x-pack/plugins/siem/server/lib/machine_learning/authz.ts b/x-pack/plugins/siem/server/lib/machine_learning/authz.ts new file mode 100644 index 000000000000..fb74f4624436 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/authz.ts @@ -0,0 +1,120 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +import { KibanaRequest } from '../../../../../../src/core/server/'; +import { ILicense } from '../../../../licensing/server'; +import { MlPluginSetup } from '../../../../ml/server'; +import { SetupPlugins } from '../../plugin'; +import { MINIMUM_ML_LICENSE } from '../../../common/constants'; +import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; +import { isMlRule } from '../../../common/machine_learning/helpers'; +import { RuleType } from '../../../common/detection_engine/types'; +import { Validation } from './validation'; +import { cache } from './cache'; + +export interface MlAuthz { + validateRuleType: (type: RuleType) => Promise; +} + +/** + * Builds ML authz services + * + * @param license A {@link ILicense} representing the user license + * @param ml {@link MlPluginSetup} ML services to fetch ML capabilities + * @param request A {@link KibanaRequest} representing the authenticated user + * + * @returns A {@link MLAuthz} service object + */ +export const buildMlAuthz = ({ + license, + ml, + request, +}: { + license: ILicense; + ml: SetupPlugins['ml']; + request: KibanaRequest; +}): MlAuthz => { + const cachedValidate = cache(() => validateMlAuthz({ license, ml, request })); + const validateRuleType = async (type: RuleType): Promise => { + if (!isMlRule(type)) { + return { valid: true, message: undefined }; + } else { + return cachedValidate(); + } + }; + + return { validateRuleType }; +}; + +/** + * Validates ML authorization for the current request + * + * @param license A {@link ILicense} representing the user license + * @param ml {@link MlPluginSetup} ML services to fetch ML capabilities + * @param request A {@link KibanaRequest} representing the authenticated user + * + * @returns A {@link Validation} validation + */ +export const validateMlAuthz = async ({ + license, + ml, + request, +}: { + license: ILicense; + ml: SetupPlugins['ml']; + request: KibanaRequest; +}): Promise => { + let message: string | undefined; + + if (ml == null) { + message = i18n.translate('xpack.siem.authz.mlUnavailable', { + defaultMessage: 'The machine learning plugin is not available. Try enabling the plugin.', + }); + } else if (!hasMlLicense(license)) { + message = i18n.translate('xpack.siem.licensing.unsupportedMachineLearningMessage', { + defaultMessage: + 'Your license does not support machine learning. Please upgrade your license.', + }); + } else if (!(await isMlAdmin({ ml, request }))) { + message = i18n.translate('xpack.siem.authz.userIsNotMlAdminMessage', { + defaultMessage: 'The current user is not a machine learning administrator.', + }); + } + + return { + valid: message === undefined, + message, + }; +}; + +/** + * Whether the license allows ML usage + * + * @param license A {@link ILicense} representing the user license + * + */ +export const hasMlLicense = (license: ILicense): boolean => license.hasAtLeast(MINIMUM_ML_LICENSE); + +/** + * Whether the requesting user is an ML Admin + * + * @param request A {@link KibanaRequest} representing the authenticated user + * @param ml {@link MlPluginSetup} ML services to fetch ML capabilities + * + */ +export const isMlAdmin = async ({ + request, + ml, +}: { + request: KibanaRequest; + ml: MlPluginSetup; +}): Promise => { + const scopedMlClient = ml.mlClient.asScoped(request).callAsCurrentUser; + const mlCapabilities = await ml.mlSystemProvider(scopedMlClient, request).mlCapabilities(); + return hasMlAdminPermissions(mlCapabilities); +}; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts b/x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts new file mode 100644 index 000000000000..14e4cfe8ebdd --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/cache.test.ts @@ -0,0 +1,41 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { cache } from './cache'; + +describe('cache', () => { + it('does not call the function if not invoked', () => { + const fn = jest.fn(); + cache(fn); + + expect(fn).not.toHaveBeenCalled(); + }); + + it('returns the function result', () => { + const fn = jest.fn().mockReturnValue('result'); + const cachedFn = cache(fn); + + expect(cachedFn()).toEqual('result'); + }); + + it('only calls the function once for multiple invocations', () => { + const fn = jest.fn(); + const cachedFn = cache(fn); + + cachedFn(); + cachedFn(); + cachedFn(); + + expect(fn).toHaveBeenCalledTimes(1); + }); + + it('returns the function result on subsequent invocations', () => { + const fn = jest.fn().mockReturnValue('result'); + const cachedFn = cache(fn); + + expect([cachedFn(), cachedFn(), cachedFn()]).toEqual(['result', 'result', 'result']); + }); +}); diff --git a/x-pack/plugins/siem/server/lib/machine_learning/cache.ts b/x-pack/plugins/siem/server/lib/machine_learning/cache.ts new file mode 100644 index 000000000000..1a7b95f2c5af --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/cache.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +/** + * Caches the result of a function call + * + * @param fn the function to be invoked + * + * @returns A function that will invoke the given function on its first invocation, + * and then simply return the result on subsequent calls + */ +export const cache = (fn: () => T): (() => T) => { + let result: T | null = null; + + return () => { + if (result === null) { + result = fn(); + } + return result; + }; +}; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/mocks.ts b/x-pack/plugins/siem/server/lib/machine_learning/mocks.ts new file mode 100644 index 000000000000..f044022d6db6 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/mocks.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { MlPluginSetup } from '../../../../ml/server'; +import { elasticsearchServiceMock } from '../../../../../../src/core/server/mocks'; + +const createMockClient = () => elasticsearchServiceMock.createClusterClient(); +const createMockMlSystemProvider = () => + jest.fn(() => ({ + mlCapabilities: jest.fn(), + })); + +export const mlServicesMock = { + create: () => + (({ + mlSystemProvider: createMockMlSystemProvider(), + mlClient: createMockClient(), + } as unknown) as jest.Mocked), +}; + +const mockValidateRuleType = jest.fn().mockResolvedValue({ valid: true, message: undefined }); +const createBuildMlAuthzMock = () => + jest.fn().mockReturnValue({ validateRuleType: mockValidateRuleType }); + +export const mlAuthzMock = { + create: () => ({ + buildMlAuthz: createBuildMlAuthzMock(), + }), +}; diff --git a/x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts b/x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts new file mode 100644 index 000000000000..effe59c073c5 --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/validation.test.ts @@ -0,0 +1,36 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { toHttpError, throwHttpError } from './validation'; + +describe('toHttpError', () => { + it('returns nothing if validation is valid', () => { + expect(toHttpError({ valid: true, message: undefined })).toBeUndefined(); + }); + + it('returns an HTTP error if validation is invalid', () => { + const error = toHttpError({ valid: false, message: 'validation message' }); + expect(error?.statusCode).toEqual(403); + expect(error?.message).toEqual('validation message'); + }); +}); + +describe('throwHttpError', () => { + it('does nothing if validation is valid', () => { + expect(() => throwHttpError({ valid: true, message: undefined })).not.toThrowError(); + }); + + it('throws an error if validation is invalid', () => { + let error; + try { + throwHttpError({ valid: false, message: 'validation failed' }); + } catch (e) { + error = e; + } + expect(error?.statusCode).toEqual(403); + expect(error?.message).toEqual('validation failed'); + }); +}); diff --git a/x-pack/plugins/siem/server/lib/machine_learning/validation.ts b/x-pack/plugins/siem/server/lib/machine_learning/validation.ts new file mode 100644 index 000000000000..eab85bbb510b --- /dev/null +++ b/x-pack/plugins/siem/server/lib/machine_learning/validation.ts @@ -0,0 +1,33 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +export interface Validation { + valid: boolean; + message: string | undefined; +} + +export class HttpAuthzError extends Error { + public readonly statusCode: number; + + constructor(message: string | undefined) { + super(message); + this.name = 'HttpAuthzError'; + this.statusCode = 403; + } +} + +export const toHttpError = (validation: Validation): HttpAuthzError | undefined => { + if (!validation.valid) { + return new HttpAuthzError(validation.message); + } +}; + +export const throwHttpError = (validation: Validation): void => { + const error = toHttpError(validation); + if (error) { + throw error; + } +}; diff --git a/x-pack/plugins/siem/server/plugin.ts b/x-pack/plugins/siem/server/plugin.ts index 3ef4b39bd097..d296ee94e895 100644 --- a/x-pack/plugins/siem/server/plugin.ts +++ b/x-pack/plugins/siem/server/plugin.ts @@ -98,7 +98,8 @@ export class Plugin implements IPlugin { // Detection Engine Rule routes that have the REST endpoints of /api/detection_engine/rules // All REST rule creation, deletion, updating, etc...... - createRulesRoute(router); + createRulesRoute(router, ml); readRulesRoute(router); - updateRulesRoute(router); - patchRulesRoute(router); + updateRulesRoute(router, ml); + patchRulesRoute(router, ml); deleteRulesRoute(router); findRulesRoute(router); addPrepackedRulesRoute(router); getPrepackagedRulesStatusRoute(router); - createRulesBulkRoute(router); - updateRulesBulkRoute(router); - patchRulesBulkRoute(router); + createRulesBulkRoute(router, ml); + updateRulesBulkRoute(router, ml); + patchRulesBulkRoute(router, ml); deleteRulesBulkRoute(router); createTimelinesRoute(router, config, security); updateTimelinesRoute(router, config, security); - importRulesRoute(router, config); + importRulesRoute(router, config, ml); exportRulesRoute(router, config); importTimelinesRoute(router, config, security); From 7b5c9c04edc6094b4662b375a6917d270b428191 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 11 May 2020 12:58:24 -0700 Subject: [PATCH 33/67] skip flaky suite (#65741) --- .../__jest__/client_integration/mapped_fields.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx index 8989e85d9f18..57040eaeefbd 100644 --- a/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx +++ b/x-pack/plugins/index_management/public/application/components/mappings_editor/__jest__/client_integration/mapped_fields.test.tsx @@ -10,7 +10,8 @@ import { componentHelpers, MappingsEditorTestBed, DomFields, nextTick } from './ const { setup } = componentHelpers.mappingsEditor; const onChangeHandler = jest.fn(); -describe('Mappings editor: mapped fields', () => { +// FLAKY: https://github.com/elastic/kibana/issues/65741 +describe.skip('Mappings editor: mapped fields', () => { afterEach(() => { onChangeHandler.mockReset(); }); From 56c46ae1de66530ccc8eeaba61ac67e63e023af6 Mon Sep 17 00:00:00 2001 From: orfeas0 Date: Mon, 11 May 2020 23:20:03 +0300 Subject: [PATCH 34/67] Add example of of local plugin installation (#65986) --- docs/user/plugins.asciidoc | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/docs/user/plugins.asciidoc b/docs/user/plugins.asciidoc index 83c1ab1a842b..a96fe811dc84 100644 --- a/docs/user/plugins.asciidoc +++ b/docs/user/plugins.asciidoc @@ -33,12 +33,17 @@ $ bin/kibana-plugin install x-pack === Install plugins from an arbitrary URL You can download official Elastic plugins simply by specifying their name. You -can alternatively specify a URL to a specific plugin, as in the following -example: +can alternatively specify a URL or file path to a specific plugin, as in the following +examples: ["source","shell",subs="attributes"] $ bin/kibana-plugin install https://artifacts.elastic.co/downloads/packs/x-pack/x-pack-{version}.zip +or + +["source","shell",subs="attributes"] +$ bin/kibana-plugin install file:///local/path/to/custom_plugin.zip + You can specify URLs that use the HTTP, HTTPS, or `file` protocols. [float] From 20826486784fc2cd154218a773aeef7fafe80fb8 Mon Sep 17 00:00:00 2001 From: Steph Milovic Date: Mon, 11 May 2020 14:27:02 -0600 Subject: [PATCH 35/67] [SIEM] [Cases] Case API tests (#65777) --- .../tests/cases/comments/delete_comment.ts | 76 +++++ .../tests/cases/comments/find_comments.ts | 93 ++++++ .../basic/tests/cases/comments/get_comment.ts | 53 +++ .../tests/cases/comments/patch_comment.ts | 123 +++++++ .../tests/cases/comments/post_comment.ts | 57 ++++ .../basic/tests/cases/delete_cases.ts | 76 +++++ .../basic/tests/cases/find_cases.ts | 158 +++++++++ .../basic/tests/cases/get_case.ts | 52 +++ .../basic/tests/cases/patch_cases.ts | 139 ++++++++ .../basic/tests/cases/post_case.ts | 46 +++ .../basic/tests/cases/push_case.ts | 161 +++++++++ .../tests/cases/reporters/get_reporters.ts | 40 +++ .../basic/tests/cases/status/get_status.ts | 59 ++++ .../basic/tests/cases/tags/get_tags.ts | 43 +++ .../user_actions/get_all_user_actions.ts | 307 ++++++++++++++++++ .../case_api_integration/basic/tests/index.ts | 19 +- .../case_api_integration/common/lib/mock.ts | 50 +++ .../case_api_integration/common/lib/utils.ts | 61 ++-- 18 files changed, 1580 insertions(+), 33 deletions(-) create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/get_case.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/post_case.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/push_case.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts create mode 100644 x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts create mode 100644 x-pack/test/case_api_integration/common/lib/mock.ts diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts new file mode 100644 index 000000000000..afae04ae9cf5 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/delete_comment.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('delete_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should delete a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: comment } = await supertest + .delete(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send(); + + expect(comment).to.eql({}); + }); + + it('unhappy path - 404s when comment belongs to different case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body } = await supertest + .delete(`${CASES_URL}/fake-id/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + expect(body.message).to.eql( + `This comment ${patchedCase.comments[0].id} does not exist in fake-id).` + ); + }); + + it('unhappy path - 404s when comment is not there', async () => { + await supertest + .delete(`${CASES_URL}/fake-id/comments/fake-id`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts new file mode 100644 index 000000000000..e5c44de90b5a --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/find_comments.ts @@ -0,0 +1,93 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('find_comments', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should find all case comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + // post 2 comments + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: caseComments } = await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/_find`) + .set('kbn-xsrf', 'true') + .send(); + + expect(caseComments.comments).to.eql(patchedCase.comments); + }); + + it('should filter case comments', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + // post 2 comments + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ comment: 'unique' }); + + const { body: caseComments } = await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/_find?search=unique`) + .set('kbn-xsrf', 'true') + .send(); + + expect(caseComments.comments).to.eql([patchedCase.comments[1]]); + }); + + it('unhappy path - 400s when query is bad', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/_find?perPage=true`) + .set('kbn-xsrf', 'true') + .send() + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts new file mode 100644 index 000000000000..53da0ef1d2b1 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/get_comment.ts @@ -0,0 +1,53 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should get a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body: comment } = await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(comment).to.eql(patchedCase.comments[0]); + }); + it('unhappy path - 404s when comment is not there', async () => { + await supertest + .get(`${CASES_URL}/fake-id/comments/fake-comment`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts new file mode 100644 index 000000000000..73aeeb0fb989 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/patch_comment.ts @@ -0,0 +1,123 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('patch_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should patch a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const newComment = 'Well I decided to update my comment. So what? Deal with it.'; + const { body } = await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: patchedCase.comments[0].version, + comment: newComment, + }); + expect(body.comments[0].comment).to.eql(newComment); + expect(body.updated_by).to.eql(defaultUser); + }); + + it('unhappy path - 404s when comment is not there', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: 'id', + version: 'version', + comment: 'comment', + }) + .expect(404); + }); + + it('unhappy path - 404s when case is not there', async () => { + await supertest + .patch(`${CASES_URL}/fake-id/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: 'id', + version: 'version', + comment: 'comment', + }) + .expect(404); + }); + + it('unhappy path - 400s when patch body is bad', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: patchedCase.comments[0].version, + comment: true, + }) + .expect(400); + }); + + it('unhappy path - 409s when conflict', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const newComment = 'Well I decided to update my comment. So what? Deal with it.'; + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: 'version-mismatch', + comment: newComment, + }) + .expect(409); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts b/x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts new file mode 100644 index 000000000000..6e8353f8ea86 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/comments/post_comment.ts @@ -0,0 +1,57 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('post_comment', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should post a comment', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + expect(patchedCase.comments[0].comment).to.eql(postCommentReq.comment); + expect(patchedCase.updated_by).to.eql(defaultUser); + }); + + it('unhappy path - 400s when post body is bad', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + bad: 'comment', + }) + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts b/x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts new file mode 100644 index 000000000000..aa2465e44c5c --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/delete_cases.ts @@ -0,0 +1,76 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq } from '../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions, deleteComments } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('delete_cases', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + + it('should delete a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body } = await supertest + .delete(`${CASES_URL}?ids=["${postedCase.id}"]`) + .set('kbn-xsrf', 'true') + .send() + .expect(204); + + expect(body).to.eql({}); + }); + + it(`should delete a case's comments when that case gets deleted`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + await supertest + .delete(`${CASES_URL}?ids=["${postedCase.id}"]`) + .set('kbn-xsrf', 'true') + .send() + .expect(204); + await supertest + .get(`${CASES_URL}/${postedCase.id}/comments/${patchedCase.comments[0].id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + it('unhappy path - 404s when case is not there', async () => { + await supertest + .delete(`${CASES_URL}?ids=["fake-id"]`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts b/x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts new file mode 100644 index 000000000000..04d195ea7350 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/find_cases.ts @@ -0,0 +1,158 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { postCaseReq, postCommentReq, findCasesResp } from '../../../common/lib/mock'; +import { deleteCases, deleteComments, deleteCasesUserActions } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + describe('find_cases', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteCasesUserActions(es); + }); + it('should return empty response', async () => { + const { body } = await supertest + .get(`${CASES_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql(findCasesResp); + }); + + it('should return cases', async () => { + const { body: a } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: b } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: c } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + ...findCasesResp, + total: 3, + cases: [a, b, c], + count_open_cases: 3, + }); + }); + + it('filters by tags', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ ...postCaseReq, tags: ['unique'] }); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc&tags=unique`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + ...findCasesResp, + total: 1, + cases: [postedCase], + count_open_cases: 1, + }); + }); + + it('correctly counts comments', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + // post 2 comments + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + ...findCasesResp, + total: 1, + cases: [ + { + ...patchedCase, + comments: [], + totalComment: 2, + }, + ], + count_open_cases: 1, + }); + }); + + it('correctly counts open/closed', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + const { body } = await supertest + .get(`${CASES_URL}/_find?sortOrder=asc`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body.count_open_cases).to.eql(1); + expect(body.count_closed_cases).to.eql(1); + }); + it('unhappy path - 400s when bad query supplied', async () => { + await supertest + .get(`${CASES_URL}/_find?perPage=true`) + .set('kbn-xsrf', 'true') + .send() + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/get_case.ts b/x-pack/test/case_api_integration/basic/tests/cases/get_case.ts new file mode 100644 index 000000000000..9aad86126cea --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/get_case.ts @@ -0,0 +1,52 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { + postCaseReq, + postCaseResp, + removeServerGeneratedPropertiesFromCase, +} from '../../../common/lib/mock'; +import { deleteCases } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_case', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + const data = removeServerGeneratedPropertiesFromCase(body); + expect(data).to.eql(postCaseResp(postedCase.id)); + }); + it('unhappy path - 404s when case is not there', async () => { + await supertest + .get(`${CASES_URL}/fake-id`) + .set('kbn-xsrf', 'true') + .send() + .expect(404); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts b/x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts new file mode 100644 index 000000000000..caeaf46cbc95 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/patch_cases.ts @@ -0,0 +1,139 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { + defaultUser, + postCaseReq, + postCaseResp, + removeServerGeneratedPropertiesFromCase, +} from '../../../common/lib/mock'; +import { deleteCases, deleteCasesUserActions } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('patch_cases', () => { + afterEach(async () => { + await deleteCases(es); + await deleteCasesUserActions(es); + }); + + it('should patch a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + const { body: patchedCases } = await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + + const data = removeServerGeneratedPropertiesFromCase(patchedCases[0]); + expect(data).to.eql({ + ...postCaseResp(postedCase.id), + closed_by: defaultUser, + status: 'closed', + updated_by: defaultUser, + }); + }); + + it('unhappy path - 404s when case is not there', async () => { + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: 'not-real', + version: 'version', + status: 'closed', + }, + ], + }) + .expect(404); + }); + + it('unhappy path - 406s when excess data sent', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + badKey: 'closed', + }, + ], + }) + .expect(406); + }); + + it('unhappy path - 400s when bad data sent', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: true, + }, + ], + }) + .expect(400); + }); + + it('unhappy path - 409s when conflict', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + await supertest + .patch(`${CASES_URL}`) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: 'version', + status: 'closed', + }, + ], + }) + .expect(409); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/post_case.ts b/x-pack/test/case_api_integration/basic/tests/cases/post_case.ts new file mode 100644 index 000000000000..ab668c2c3272 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/post_case.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASES_URL } from '../../../../../plugins/case/common/constants'; +import { + postCaseReq, + postCaseResp, + removeServerGeneratedPropertiesFromCase, +} from '../../../common/lib/mock'; +import { deleteCases } from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('post_case', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should post a case', async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const data = removeServerGeneratedPropertiesFromCase(postedCase); + expect(data).to.eql(postCaseResp(postedCase.id)); + }); + it('unhappy path - 400s when bad query supplied', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ ...postCaseReq, badKey: true }) + .expect(400); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/push_case.ts b/x-pack/test/case_api_integration/basic/tests/cases/push_case.ts new file mode 100644 index 000000000000..848b980dee76 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/push_case.ts @@ -0,0 +1,161 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../common/ftr_provider_context'; + +import { CASE_CONFIGURE_URL, CASES_URL } from '../../../../../plugins/case/common/constants'; +import { postCaseReq, defaultUser, postCommentReq } from '../../../common/lib/mock'; +import { + deleteCases, + deleteCasesUserActions, + deleteComments, + deleteConfiguration, + getConfiguration, +} from '../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('push_case', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteConfiguration(es); + await deleteCasesUserActions(es); + }); + + it('should push a case', async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body } = await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + expect(body.connector_id).to.eql(configure.connector_id); + expect(body.external_service.pushed_by).to.eql(defaultUser); + }); + + it('pushes a comment appropriately', async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body } = await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + expect(body.comments[0].pushed_by).to.eql(defaultUser); + }); + it('unhappy path - 404s when case does not exist', async () => { + await supertest + .post(`${CASES_URL}/fake-id/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: 'connector_id', + connector_name: 'connector_name', + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(404); + }); + it('unhappy path - 400s when bad data supplied', async () => { + await supertest + .post(`${CASES_URL}/fake-id/_push`) + .set('kbn-xsrf', 'true') + .send({ + badKey: 'connector_id', + }) + .expect(400); + }); + it('unhappy path = 409s when case is closed', async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(409); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts b/x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts new file mode 100644 index 000000000000..a781b928b2b6 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/reporters/get_reporters.ts @@ -0,0 +1,40 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL, CASE_REPORTERS_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq } from '../../../../common/lib/mock'; +import { deleteCases } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_reporters', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return reporters', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq) + .expect(200); + + const { body } = await supertest + .get(CASE_REPORTERS_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql([defaultUser]); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts b/x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts new file mode 100644 index 000000000000..6552f588bdc1 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/status/get_status.ts @@ -0,0 +1,59 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL, CASE_STATUS_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq } from '../../../../common/lib/mock'; +import { deleteCases } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_status', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return case statuses', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(CASE_STATUS_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + count_open_cases: 1, + count_closed_cases: 1, + }); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts b/x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts new file mode 100644 index 000000000000..9b769e3c5eef --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/tags/get_tags.ts @@ -0,0 +1,43 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASES_URL, CASE_TAGS_URL } from '../../../../../../plugins/case/common/constants'; +import { postCaseReq } from '../../../../common/lib/mock'; +import { deleteCases } from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_tags', () => { + afterEach(async () => { + await deleteCases(es); + }); + + it('should return case tags', async () => { + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ ...postCaseReq, tags: ['unique'] }); + + const { body } = await supertest + .get(CASE_TAGS_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql(['defacement', 'unique']); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts b/x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts new file mode 100644 index 000000000000..6bbd43eef143 --- /dev/null +++ b/x-pack/test/case_api_integration/basic/tests/cases/user_actions/get_all_user_actions.ts @@ -0,0 +1,307 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; +import { FtrProviderContext } from '../../../../common/ftr_provider_context'; + +import { CASE_CONFIGURE_URL, CASES_URL } from '../../../../../../plugins/case/common/constants'; +import { defaultUser, postCaseReq, postCommentReq } from '../../../../common/lib/mock'; +import { + deleteCases, + deleteCasesUserActions, + deleteComments, + deleteConfiguration, + getConfiguration, +} from '../../../../common/lib/utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('es'); + + describe('get_all_user_actions', () => { + afterEach(async () => { + await deleteCases(es); + await deleteComments(es); + await deleteConfiguration(es); + await deleteCasesUserActions(es); + }); + + it(`on new case, user action: 'create' should be called with actionFields: ['description', 'status', 'tags', 'title']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(1); + + expect(body[0].action_field).to.eql(['description', 'status', 'tags', 'title']); + expect(body[0].action).to.eql('create'); + expect(body[0].old_value).to.eql(null); + expect(body[0].new_value).to.eql(JSON.stringify(postCaseReq)); + }); + + it(`on close case, user action: 'update' should be called with actionFields: ['status']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + status: 'closed', + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['status']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql('open'); + expect(body[1].new_value).to.eql('closed'); + }); + + it(`on update case connector, user action: 'update' should be called with actionFields: ['connector_id']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const newConnectorId = '12345'; + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + connector_id: newConnectorId, + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['connector_id']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql('none'); + expect(body[1].new_value).to.eql(newConnectorId); + }); + + it(`on update tags, user action: 'add' and 'delete' should be called with actionFields: ['tags']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + tags: ['cool', 'neat'], + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(3); + expect(body[1].action_field).to.eql(['tags']); + expect(body[1].action).to.eql('add'); + expect(body[1].old_value).to.eql(null); + expect(body[1].new_value).to.eql('cool, neat'); + expect(body[2].action_field).to.eql(['tags']); + expect(body[2].action).to.eql('delete'); + expect(body[2].old_value).to.eql(null); + expect(body[2].new_value).to.eql('defacement'); + }); + + it(`on update title, user action: 'update' should be called with actionFields: ['title']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const newTitle = 'Such a great title'; + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + title: newTitle, + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['title']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql(postCaseReq.title); + expect(body[1].new_value).to.eql(newTitle); + }); + + it(`on update description, user action: 'update' should be called with actionFields: ['description']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const newDesc = 'Such a great description'; + await supertest + .patch(CASES_URL) + .set('kbn-xsrf', 'true') + .send({ + cases: [ + { + id: postedCase.id, + version: postedCase.version, + description: newDesc, + }, + ], + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + expect(body[1].action_field).to.eql(['description']); + expect(body[1].action).to.eql('update'); + expect(body[1].old_value).to.eql(postCaseReq.description); + expect(body[1].new_value).to.eql(newDesc); + }); + + it(`on new comment, user action: 'create' should be called with actionFields: ['comments']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + + expect(body[1].action_field).to.eql(['comment']); + expect(body[1].action).to.eql('create'); + expect(body[1].old_value).to.eql(null); + expect(body[1].new_value).to.eql(postCommentReq.comment); + }); + + it(`on update comment, user action: 'update' should be called with actionFields: ['comments']`, async () => { + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + const { body: patchedCase } = await supertest + .post(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send(postCommentReq); + const newComment = 'Well I decided to update my comment. So what? Deal with it.'; + await supertest + .patch(`${CASES_URL}/${postedCase.id}/comments`) + .set('kbn-xsrf', 'true') + .send({ + id: patchedCase.comments[0].id, + version: patchedCase.comments[0].version, + comment: newComment, + }); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(3); + + expect(body[2].action_field).to.eql(['comment']); + expect(body[2].action).to.eql('update'); + expect(body[2].old_value).to.eql(postCommentReq.comment); + expect(body[2].new_value).to.eql(newComment); + }); + + it(`on new push to service, user action: 'push-to-service' should be called with actionFields: ['pushed']`, async () => { + const { body: configure } = await supertest + .post(CASE_CONFIGURE_URL) + .set('kbn-xsrf', 'true') + .send(getConfiguration()) + .expect(200); + const { body: postedCase } = await supertest + .post(CASES_URL) + .set('kbn-xsrf', 'true') + .send(postCaseReq); + + await supertest + .post(`${CASES_URL}/${postedCase.id}/_push`) + .set('kbn-xsrf', 'true') + .send({ + connector_id: configure.connector_id, + connector_name: configure.connector_name, + external_id: 'external_id', + external_title: 'external_title', + external_url: 'external_url', + }) + .expect(200); + + const { body } = await supertest + .get(`${CASES_URL}/${postedCase.id}/user_actions`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.length).to.eql(2); + + expect(body[1].action_field).to.eql(['pushed']); + expect(body[1].action).to.eql('push-to-service'); + expect(body[1].old_value).to.eql(null); + const newValue = JSON.parse(body[1].new_value); + expect(newValue.connector_id).to.eql(configure.connector_id); + expect(newValue.pushed_by).to.eql(defaultUser); + }); + }); +}; diff --git a/x-pack/test/case_api_integration/basic/tests/index.ts b/x-pack/test/case_api_integration/basic/tests/index.ts index efd5369c019d..b152a97a2861 100644 --- a/x-pack/test/case_api_integration/basic/tests/index.ts +++ b/x-pack/test/case_api_integration/basic/tests/index.ts @@ -12,9 +12,24 @@ export default ({ loadTestFile }: FtrProviderContext): void => { // Fastest ciGroup for the moment. this.tags('ciGroup2'); + loadTestFile(require.resolve('./cases/comments/delete_comment')); + loadTestFile(require.resolve('./cases/comments/find_comments')); + loadTestFile(require.resolve('./cases/comments/get_comment')); + loadTestFile(require.resolve('./cases/comments/patch_comment')); + loadTestFile(require.resolve('./cases/comments/post_comment')); + loadTestFile(require.resolve('./cases/delete_cases')); + loadTestFile(require.resolve('./cases/find_cases')); + loadTestFile(require.resolve('./cases/get_case')); + loadTestFile(require.resolve('./cases/patch_cases')); + loadTestFile(require.resolve('./cases/post_case')); + loadTestFile(require.resolve('./cases/push_case')); + loadTestFile(require.resolve('./cases/reporters/get_reporters')); + loadTestFile(require.resolve('./cases/status/get_status')); + loadTestFile(require.resolve('./cases/tags/get_tags')); + loadTestFile(require.resolve('./cases/user_actions/get_all_user_actions')); loadTestFile(require.resolve('./configure/get_configure')); - loadTestFile(require.resolve('./configure/post_configure')); - loadTestFile(require.resolve('./configure/patch_configure')); loadTestFile(require.resolve('./configure/get_connectors')); + loadTestFile(require.resolve('./configure/patch_configure')); + loadTestFile(require.resolve('./configure/post_configure')); }); }; diff --git a/x-pack/test/case_api_integration/common/lib/mock.ts b/x-pack/test/case_api_integration/common/lib/mock.ts new file mode 100644 index 000000000000..728eaf88617e --- /dev/null +++ b/x-pack/test/case_api_integration/common/lib/mock.ts @@ -0,0 +1,50 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { + CasePostRequest, + CaseResponse, + CasesFindResponse, +} from '../../../../plugins/case/common/api'; +export const defaultUser = { email: null, full_name: null, username: 'elastic' }; +export const postCaseReq: CasePostRequest = { + description: 'This is a brand new case of a bad meanie defacing data', + title: 'Super Bad Security Issue', + tags: ['defacement'], +}; + +export const postCommentReq: { comment: string } = { + comment: 'This is a cool comment', +}; + +export const postCaseResp = (id: string): Partial => ({ + ...postCaseReq, + id, + comments: [], + totalComment: 0, + connector_id: 'none', + closed_by: null, + created_by: defaultUser, + external_service: null, + status: 'open', + updated_by: null, +}); + +export const removeServerGeneratedPropertiesFromCase = ( + config: Partial +): Partial => { + const { closed_at, created_at, updated_at, version, ...rest } = config; + return rest; +}; + +export const findCasesResp: CasesFindResponse = { + page: 1, + per_page: 20, + total: 0, + cases: [], + count_open_cases: 0, + count_closed_cases: 0, +}; diff --git a/x-pack/test/case_api_integration/common/lib/utils.ts b/x-pack/test/case_api_integration/common/lib/utils.ts index df768ff09b36..4b1dc6ffa589 100644 --- a/x-pack/test/case_api_integration/common/lib/utils.ts +++ b/x-pack/test/case_api_integration/common/lib/utils.ts @@ -30,6 +30,36 @@ export const removeServerGeneratedPropertiesFromConfigure = ( return rest; }; +export const deleteCasesUserActions = async (es: Client): Promise => { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:cases-user-actions', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; + +export const deleteCases = async (es: Client): Promise => { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:cases', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; + +export const deleteComments = async (es: Client): Promise => { + await es.deleteByQuery({ + index: '.kibana', + q: 'type:cases-comments', + wait_for_completion: true, + refresh: true, + body: {}, + }); +}; + export const deleteConfiguration = async (es: Client): Promise => { await es.deleteByQuery({ index: '.kibana', @@ -39,34 +69,3 @@ export const deleteConfiguration = async (es: Client): Promise => { body: {}, }); }; - -export const getConnector = () => ({ - name: 'ServiceNow Connector', - actionTypeId: '.servicenow', - secrets: { - username: 'admin', - password: 'admin', - }, - config: { - apiUrl: 'localhost', - casesConfiguration: { - mapping: [ - { - source: 'title', - target: 'short_description', - actionType: 'overwrite', - }, - { - source: 'description', - target: 'description', - actionType: 'overwrite', - }, - { - source: 'comments', - target: 'comments', - actionType: 'append', - }, - ], - }, - }, -}); From 0c259102ed23878647c1bf0f5f2d4b5f73b6694b Mon Sep 17 00:00:00 2001 From: Kaarina Tungseth Date: Mon, 11 May 2020 15:42:56 -0500 Subject: [PATCH 36/67] [DOCS] Removed saved object options (#66072) Co-authored-by: Elastic Machine --- docs/canvas/canvas-elements.asciidoc | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/docs/canvas/canvas-elements.asciidoc b/docs/canvas/canvas-elements.asciidoc index a25460a20eb5..4149039a3f87 100644 --- a/docs/canvas/canvas-elements.asciidoc +++ b/docs/canvas/canvas-elements.asciidoc @@ -31,7 +31,7 @@ By default, most of the elements you create use demo data until you change the d [[canvas-add-object]] ==== Add a saved object -Add a <>, such as a map or Lens visualization, then customize it to fit your display needs. +Add a <>, then customize it to fit your display needs. . Click *Embed object*. From 4506ca1dffd586e5799cf1cac1cec248ab1e0916 Mon Sep 17 00:00:00 2001 From: Justin Kambic Date: Mon, 11 May 2020 17:15:51 -0400 Subject: [PATCH 37/67] Change default cert age limit value. (#65918) * Change default cert age limit value. * Refresh test snapshot. Co-authored-by: Elastic Machine --- x-pack/plugins/uptime/common/constants/settings_defaults.ts | 2 +- .../uptime/server/lib/alerts/__tests__/status_check.test.ts | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/x-pack/plugins/uptime/common/constants/settings_defaults.ts b/x-pack/plugins/uptime/common/constants/settings_defaults.ts index 82575e875577..b9e99a54b3b1 100644 --- a/x-pack/plugins/uptime/common/constants/settings_defaults.ts +++ b/x-pack/plugins/uptime/common/constants/settings_defaults.ts @@ -8,6 +8,6 @@ import { DynamicSettings } from '../runtime_types'; export const DYNAMIC_SETTINGS_DEFAULTS: DynamicSettings = { heartbeatIndices: 'heartbeat-8*', - certAgeThreshold: 365, + certAgeThreshold: 730, certExpirationThreshold: 30, }; diff --git a/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts b/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts index a89e5ff62319..73d104c1d21a 100644 --- a/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts +++ b/x-pack/plugins/uptime/server/lib/alerts/__tests__/status_check.test.ts @@ -87,7 +87,7 @@ describe('status check alert', () => { Object { "callES": [MockFunction], "dynamicSettings": Object { - "certAgeThreshold": 365, + "certAgeThreshold": 730, "certExpirationThreshold": 30, "heartbeatIndices": "heartbeat-8*", }, @@ -132,7 +132,7 @@ describe('status check alert', () => { Object { "callES": [MockFunction], "dynamicSettings": Object { - "certAgeThreshold": 365, + "certAgeThreshold": 730, "certExpirationThreshold": 30, "heartbeatIndices": "heartbeat-8*", }, From 5b6a99a9ac82c267076aac5769aaa94dd8fe302d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=B8ren=20Louv-Jansen?= Date: Mon, 11 May 2020 23:17:37 +0200 Subject: [PATCH 38/67] [DOCS] APM Agent config: Setting values must be string (#65875) Co-authored-by: Elastic Machine --- docs/apm/api.asciidoc | 34 +++++++++++++++++----------------- 1 file changed, 17 insertions(+), 17 deletions(-) diff --git a/docs/apm/api.asciidoc b/docs/apm/api.asciidoc index 93733f5990a4..b26c7446b91d 100644 --- a/docs/apm/api.asciidoc +++ b/docs/apm/api.asciidoc @@ -60,7 +60,7 @@ The following Agent configuration APIs are available: ====== `settings`:: -(required) Key/value object with settings and their corresponding value. +(required) Key/value object with option name and option value. `agent_name`:: (optional) The agent name is used by the UI to determine which settings to display. @@ -73,14 +73,14 @@ The following Agent configuration APIs are available: -------------------------------------------------- PUT /api/apm/settings/agent-configuration { - "service" : { - "name" : "frontend", - "environment" : "production" + "service": { + "name": "frontend", + "environment": "production" }, - "settings" : { - "transaction_sample_rate" : 0.4, - "capture_body" : "off", - "transaction_max_spans" : 500 + "settings": { + "transaction_sample_rate": "0.4", + "capture_body": "off", + "transaction_max_spans": "500" }, "agent_name": "nodejs" } @@ -124,7 +124,7 @@ PUT /api/apm/settings/agent-configuration DELETE /api/apm/settings/agent-configuration { "service" : { - "name" : "frontend", + "name": "frontend", "environment": "production" } } @@ -157,9 +157,9 @@ DELETE /api/apm/settings/agent-configuration "environment": "production" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", "capture_body": "off", - "transaction_max_spans": 200 + "transaction_max_spans": "200" }, "@timestamp": 1581934104843, "applied_by_agent": false, @@ -171,9 +171,9 @@ DELETE /api/apm/settings/agent-configuration "name": "opbeans-go" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", "capture_body": "off", - "transaction_max_spans": 300 + "transaction_max_spans": "300" }, "@timestamp": 1581934111727, "applied_by_agent": false, @@ -185,7 +185,7 @@ DELETE /api/apm/settings/agent-configuration "name": "frontend" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", }, "@timestamp": 1582031336265, "applied_by_agent": false, @@ -250,7 +250,7 @@ GET /api/apm/settings/agent-configuration "name": "frontend" }, "settings": { - "transaction_sample_rate": 1, + "transaction_sample_rate": "1", }, "@timestamp": 1582031336265, "applied_by_agent": false, @@ -266,9 +266,9 @@ GET /api/apm/settings/agent-configuration -------------------------------------------------- POST /api/apm/settings/agent-configuration/search { - "etag" : "1e58c178efeebae15c25c539da740d21dee422fc", + "etag": "1e58c178efeebae15c25c539da740d21dee422fc", "service" : { - "name" : "frontend", + "name": "frontend", "environment": "production" } } From 480c1527c835b7f040e9ae969dc7335e1bf4916a Mon Sep 17 00:00:00 2001 From: gchaps <33642766+gchaps@users.noreply.github.com> Date: Mon, 11 May 2020 14:19:50 -0700 Subject: [PATCH 39/67] [DOCS] Improves formatting in action types (#65932) * [DOCS] Fixes formatting in action types * [DOCS] Updates preconfigured connectors and alerts --- docs/user/alerting/action-types.asciidoc | 6 +- .../user/alerting/action-types/email.asciidoc | 45 +++++--- .../user/alerting/action-types/index.asciidoc | 22 ++-- .../alerting/action-types/pagerduty.asciidoc | 15 +-- .../pre-configured-connectors.asciidoc | 99 ++++++++---------- .../user/alerting/action-types/slack.asciidoc | 8 +- .../alerting/action-types/webhook.asciidoc | 43 +++++--- ...ert-pre-configured-connectors-dropdown.png | Bin 92273 -> 76704 bytes .../alert-pre-configured-slack-connector.png | Bin 146428 -> 62511 bytes ...pre-configured-action-type-select-type.png | Bin 104497 -> 84001 bytes .../pre-configured-connectors-view-screen.png | Bin 94078 -> 49182 bytes 11 files changed, 140 insertions(+), 98 deletions(-) rename docs/user/alerting/{ => action-types}/pre-configured-connectors.asciidoc (55%) diff --git a/docs/user/alerting/action-types.asciidoc b/docs/user/alerting/action-types.asciidoc index 09878b3059ac..e8dcf689df8e 100644 --- a/docs/user/alerting/action-types.asciidoc +++ b/docs/user/alerting/action-types.asciidoc @@ -41,9 +41,9 @@ see https://www.elastic.co/subscriptions[the subscription page]. [float] [[create-connectors]] -=== Preconfigured connectors and action types +=== Preconfigured actions and connectors -For out-of-the-box and standardized connectors, you can <> +For out-of-the-box and standardized connectors, you can <> before {kib} starts. If you preconfigure a connector, you can also <>. @@ -54,4 +54,4 @@ include::action-types/pagerduty.asciidoc[] include::action-types/server-log.asciidoc[] include::action-types/slack.asciidoc[] include::action-types/webhook.asciidoc[] -include::pre-configured-connectors.asciidoc[] +include::action-types/pre-configured-connectors.asciidoc[] diff --git a/docs/user/alerting/action-types/email.asciidoc b/docs/user/alerting/action-types/email.asciidoc index 81b4e210961f..4fb8a816d1ec 100644 --- a/docs/user/alerting/action-types/email.asciidoc +++ b/docs/user/alerting/action-types/email.asciidoc @@ -28,27 +28,46 @@ Password:: password for 'login' type authentication. name: preconfigured-email-action-type actionTypeId: .email config: - from: testsender@test.com <1.1> - host: validhostname <1.2> - port: 8080 <1.3> - secure: false <1.4> + from: testsender@test.com + host: validhostname + port: 8080 + secure: false secrets: - user: testuser <2.1> - password: passwordkeystorevalue <2.2> + user: testuser + password: passwordkeystorevalue -- `config` defines the action type specific to the configuration and contains the following properties: -<1.1> `from:` is an email address and correspond to *Sender*. -<1.2> `host:` is a string and correspond to *Host*. -<1.3> `port:` is a number and correspond to *Port*. -<1.4> `secure:` is a boolean and correspond to *Secure*. +[cols="2*<"] +|=== -`secrets` defines action type sensitive configuration: +| `from` +| An email address that corresponds to *Sender*. -<2.1> `user:` is a string and correspond to *User*. -<2.2> `password:` is a string and correspond to *Password*. Should be stored in the <>. +| `host` +| A string that corresponds to *Host*. +| `port` +| A number that corresponds to *Port*. + +| `secure` +| A boolean that corresponds to *Secure*. + +|=== + +`secrets` defines sensitive information for the action type: + +[cols="2*<"] +|=== + +| `user` +| A string that corresponds to *User*. + +| `password` +| A string that corresponds to *Password*. Should be stored in the <>. + +|=== [[email-action-configuration]] ==== Action configuration diff --git a/docs/user/alerting/action-types/index.asciidoc b/docs/user/alerting/action-types/index.asciidoc index c71412210c53..115423086bae 100644 --- a/docs/user/alerting/action-types/index.asciidoc +++ b/docs/user/alerting/action-types/index.asciidoc @@ -25,16 +25,26 @@ Execution time field:: This field will be automatically set to the time the ale name: action-type-index actionTypeId: .index config: - index: .kibana <1> - refresh: true <2> - executionTimeField: somedate <3> + index: .kibana + refresh: true + executionTimeField: somedate -- `config` defines the action type specific to the configuration and contains the following properties: -<1> `index:` is a string and correspond to *Index*. -<2> `refresh:` is a boolean and correspond to *Refresh*. -<3> `executionTimeField:` is a string and correspond to *Execution time field*. +[cols="2*<"] +|=== + +|`index` +| A string that corresponds to *Index*. + +|`refresh` +| A boolean that corresponds to *Refresh*. + +|`executionTimeField` +| A string that corresponds to *Execution time field*. + +|=== [float] diff --git a/docs/user/alerting/action-types/pagerduty.asciidoc b/docs/user/alerting/action-types/pagerduty.asciidoc index cd51ec2e3301..0468ab042e57 100644 --- a/docs/user/alerting/action-types/pagerduty.asciidoc +++ b/docs/user/alerting/action-types/pagerduty.asciidoc @@ -145,18 +145,19 @@ Integration Key:: A 32 character PagerDuty Integration Key for an integration name: preconfigured-pagerduty-action-type actionTypeId: .pagerduty config: - apiUrl: https://test.host <1.1> + apiUrl: https://test.host secrets: - routingKey: testroutingkey <2.1> + routingKey: testroutingkey -- -`config` defines the action type specific to the configuration and contains the following properties: +`config` defines the action type specific to the configuration. +`config` contains +`apiURL`, a string that corresponds to *API URL*. -<1.1> `apiUrl:` is URL string and correspond to *API URL*. +`secrets` defines sensitive information for the action type. +`secrets` contains +`routingKey`, a string that corresponds to *Integration Key*. -`secrets` defines action type sensitive configuration: - -<2.1> `routingKey:` is a string and correspond to *Integration Key*. [float] [[pagerduty-action-configuration]] diff --git a/docs/user/alerting/pre-configured-connectors.asciidoc b/docs/user/alerting/action-types/pre-configured-connectors.asciidoc similarity index 55% rename from docs/user/alerting/pre-configured-connectors.asciidoc rename to docs/user/alerting/action-types/pre-configured-connectors.asciidoc index d5c20d1853d4..b3e401256f27 100644 --- a/docs/user/alerting/pre-configured-connectors.asciidoc +++ b/docs/user/alerting/action-types/pre-configured-connectors.asciidoc @@ -1,9 +1,9 @@ [role="xpack"] [[pre-configured-action-types-and-connectors]] -== Preconfigured connectors and action types +=== Preconfigured connectors and action types -You can preconfigure an action type or a connector to have all the information it needs prior to startup +You can preconfigure a connector or action type to have all the information it needs prior to startup by adding it to the `kibana.yml` file. Preconfigured connectors offer the following capabilities: @@ -13,15 +13,15 @@ action are predefined, including the connector name and ID. - Appear in all spaces because they are not saved objects. - Cannot be edited or deleted. -Sensitive configuration information, such as credentials, can use the <>. - -A preconfigured action types has only preconfigured connectors. Preconfigured connectors can belong to either the preconfigured action type or to the regular action type. +A preconfigured action type has only preconfigured connectors. Preconfigured +connectors can belong to either the preconfigured action type or to the regular action type. [float] [[preconfigured-connector-example]] -=== Creating a preconfigured connector +==== Preconfigured connectors -The following example shows a valid configuration of two out-of-the box connectors: <> and <>. +This example shows a valid configuration for +two out-of-the box connectors: <> and <>. ```js xpack.actions.preconfigured: @@ -44,7 +44,7 @@ The following example shows a valid configuration of two out-of-the box connecto password: changeme ``` -<1> the key is the action connector identifier, eg `my-slack1` in this example. +<1> The key is the action connector identifier, `my-slack1` in this example. <2> `actionTypeId` is the action type identifier. <3> `name` is the name of the preconfigured connector. <4> `config` is the action type specific to the configuration. @@ -55,74 +55,67 @@ The following example shows a valid configuration of two out-of-the box connecto Sensitive properties, such as passwords, can also be stored in the <>. ============================================== -[float] -[[preconfigured-action-type-example]] -=== Creating a preconfigured action type - -In the `kibana.yml` file: - -. Exclude the action type from `xpack.actions.enabledActionTypes`. -. Add all its preconfigured connectors. - -The following example shows a valid configuration of preconfigured action type with one out-of-the box connector. - -```js - xpack.actions.enabledActionTypes: ['.slack', '.email', '.index'] <1> - xpack.actions.preconfigured: <2> - my-server-log: - actionTypeId: .server-log - name: 'Server log #xyz' -``` - -<1> `enabledActionTypes` should exclude preconfigured action type to prevent creating and deleting connectors. -<2> `preconfigured` is the setting for defining the list of available connectors for the preconfigured action type. - +//// [float] [[managing-pre-configured-connectors]] -=== Managing preconfigured connectors +==== View preconfigured connectors +//// -Preconfigured connectors appear in the connector list, regardless of which space the user is in. -They are tagged as “preconfigured” and cannot be deleted. +In *Management > Alerts and Actions*, preconfigured connectors +appear in the <>, +regardless of which space you are in. +They are tagged as “preconfigured”, and you cannot delete them. [role="screenshot"] image::images/pre-configured-connectors-managing.png[Connectors managing tab with pre-cofigured] -Clicking on a preconfigured connector shows the description, but not any of the configuration. +Clicking a preconfigured connector shows the description, but not the configuration. A message indicates that this is a preconfigured connector. [role="screenshot"] image::images/pre-configured-connectors-view-screen.png[Pre-configured connector view details] -The connector details preview is disabled for preconfigured connectors. +The connector details preview is disabled for preconfigured connectors +of a preconfigured action type. [role="screenshot"] image::images/pre-configured-action-type-managing.png[Connectors managing tab with pre-cofigured] - [float] -[[managing-pre-configured-action-types]] -=== Managing preconfigured action types +[[preconfigured-action-type-example]] +==== Preconfigured action type -Clicking *Create connector* shows the list of available action types. -Disabled action types are not included. +This example shows a preconfigured action type with one out-of-the box connector. -[role="screenshot"] -image::images/pre-configured-action-type-select-type.png[Pre-configured connector create menu] +```js + xpack.actions.enabledActionTypes: ['.slack', '.email', '.index'] <1> + xpack.actions.preconfigured: <2> + my-server-log: + actionTypeId: .server-log + name: 'Server log #xyz' +``` -[float] -[[pre-configured-connector-alert-form]] -=== Alert with a preconfigured connector +<1> `enabledActionTypes` excludes the preconfigured action type to prevent creating and deleting connectors. +<2> `preconfigured` is the setting for defining the list of available connectors for the preconfigured action type. -When attaching an action to an alert, -select from a list of available action types, and -then select the Slack or Webhook type. Those action types were configured previously. -The preconfigured connector is installed and is automatically selected. +[[managing-pre-configured-action-types]] +To attach a preconfigured action to an alert: -[role="screenshot"] -image::images/alert-pre-configured-slack-connector.png[Create alert with selected Slack action type] +. In *Management > Alerts and Actions*, open the *Connectors* tab. -The dropdown is populated with additional preconfigured Slack connectors. -The `preconfigured` label distinguishes them from space-aware connectors that use saved objects. +. Click *Create connector.* +. In the list of available action types, select the preconfigured action type you want. ++ +[role="screenshot"] +image::images/pre-configured-action-type-select-type.png[Pre-configured connector create menu] + +. In *Create alert*, open the connector dropdown, and then select the preconfigured +connector. ++ +The `preconfigured` label distinguishes it from a space-aware connector. ++ [role="screenshot"] image::images/alert-pre-configured-connectors-dropdown.png[Dropdown list with pre-cofigured connectors] + +. Click *Add action*. diff --git a/docs/user/alerting/action-types/slack.asciidoc b/docs/user/alerting/action-types/slack.asciidoc index afa616ba77b3..5bad8a53f898 100644 --- a/docs/user/alerting/action-types/slack.asciidoc +++ b/docs/user/alerting/action-types/slack.asciidoc @@ -23,12 +23,12 @@ Webhook URL:: The URL of the incoming webhook. See https://api.slack.com/messa name: preconfigured-slack-action-type actionTypeId: .slack config: - webhookUrl: 'https://hooks.slack.com/services/abcd/efgh/ijklmnopqrstuvwxyz' <1> + webhookUrl: 'https://hooks.slack.com/services/abcd/efgh/ijklmnopqrstuvwxyz' -- -`config` defines the action type specific to the configuration and contains the following properties: - -<1> `webhookUrl:` is URL string and correspond to *Webhook URL*. +`config` defines the action type specific to the configuration. +`config` contains +`webhookUrl`, a string that corresponds to *Webhook URL*. [float] diff --git a/docs/user/alerting/action-types/webhook.asciidoc b/docs/user/alerting/action-types/webhook.asciidoc index 27609652288b..c91c24430e98 100644 --- a/docs/user/alerting/action-types/webhook.asciidoc +++ b/docs/user/alerting/action-types/webhook.asciidoc @@ -19,7 +19,7 @@ Password:: An optional password. If set, HTTP basic authentication is used. Cur [float] [[Preconfigured-webhook-configuration]] -==== Preconfigured action type +==== Preconfigured action type [source,text] -- @@ -27,25 +27,44 @@ Password:: An optional password. If set, HTTP basic authentication is used. Cur name: preconfigured-webhook-action-type actionTypeId: .webhook config: - url: https://test.host <1.1> - method: POST <1.2> - headers: <1.3> + url: https://test.host + method: POST + headers: testheader: testvalue secrets: - user: testuser <2.1> - password: passwordkeystorevalue <2.2> + user: testuser + password: passwordkeystorevalue -- `config` defines the action type specific to the configuration and contains the following properties: -<1.1> `url:` is URL string and correspond to *URL*. -<1.2> `method:` is a string and correspond to *Method*. -<1.3> `headers:` is Record and correspond to *Headers*. +[cols="2*<"] +|=== -`secrets` defines action type sensitive configuration: +|`url` +| A URL string that corresponds to *URL*. + +|`method` +| A string that corresponds to *Method*. + +|`headers` +|A record that corresponds to *Headers*. + +|=== + +`secrets` defines sensitive information for the action type: + +[cols="2*<"] +|=== + +|`user` +|A string that corresponds to *User*. + +|`password` +|A string that corresponds to *Password*. Should be stored in the <>. + +|=== -<2.1> `user:` is a string and correspond to *User*. -<2.2> `password:` is a string and correspond to *Password*. Should be stored in the <>. [float] [[webhook-action-configuration]] diff --git a/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png b/docs/user/alerting/images/alert-pre-configured-connectors-dropdown.png index 4e6c713298626f4f733e9e685815af168a95f77d..081688758eb484771277149e4a93fc5f65c8ecac 100644 GIT binary patch literal 76704 zcmeFYWm6?VyDW;kySok!gS*?{4DRkS46tx_cXt@v2Y1)O-F@LK+~M%b?dpi?Xkyl>RD-QBMTqw zcZG+lHA)4dNDY+|4lc?N5An7!Wn|`pSaY^ z)3={L@1VqZNx`Ua_I?Ls=OJGEf`LrB)l*@?W(iNLOOIqz00M(B?CE5Ks?<~J`zF+i zn)?VT3SvaCdpTh7)&jYVm|zz)WtNAx9OQ8iOyT;}5cN=C#O#CM-snnT&QOEmzg%b; z*#1JIoNQm4eFSm%_$Q4_5cQtwsEeVXPn7U>T7O#df3zGN(Y=_i^oe4QQS2pi4s>sh z=Mt38uxF`5R$G|>cSp~5gx3m>53omC<5 z@eJjOMr6|?w+i5i%gVpjr%MhSw&kfbPue$maSn|hSbAEzHLGZqdrgWwmuL?COqChE z0Q%|D$;oH{qg8H)WM|QA#V3<3N2Dw4S+m5@Y1_A@{)DR?IYQRgDr1mT9gWafjP~z+ ze`wJ2@atL;OGqcI?o06~42DCVRuoc7=|LY<5QFEh&y%JjC0sO&62Zf$s3GoPOs29q z9a<~#=yN96UY^U=iV;-AJ_=^I*Feh}zuo8T28fX8#oPD_=w#w%Y+b zR3V5d%u6eoca%k<4n?C3H{$JM~HT%Ge2@4L|tn#L~E!-wXfx zEDF79uc8>#n27E z7??5|sdrf+uR^b@E7HPrL+7s=gseP{u))5Uj#4{JLiQLG9@@7y`NmK0UhQ)6`@Jf6 z0uzU>C(fTkn@@pe3hS_b1vJ58=1l!oAg<+5<4^-e_bI)QSI+%o@e{IN;8Q{KH!0X> za(8#P`1WrVkl^Mg5tz*~ca9G+*c~NUcFwfs=*=RZo(DPDx0wLPWHwgVrC#u*eHeiN zQaFeLBdl<6crxf8!TLCT_l%HgeMqdh$^PthNL4T?MvyB=%|ZG`ELKoqz0OVqdSGdN zu1>f$xhNor-$CyAxT0tnV$yiwY$gFK6jR}ZdofUC1u|F|VZ~(DGBgyTSffa0B&wlR zBHt1eWSDLUf1&ZlW{a=IuaAlsV|v7Ri?Jn#669Ny5%VG4ORZW_W%?_MaLm$Mk?TY= zi!#g*{H9&=Cy{2!U!HZlgI)^)|AA;~lA4Zq6yscn$A~@AYqr8zg~c#pQ|DQQ|1qUm z?^cEQ8jk4r3AG0it$-H-*m# zE)T{K<27d31>42)&fd2D%>qQPNO}J_Cr^+Wrm{>F zrVkyYJWP<2v6bbQm6p|%AudKWV`_k2jUkd!q?R9*Jot5ka)W+@eZ%pKMKaAq{<>sP z87kR2xg?n>*z?F3CN(uRB{gmdkEwo%s2ZVK zP{*=~#Kx!iWIo%9Xbq4V*c{v(;}-3f^$@C9x;`6pTz)6;g5k;Z4)qTH9>gW?RmP>M zn=h!_A=e@L8u=hk92r}UqH9^GSfJQ8C6pu2r{9jH LtmK~Rka8)ynbj`niPW|0 z$>!PS8FlY=oHOrLqcqntkGhC^jC7+GPXv?47FQqQ964(&^1Y6GhrkR! z8ULK!iu0Ijft$!U-Av0!%N(#$mlMHuk*;Tf;zIAjatm`iPu3`UF4`{|1+$3S&VJlA zYg9x=S)fur>riwil^3l&Trj*kJP|_}bCtD2qex@=<449qu8HtkJ~Io2#f z6>|O&>qb_$RFAsFT;Q)ix;?m!xgnktT;#43uDV;L&rT;`8LU z;IDD%JP+pc;EBkt$Y$m(n#!Fr0lH4vi^GX~hsuO5Ahn%{xfpjGbS$(95RDTNaQ?Nj z+Mh`qunR3g(G@zMtgEddso|~B)w@DjCKa*)%z}<~Yd5nuo*aHUEN`4#8ecYUW^EY8 zIFXPO)%y-Ip@xoF#X*xWkr)be37F^J=jIr28CV-E8gO?ZcbazLdga}dKS8}tKJXsg z&Mwb$PrKJ%ZTm9&uKM!7<;MLbr6+1LKQQ%U@XP(A`FsG=5Yg!!_J0tW5HT=P*eN1A zBNLrj%D1$WcEje$ALDo3_c_H_=wtzOcAtUWa_3dw6@+U327qkh-*A1$Nc?_FR0N zLPkTDAj=H=4ZW07G4)cDQ(Ny-fz{1?&qRF_x_h(_V?_N)%q7ry2X`-XozPtrBJC9` z8|O+qE%4E5t~#-aX{w~h&wFHcRz9j`sT7tYtyECe`wp-;A*%SP3dJAsSVW=^ojAh=)XTcv**Te+-T?huy|$a zs|L2XIP|n9`ISCiW_tyDl{~s$r3th8DBrS-_+2kzOxxsj2nsLYFL^vqJNvnH#&;iIe0!F^sy$6ZVR`%{zIzgz}vd(tmkR_m!f+gOy=L-fr=C}%CWJzp!XfHNA7)m=4A>4R*vt_($L+#O*xYO8 z22U8mSNAgeu7d z%)ke4d0qWf0mq(|ZUUpwsPg{~UZU9-iHt1?4n4$dA{x(3A?bNF=XH!GBewNCeH8l7 z0uuu%)9%B=arNI8*X`!&*)uSkcOSP}QcK1k>VFOISP_^!TXaGR2r7~Pdl*5{J*}Ys zug7J2rQwx9&&M(5jsN?Oe_))?|9|>qFzCFvEiJC7|NY{x$zlKZ6#sAX|E&4{TbBR# zwftYF#XDKVKdw3I9|bsu3`GDjzx!CBq+fX6WuCB~uk~DUJrvXv?X}hAgCkmaWMm?z z?b2ALtF8HKa}EX`7MZzRS}IKpp=*yIiBXV!9;@nF<_(3>*U_2!Z9z_K5W$?$Zg7G}0obNGvEuM=x5S5qgsU6dW#tka=u_bmjmK@z$384+jn<(}{Wv`dMB zj!zGbh?UH4E+<R-DojUBA;fb8-{Xm-wJX4@XFHN>iyi{ zEp(5_>$H<^u%$$>P|Lu*xd3YadANSnoo2u8CX>pjU98{XMeS&1b>5_y!$)oCcUw&) zOhO|Wg_ZJp!C`r@sJR`_ z(*2^-KQM6k)^_{!EK{S`RxGnC_7bhd@(zoVFc5|!zht*+);~fj^X}=Y=F_1n58d|| zb|O41kS5`vJiAf18_4NJ`ai4b zZacjy^Xzns--ZW$Qo6@-o_H{xu0L-6m~?IXXJRVpl{)A{`g8jIjA})=Xya!^z&o)E zAhOGTrB21b_ue%_(5uEseY>m5pi9aubTrGci&DX{N1@&IjKcM7!EIZz*>07_vFElX zTgYcv!cdU&O*LvqT#{DlLr)N$VZnc#jQG-#mV0AHbbevx{kk-dT09g@r(s+6_wTDxlfj$q>58l&yNuB2IqZ?v0T9{BHmvTz8@Yi z(1z>|bWo(Z@_yA?)`2f4rMawqVL;W6=EqaA#k2;;ZK2zT_cA;Fze;&Q;$tG?`m+C3 zT~zVGr*@;-$aR&Z2%>!M2D!5iLZAEPhBiC`LSlpYgu!zAV4Kso7f7k| zb;r1-4=BaQO|O;)x}->((F#VbI%VHnwt+#COBERzW{;aO#knqB&69-_m9Y$tQuP{j z*)BzGdw)1c;=_qF%2qQBnd3I~DlHZ3&5DqBDF}72{&jZ{83oq=SGmb9(DK7rjttBZ zLGuYNDk|=WM>!GUsiwG7nKJ{U?P`UEEK#r9Q;(kq?^iwU6EnM%=2u%jiS%kT5esNj zg_2Pfw6zh*OhrWxV_sK;uSp|s)I^K0{a35y&f`FkP#4)n@|54$?8LK*>5od zr}J98u+Y(WF+Af0O?+?-gp#F6Je2eB@y#EyJ$|j*D-^e`6uI+xh zu?=vBC5IijT+$_+U|{L8Dx7}*?zPCkAtK)Co5MTNsg}iMpTO&Kv}V=w>U;8jyE_o3 z0MgeeASv7ue0+{YJ6m_RTlPA?3H~!eh5MzROx_0{+b;2>@q^;6gB%EXM#`%J^nn2 zaI8Z82SH`Hp(r>trB>Eb5-Wdk!cQi0j$H^fx`auD=B4RjS5iHvFEmg>8&2ko;vCa% zGFT>c0SgxxsJ^|Z)0y3*iCd~~?M9txp@lXX?@P7)zE1SOjKX1}pbSHepnXsdp&-cR z5o@tuX_a-mSTi@)v*oPs{n|hUMw-%0)|VFhZD#2>qQ+<6f&!28On{ONuk&88XT-yJ zpLp0L*pNWmT#3APVRCWqz`Ae8eRje(?*tjBP^Jdy{@aX&z`9DcQpKzSy<(>Xo-p$7 z4g;YI^~SZAmu=aJ2k-CEl$GIi=iF^cTfs))D6_}y z(fvm9&h|v=JGJd{b)#qy;u@;M(gANqV36r!7@d&Yc`Lhs`L-x4F5|J>N06uEdbhY+ zr6$4cuw3dl`sdrjD8Z$7NIa6cZf8-_nkW3j8P8A~QqjDT>;<2-4@PZvd2G(I+rv0N z6o8F$PLWR9WJXYvA5KCdwOp&=UPWFXVEe--H6QkZPOmKfezuYXuMzSHaIw)gkw|L} znkIw(%aS_7moK!1uofL}{MOBS)gsdOhCy^LSNGR_+xK-dm)~765{sU3C<;5NN_+of z1O`$F7L^E17}-n6<0ko@MbmJSIxIyxKa|{X$-_H63t^h`Gz{&?DnVxX#fL zdaIvFw^>IwkR3+*Xl$d+Wxa-Wfs*8pY_!vrN@?dQzH}MocwbQ1!hq|P5O6X>{+Cy< z%sR|FtPgIFpnda0b+iVqbUMZJ0zP)#N;ukrH=B>e{GWdfrXz~4-8xO*9->{QfSp0h zmz!Sayg}Wj(;4g~)Ri=5ayEU}epg%eosrge5^cZCt3QisBCzWuD2gPbaOLxTw;Eit z-d@fa+g>l1B8Z3W|GRG}PwpMsmo~S~v!r%>4^?#mMPa1hpN_REI;@fT2`x+hN@Zd} z-Xcnq(@k}1>ePjXzq-QIb<6p}qEZSfj9h^h9P(^T7#)ieReH<#V6(~mz-fEfmN?d% z1OelJv&0RLcj#kzoDwz%Oq8M@HM8z5`n50Up}VUbmI^Dq>B9mQZ_k)hRq*2Vj(G+a ztpy}044UjkpbFf`Rq)-SZSUKhAIoOM#>TV@K~A#BqgEWgWU4zCqBkgr)CxPruM1A^ zPH)mT>y9q=HAD@8h0Fl~;24Pv5+t6-;2uu}v2IgPiU~W*YC^AK!=2ZEV*ZGarZQ+M z8u;B))0gy96#Uv1YyI)^yMa-+d7~!cfDW8LIimXYgMLx!Bkyt~SewkJ~={xhlRlgR&lfg9z#qxRBxi~GWvWO=@PL*4cpPdFZD|CSH4 z9DCBfjHlkG{B4ux&>tCrhf6duhu0&dDK|C}9k>g~1>;dT@77CPRV=vjW?K48eLbI{|QS6_ViLzN1UBloJ z=5OCrVXfG$d&Vi^taM3y4hmMl3By}x^G<9i5Frpq1UCr7ucp?3Z|{(H@jDSCq>X6P z+kT(op>ag!XL>vE7> zf7MwokKZaKw(V_O^^oUy!RzjxwRDsq0a3Bq2s|c>uvPq?E1ah!`p&Rw&6a=j#ZN~q zJxN*914Z+#-VH@W^8ZBlmu1VLg5PZ1U*~hhjv#(1%pSRyU z87f=duHLVwgFhmGgixT_BI(2Fk_oz}J<~nz|D4=-8aT71s>j6_q{I{!l*FHuFtRay zl$iH-IU9dfQtz**KWsEL&gVE3{?0Zg$~Mvo#Q3D$M z{Amh9-&k8xB}78L&sEMA*ZL1Ca%v_ip3Kjq#)cXGE^!Iw4|r^Dxjg5OEl_2oM1l(;?pg|j?#Tj&>$_P{i<4)&Us5mA5=HT2-9nNBU@cW?XXWo?m6{A+M~jWBSEN zdap6}AG$u~#$$G_UUnCwQGAhT#A8lI9ga!Kdnu)Sp~9- zNzSY`GS^~FMP1DrI->xxG-~vi#KVvlO6b;f^PGiYn_W-V{&n)A=^fLeS<~^5K`-S0Ww;_!~_>i{$Yh&vs=2-w`mO_KT65Lf36vv5yi>Q9%Q{DM=DHA>1*eoeaxM_DwCvq;~&znk=ojXmTu#4`3?ZOK>(2V=6<*r&L6z%0qo_*}CQpDa+iQ7eHgV-xm zO_$%NZ&aj+?*Fj%IUI0dVjiZo!Wany9$H&Nzp)QOb=zY)_!)4g>0dSzG}

?woHd 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 literal 92273 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 E2e9M;vj6}9 literal 146428 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

Snh{Ng41B}KT>M=1! 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 diff --git a/docs/user/alerting/images/pre-configured-action-type-select-type.png b/docs/user/alerting/images/pre-configured-action-type-select-type.png index 29e5a29edc7c0608d06386e1c95bc14899f8c044..91ca831840ce92396f9f411fde108c06593c063a 100644 GIT binary patch literal 84001 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 diff --git a/docs/user/alerting/images/pre-configured-connectors-view-screen.png b/docs/user/alerting/images/pre-configured-connectors-view-screen.png index 43ac44e7536d8f8686054ef1e1d5d92c8e5624e3..9c75f86498bebe37f9263462e2c1b20273409f5a 100644 GIT binary patch delta 46399 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 From 0802ccc262688e5dea904e6cc82d2f48d034b437 Mon Sep 17 00:00:00 2001 From: Nathan L Smith Date: Mon, 11 May 2020 18:26:50 -0500 Subject: [PATCH 40/67] Fix major severity service map ring colors (#66124) Using `||` in the switch statement made it so "major" did not work, and we would get the border width but not the color. Change to splitting case statements. Fixes #66081 --- .../apm/public/components/app/ServiceMap/cytoscapeOptions.ts | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts b/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts index 0cdc7c4eb124..d3c4654de816 100644 --- a/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts +++ b/x-pack/plugins/apm/public/components/app/ServiceMap/cytoscapeOptions.ts @@ -17,7 +17,8 @@ export const getSeverityColor = (nodeSeverity: string) => { switch (nodeSeverity) { case severity.warning: return theme.euiColorVis0; - case severity.minor || severity.major: + case severity.minor: + case severity.major: return theme.euiColorVis5; case severity.critical: return theme.euiColorVis9; From 6d95b68c7247e8fd6c904fc484824e534186bec0 Mon Sep 17 00:00:00 2001 From: Phillip Burch Date: Mon, 11 May 2020 19:08:02 -0500 Subject: [PATCH 41/67] Cleanup prefill and edit flow. (#66105) --- .../components/expression.tsx | 90 ++++++++++--------- .../infra/server/lib/alerting/common/utils.ts | 5 ++ 2 files changed, 53 insertions(+), 42 deletions(-) diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx index 406f9c7602d3..8fdba86f233d 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression.tsx @@ -74,6 +74,7 @@ export const Expressions: React.FC = props => { fetch: alertsContext.http.fetch, toastWarning: alertsContext.toastNotifications.addWarning, }); + const [timeSize, setTimeSize] = useState(1); const [timeUnit, setTimeUnit] = useState('m'); const derivedIndexPattern = useMemo(() => createDerivedIndexPattern('metrics'), [ @@ -173,52 +174,57 @@ export const Expressions: React.FC = props => { [alertParams.criteria, setAlertParams] ); - useEffect(() => { + const preFillAlertCriteria = useCallback(() => { const md = alertsContext.metadata; - if (md) { - if (md.currentOptions?.metrics) { - setAlertParams( - 'criteria', - md.currentOptions.metrics.map(metric => ({ - metric: metric.field, - comparator: Comparator.GT, - threshold: [], - timeSize, - timeUnit, - aggType: metric.aggregation, - })) - ); - } else { - setAlertParams('criteria', [defaultExpression]); - } + if (md && md.currentOptions?.metrics) { + setAlertParams( + 'criteria', + md.currentOptions.metrics.map(metric => ({ + metric: metric.field, + comparator: Comparator.GT, + threshold: [], + timeSize, + timeUnit, + aggType: metric.aggregation, + })) + ); + } else { + setAlertParams('criteria', [defaultExpression]); + } + }, [alertsContext.metadata, setAlertParams, timeSize, timeUnit]); - if (md.currentOptions) { - if (md.currentOptions.filterQuery) { - setAlertParams('filterQueryText', md.currentOptions.filterQuery); - setAlertParams( - 'filterQuery', - convertKueryToElasticSearchQuery(md.currentOptions.filterQuery, derivedIndexPattern) || - '' - ); - } else if (md.currentOptions.groupBy && md.series) { - const filter = `${md.currentOptions.groupBy}: "${md.series.id}"`; - setAlertParams('filterQueryText', filter); - setAlertParams( - 'filterQuery', - convertKueryToElasticSearchQuery(filter, derivedIndexPattern) || '' - ); - } + const preFillAlertFilter = useCallback(() => { + const md = alertsContext.metadata; + if (md && md.currentOptions?.filterQuery) { + setAlertParams('filterQueryText', md.currentOptions.filterQuery); + setAlertParams( + 'filterQuery', + convertKueryToElasticSearchQuery(md.currentOptions.filterQuery, derivedIndexPattern) || '' + ); + } else if (md && md.currentOptions?.groupBy && md.series) { + const filter = `${md.currentOptions?.groupBy}: "${md.series.id}"`; + setAlertParams('filterQueryText', filter); + setAlertParams( + 'filterQuery', + convertKueryToElasticSearchQuery(filter, derivedIndexPattern) || '' + ); + } + }, [alertsContext.metadata, derivedIndexPattern, setAlertParams]); - setAlertParams('groupBy', md.currentOptions.groupBy); - } - setAlertParams('sourceId', source?.id); + useEffect(() => { + if (alertParams.criteria && alertParams.criteria.length) { + setTimeSize(alertParams.criteria[0].timeSize); + setTimeUnit(alertParams.criteria[0].timeUnit); } else { - if (!alertParams.criteria) { - setAlertParams('criteria', [defaultExpression]); - } - if (!alertParams.sourceId) { - setAlertParams('sourceId', source?.id || 'default'); - } + preFillAlertCriteria(); + } + + if (!alertParams.filterQuery) { + preFillAlertFilter(); + } + + if (!alertParams.sourceId) { + setAlertParams('sourceId', source?.id || 'default'); } }, [alertsContext.metadata, defaultExpression, source]); // eslint-disable-line react-hooks/exhaustive-deps diff --git a/x-pack/plugins/infra/server/lib/alerting/common/utils.ts b/x-pack/plugins/infra/server/lib/alerting/common/utils.ts index a2c5b27c38fd..5ca65b667ae1 100644 --- a/x-pack/plugins/infra/server/lib/alerting/common/utils.ts +++ b/x-pack/plugins/infra/server/lib/alerting/common/utils.ts @@ -13,6 +13,11 @@ export const oneOfLiterals = (arrayOfLiterals: Readonly) => }); export const validateIsStringElasticsearchJSONFilter = (value: string) => { + if (value === '') { + // Allow clearing the filter. + return; + } + const errorMessage = 'filterQuery must be a valid Elasticsearch filter expressed in JSON'; try { const parsedValue = JSON.parse(value); From b5f5284b5c54c3a9861baa56b3429fe2e95443f1 Mon Sep 17 00:00:00 2001 From: spalger Date: Mon, 11 May 2020 17:11:37 -0700 Subject: [PATCH 42/67] skip flaky suite (#59849) --- .../__jest__/client_integration/template_clone.test.tsx | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx b/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx index 17e19bf881de..fa9d13d1ddd0 100644 --- a/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx +++ b/x-pack/plugins/index_management/__jest__/client_integration/template_clone.test.tsx @@ -42,7 +42,8 @@ jest.mock('@elastic/eui', () => ({ ), })); -describe('', () => { +// FLAKY: https://github.com/elastic/kibana/issues/59849 +describe.skip('', () => { let testBed: TemplateFormTestBed; const { server, httpRequestsMockHelpers } = setupEnvironment(); From bf178dece9b0f70f33d1bd3c89eb972318d7ecfb Mon Sep 17 00:00:00 2001 From: Thomas Neirynck Date: Mon, 11 May 2020 20:40:12 -0400 Subject: [PATCH 43/67] [Maps] Organize layers into subfolders (#65513) --- x-pack/legacy/plugins/maps/public/index.ts | 2 +- .../maps/public/angular/get_initial_layers.js | 22 ++++++------ .../public/{layers => classes}/_index.scss | 0 .../fields/ems_file_field.ts | 0 .../fields/es_agg_field.test.ts | 0 .../fields/es_agg_field.ts | 0 .../fields/es_doc_field.ts | 0 .../{layers => classes}/fields/field.ts | 0 .../fields/kibana_region_field.ts | 0 .../fields/top_term_percentage_field.ts | 0 .../{layers => classes}/joins/inner_join.js | 0 .../joins/inner_join.test.js | 2 +- .../public/{layers => classes}/joins/join.ts | 0 .../blended_vector_layer.ts | 34 +++++++++---------- .../layers/heatmap_layer}/heatmap_layer.js | 8 ++--- .../public/{ => classes}/layers/layer.tsx | 14 ++++---- .../layers/layer_wizard_registry.ts | 2 +- .../layers/load_layer_wizards.ts | 24 ++++++------- .../create_layer_descriptor.test.ts | 2 +- .../observability/create_layer_descriptor.ts | 18 +++++----- .../observability/display_select.tsx | 0 .../solution_layers/observability/index.ts | 0 .../observability/layer_select.tsx | 0 .../observability/metric_select.tsx | 0 .../observability_layer_template.tsx | 0 .../observability_layer_wizard.tsx | 2 +- .../layers/tile_layer}/tile_layer.d.ts | 6 ++-- .../layers/tile_layer}/tile_layer.js | 6 ++-- .../layers/tile_layer}/tile_layer.test.ts | 8 ++--- .../tiled_vector_layer.tsx | 21 +++++++----- .../layers/vector_layer}/vector_layer.d.ts | 16 ++++----- .../layers/vector_layer}/vector_layer.js | 16 ++++----- .../vector_tile_layer}/vector_tile_layer.js | 8 ++--- .../create_client_file_source_editor.js | 0 .../client_file_source/geojson_file_source.js | 0 .../sources/client_file_source/index.js | 0 .../upload_layer_wizard.tsx | 6 ++-- .../ems_file_source/create_source_editor.tsx | 0 .../ems_boundaries_layer_wizard.tsx | 4 +-- .../ems_file_source/ems_file_source.test.tsx | 2 +- .../ems_file_source/ems_file_source.tsx | 0 .../sources/ems_file_source/index.ts | 0 .../ems_file_source/update_source_editor.tsx | 0 .../ems_base_map_layer_wizard.tsx | 4 +-- .../sources/ems_tms_source/ems_tms_source.js | 0 .../ems_tms_source/ems_tms_source.test.js | 0 .../sources/ems_tms_source/index.js | 0 .../ems_tms_source/tile_service_select.js | 0 .../ems_tms_source/update_source_editor.js | 0 .../sources/ems_unavailable_message.ts | 0 .../sources/es_agg_source/es_agg_source.d.ts | 0 .../sources/es_agg_source/es_agg_source.js | 0 .../es_agg_source/es_agg_source.test.ts | 0 .../sources/es_agg_source/index.ts | 0 .../clusters_layer_wizard.tsx | 4 +-- .../es_geo_grid_source/convert_to_geojson.js | 0 .../convert_to_geojson.test.ts | 0 .../create_source_editor.js | 0 .../es_geo_grid_source.d.ts | 0 .../es_geo_grid_source/es_geo_grid_source.js | 0 .../es_geo_grid_source.test.ts | 0 .../es_geo_grid_source/geo_tile_utils.js | 0 .../es_geo_grid_source/geo_tile_utils.test.js | 0 .../heatmap_layer_wizard.tsx | 4 +-- .../sources/es_geo_grid_source/index.js | 0 .../es_geo_grid_source/render_as_select.tsx | 0 .../es_geo_grid_source/resolution_editor.js | 0 .../update_source_editor.js | 0 .../es_pew_pew_source/convert_to_lines.js | 0 .../convert_to_lines.test.ts | 0 .../es_pew_pew_source/create_source_editor.js | 0 .../es_pew_pew_source/es_pew_pew_source.js | 0 .../sources/es_pew_pew_source/index.js | 0 .../point_2_point_layer_wizard.tsx | 4 +-- .../es_pew_pew_source/update_source_editor.js | 0 .../__snapshots__/scaling_form.test.tsx.snap | 0 .../update_source_editor.test.js.snap | 0 .../sources/es_search_source/constants.js | 0 .../es_search_source/create_source_editor.js | 0 .../es_documents_layer_wizard.tsx | 6 ++-- .../es_search_source/es_search_source.d.ts | 0 .../es_search_source/es_search_source.js | 0 .../sources/es_search_source/index.js | 0 .../es_search_source/load_index_settings.js | 0 .../es_search_source/scaling_form.test.tsx | 0 .../sources/es_search_source/scaling_form.tsx | 0 .../es_search_source/update_source_editor.js | 0 .../update_source_editor.test.js | 0 .../sources/es_source/es_source.d.ts | 0 .../sources/es_source/es_source.js | 0 .../sources/es_source/index.ts | 0 .../es_term_source/es_term_source.d.ts | 0 .../sources/es_term_source/es_term_source.js | 0 .../es_term_source/es_term_source.test.js | 2 +- .../sources/es_term_source/index.ts | 0 .../create_source_editor.js | 0 .../sources/kibana_regionmap_source/index.js | 0 .../kibana_regionmap_layer_wizard.tsx | 4 +-- .../kibana_regionmap_source.d.ts | 0 .../kibana_regionmap_source.js | 0 .../create_source_editor.js | 0 .../sources/kibana_tilemap_source/index.js | 0 .../kibana_base_map_layer_wizard.tsx | 4 +-- .../kibana_tilemap_source.js | 0 .../mvt_single_layer_vector_source/index.ts | 0 .../layer_wizard.tsx | 4 +-- .../mvt_single_layer_vector_source.ts | 0 .../mvt_single_layer_vector_source_editor.tsx | 0 .../{layers => classes}/sources/source.ts | 0 .../sources/source_registry.ts | 0 .../sources/tms_source/index.ts | 0 .../sources/tms_source/tms_source.d.ts | 0 .../sources/tms_source/tms_source.js | 0 .../sources/vector_feature_types.ts | 0 .../sources/vector_source/index.ts | 0 .../sources/vector_source/vector_source.d.ts | 0 .../sources/vector_source/vector_source.js | 0 .../sources/wms_source/index.js | 0 .../sources/wms_source/wms_client.js | 0 .../sources/wms_source/wms_client.test.js | 0 .../wms_source/wms_create_source_editor.js | 0 .../sources/wms_source/wms_layer_wizard.tsx | 4 +-- .../sources/wms_source/wms_source.js | 0 .../sources/xyz_tms_source/index.ts | 0 .../sources/xyz_tms_source/layer_wizard.tsx | 4 +-- .../sources/xyz_tms_source/xyz_tms_editor.tsx | 0 .../xyz_tms_source/xyz_tms_source.test.ts | 0 .../sources/xyz_tms_source/xyz_tms_source.ts | 0 .../{layers => classes}/styles/_index.scss | 0 .../{layers => classes}/styles/color_utils.js | 0 .../styles/color_utils.test.js | 0 .../styles/components/_color_gradient.scss | 0 .../styles/components/color_gradient.js | 0 .../components/ranged_style_legend_row.js | 0 .../heatmap_style_editor.test.js.snap | 0 .../heatmap/components/heatmap_constants.js | 0 .../components/heatmap_style_editor.js | 0 .../components/heatmap_style_editor.test.js | 0 .../components/legend/heatmap_legend.js | 0 .../styles/heatmap/heatmap_style.js | 0 .../{layers => classes}/styles/style.ts | 2 +- .../styles/tile/tile_style.ts | 0 .../vector/components/_style_prop_editor.scss | 0 .../vector/components/color/_color_stops.scss | 0 .../components/color/color_map_select.js | 0 .../vector/components/color/color_stops.js | 0 .../color/color_stops_categorical.js | 0 .../components/color/color_stops_ordinal.js | 0 .../components/color/color_stops_utils.js | 0 .../components/color/dynamic_color_form.js | 0 .../color/mb_validated_color_picker.tsx | 0 .../components/color/static_color_form.js | 0 .../color/vector_style_color_editor.js | 0 .../categorical_field_meta_popover.tsx | 0 .../field_meta/field_meta_popover.tsx | 0 .../field_meta/ordinal_field_meta_popover.tsx | 0 .../styles/vector/components/field_select.js | 0 .../components/get_vector_style_label.js | 0 .../components/label/dynamic_label_form.js | 0 .../components/label/static_label_form.js | 0 .../vector_style_label_border_size_editor.js | 0 .../label/vector_style_label_editor.js | 0 .../__snapshots__/vector_icon.test.js.snap | 0 .../vector/components/legend/category.js | 0 .../vector/components/legend/circle_icon.js | 0 .../extract_color_from_style_property.js | 0 .../vector/components/legend/line_icon.js | 0 .../vector/components/legend/polygon_icon.js | 0 .../vector/components/legend/symbol_icon.js | 0 .../vector/components/legend/vector_icon.js | 0 .../components/legend/vector_icon.test.js | 0 .../components/legend/vector_style_legend.js | 0 .../orientation/dynamic_orientation_form.js | 0 .../orientation/orientation_editor.js | 0 .../orientation/static_orientation_form.js | 0 .../components/size/dynamic_size_form.js | 0 .../components/size/size_range_selector.js | 0 .../components/size/static_size_form.js | 0 .../size/vector_style_size_editor.js | 0 .../styles/vector/components/stop_input.js | 0 .../vector/components/style_map_select.js | 0 .../vector/components/style_option_shapes.js | 0 .../vector/components/style_prop_editor.js | 0 .../__snapshots__/icon_select.test.js.snap | 0 .../components/symbol/_icon_select.scss | 0 .../components/symbol/dynamic_icon_form.js | 0 .../components/symbol/icon_map_select.js | 0 .../vector/components/symbol/icon_select.js | 0 .../components/symbol/icon_select.test.js | 0 .../vector/components/symbol/icon_stops.js | 0 .../components/symbol/icon_stops.test.js | 0 .../components/symbol/static_icon_form.js | 0 .../symbol/vector_style_icon_editor.js | 0 .../vector_style_symbolize_as_editor.js | 0 .../vector/components/vector_style_editor.js | 0 .../dynamic_color_property.test.js.snap | 0 .../components/categorical_legend.js | 0 .../properties/components/ordinal_legend.js | 0 .../properties/dynamic_color_property.js | 0 .../properties/dynamic_color_property.test.js | 0 .../properties/dynamic_icon_property.js | 0 .../dynamic_orientation_property.js | 0 .../properties/dynamic_size_property.js | 0 .../properties/dynamic_style_property.d.ts | 0 .../properties/dynamic_style_property.js | 0 .../properties/dynamic_text_property.js | 0 .../properties/label_border_size_property.js | 0 .../properties/static_color_property.js | 0 .../vector/properties/static_icon_property.js | 0 .../properties/static_orientation_property.js | 0 .../vector/properties/static_size_property.js | 0 .../properties/static_style_property.js | 0 .../vector/properties/static_text_property.js | 0 .../vector/properties/style_property.ts | 0 .../properties/symbolize_as_property.js | 0 .../styles/vector/style_meta.ts | 0 .../styles/vector/style_util.js | 0 .../styles/vector/style_util.test.js | 0 .../styles/vector/symbol_utils.js | 0 .../styles/vector/symbol_utils.test.js | 0 .../styles/vector/vector_style.d.ts | 2 +- .../styles/vector/vector_style.js | 0 .../styles/vector/vector_style.test.js | 0 .../styles/vector/vector_style_defaults.ts | 0 .../tooltips/es_agg_tooltip_property.ts | 0 .../tooltips/es_tooltip_property.test.ts | 0 .../tooltips/es_tooltip_property.ts | 0 .../tooltips/join_tooltip_property.ts | 0 .../tooltips/tooltip_property.ts | 0 .../util/assign_feature_ids.test.ts | 0 .../util/assign_feature_ids.ts | 0 .../util/can_skip_fetch.test.js | 0 .../util/can_skip_fetch.ts | 0 .../{layers => classes}/util/data_request.ts | 0 .../util/es_agg_utils.test.ts | 0 .../{layers => classes}/util/es_agg_utils.ts | 0 .../util/is_metric_countable.ts | 0 .../util/is_refresh_only_query.ts | 0 .../util/mb_filter_expressions.ts | 0 .../tooltip_selector.test.tsx | 2 +- .../tooltip_selector/tooltip_selector.tsx | 2 +- .../connected_components/gis_map/index.d.ts | 2 +- .../connected_components/gis_map/view.js | 2 +- .../layer_addpanel/import_editor/view.js | 2 +- .../layer_addpanel/layer_wizard_select.tsx | 2 +- .../spatial_filters_panel.tsx | 2 +- .../fit_to_data/fit_to_data.tsx | 2 +- .../toc_entry_actions_popover.test.tsx | 6 ++-- .../toc_entry_actions_popover.tsx | 2 +- .../maps/public/embeddable/map_embeddable.tsx | 2 +- .../embeddable/map_embeddable_factory.ts | 2 +- x-pack/plugins/maps/public/index.scss | 2 +- .../maps/public/selectors/map_selectors.d.ts | 4 +-- .../maps/public/selectors/map_selectors.js | 18 +++++----- .../public/selectors/map_selectors.test.js | 12 +++---- 255 files changed, 169 insertions(+), 166 deletions(-) rename x-pack/plugins/maps/public/{layers => classes}/_index.scss (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/ems_file_field.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/es_agg_field.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/es_agg_field.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/es_doc_field.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/field.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/kibana_region_field.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/fields/top_term_percentage_field.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/joins/inner_join.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/joins/inner_join.test.js (98%) rename x-pack/plugins/maps/public/{layers => classes}/joins/join.ts (100%) rename x-pack/plugins/maps/public/{layers => classes/layers/blended_vector_layer}/blended_vector_layer.ts (89%) rename x-pack/plugins/maps/public/{layers => classes/layers/heatmap_layer}/heatmap_layer.js (93%) rename x-pack/plugins/maps/public/{ => classes}/layers/layer.tsx (97%) rename x-pack/plugins/maps/public/{ => classes}/layers/layer_wizard_registry.ts (95%) rename x-pack/plugins/maps/public/{ => classes}/layers/load_layer_wizards.ts (68%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/create_layer_descriptor.test.ts (99%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/create_layer_descriptor.ts (92%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/display_select.tsx (100%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/index.ts (100%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/layer_select.tsx (100%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/metric_select.tsx (100%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/observability_layer_template.tsx (100%) rename x-pack/plugins/maps/public/{ => classes}/layers/solution_layers/observability/observability_layer_wizard.tsx (94%) rename x-pack/plugins/maps/public/{layers => classes/layers/tile_layer}/tile_layer.d.ts (71%) rename x-pack/plugins/maps/public/{layers => classes/layers/tile_layer}/tile_layer.js (95%) rename x-pack/plugins/maps/public/{layers => classes/layers/tile_layer}/tile_layer.test.ts (87%) rename x-pack/plugins/maps/public/{layers => classes/layers/tiled_vector_layer}/tiled_vector_layer.tsx (87%) rename x-pack/plugins/maps/public/{layers => classes/layers/vector_layer}/vector_layer.d.ts (82%) rename x-pack/plugins/maps/public/{layers => classes/layers/vector_layer}/vector_layer.js (98%) rename x-pack/plugins/maps/public/{layers => classes/layers/vector_tile_layer}/vector_tile_layer.js (97%) rename x-pack/plugins/maps/public/{layers => classes}/sources/client_file_source/create_client_file_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/client_file_source/geojson_file_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/client_file_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/client_file_source/upload_layer_wizard.tsx (93%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_file_source/create_source_editor.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_file_source/ems_boundaries_layer_wizard.tsx (89%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_file_source/ems_file_source.test.tsx (96%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_file_source/ems_file_source.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_file_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_file_source/update_source_editor.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_tms_source/ems_base_map_layer_wizard.tsx (87%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_tms_source/ems_tms_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_tms_source/ems_tms_source.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_tms_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_tms_source/tile_service_select.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_tms_source/update_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/ems_unavailable_message.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_agg_source/es_agg_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_agg_source/es_agg_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_agg_source/es_agg_source.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_agg_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/clusters_layer_wizard.tsx (95%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/convert_to_geojson.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/convert_to_geojson.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/create_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/es_geo_grid_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/es_geo_grid_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/es_geo_grid_source.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/geo_tile_utils.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/geo_tile_utils.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/heatmap_layer_wizard.tsx (90%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/render_as_select.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/resolution_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_geo_grid_source/update_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/convert_to_lines.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/convert_to_lines.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/create_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/es_pew_pew_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx (94%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_pew_pew_source/update_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/constants.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/create_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/es_documents_layer_wizard.tsx (85%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/es_search_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/es_search_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/load_index_settings.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/scaling_form.test.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/scaling_form.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/update_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_search_source/update_source_editor.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_source/es_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_source/es_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_term_source/es_term_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_term_source/es_term_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_term_source/es_term_source.test.js (98%) rename x-pack/plugins/maps/public/{layers => classes}/sources/es_term_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_regionmap_source/create_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_regionmap_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx (89%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_regionmap_source/kibana_regionmap_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_regionmap_source/kibana_regionmap_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_tilemap_source/create_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_tilemap_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx (89%) rename x-pack/plugins/maps/public/{layers => classes}/sources/kibana_tilemap_source/kibana_tilemap_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/mvt_single_layer_vector_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/mvt_single_layer_vector_source/layer_wizard.tsx (87%) rename x-pack/plugins/maps/public/{layers => classes}/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/source.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/source_registry.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/tms_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/tms_source/tms_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/tms_source/tms_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/vector_feature_types.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/vector_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/vector_source/vector_source.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/vector_source/vector_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/wms_source/index.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/wms_source/wms_client.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/wms_source/wms_client.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/wms_source/wms_create_source_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/wms_source/wms_layer_wizard.tsx (88%) rename x-pack/plugins/maps/public/{layers => classes}/sources/wms_source/wms_source.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/xyz_tms_source/index.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/xyz_tms_source/layer_wizard.tsx (87%) rename x-pack/plugins/maps/public/{layers => classes}/sources/xyz_tms_source/xyz_tms_editor.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/xyz_tms_source/xyz_tms_source.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/sources/xyz_tms_source/xyz_tms_source.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/_index.scss (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/color_utils.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/color_utils.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/components/_color_gradient.scss (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/components/color_gradient.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/components/ranged_style_legend_row.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/heatmap/components/__snapshots__/heatmap_style_editor.test.js.snap (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/heatmap/components/heatmap_constants.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/heatmap/components/heatmap_style_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/heatmap/components/heatmap_style_editor.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/heatmap/components/legend/heatmap_legend.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/heatmap/heatmap_style.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/style.ts (97%) rename x-pack/plugins/maps/public/{layers => classes}/styles/tile/tile_style.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/_style_prop_editor.scss (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/_color_stops.scss (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/color_map_select.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/color_stops.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/color_stops_categorical.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/color_stops_ordinal.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/color_stops_utils.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/dynamic_color_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/mb_validated_color_picker.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/static_color_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/color/vector_style_color_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/field_meta/categorical_field_meta_popover.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/field_meta/field_meta_popover.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/field_meta/ordinal_field_meta_popover.tsx (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/field_select.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/get_vector_style_label.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/label/dynamic_label_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/label/static_label_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/label/vector_style_label_border_size_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/label/vector_style_label_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/__snapshots__/vector_icon.test.js.snap (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/category.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/circle_icon.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/extract_color_from_style_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/line_icon.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/polygon_icon.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/symbol_icon.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/vector_icon.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/vector_icon.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/legend/vector_style_legend.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/orientation/dynamic_orientation_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/orientation/orientation_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/orientation/static_orientation_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/size/dynamic_size_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/size/size_range_selector.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/size/static_size_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/size/vector_style_size_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/stop_input.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/style_map_select.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/style_option_shapes.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/style_prop_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/__snapshots__/icon_select.test.js.snap (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/_icon_select.scss (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/dynamic_icon_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/icon_map_select.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/icon_select.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/icon_select.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/icon_stops.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/icon_stops.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/static_icon_form.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/vector_style_icon_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/symbol/vector_style_symbolize_as_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/components/vector_style_editor.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/__snapshots__/dynamic_color_property.test.js.snap (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/components/categorical_legend.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/components/ordinal_legend.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_color_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_color_property.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_icon_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_orientation_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_size_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_style_property.d.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_style_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/dynamic_text_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/label_border_size_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/static_color_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/static_icon_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/static_orientation_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/static_size_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/static_style_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/static_text_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/style_property.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/properties/symbolize_as_property.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/style_meta.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/style_util.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/style_util.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/symbol_utils.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/symbol_utils.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/vector_style.d.ts (94%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/vector_style.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/vector_style.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/styles/vector/vector_style_defaults.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/tooltips/es_agg_tooltip_property.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/tooltips/es_tooltip_property.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/tooltips/es_tooltip_property.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/tooltips/join_tooltip_property.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/tooltips/tooltip_property.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/assign_feature_ids.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/assign_feature_ids.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/can_skip_fetch.test.js (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/can_skip_fetch.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/data_request.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/es_agg_utils.test.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/es_agg_utils.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/is_metric_countable.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/is_refresh_only_query.ts (100%) rename x-pack/plugins/maps/public/{layers => classes}/util/mb_filter_expressions.ts (100%) diff --git a/x-pack/legacy/plugins/maps/public/index.ts b/x-pack/legacy/plugins/maps/public/index.ts index 98db26859297..e1532cac858a 100644 --- a/x-pack/legacy/plugins/maps/public/index.ts +++ b/x-pack/legacy/plugins/maps/public/index.ts @@ -30,5 +30,5 @@ export const plugin = () => { export { RenderTooltipContentParams, ITooltipProperty, -} from '../../../../plugins/maps/public/layers/tooltips/tooltip_property'; +} from '../../../../plugins/maps/public/classes/tooltips/tooltip_property'; export { MapEmbeddable, MapEmbeddableInput } from '../../../../plugins/maps/public/embeddable'; diff --git a/x-pack/plugins/maps/public/angular/get_initial_layers.js b/x-pack/plugins/maps/public/angular/get_initial_layers.js index 09f66740af37..598fd6ce324d 100644 --- a/x-pack/plugins/maps/public/angular/get_initial_layers.js +++ b/x-pack/plugins/maps/public/angular/get_initial_layers.js @@ -5,17 +5,17 @@ */ import _ from 'lodash'; // Import each layer type, even those not used, to init in registry -import '../layers/sources/wms_source'; -import '../layers/sources/ems_file_source'; -import '../layers/sources/es_search_source'; -import '../layers/sources/es_pew_pew_source'; -import '../layers/sources/kibana_regionmap_source'; -import '../layers/sources/es_geo_grid_source'; -import '../layers/sources/xyz_tms_source'; -import { KibanaTilemapSource } from '../layers/sources/kibana_tilemap_source'; -import { TileLayer } from '../layers/tile_layer'; -import { EMSTMSSource } from '../layers/sources/ems_tms_source'; -import { VectorTileLayer } from '../layers/vector_tile_layer'; +import '../classes/sources/wms_source'; +import '../classes/sources/ems_file_source'; +import '../classes/sources/es_search_source'; +import '../classes/sources/es_pew_pew_source'; +import '../classes/sources/kibana_regionmap_source'; +import '../classes/sources/es_geo_grid_source'; +import '../classes/sources/xyz_tms_source'; +import { KibanaTilemapSource } from '../classes/sources/kibana_tilemap_source'; +import { TileLayer } from '../classes/layers/tile_layer/tile_layer'; +import { EMSTMSSource } from '../classes/sources/ems_tms_source'; +import { VectorTileLayer } from '../classes/layers/vector_tile_layer/vector_tile_layer'; import { getIsEmsEnabled } from '../kibana_services'; import { getKibanaTileMap } from '../meta'; diff --git a/x-pack/plugins/maps/public/layers/_index.scss b/x-pack/plugins/maps/public/classes/_index.scss similarity index 100% rename from x-pack/plugins/maps/public/layers/_index.scss rename to x-pack/plugins/maps/public/classes/_index.scss diff --git a/x-pack/plugins/maps/public/layers/fields/ems_file_field.ts b/x-pack/plugins/maps/public/classes/fields/ems_file_field.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/ems_file_field.ts rename to x-pack/plugins/maps/public/classes/fields/ems_file_field.ts diff --git a/x-pack/plugins/maps/public/layers/fields/es_agg_field.test.ts b/x-pack/plugins/maps/public/classes/fields/es_agg_field.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/es_agg_field.test.ts rename to x-pack/plugins/maps/public/classes/fields/es_agg_field.test.ts diff --git a/x-pack/plugins/maps/public/layers/fields/es_agg_field.ts b/x-pack/plugins/maps/public/classes/fields/es_agg_field.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/es_agg_field.ts rename to x-pack/plugins/maps/public/classes/fields/es_agg_field.ts diff --git a/x-pack/plugins/maps/public/layers/fields/es_doc_field.ts b/x-pack/plugins/maps/public/classes/fields/es_doc_field.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/es_doc_field.ts rename to x-pack/plugins/maps/public/classes/fields/es_doc_field.ts diff --git a/x-pack/plugins/maps/public/layers/fields/field.ts b/x-pack/plugins/maps/public/classes/fields/field.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/field.ts rename to x-pack/plugins/maps/public/classes/fields/field.ts diff --git a/x-pack/plugins/maps/public/layers/fields/kibana_region_field.ts b/x-pack/plugins/maps/public/classes/fields/kibana_region_field.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/kibana_region_field.ts rename to x-pack/plugins/maps/public/classes/fields/kibana_region_field.ts diff --git a/x-pack/plugins/maps/public/layers/fields/top_term_percentage_field.ts b/x-pack/plugins/maps/public/classes/fields/top_term_percentage_field.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/fields/top_term_percentage_field.ts rename to x-pack/plugins/maps/public/classes/fields/top_term_percentage_field.ts diff --git a/x-pack/plugins/maps/public/layers/joins/inner_join.js b/x-pack/plugins/maps/public/classes/joins/inner_join.js similarity index 100% rename from x-pack/plugins/maps/public/layers/joins/inner_join.js rename to x-pack/plugins/maps/public/classes/joins/inner_join.js diff --git a/x-pack/plugins/maps/public/layers/joins/inner_join.test.js b/x-pack/plugins/maps/public/classes/joins/inner_join.test.js similarity index 98% rename from x-pack/plugins/maps/public/layers/joins/inner_join.test.js rename to x-pack/plugins/maps/public/classes/joins/inner_join.test.js index f197a67becfa..ca40ab1ea7db 100644 --- a/x-pack/plugins/maps/public/layers/joins/inner_join.test.js +++ b/x-pack/plugins/maps/public/classes/joins/inner_join.test.js @@ -7,7 +7,7 @@ import { InnerJoin } from './inner_join'; jest.mock('../../kibana_services', () => {}); -jest.mock('../vector_layer', () => {}); +jest.mock('../layers/vector_layer/vector_layer', () => {}); const rightSource = { id: 'd3625663-5b34-4d50-a784-0d743f676a0c', diff --git a/x-pack/plugins/maps/public/layers/joins/join.ts b/x-pack/plugins/maps/public/classes/joins/join.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/joins/join.ts rename to x-pack/plugins/maps/public/classes/joins/join.ts diff --git a/x-pack/plugins/maps/public/layers/blended_vector_layer.ts b/x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts similarity index 89% rename from x-pack/plugins/maps/public/layers/blended_vector_layer.ts rename to x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts index adf04b415565..b5b824c8594c 100644 --- a/x-pack/plugins/maps/public/layers/blended_vector_layer.ts +++ b/x-pack/plugins/maps/public/classes/layers/blended_vector_layer/blended_vector_layer.ts @@ -5,11 +5,11 @@ */ import { i18n } from '@kbn/i18n'; -import { VectorLayer } from './vector_layer'; -import { IVectorStyle, VectorStyle } from './styles/vector/vector_style'; -import { getDefaultDynamicProperties } from './styles/vector/vector_style_defaults'; -import { IDynamicStyleProperty } from './styles/vector/properties/dynamic_style_property'; -import { IStyleProperty } from './styles/vector/properties/style_property'; +import { VectorLayer } from '../vector_layer/vector_layer'; +import { IVectorStyle, VectorStyle } from '../../styles/vector/vector_style'; +import { getDefaultDynamicProperties } from '../../styles/vector/vector_style_defaults'; +import { IDynamicStyleProperty } from '../../styles/vector/properties/dynamic_style_property'; +import { IStyleProperty } from '../../styles/vector/properties/style_property'; import { SOURCE_TYPES, COUNT_PROP_LABEL, @@ -21,23 +21,23 @@ import { VECTOR_STYLES, LAYER_STYLE_TYPE, FIELD_ORIGIN, -} from '../../common/constants'; -import { ESGeoGridSource } from './sources/es_geo_grid_source/es_geo_grid_source'; -import { canSkipSourceUpdate } from './util/can_skip_fetch'; -import { IVectorLayer } from './vector_layer'; -import { IESSource } from './sources/es_source'; -import { IESAggSource } from './sources/es_agg_source'; -import { ISource } from './sources/source'; -import { SyncContext } from '../actions/map_actions'; -import { DataRequestAbortError } from './util/data_request'; +} from '../../../../common/constants'; +import { ESGeoGridSource } from '../../sources/es_geo_grid_source/es_geo_grid_source'; +import { canSkipSourceUpdate } from '../../util/can_skip_fetch'; +import { IVectorLayer } from '../vector_layer/vector_layer'; +import { IESSource } from '../../sources/es_source'; +import { IESAggSource } from '../../sources/es_agg_source'; +import { ISource } from '../../sources/source'; +import { SyncContext } from '../../../actions/map_actions'; +import { DataRequestAbortError } from '../../util/data_request'; import { VectorStyleDescriptor, SizeDynamicOptions, DynamicStylePropertyOptions, VectorLayerDescriptor, -} from '../../common/descriptor_types'; -import { IStyle } from './styles/style'; -import { IVectorSource } from './sources/vector_source'; +} from '../../../../common/descriptor_types'; +import { IStyle } from '../../styles/style'; +import { IVectorSource } from '../../sources/vector_source'; const ACTIVE_COUNT_DATA_ID = 'ACTIVE_COUNT_DATA_ID'; diff --git a/x-pack/plugins/maps/public/layers/heatmap_layer.js b/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js similarity index 93% rename from x-pack/plugins/maps/public/layers/heatmap_layer.js rename to x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js index 22f7a92c17c5..f6b9bd628029 100644 --- a/x-pack/plugins/maps/public/layers/heatmap_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/heatmap_layer/heatmap_layer.js @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AbstractLayer } from './layer'; -import { VectorLayer } from './vector_layer'; -import { HeatmapStyle } from './styles/heatmap/heatmap_style'; -import { EMPTY_FEATURE_COLLECTION, LAYER_TYPE } from '../../common/constants'; +import { AbstractLayer } from '../layer'; +import { VectorLayer } from '../vector_layer/vector_layer'; +import { HeatmapStyle } from '../../styles/heatmap/heatmap_style'; +import { EMPTY_FEATURE_COLLECTION, LAYER_TYPE } from '../../../../common/constants'; const SCALED_PROPERTY_NAME = '__kbn_heatmap_weight__'; //unique name to store scaled value for weighting diff --git a/x-pack/plugins/maps/public/layers/layer.tsx b/x-pack/plugins/maps/public/classes/layers/layer.tsx similarity index 97% rename from x-pack/plugins/maps/public/layers/layer.tsx rename to x-pack/plugins/maps/public/classes/layers/layer.tsx index 8ecaf4d90325..c46d22ef0bd8 100644 --- a/x-pack/plugins/maps/public/layers/layer.tsx +++ b/x-pack/plugins/maps/public/classes/layers/layer.tsx @@ -12,25 +12,25 @@ import { EuiIcon, EuiLoadingSpinner } from '@elastic/eui'; import uuid from 'uuid/v4'; import { i18n } from '@kbn/i18n'; import { FeatureCollection } from 'geojson'; -import { DataRequest } from './util/data_request'; +import { DataRequest } from '../util/data_request'; import { MAX_ZOOM, MB_SOURCE_ID_LAYER_ID_PREFIX_DELIMITER, MIN_ZOOM, SOURCE_DATA_ID_ORIGIN, -} from '../../common/constants'; +} from '../../../common/constants'; // @ts-ignore // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { copyPersistentState } from '../reducers/util.js'; +import { copyPersistentState } from '../../reducers/util.js'; import { LayerDescriptor, MapExtent, MapFilters, StyleDescriptor, -} from '../../common/descriptor_types'; -import { Attribution, ImmutableSourceProperty, ISource, SourceEditorArgs } from './sources/source'; -import { SyncContext } from '../actions/map_actions'; -import { IStyle } from './styles/style'; +} from '../../../common/descriptor_types'; +import { Attribution, ImmutableSourceProperty, ISource, SourceEditorArgs } from '../sources/source'; +import { SyncContext } from '../../actions/map_actions'; +import { IStyle } from '../styles/style'; export interface ILayer { getBounds(mapFilters: MapFilters): Promise; diff --git a/x-pack/plugins/maps/public/layers/layer_wizard_registry.ts b/x-pack/plugins/maps/public/classes/layers/layer_wizard_registry.ts similarity index 95% rename from x-pack/plugins/maps/public/layers/layer_wizard_registry.ts rename to x-pack/plugins/maps/public/classes/layers/layer_wizard_registry.ts index f866fc10b1f4..7a2a038c1b28 100644 --- a/x-pack/plugins/maps/public/layers/layer_wizard_registry.ts +++ b/x-pack/plugins/maps/public/classes/layers/layer_wizard_registry.ts @@ -6,7 +6,7 @@ /* eslint-disable @typescript-eslint/consistent-type-definitions */ import { ReactElement } from 'react'; -import { LayerDescriptor } from '../../common/descriptor_types'; +import { LayerDescriptor } from '../../../common/descriptor_types'; export type RenderWizardArguments = { previewLayer: (layerDescriptor: LayerDescriptor | null, isIndexingSource?: boolean) => void; diff --git a/x-pack/plugins/maps/public/layers/load_layer_wizards.ts b/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts similarity index 68% rename from x-pack/plugins/maps/public/layers/load_layer_wizards.ts rename to x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts index 098ff51791d7..590c1a9d6ae4 100644 --- a/x-pack/plugins/maps/public/layers/load_layer_wizards.ts +++ b/x-pack/plugins/maps/public/classes/layers/load_layer_wizards.ts @@ -6,27 +6,27 @@ import { registerLayerWizard } from './layer_wizard_registry'; // @ts-ignore -import { uploadLayerWizardConfig } from './sources/client_file_source'; +import { uploadLayerWizardConfig } from '../sources/client_file_source'; // @ts-ignore -import { esDocumentsLayerWizardConfig } from './sources/es_search_source'; +import { esDocumentsLayerWizardConfig } from '../sources/es_search_source'; // @ts-ignore -import { clustersLayerWizardConfig, heatmapLayerWizardConfig } from './sources/es_geo_grid_source'; +import { clustersLayerWizardConfig, heatmapLayerWizardConfig } from '../sources/es_geo_grid_source'; // @ts-ignore -import { point2PointLayerWizardConfig } from './sources/es_pew_pew_source'; +import { point2PointLayerWizardConfig } from '../sources/es_pew_pew_source'; // @ts-ignore -import { emsBoundariesLayerWizardConfig } from './sources/ems_file_source'; +import { emsBoundariesLayerWizardConfig } from '../sources/ems_file_source'; // @ts-ignore -import { emsBaseMapLayerWizardConfig } from './sources/ems_tms_source'; +import { emsBaseMapLayerWizardConfig } from '../sources/ems_tms_source'; // @ts-ignore -import { kibanaRegionMapLayerWizardConfig } from './sources/kibana_regionmap_source'; +import { kibanaRegionMapLayerWizardConfig } from '../sources/kibana_regionmap_source'; // @ts-ignore -import { kibanaBasemapLayerWizardConfig } from './sources/kibana_tilemap_source'; -import { tmsLayerWizardConfig } from './sources/xyz_tms_source'; +import { kibanaBasemapLayerWizardConfig } from '../sources/kibana_tilemap_source'; +import { tmsLayerWizardConfig } from '../sources/xyz_tms_source'; // @ts-ignore -import { wmsLayerWizardConfig } from './sources/wms_source'; -import { mvtVectorSourceWizardConfig } from './sources/mvt_single_layer_vector_source'; +import { wmsLayerWizardConfig } from '../sources/wms_source'; +import { mvtVectorSourceWizardConfig } from '../sources/mvt_single_layer_vector_source'; import { ObservabilityLayerWizardConfig } from './solution_layers/observability'; -import { getInjectedVarFunc } from '../kibana_services'; +import { getInjectedVarFunc } from '../../kibana_services'; let registered = false; export function registerLayerWizards() { diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/create_layer_descriptor.test.ts b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts similarity index 99% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/create_layer_descriptor.test.ts rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts index 6c0b6cdc39b8..ce079d67c15e 100644 --- a/x-pack/plugins/maps/public/layers/solution_layers/observability/create_layer_descriptor.test.ts +++ b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -jest.mock('../../../kibana_services', () => { +jest.mock('../../../../kibana_services', () => { const mockUiSettings = { get: () => { return undefined; diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/create_layer_descriptor.ts b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts similarity index 92% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/create_layer_descriptor.ts rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts index e2833d5abd0c..ba019f97b287 100644 --- a/x-pack/plugins/maps/public/layers/solution_layers/observability/create_layer_descriptor.ts +++ b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/create_layer_descriptor.ts @@ -13,7 +13,7 @@ import { SizeDynamicOptions, StylePropertyField, VectorStylePropertiesDescriptor, -} from '../../../../common/descriptor_types'; +} from '../../../../../common/descriptor_types'; import { AGG_TYPE, COLOR_MAP_TYPE, @@ -23,20 +23,20 @@ import { SOURCE_TYPES, STYLE_TYPE, VECTOR_STYLES, -} from '../../../../common/constants'; -import { getJoinAggKey, getSourceAggKey } from '../../../../common/get_agg_key'; +} from '../../../../../common/constants'; +import { getJoinAggKey, getSourceAggKey } from '../../../../../common/get_agg_key'; import { OBSERVABILITY_LAYER_TYPE } from './layer_select'; import { OBSERVABILITY_METRIC_TYPE } from './metric_select'; import { DISPLAY } from './display_select'; -import { VectorStyle } from '../../styles/vector/vector_style'; +import { VectorStyle } from '../../../styles/vector/vector_style'; // @ts-ignore -import { EMSFileSource } from '../../sources/ems_file_source'; +import { EMSFileSource } from '../../../sources/ems_file_source'; // @ts-ignore -import { ESGeoGridSource } from '../../sources/es_geo_grid_source'; -import { VectorLayer } from '../../vector_layer'; +import { ESGeoGridSource } from '../../../sources/es_geo_grid_source'; +import { VectorLayer } from '../../vector_layer/vector_layer'; // @ts-ignore -import { HeatmapLayer } from '../../heatmap_layer'; -import { getDefaultDynamicProperties } from '../../styles/vector/vector_style_defaults'; +import { HeatmapLayer } from '../../heatmap_layer/heatmap_layer'; +import { getDefaultDynamicProperties } from '../../../styles/vector/vector_style_defaults'; // redefining APM constant to avoid making maps app depend on APM plugin export const APM_INDEX_PATTERN_ID = 'apm_static_index_pattern_id'; diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/display_select.tsx b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/display_select.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/display_select.tsx rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/display_select.tsx diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/index.ts b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/index.ts rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/index.ts diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/layer_select.tsx b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/layer_select.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/layer_select.tsx rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/layer_select.tsx diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/metric_select.tsx b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/metric_select.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/metric_select.tsx rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/metric_select.tsx diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/observability_layer_template.tsx b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/observability_layer_template.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/observability_layer_template.tsx rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/observability_layer_template.tsx diff --git a/x-pack/plugins/maps/public/layers/solution_layers/observability/observability_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/observability_layer_wizard.tsx similarity index 94% rename from x-pack/plugins/maps/public/layers/solution_layers/observability/observability_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/layers/solution_layers/observability/observability_layer_wizard.tsx index 3fbb3157ae62..db97c08596e0 100644 --- a/x-pack/plugins/maps/public/layers/solution_layers/observability/observability_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/layers/solution_layers/observability/observability_layer_wizard.tsx @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; import { ObservabilityLayerTemplate } from './observability_layer_template'; import { APM_INDEX_PATTERN_ID } from './create_layer_descriptor'; -import { getIndexPatternService } from '../../../kibana_services'; +import { getIndexPatternService } from '../../../../kibana_services'; export const ObservabilityLayerWizardConfig: LayerWizard = { checkVisibility: async () => { diff --git a/x-pack/plugins/maps/public/layers/tile_layer.d.ts b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.d.ts similarity index 71% rename from x-pack/plugins/maps/public/layers/tile_layer.d.ts rename to x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.d.ts index 8a1ef0f17271..6f719d8abdcb 100644 --- a/x-pack/plugins/maps/public/layers/tile_layer.d.ts +++ b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.d.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AbstractLayer } from './layer'; -import { ITMSSource } from './sources/tms_source'; -import { LayerDescriptor } from '../../common/descriptor_types'; +import { AbstractLayer } from '../layer'; +import { ITMSSource } from '../../sources/tms_source'; +import { LayerDescriptor } from '../../../../common/descriptor_types'; interface ITileLayerArguments { source: ITMSSource; diff --git a/x-pack/plugins/maps/public/layers/tile_layer.js b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js similarity index 95% rename from x-pack/plugins/maps/public/layers/tile_layer.js rename to x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js index baded3c28763..69f5033e3af0 100644 --- a/x-pack/plugins/maps/public/layers/tile_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.js @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AbstractLayer } from './layer'; +import { AbstractLayer } from '../layer'; import _ from 'lodash'; -import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE, LAYER_STYLE_TYPE } from '../../common/constants'; -import { TileStyle } from './styles/tile/tile_style'; +import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE, LAYER_STYLE_TYPE } from '../../../../common/constants'; +import { TileStyle } from '../../styles/tile/tile_style'; export class TileLayer extends AbstractLayer { static type = LAYER_TYPE.TILE; diff --git a/x-pack/plugins/maps/public/layers/tile_layer.test.ts b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.test.ts similarity index 87% rename from x-pack/plugins/maps/public/layers/tile_layer.test.ts rename to x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.test.ts index d536b18af4aa..7954d0c59d97 100644 --- a/x-pack/plugins/maps/public/layers/tile_layer.test.ts +++ b/x-pack/plugins/maps/public/classes/layers/tile_layer/tile_layer.test.ts @@ -6,10 +6,10 @@ // eslint-disable-next-line max-classes-per-file import { ITileLayerArguments, TileLayer } from './tile_layer'; -import { SOURCE_TYPES } from '../../common/constants'; -import { XYZTMSSourceDescriptor } from '../../common/descriptor_types'; -import { ITMSSource, AbstractTMSSource } from './sources/tms_source'; -import { ILayer } from './layer'; +import { SOURCE_TYPES } from '../../../../common/constants'; +import { XYZTMSSourceDescriptor } from '../../../../common/descriptor_types'; +import { ITMSSource, AbstractTMSSource } from '../../sources/tms_source'; +import { ILayer } from '../layer'; const sourceDescriptor: XYZTMSSourceDescriptor = { type: SOURCE_TYPES.EMS_XYZ, diff --git a/x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx b/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx similarity index 87% rename from x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx rename to x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx index 06c5ef579b22..bb4fbe9d01b6 100644 --- a/x-pack/plugins/maps/public/layers/tiled_vector_layer.tsx +++ b/x-pack/plugins/maps/public/classes/layers/tiled_vector_layer/tiled_vector_layer.tsx @@ -6,15 +6,18 @@ import React from 'react'; import { EuiIcon } from '@elastic/eui'; -import { VectorStyle } from './styles/vector/vector_style'; -import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE } from '../../common/constants'; -import { VectorLayer, VectorLayerArguments } from './vector_layer'; -import { canSkipSourceUpdate } from './util/can_skip_fetch'; -import { ITiledSingleLayerVectorSource } from './sources/vector_source'; -import { SyncContext } from '../actions/map_actions'; -import { ISource } from './sources/source'; -import { VectorLayerDescriptor, VectorSourceRequestMeta } from '../../common/descriptor_types'; -import { MVTSingleLayerVectorSourceConfig } from './sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor'; +import { VectorStyle } from '../../styles/vector/vector_style'; +import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE } from '../../../../common/constants'; +import { VectorLayer, VectorLayerArguments } from '../vector_layer/vector_layer'; +import { canSkipSourceUpdate } from '../../util/can_skip_fetch'; +import { ITiledSingleLayerVectorSource } from '../../sources/vector_source'; +import { SyncContext } from '../../../actions/map_actions'; +import { ISource } from '../../sources/source'; +import { + VectorLayerDescriptor, + VectorSourceRequestMeta, +} from '../../../../common/descriptor_types'; +import { MVTSingleLayerVectorSourceConfig } from '../../sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor'; export class TiledVectorLayer extends VectorLayer { static type = LAYER_TYPE.TILED_VECTOR; diff --git a/x-pack/plugins/maps/public/layers/vector_layer.d.ts b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts similarity index 82% rename from x-pack/plugins/maps/public/layers/vector_layer.d.ts rename to x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts index 710b95b045e7..73785d4cc04e 100644 --- a/x-pack/plugins/maps/public/layers/vector_layer.d.ts +++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.d.ts @@ -5,18 +5,18 @@ */ /* eslint-disable @typescript-eslint/consistent-type-definitions */ -import { AbstractLayer } from './layer'; -import { IVectorSource } from './sources/vector_source'; +import { AbstractLayer } from '../layer'; +import { IVectorSource } from '../../sources/vector_source'; import { MapFilters, VectorLayerDescriptor, VectorSourceRequestMeta, -} from '../../common/descriptor_types'; -import { ILayer } from './layer'; -import { IJoin } from './joins/join'; -import { IVectorStyle } from './styles/vector/vector_style'; -import { IField } from './fields/field'; -import { SyncContext } from '../actions/map_actions'; +} from '../../../../common/descriptor_types'; +import { ILayer } from '../layer'; +import { IJoin } from '../../joins/join'; +import { IVectorStyle } from '../../styles/vector/vector_style'; +import { IField } from '../../fields/field'; +import { SyncContext } from '../../../actions/map_actions'; export type VectorLayerArguments = { source: IVectorSource; diff --git a/x-pack/plugins/maps/public/layers/vector_layer.js b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.js similarity index 98% rename from x-pack/plugins/maps/public/layers/vector_layer.js rename to x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.js index 74ddf11c6beb..6c04f7c19ac7 100644 --- a/x-pack/plugins/maps/public/layers/vector_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/vector_layer/vector_layer.js @@ -6,8 +6,8 @@ import turf from 'turf'; import React from 'react'; -import { AbstractLayer } from './layer'; -import { VectorStyle } from './styles/vector/vector_style'; +import { AbstractLayer } from '../layer'; +import { VectorStyle } from '../../styles/vector/vector_style'; import { FEATURE_ID_PROPERTY_NAME, SOURCE_DATA_ID_ORIGIN, @@ -18,23 +18,23 @@ import { LAYER_TYPE, FIELD_ORIGIN, LAYER_STYLE_TYPE, -} from '../../common/constants'; +} from '../../../../common/constants'; import _ from 'lodash'; -import { JoinTooltipProperty } from './tooltips/join_tooltip_property'; +import { JoinTooltipProperty } from '../../tooltips/join_tooltip_property'; import { EuiIcon } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { DataRequestAbortError } from './util/data_request'; +import { DataRequestAbortError } from '../../util/data_request'; import { canSkipSourceUpdate, canSkipStyleMetaUpdate, canSkipFormattersUpdate, -} from './util/can_skip_fetch'; -import { assignFeatureIds } from './util/assign_feature_ids'; +} from '../../util/can_skip_fetch'; +import { assignFeatureIds } from '../../util/assign_feature_ids'; import { getFillFilterExpression, getLineFilterExpression, getPointFilterExpression, -} from './util/mb_filter_expressions'; +} from '../../util/mb_filter_expressions'; export class VectorLayer extends AbstractLayer { static type = LAYER_TYPE.VECTOR; diff --git a/x-pack/plugins/maps/public/layers/vector_tile_layer.js b/x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js similarity index 97% rename from x-pack/plugins/maps/public/layers/vector_tile_layer.js rename to x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js index fc7812a2c86c..fe1ff5892216 100644 --- a/x-pack/plugins/maps/public/layers/vector_tile_layer.js +++ b/x-pack/plugins/maps/public/classes/layers/vector_tile_layer/vector_tile_layer.js @@ -4,14 +4,14 @@ * you may not use this file except in compliance with the Elastic License. */ -import { TileLayer } from './tile_layer'; +import { TileLayer } from '../tile_layer/tile_layer'; import _ from 'lodash'; -import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE, LAYER_STYLE_TYPE } from '../../common/constants'; -import { isRetina } from '../meta'; +import { SOURCE_DATA_ID_ORIGIN, LAYER_TYPE, LAYER_STYLE_TYPE } from '../../../../common/constants'; +import { isRetina } from '../../../meta'; import { addSpriteSheetToMapFromImageData, loadSpriteSheetImageData, -} from '../connected_components/map/mb/utils'; //todo move this implementation +} from '../../../connected_components/map/mb/utils'; //todo move this implementation const MB_STYLE_TYPE_TO_OPACITY = { fill: ['fill-opacity'], diff --git a/x-pack/plugins/maps/public/layers/sources/client_file_source/create_client_file_source_editor.js b/x-pack/plugins/maps/public/classes/sources/client_file_source/create_client_file_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/client_file_source/create_client_file_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/client_file_source/create_client_file_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/client_file_source/geojson_file_source.js b/x-pack/plugins/maps/public/classes/sources/client_file_source/geojson_file_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/client_file_source/geojson_file_source.js rename to x-pack/plugins/maps/public/classes/sources/client_file_source/geojson_file_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/client_file_source/index.js b/x-pack/plugins/maps/public/classes/sources/client_file_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/client_file_source/index.js rename to x-pack/plugins/maps/public/classes/sources/client_file_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/client_file_source/upload_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/client_file_source/upload_layer_wizard.tsx similarity index 93% rename from x-pack/plugins/maps/public/layers/sources/client_file_source/upload_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/client_file_source/upload_layer_wizard.tsx index 2f8aa67d74b5..d5ee354914e5 100644 --- a/x-pack/plugins/maps/public/layers/sources/client_file_source/upload_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/client_file_source/upload_layer_wizard.tsx @@ -13,13 +13,13 @@ import { SCALING_TYPES, } from '../../../../common/constants'; // @ts-ignore -import { ESSearchSource, createDefaultLayerDescriptor } from '../es_search_source'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { createDefaultLayerDescriptor } from '../es_search_source'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; // @ts-ignore import { ClientFileCreateSourceEditor } from './create_client_file_source_editor'; // @ts-ignore import { GeojsonFileSource } from './geojson_file_source'; -import { VectorLayer } from '../../vector_layer'; +import { VectorLayer } from '../../layers/vector_layer/vector_layer'; export const uploadLayerWizardConfig: LayerWizard = { description: i18n.translate('xpack.maps.source.geojsonFileDescription', { diff --git a/x-pack/plugins/maps/public/layers/sources/ems_file_source/create_source_editor.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/create_source_editor.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_file_source/create_source_editor.tsx rename to x-pack/plugins/maps/public/classes/sources/ems_file_source/create_source_editor.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_boundaries_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_boundaries_layer_wizard.tsx similarity index 89% rename from x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_boundaries_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_boundaries_layer_wizard.tsx index cc7e04a7313a..4f1edca75b30 100644 --- a/x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_boundaries_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_boundaries_layer_wizard.tsx @@ -6,8 +6,8 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { VectorLayer } from '../../vector_layer'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { VectorLayer } from '../../layers/vector_layer/vector_layer'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; import { EMSFileCreateSourceEditor } from './create_source_editor'; import { EMSFileSource, sourceTitle } from './ems_file_source'; // @ts-ignore diff --git a/x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_file_source.test.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.test.tsx similarity index 96% rename from x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_file_source.test.tsx rename to x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.test.tsx index 03e3b2a8f494..24c111a72ac0 100644 --- a/x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_file_source.test.tsx +++ b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.test.tsx @@ -7,7 +7,7 @@ import { EMSFileSource } from './ems_file_source'; jest.mock('ui/new_platform'); -jest.mock('../../vector_layer', () => {}); +jest.mock('../../layers/vector_layer/vector_layer', () => {}); function makeEMSFileSource(tooltipProperties: string[]) { const emsFileSource = new EMSFileSource({ tooltipProperties }); diff --git a/x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_file_source.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_file_source/ems_file_source.tsx rename to x-pack/plugins/maps/public/classes/sources/ems_file_source/ems_file_source.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/ems_file_source/index.ts b/x-pack/plugins/maps/public/classes/sources/ems_file_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_file_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/ems_file_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/ems_file_source/update_source_editor.tsx b/x-pack/plugins/maps/public/classes/sources/ems_file_source/update_source_editor.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_file_source/update_source_editor.tsx rename to x-pack/plugins/maps/public/classes/sources/ems_file_source/update_source_editor.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_base_map_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_base_map_layer_wizard.tsx similarity index 87% rename from x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_base_map_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_base_map_layer_wizard.tsx index 391ab5691938..7a25609c6a5d 100644 --- a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_base_map_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_base_map_layer_wizard.tsx @@ -5,11 +5,11 @@ */ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; // @ts-ignore import { EMSTMSSource, sourceTitle } from './ems_tms_source'; // @ts-ignore -import { VectorTileLayer } from '../../vector_tile_layer'; +import { VectorTileLayer } from '../../layers/vector_tile_layer/vector_tile_layer'; // @ts-ignore import { TileServiceSelect } from './tile_service_select'; import { getIsEmsEnabled } from '../../../kibana_services'; diff --git a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_tms_source.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_tms_source.js rename to x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_tms_source.test.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_tms_source/ems_tms_source.test.js rename to x-pack/plugins/maps/public/classes/sources/ems_tms_source/ems_tms_source.test.js diff --git a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/index.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_tms_source/index.js rename to x-pack/plugins/maps/public/classes/sources/ems_tms_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/tile_service_select.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/tile_service_select.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_tms_source/tile_service_select.js rename to x-pack/plugins/maps/public/classes/sources/ems_tms_source/tile_service_select.js diff --git a/x-pack/plugins/maps/public/layers/sources/ems_tms_source/update_source_editor.js b/x-pack/plugins/maps/public/classes/sources/ems_tms_source/update_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_tms_source/update_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/ems_tms_source/update_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/ems_unavailable_message.ts b/x-pack/plugins/maps/public/classes/sources/ems_unavailable_message.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/ems_unavailable_message.ts rename to x-pack/plugins/maps/public/classes/sources/ems_unavailable_message.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_agg_source/es_agg_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_agg_source/es_agg_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_agg_source/es_agg_source.js b/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_agg_source/es_agg_source.js rename to x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_agg_source/es_agg_source.test.ts b/x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_agg_source/es_agg_source.test.ts rename to x-pack/plugins/maps/public/classes/sources/es_agg_source/es_agg_source.test.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_agg_source/index.ts b/x-pack/plugins/maps/public/classes/sources/es_agg_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_agg_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/es_agg_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/clusters_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/clusters_layer_wizard.tsx similarity index 95% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/clusters_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/clusters_layer_wizard.tsx index f9092e64833f..4e75ae882338 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/clusters_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/clusters_layer_wizard.tsx @@ -10,8 +10,8 @@ import React from 'react'; import { CreateSourceEditor } from './create_source_editor'; // @ts-ignore import { ESGeoGridSource, clustersTitle } from './es_geo_grid_source'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; -import { VectorLayer } from '../../vector_layer'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; +import { VectorLayer } from '../../layers/vector_layer/vector_layer'; import { ESGeoGridSourceDescriptor, ColorDynamicOptions, diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/convert_to_geojson.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/convert_to_geojson.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/convert_to_geojson.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/convert_to_geojson.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/convert_to_geojson.test.ts b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/convert_to_geojson.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/convert_to_geojson.test.ts rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/convert_to_geojson.test.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/create_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/create_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/create_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.test.ts b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/es_geo_grid_source.test.ts rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/es_geo_grid_source.test.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/geo_tile_utils.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/geo_tile_utils.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/geo_tile_utils.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/geo_tile_utils.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/geo_tile_utils.test.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/geo_tile_utils.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/geo_tile_utils.test.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/geo_tile_utils.test.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/heatmap_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/heatmap_layer_wizard.tsx similarity index 90% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/heatmap_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/heatmap_layer_wizard.tsx index fee1a81a5c63..d0e45cb05ca0 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/heatmap_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/heatmap_layer_wizard.tsx @@ -10,9 +10,9 @@ import React from 'react'; import { CreateSourceEditor } from './create_source_editor'; // @ts-ignore import { ESGeoGridSource, heatmapTitle } from './es_geo_grid_source'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; // @ts-ignore -import { HeatmapLayer } from '../../heatmap_layer'; +import { HeatmapLayer } from '../../layers/heatmap_layer/heatmap_layer'; import { ESGeoGridSourceDescriptor } from '../../../../common/descriptor_types'; import { RENDER_AS } from '../../../../common/constants'; diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/index.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/index.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/render_as_select.tsx b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/render_as_select.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/render_as_select.tsx rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/render_as_select.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/resolution_editor.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/resolution_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/resolution_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/update_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_geo_grid_source/update_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_geo_grid_source/update_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/convert_to_lines.js b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/convert_to_lines.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/convert_to_lines.js rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/convert_to_lines.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/convert_to_lines.test.ts b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/convert_to_lines.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/convert_to_lines.test.ts rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/convert_to_lines.test.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/create_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/create_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/create_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/es_pew_pew_source.js b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/es_pew_pew_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/es_pew_pew_source.js rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/es_pew_pew_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/index.js b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/index.js rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx similarity index 94% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx index 3ad6d64903d4..bda1a6650c48 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/point_2_point_layer_wizard.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; import { getDefaultDynamicProperties } from '../../styles/vector/vector_style_defaults'; -import { VectorLayer } from '../../vector_layer'; +import { VectorLayer } from '../../layers/vector_layer/vector_layer'; // @ts-ignore import { ESPewPewSource, sourceTitle } from './es_pew_pew_source'; import { VectorStyle } from '../../styles/vector/vector_style'; @@ -21,7 +21,7 @@ import { import { COLOR_GRADIENTS } from '../../styles/color_utils'; // @ts-ignore import { CreateSourceEditor } from './create_source_editor'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; import { ColorDynamicOptions, SizeDynamicOptions } from '../../../../common/descriptor_types'; export const point2PointLayerWizardConfig: LayerWizard = { diff --git a/x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/update_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/update_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_pew_pew_source/update_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_pew_pew_source/update_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap b/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap rename to x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/scaling_form.test.tsx.snap diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap b/x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap rename to x-pack/plugins/maps/public/classes/sources/es_search_source/__snapshots__/update_source_editor.test.js.snap diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/constants.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/constants.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/constants.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/constants.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/create_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/create_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/create_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_documents_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx similarity index 85% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/es_documents_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx index 4a775dd78f78..8898735427cc 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_documents_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_documents_layer_wizard.tsx @@ -8,11 +8,11 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; // @ts-ignore import { CreateSourceEditor } from './create_source_editor'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; // @ts-ignore import { ESSearchSource, sourceTitle } from './es_search_source'; -import { BlendedVectorLayer } from '../../blended_vector_layer'; -import { VectorLayer } from '../../vector_layer'; +import { BlendedVectorLayer } from '../../layers/blended_vector_layer/blended_vector_layer'; +import { VectorLayer } from '../../layers/vector_layer/vector_layer'; import { SCALING_TYPES } from '../../../../common/constants'; export function createDefaultLayerDescriptor(sourceConfig: unknown, mapColors: string[]) { diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/es_search_source.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/index.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/index.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/load_index_settings.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/load_index_settings.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/load_index_settings.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/load_index_settings.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/scaling_form.test.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.test.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/scaling_form.test.tsx rename to x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.test.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/scaling_form.tsx b/x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/scaling_form.tsx rename to x-pack/plugins/maps/public/classes/sources/es_search_source/scaling_form.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/update_source_editor.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/update_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_search_source/update_source_editor.test.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_search_source/update_source_editor.test.js rename to x-pack/plugins/maps/public/classes/sources/es_search_source/update_source_editor.test.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_source/es_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_source/es_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/es_source/es_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_source/es_source.js b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_source/es_source.js rename to x-pack/plugins/maps/public/classes/sources/es_source/es_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_source/index.ts b/x-pack/plugins/maps/public/classes/sources/es_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/es_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.d.ts b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.js b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.js rename to x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.test.js b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js similarity index 98% rename from x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.test.js rename to x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js index 14eb39180a6b..f6779206868a 100644 --- a/x-pack/plugins/maps/public/layers/sources/es_term_source/es_term_source.test.js +++ b/x-pack/plugins/maps/public/classes/sources/es_term_source/es_term_source.test.js @@ -7,7 +7,7 @@ import { ESTermSource, extractPropertiesMap } from './es_term_source'; jest.mock('ui/new_platform'); -jest.mock('../../vector_layer', () => {}); +jest.mock('../../layers/vector_layer/vector_layer', () => {}); const indexPatternTitle = 'myIndex'; const termFieldName = 'myTermField'; diff --git a/x-pack/plugins/maps/public/layers/sources/es_term_source/index.ts b/x-pack/plugins/maps/public/classes/sources/es_term_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/es_term_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/es_term_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/create_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/create_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/create_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/index.js b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/index.js rename to x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx similarity index 89% rename from x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx index a9adec2bda2c..309cb3abd83b 100644 --- a/x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_layer_wizard.tsx @@ -6,10 +6,10 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; // @ts-ignore import { KibanaRegionmapSource, sourceTitle } from './kibana_regionmap_source'; -import { VectorLayer } from '../../vector_layer'; +import { VectorLayer } from '../../layers/vector_layer/vector_layer'; // @ts-ignore import { CreateSourceEditor } from './create_source_editor'; // @ts-ignore diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_source.d.ts b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_source.js b/x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_regionmap_source/kibana_regionmap_source.js rename to x-pack/plugins/maps/public/classes/sources/kibana_regionmap_source/kibana_regionmap_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/create_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/create_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/create_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/index.js b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/index.js rename to x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx similarity index 89% rename from x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx index 3b4015641ede..46513985ed1a 100644 --- a/x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_base_map_layer_wizard.tsx @@ -6,12 +6,12 @@ import React from 'react'; import { i18n } from '@kbn/i18n'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; // @ts-ignore import { CreateSourceEditor } from './create_source_editor'; // @ts-ignore import { KibanaTilemapSource, sourceTitle } from './kibana_tilemap_source'; -import { TileLayer } from '../../tile_layer'; +import { TileLayer } from '../../layers/tile_layer/tile_layer'; // @ts-ignore import { getKibanaTileMap } from '../../../meta'; diff --git a/x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/kibana_tilemap_source.js b/x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/kibana_tilemap_source/kibana_tilemap_source.js rename to x-pack/plugins/maps/public/classes/sources/kibana_tilemap_source/kibana_tilemap_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/index.ts b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/layer_wizard.tsx similarity index 87% rename from x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/layer_wizard.tsx index c94fec3deac6..86f8108d5e23 100644 --- a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/layer_wizard.tsx @@ -11,8 +11,8 @@ import { MVTSingleLayerVectorSourceConfig, } from './mvt_single_layer_vector_source_editor'; import { MVTSingleLayerVectorSource, sourceTitle } from './mvt_single_layer_vector_source'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; -import { TiledVectorLayer } from '../../tiled_vector_layer'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; +import { TiledVectorLayer } from '../../layers/tiled_vector_layer/tiled_vector_layer'; export const mvtVectorSourceWizardConfig: LayerWizard = { description: i18n.translate('xpack.maps.source.mvtVectorSourceWizard', { diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts rename to x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source.ts diff --git a/x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx b/x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx rename to x-pack/plugins/maps/public/classes/sources/mvt_single_layer_vector_source/mvt_single_layer_vector_source_editor.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/source.ts b/x-pack/plugins/maps/public/classes/sources/source.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/source.ts rename to x-pack/plugins/maps/public/classes/sources/source.ts diff --git a/x-pack/plugins/maps/public/layers/sources/source_registry.ts b/x-pack/plugins/maps/public/classes/sources/source_registry.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/source_registry.ts rename to x-pack/plugins/maps/public/classes/sources/source_registry.ts diff --git a/x-pack/plugins/maps/public/layers/sources/tms_source/index.ts b/x-pack/plugins/maps/public/classes/sources/tms_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/tms_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/tms_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/tms_source/tms_source.d.ts b/x-pack/plugins/maps/public/classes/sources/tms_source/tms_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/tms_source/tms_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/tms_source/tms_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/tms_source/tms_source.js b/x-pack/plugins/maps/public/classes/sources/tms_source/tms_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/tms_source/tms_source.js rename to x-pack/plugins/maps/public/classes/sources/tms_source/tms_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/vector_feature_types.ts b/x-pack/plugins/maps/public/classes/sources/vector_feature_types.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/vector_feature_types.ts rename to x-pack/plugins/maps/public/classes/sources/vector_feature_types.ts diff --git a/x-pack/plugins/maps/public/layers/sources/vector_source/index.ts b/x-pack/plugins/maps/public/classes/sources/vector_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/vector_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/vector_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.d.ts b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.d.ts rename to x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.d.ts diff --git a/x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.js b/x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/vector_source/vector_source.js rename to x-pack/plugins/maps/public/classes/sources/vector_source/vector_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/wms_source/index.js b/x-pack/plugins/maps/public/classes/sources/wms_source/index.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/wms_source/index.js rename to x-pack/plugins/maps/public/classes/sources/wms_source/index.js diff --git a/x-pack/plugins/maps/public/layers/sources/wms_source/wms_client.js b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_client.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/wms_source/wms_client.js rename to x-pack/plugins/maps/public/classes/sources/wms_source/wms_client.js diff --git a/x-pack/plugins/maps/public/layers/sources/wms_source/wms_client.test.js b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_client.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/wms_source/wms_client.test.js rename to x-pack/plugins/maps/public/classes/sources/wms_source/wms_client.test.js diff --git a/x-pack/plugins/maps/public/layers/sources/wms_source/wms_create_source_editor.js b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_create_source_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/wms_source/wms_create_source_editor.js rename to x-pack/plugins/maps/public/classes/sources/wms_source/wms_create_source_editor.js diff --git a/x-pack/plugins/maps/public/layers/sources/wms_source/wms_layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_layer_wizard.tsx similarity index 88% rename from x-pack/plugins/maps/public/layers/sources/wms_source/wms_layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/wms_source/wms_layer_wizard.tsx index fbf5e25c78b1..9261b8866d11 100644 --- a/x-pack/plugins/maps/public/layers/sources/wms_source/wms_layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_layer_wizard.tsx @@ -10,8 +10,8 @@ import { i18n } from '@kbn/i18n'; import { WMSCreateSourceEditor } from './wms_create_source_editor'; // @ts-ignore import { sourceTitle, WMSSource } from './wms_source'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; -import { TileLayer } from '../../tile_layer'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; +import { TileLayer } from '../../layers/tile_layer/tile_layer'; export const wmsLayerWizardConfig: LayerWizard = { description: i18n.translate('xpack.maps.source.wmsDescription', { diff --git a/x-pack/plugins/maps/public/layers/sources/wms_source/wms_source.js b/x-pack/plugins/maps/public/classes/sources/wms_source/wms_source.js similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/wms_source/wms_source.js rename to x-pack/plugins/maps/public/classes/sources/wms_source/wms_source.js diff --git a/x-pack/plugins/maps/public/layers/sources/xyz_tms_source/index.ts b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/index.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/xyz_tms_source/index.ts rename to x-pack/plugins/maps/public/classes/sources/xyz_tms_source/index.ts diff --git a/x-pack/plugins/maps/public/layers/sources/xyz_tms_source/layer_wizard.tsx b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/layer_wizard.tsx similarity index 87% rename from x-pack/plugins/maps/public/layers/sources/xyz_tms_source/layer_wizard.tsx rename to x-pack/plugins/maps/public/classes/sources/xyz_tms_source/layer_wizard.tsx index e970c75fa7ad..574aaa262569 100644 --- a/x-pack/plugins/maps/public/layers/sources/xyz_tms_source/layer_wizard.tsx +++ b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/layer_wizard.tsx @@ -8,8 +8,8 @@ import { i18n } from '@kbn/i18n'; import React from 'react'; import { XYZTMSEditor, XYZTMSSourceConfig } from './xyz_tms_editor'; import { XYZTMSSource, sourceTitle } from './xyz_tms_source'; -import { LayerWizard, RenderWizardArguments } from '../../layer_wizard_registry'; -import { TileLayer } from '../../tile_layer'; +import { LayerWizard, RenderWizardArguments } from '../../layers/layer_wizard_registry'; +import { TileLayer } from '../../layers/tile_layer/tile_layer'; export const tmsLayerWizardConfig: LayerWizard = { description: i18n.translate('xpack.maps.source.ems_xyzDescription', { diff --git a/x-pack/plugins/maps/public/layers/sources/xyz_tms_source/xyz_tms_editor.tsx b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_editor.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/xyz_tms_source/xyz_tms_editor.tsx rename to x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_editor.tsx diff --git a/x-pack/plugins/maps/public/layers/sources/xyz_tms_source/xyz_tms_source.test.ts b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/xyz_tms_source/xyz_tms_source.test.ts rename to x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.test.ts diff --git a/x-pack/plugins/maps/public/layers/sources/xyz_tms_source/xyz_tms_source.ts b/x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/sources/xyz_tms_source/xyz_tms_source.ts rename to x-pack/plugins/maps/public/classes/sources/xyz_tms_source/xyz_tms_source.ts diff --git a/x-pack/plugins/maps/public/layers/styles/_index.scss b/x-pack/plugins/maps/public/classes/styles/_index.scss similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/_index.scss rename to x-pack/plugins/maps/public/classes/styles/_index.scss diff --git a/x-pack/plugins/maps/public/layers/styles/color_utils.js b/x-pack/plugins/maps/public/classes/styles/color_utils.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/color_utils.js rename to x-pack/plugins/maps/public/classes/styles/color_utils.js diff --git a/x-pack/plugins/maps/public/layers/styles/color_utils.test.js b/x-pack/plugins/maps/public/classes/styles/color_utils.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/color_utils.test.js rename to x-pack/plugins/maps/public/classes/styles/color_utils.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/components/_color_gradient.scss b/x-pack/plugins/maps/public/classes/styles/components/_color_gradient.scss similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/components/_color_gradient.scss rename to x-pack/plugins/maps/public/classes/styles/components/_color_gradient.scss diff --git a/x-pack/plugins/maps/public/layers/styles/components/color_gradient.js b/x-pack/plugins/maps/public/classes/styles/components/color_gradient.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/components/color_gradient.js rename to x-pack/plugins/maps/public/classes/styles/components/color_gradient.js diff --git a/x-pack/plugins/maps/public/layers/styles/components/ranged_style_legend_row.js b/x-pack/plugins/maps/public/classes/styles/components/ranged_style_legend_row.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/components/ranged_style_legend_row.js rename to x-pack/plugins/maps/public/classes/styles/components/ranged_style_legend_row.js diff --git a/x-pack/plugins/maps/public/layers/styles/heatmap/components/__snapshots__/heatmap_style_editor.test.js.snap b/x-pack/plugins/maps/public/classes/styles/heatmap/components/__snapshots__/heatmap_style_editor.test.js.snap similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/heatmap/components/__snapshots__/heatmap_style_editor.test.js.snap rename to x-pack/plugins/maps/public/classes/styles/heatmap/components/__snapshots__/heatmap_style_editor.test.js.snap diff --git a/x-pack/plugins/maps/public/layers/styles/heatmap/components/heatmap_constants.js b/x-pack/plugins/maps/public/classes/styles/heatmap/components/heatmap_constants.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/heatmap/components/heatmap_constants.js rename to x-pack/plugins/maps/public/classes/styles/heatmap/components/heatmap_constants.js diff --git a/x-pack/plugins/maps/public/layers/styles/heatmap/components/heatmap_style_editor.js b/x-pack/plugins/maps/public/classes/styles/heatmap/components/heatmap_style_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/heatmap/components/heatmap_style_editor.js rename to x-pack/plugins/maps/public/classes/styles/heatmap/components/heatmap_style_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/heatmap/components/heatmap_style_editor.test.js b/x-pack/plugins/maps/public/classes/styles/heatmap/components/heatmap_style_editor.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/heatmap/components/heatmap_style_editor.test.js rename to x-pack/plugins/maps/public/classes/styles/heatmap/components/heatmap_style_editor.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/heatmap/components/legend/heatmap_legend.js b/x-pack/plugins/maps/public/classes/styles/heatmap/components/legend/heatmap_legend.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/heatmap/components/legend/heatmap_legend.js rename to x-pack/plugins/maps/public/classes/styles/heatmap/components/legend/heatmap_legend.js diff --git a/x-pack/plugins/maps/public/layers/styles/heatmap/heatmap_style.js b/x-pack/plugins/maps/public/classes/styles/heatmap/heatmap_style.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/heatmap/heatmap_style.js rename to x-pack/plugins/maps/public/classes/styles/heatmap/heatmap_style.js diff --git a/x-pack/plugins/maps/public/layers/styles/style.ts b/x-pack/plugins/maps/public/classes/styles/style.ts similarity index 97% rename from x-pack/plugins/maps/public/layers/styles/style.ts rename to x-pack/plugins/maps/public/classes/styles/style.ts index 38fdc3690441..7d39acd504c4 100644 --- a/x-pack/plugins/maps/public/layers/styles/style.ts +++ b/x-pack/plugins/maps/public/classes/styles/style.ts @@ -6,7 +6,7 @@ import { ReactElement } from 'react'; import { StyleDescriptor, StyleMetaDescriptor } from '../../../common/descriptor_types'; -import { ILayer } from '../layer'; +import { ILayer } from '../layers/layer'; import { IField } from '../fields/field'; import { DataRequest } from '../util/data_request'; diff --git a/x-pack/plugins/maps/public/layers/styles/tile/tile_style.ts b/x-pack/plugins/maps/public/classes/styles/tile/tile_style.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/tile/tile_style.ts rename to x-pack/plugins/maps/public/classes/styles/tile/tile_style.ts diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/_style_prop_editor.scss b/x-pack/plugins/maps/public/classes/styles/vector/components/_style_prop_editor.scss similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/_style_prop_editor.scss rename to x-pack/plugins/maps/public/classes/styles/vector/components/_style_prop_editor.scss diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/_color_stops.scss b/x-pack/plugins/maps/public/classes/styles/vector/components/color/_color_stops.scss similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/_color_stops.scss rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/_color_stops.scss diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/color_map_select.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/color_map_select.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/color_map_select.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/color_map_select.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops_categorical.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops_categorical.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops_categorical.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops_categorical.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops_ordinal.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops_ordinal.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops_ordinal.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops_ordinal.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops_utils.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops_utils.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/color_stops_utils.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/color_stops_utils.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/dynamic_color_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/dynamic_color_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/dynamic_color_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/dynamic_color_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/mb_validated_color_picker.tsx b/x-pack/plugins/maps/public/classes/styles/vector/components/color/mb_validated_color_picker.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/mb_validated_color_picker.tsx rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/mb_validated_color_picker.tsx diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/static_color_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/static_color_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/static_color_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/static_color_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/color/vector_style_color_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/color/vector_style_color_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/color/vector_style_color_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/color/vector_style_color_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/field_meta/categorical_field_meta_popover.tsx b/x-pack/plugins/maps/public/classes/styles/vector/components/field_meta/categorical_field_meta_popover.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/field_meta/categorical_field_meta_popover.tsx rename to x-pack/plugins/maps/public/classes/styles/vector/components/field_meta/categorical_field_meta_popover.tsx diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/field_meta/field_meta_popover.tsx b/x-pack/plugins/maps/public/classes/styles/vector/components/field_meta/field_meta_popover.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/field_meta/field_meta_popover.tsx rename to x-pack/plugins/maps/public/classes/styles/vector/components/field_meta/field_meta_popover.tsx diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/field_meta/ordinal_field_meta_popover.tsx b/x-pack/plugins/maps/public/classes/styles/vector/components/field_meta/ordinal_field_meta_popover.tsx similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/field_meta/ordinal_field_meta_popover.tsx rename to x-pack/plugins/maps/public/classes/styles/vector/components/field_meta/ordinal_field_meta_popover.tsx diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/field_select.js b/x-pack/plugins/maps/public/classes/styles/vector/components/field_select.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/field_select.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/field_select.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/get_vector_style_label.js b/x-pack/plugins/maps/public/classes/styles/vector/components/get_vector_style_label.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/get_vector_style_label.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/get_vector_style_label.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/label/dynamic_label_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/label/dynamic_label_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/label/dynamic_label_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/label/dynamic_label_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/label/static_label_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/label/static_label_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/label/static_label_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/label/static_label_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/label/vector_style_label_border_size_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/label/vector_style_label_border_size_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/label/vector_style_label_border_size_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/label/vector_style_label_border_size_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/label/vector_style_label_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/label/vector_style_label_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/label/vector_style_label_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/label/vector_style_label_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/__snapshots__/vector_icon.test.js.snap b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/__snapshots__/vector_icon.test.js.snap similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/__snapshots__/vector_icon.test.js.snap rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/__snapshots__/vector_icon.test.js.snap diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/category.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/category.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/category.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/category.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/circle_icon.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/circle_icon.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/circle_icon.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/circle_icon.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/extract_color_from_style_property.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/extract_color_from_style_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/extract_color_from_style_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/extract_color_from_style_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/line_icon.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/line_icon.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/line_icon.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/line_icon.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/polygon_icon.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/polygon_icon.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/polygon_icon.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/polygon_icon.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/symbol_icon.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/symbol_icon.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/symbol_icon.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/symbol_icon.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/vector_icon.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/vector_icon.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/vector_icon.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/vector_icon.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/vector_icon.test.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/vector_icon.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/vector_icon.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/vector_icon.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/legend/vector_style_legend.js b/x-pack/plugins/maps/public/classes/styles/vector/components/legend/vector_style_legend.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/legend/vector_style_legend.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/legend/vector_style_legend.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/orientation/dynamic_orientation_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/orientation/dynamic_orientation_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/orientation/dynamic_orientation_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/orientation/dynamic_orientation_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/orientation/orientation_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/orientation/orientation_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/orientation/orientation_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/orientation/orientation_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/orientation/static_orientation_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/orientation/static_orientation_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/orientation/static_orientation_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/orientation/static_orientation_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/size/dynamic_size_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/size/dynamic_size_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/size/dynamic_size_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/size/dynamic_size_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/size/size_range_selector.js b/x-pack/plugins/maps/public/classes/styles/vector/components/size/size_range_selector.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/size/size_range_selector.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/size/size_range_selector.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/size/static_size_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/size/static_size_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/size/static_size_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/size/static_size_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/size/vector_style_size_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/size/vector_style_size_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/size/vector_style_size_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/size/vector_style_size_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/stop_input.js b/x-pack/plugins/maps/public/classes/styles/vector/components/stop_input.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/stop_input.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/stop_input.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/style_map_select.js b/x-pack/plugins/maps/public/classes/styles/vector/components/style_map_select.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/style_map_select.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/style_map_select.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/style_option_shapes.js b/x-pack/plugins/maps/public/classes/styles/vector/components/style_option_shapes.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/style_option_shapes.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/style_option_shapes.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/style_prop_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/style_prop_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/style_prop_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/style_prop_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/__snapshots__/icon_select.test.js.snap b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/__snapshots__/icon_select.test.js.snap similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/__snapshots__/icon_select.test.js.snap rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/__snapshots__/icon_select.test.js.snap diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/_icon_select.scss b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/_icon_select.scss similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/_icon_select.scss rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/_icon_select.scss diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/dynamic_icon_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/dynamic_icon_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/dynamic_icon_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/dynamic_icon_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_map_select.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_map_select.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_map_select.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_map_select.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_select.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_select.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_select.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_select.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_select.test.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_select.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_select.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_select.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_stops.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_stops.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_stops.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_stops.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_stops.test.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_stops.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/icon_stops.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/icon_stops.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/static_icon_form.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/static_icon_form.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/static_icon_form.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/static_icon_form.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/vector_style_icon_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/vector_style_icon_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/vector_style_icon_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/vector_style_icon_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/symbol/vector_style_symbolize_as_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/symbol/vector_style_symbolize_as_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/symbol/vector_style_symbolize_as_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/symbol/vector_style_symbolize_as_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js b/x-pack/plugins/maps/public/classes/styles/vector/components/vector_style_editor.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/components/vector_style_editor.js rename to x-pack/plugins/maps/public/classes/styles/vector/components/vector_style_editor.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/__snapshots__/dynamic_color_property.test.js.snap b/x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.js.snap similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/__snapshots__/dynamic_color_property.test.js.snap rename to x-pack/plugins/maps/public/classes/styles/vector/properties/__snapshots__/dynamic_color_property.test.js.snap diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/components/categorical_legend.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/components/categorical_legend.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/components/categorical_legend.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/components/categorical_legend.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/components/ordinal_legend.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/components/ordinal_legend.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/components/ordinal_legend.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/components/ordinal_legend.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.test.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_color_property.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_color_property.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_icon_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_icon_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_icon_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_orientation_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_orientation_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_orientation_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_orientation_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_size_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_size_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_size_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.d.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.d.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.d.ts rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.d.ts diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_style_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_style_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_text_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/dynamic_text_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/dynamic_text_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/label_border_size_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/label_border_size_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/label_border_size_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/label_border_size_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/static_color_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_color_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/static_color_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/static_color_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/static_icon_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_icon_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/static_icon_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/static_icon_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/static_orientation_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_orientation_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/static_orientation_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/static_orientation_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/static_size_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_size_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/static_size_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/static_size_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/static_style_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_style_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/static_style_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/static_style_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/static_text_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/static_text_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/static_text_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/style_property.ts b/x-pack/plugins/maps/public/classes/styles/vector/properties/style_property.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/style_property.ts rename to x-pack/plugins/maps/public/classes/styles/vector/properties/style_property.ts diff --git a/x-pack/plugins/maps/public/layers/styles/vector/properties/symbolize_as_property.js b/x-pack/plugins/maps/public/classes/styles/vector/properties/symbolize_as_property.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/properties/symbolize_as_property.js rename to x-pack/plugins/maps/public/classes/styles/vector/properties/symbolize_as_property.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/style_meta.ts b/x-pack/plugins/maps/public/classes/styles/vector/style_meta.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/style_meta.ts rename to x-pack/plugins/maps/public/classes/styles/vector/style_meta.ts diff --git a/x-pack/plugins/maps/public/layers/styles/vector/style_util.js b/x-pack/plugins/maps/public/classes/styles/vector/style_util.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/style_util.js rename to x-pack/plugins/maps/public/classes/styles/vector/style_util.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/style_util.test.js b/x-pack/plugins/maps/public/classes/styles/vector/style_util.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/style_util.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/style_util.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/symbol_utils.js b/x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/symbol_utils.js rename to x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/symbol_utils.test.js b/x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/symbol_utils.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/symbol_utils.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.d.ts similarity index 94% rename from x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts rename to x-pack/plugins/maps/public/classes/styles/vector/vector_style.d.ts index 762322b8e09f..beea94394399 100644 --- a/x-pack/plugins/maps/public/layers/styles/vector/vector_style.d.ts +++ b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.d.ts @@ -5,7 +5,7 @@ */ import { IStyleProperty } from './properties/style_property'; import { IDynamicStyleProperty } from './properties/dynamic_style_property'; -import { IVectorLayer } from '../../vector_layer'; +import { IVectorLayer } from '../../layers/vector_layer/vector_layer'; import { IVectorSource } from '../../sources/vector_source'; import { AbstractStyle, IStyle } from '../style'; import { diff --git a/x-pack/plugins/maps/public/layers/styles/vector/vector_style.js b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/vector_style.js rename to x-pack/plugins/maps/public/classes/styles/vector/vector_style.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/vector_style.test.js b/x-pack/plugins/maps/public/classes/styles/vector/vector_style.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/vector_style.test.js rename to x-pack/plugins/maps/public/classes/styles/vector/vector_style.test.js diff --git a/x-pack/plugins/maps/public/layers/styles/vector/vector_style_defaults.ts b/x-pack/plugins/maps/public/classes/styles/vector/vector_style_defaults.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/styles/vector/vector_style_defaults.ts rename to x-pack/plugins/maps/public/classes/styles/vector/vector_style_defaults.ts diff --git a/x-pack/plugins/maps/public/layers/tooltips/es_agg_tooltip_property.ts b/x-pack/plugins/maps/public/classes/tooltips/es_agg_tooltip_property.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/tooltips/es_agg_tooltip_property.ts rename to x-pack/plugins/maps/public/classes/tooltips/es_agg_tooltip_property.ts diff --git a/x-pack/plugins/maps/public/layers/tooltips/es_tooltip_property.test.ts b/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/tooltips/es_tooltip_property.test.ts rename to x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.test.ts diff --git a/x-pack/plugins/maps/public/layers/tooltips/es_tooltip_property.ts b/x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/tooltips/es_tooltip_property.ts rename to x-pack/plugins/maps/public/classes/tooltips/es_tooltip_property.ts diff --git a/x-pack/plugins/maps/public/layers/tooltips/join_tooltip_property.ts b/x-pack/plugins/maps/public/classes/tooltips/join_tooltip_property.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/tooltips/join_tooltip_property.ts rename to x-pack/plugins/maps/public/classes/tooltips/join_tooltip_property.ts diff --git a/x-pack/plugins/maps/public/layers/tooltips/tooltip_property.ts b/x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/tooltips/tooltip_property.ts rename to x-pack/plugins/maps/public/classes/tooltips/tooltip_property.ts diff --git a/x-pack/plugins/maps/public/layers/util/assign_feature_ids.test.ts b/x-pack/plugins/maps/public/classes/util/assign_feature_ids.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/assign_feature_ids.test.ts rename to x-pack/plugins/maps/public/classes/util/assign_feature_ids.test.ts diff --git a/x-pack/plugins/maps/public/layers/util/assign_feature_ids.ts b/x-pack/plugins/maps/public/classes/util/assign_feature_ids.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/assign_feature_ids.ts rename to x-pack/plugins/maps/public/classes/util/assign_feature_ids.ts diff --git a/x-pack/plugins/maps/public/layers/util/can_skip_fetch.test.js b/x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.js similarity index 100% rename from x-pack/plugins/maps/public/layers/util/can_skip_fetch.test.js rename to x-pack/plugins/maps/public/classes/util/can_skip_fetch.test.js diff --git a/x-pack/plugins/maps/public/layers/util/can_skip_fetch.ts b/x-pack/plugins/maps/public/classes/util/can_skip_fetch.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/can_skip_fetch.ts rename to x-pack/plugins/maps/public/classes/util/can_skip_fetch.ts diff --git a/x-pack/plugins/maps/public/layers/util/data_request.ts b/x-pack/plugins/maps/public/classes/util/data_request.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/data_request.ts rename to x-pack/plugins/maps/public/classes/util/data_request.ts diff --git a/x-pack/plugins/maps/public/layers/util/es_agg_utils.test.ts b/x-pack/plugins/maps/public/classes/util/es_agg_utils.test.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/es_agg_utils.test.ts rename to x-pack/plugins/maps/public/classes/util/es_agg_utils.test.ts diff --git a/x-pack/plugins/maps/public/layers/util/es_agg_utils.ts b/x-pack/plugins/maps/public/classes/util/es_agg_utils.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/es_agg_utils.ts rename to x-pack/plugins/maps/public/classes/util/es_agg_utils.ts diff --git a/x-pack/plugins/maps/public/layers/util/is_metric_countable.ts b/x-pack/plugins/maps/public/classes/util/is_metric_countable.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/is_metric_countable.ts rename to x-pack/plugins/maps/public/classes/util/is_metric_countable.ts diff --git a/x-pack/plugins/maps/public/layers/util/is_refresh_only_query.ts b/x-pack/plugins/maps/public/classes/util/is_refresh_only_query.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/is_refresh_only_query.ts rename to x-pack/plugins/maps/public/classes/util/is_refresh_only_query.ts diff --git a/x-pack/plugins/maps/public/layers/util/mb_filter_expressions.ts b/x-pack/plugins/maps/public/classes/util/mb_filter_expressions.ts similarity index 100% rename from x-pack/plugins/maps/public/layers/util/mb_filter_expressions.ts rename to x-pack/plugins/maps/public/classes/util/mb_filter_expressions.ts diff --git a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.test.tsx b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.test.tsx index 10d3f6af6337..f3ac62717519 100644 --- a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.test.tsx +++ b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { TooltipSelector } from './tooltip_selector'; -import { AbstractField } from '../../layers/fields/field'; +import { AbstractField } from '../../classes/fields/field'; import { FIELD_ORIGIN } from '../../../common/constants'; class MockField extends AbstractField { diff --git a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx index 211276cda904..34c58c4c8a18 100644 --- a/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx +++ b/x-pack/plugins/maps/public/components/tooltip_selector/tooltip_selector.tsx @@ -17,7 +17,7 @@ import { } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; import { AddTooltipFieldPopover, FieldProps } from './add_tooltip_field_popover'; -import { IField } from '../../layers/fields/field'; +import { IField } from '../../classes/fields/field'; // TODO import reorder from EUI once its exposed as service // https://github.com/elastic/eui/issues/2372 diff --git a/x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts b/x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts index 7edc51d9d78b..3f3fa48b3d76 100644 --- a/x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts +++ b/x-pack/plugins/maps/public/connected_components/gis_map/index.d.ts @@ -7,7 +7,7 @@ import React from 'react'; import { Filter } from 'src/plugins/data/public'; -import { RenderToolTipContent } from '../../layers/tooltips/tooltip_property'; +import { RenderToolTipContent } from '../../classes/tooltips/tooltip_property'; declare const GisMap: React.ComponentType<{ addFilters: ((filters: Filter[]) => void) | null; diff --git a/x-pack/plugins/maps/public/connected_components/gis_map/view.js b/x-pack/plugins/maps/public/connected_components/gis_map/view.js index ca4b062ee727..0100db0393d0 100644 --- a/x-pack/plugins/maps/public/connected_components/gis_map/view.js +++ b/x-pack/plugins/maps/public/connected_components/gis_map/view.js @@ -22,7 +22,7 @@ import { i18n } from '@kbn/i18n'; import uuid from 'uuid/v4'; import { FLYOUT_STATE } from '../../reducers/ui'; import { MapSettingsPanel } from '../map_settings_panel'; -import { registerLayerWizards } from '../../layers/load_layer_wizards'; +import { registerLayerWizards } from '../../classes/layers/load_layer_wizards'; const RENDER_COMPLETE_EVENT = 'renderComplete'; diff --git a/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js b/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js index 8ebb17ac4fff..0dca2b8bd002 100644 --- a/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/import_editor/view.js @@ -7,7 +7,7 @@ import React from 'react'; import { EuiPanel } from '@elastic/eui'; -import { uploadLayerWizardConfig } from '../../../layers/sources/client_file_source'; +import { uploadLayerWizardConfig } from '../../../classes/sources/client_file_source'; export const ImportEditor = props => { const editorProperties = getEditorProperties(props); diff --git a/x-pack/plugins/maps/public/connected_components/layer_addpanel/layer_wizard_select.tsx b/x-pack/plugins/maps/public/connected_components/layer_addpanel/layer_wizard_select.tsx index 0359ed2c6269..80afe5c8f8a3 100644 --- a/x-pack/plugins/maps/public/connected_components/layer_addpanel/layer_wizard_select.tsx +++ b/x-pack/plugins/maps/public/connected_components/layer_addpanel/layer_wizard_select.tsx @@ -7,7 +7,7 @@ import _ from 'lodash'; import React, { Component, Fragment } from 'react'; import { EuiSpacer, EuiCard, EuiIcon } from '@elastic/eui'; -import { getLayerWizards, LayerWizard } from '../../layers/layer_wizard_registry'; +import { getLayerWizards, LayerWizard } from '../../classes/layers/layer_wizard_registry'; interface Props { onSelect: (layerWizard: LayerWizard) => void; diff --git a/x-pack/plugins/maps/public/connected_components/map_settings_panel/spatial_filters_panel.tsx b/x-pack/plugins/maps/public/connected_components/map_settings_panel/spatial_filters_panel.tsx index cae703e98296..e9ed740873e1 100644 --- a/x-pack/plugins/maps/public/connected_components/map_settings_panel/spatial_filters_panel.tsx +++ b/x-pack/plugins/maps/public/connected_components/map_settings_panel/spatial_filters_panel.tsx @@ -10,7 +10,7 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { MapSettings } from '../../reducers/map'; import { AlphaSlider } from '../../components/alpha_slider'; -import { MbValidatedColorPicker } from '../../layers/styles/vector/components/color/mb_validated_color_picker'; +import { MbValidatedColorPicker } from '../../classes/styles/vector/components/color/mb_validated_color_picker'; interface Props { settings: MapSettings; diff --git a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/fit_to_data/fit_to_data.tsx b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/fit_to_data/fit_to_data.tsx index 0b168badb2f3..ca75060c4f8d 100644 --- a/x-pack/plugins/maps/public/connected_components/toolbar_overlay/fit_to_data/fit_to_data.tsx +++ b/x-pack/plugins/maps/public/connected_components/toolbar_overlay/fit_to_data/fit_to_data.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { EuiButtonIcon } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { ILayer } from '../../../layers/layer'; +import { ILayer } from '../../../classes/layers/layer'; interface Props { layerList: ILayer[]; diff --git a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx index b873119fd7d1..5eaba5330a3a 100644 --- a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.test.tsx @@ -7,9 +7,9 @@ import React from 'react'; import { shallowWithIntl } from 'test_utils/enzyme_helpers'; -import { AbstractLayer, ILayer } from '../../../../../../layers/layer'; -import { AbstractSource, ISource } from '../../../../../../layers/sources/source'; -import { AbstractStyle, IStyle } from '../../../../../../layers/styles/style'; +import { AbstractLayer, ILayer } from '../../../../../../classes/layers/layer'; +import { AbstractSource, ISource } from '../../../../../../classes/sources/source'; +import { AbstractStyle, IStyle } from '../../../../../../classes/styles/style'; import { TOCEntryActionsPopover } from './toc_entry_actions_popover'; diff --git a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx index dfc93c29263e..344e96e511f2 100644 --- a/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx +++ b/x-pack/plugins/maps/public/connected_components/widget_overlay/layer_control/layer_toc/toc_entry/toc_entry_actions_popover/toc_entry_actions_popover.tsx @@ -8,7 +8,7 @@ import React, { Component, Fragment } from 'react'; import { EuiButtonEmpty, EuiPopover, EuiContextMenu, EuiIcon, EuiToolTip } from '@elastic/eui'; import { i18n } from '@kbn/i18n'; -import { ILayer } from '../../../../../../layers/layer'; +import { ILayer } from '../../../../../../classes/layers/layer'; interface Props { cloneLayer: (layerId: string) => void; diff --git a/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx b/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx index c3937ba4cdcb..fa255cc73a21 100644 --- a/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx +++ b/x-pack/plugins/maps/public/embeddable/map_embeddable.tsx @@ -51,7 +51,7 @@ import { } from '../reducers/non_serializable_instances'; import { getMapCenter, getMapZoom, getHiddenLayerIds } from '../selectors/map_selectors'; import { MAP_SAVED_OBJECT_TYPE } from '../../common/constants'; -import { RenderToolTipContent } from '../layers/tooltips/tooltip_property'; +import { RenderToolTipContent } from '../classes/tooltips/tooltip_property'; import { getUiActions, getCoreI18n } from '../kibana_services'; import { MapEmbeddableInput, MapEmbeddableConfig } from './types'; diff --git a/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts b/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts index 7e3a8387bed1..f33885c2a246 100644 --- a/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts +++ b/x-pack/plugins/maps/public/embeddable/map_embeddable_factory.ts @@ -18,7 +18,7 @@ import { createMapPath, MAP_SAVED_OBJECT_TYPE, APP_ICON } from '../../common/con import { MapStore, MapStoreState } from '../reducers/store'; import { MapEmbeddableConfig, MapEmbeddableInput } from './types'; import { MapEmbeddableOutput } from './map_embeddable'; -import { RenderToolTipContent } from '../layers/tooltips/tooltip_property'; +import { RenderToolTipContent } from '../classes/tooltips/tooltip_property'; import { EventHandlers } from '../reducers/non_serializable_instances'; let whenModulesLoadedPromise: Promise; diff --git a/x-pack/plugins/maps/public/index.scss b/x-pack/plugins/maps/public/index.scss index 8b2f6d3cb615..fe974fa610c0 100644 --- a/x-pack/plugins/maps/public/index.scss +++ b/x-pack/plugins/maps/public/index.scss @@ -14,4 +14,4 @@ @import 'mapbox_hacks'; @import 'connected_components/index'; @import 'components/index'; -@import 'layers/index'; +@import 'classes/index'; diff --git a/x-pack/plugins/maps/public/selectors/map_selectors.d.ts b/x-pack/plugins/maps/public/selectors/map_selectors.d.ts index 9caa151db6d5..77b5293dfaa0 100644 --- a/x-pack/plugins/maps/public/selectors/map_selectors.d.ts +++ b/x-pack/plugins/maps/public/selectors/map_selectors.d.ts @@ -7,8 +7,8 @@ import { MapCenter } from '../../common/descriptor_types'; import { MapStoreState } from '../reducers/store'; import { MapSettings } from '../reducers/map'; -import { IVectorLayer } from '../layers/vector_layer'; -import { ILayer } from '../layers/layer'; +import { IVectorLayer } from '../classes/layers/vector_layer/vector_layer'; +import { ILayer } from '../classes/layers/layer'; export function getHiddenLayerIds(state: MapStoreState): string[]; diff --git a/x-pack/plugins/maps/public/selectors/map_selectors.js b/x-pack/plugins/maps/public/selectors/map_selectors.js index 38a862973623..c2933dc3052c 100644 --- a/x-pack/plugins/maps/public/selectors/map_selectors.js +++ b/x-pack/plugins/maps/public/selectors/map_selectors.js @@ -6,18 +6,18 @@ import { createSelector } from 'reselect'; import _ from 'lodash'; -import { TileLayer } from '../layers/tile_layer'; -import { VectorTileLayer } from '../layers/vector_tile_layer'; -import { VectorLayer } from '../layers/vector_layer'; -import { HeatmapLayer } from '../layers/heatmap_layer'; -import { BlendedVectorLayer } from '../layers/blended_vector_layer'; +import { TileLayer } from '../classes/layers/tile_layer/tile_layer'; +import { VectorTileLayer } from '../classes/layers/vector_tile_layer/vector_tile_layer'; +import { VectorLayer } from '../classes/layers/vector_layer/vector_layer'; +import { HeatmapLayer } from '../classes/layers/heatmap_layer/heatmap_layer'; +import { BlendedVectorLayer } from '../classes/layers/blended_vector_layer/blended_vector_layer'; import { getTimeFilter } from '../kibana_services'; import { getInspectorAdapters } from '../reducers/non_serializable_instances'; -import { TiledVectorLayer } from '../layers/tiled_vector_layer'; +import { TiledVectorLayer } from '../classes/layers/tiled_vector_layer/tiled_vector_layer'; import { copyPersistentState, TRACKED_LAYER_DESCRIPTOR } from '../reducers/util'; -import { InnerJoin } from '../layers/joins/inner_join'; -import { getSourceByType } from '../layers/sources/source_registry'; -import { GeojsonFileSource } from '../layers/sources/client_file_source'; +import { InnerJoin } from '../classes/joins/inner_join'; +import { getSourceByType } from '../classes/sources/source_registry'; +import { GeojsonFileSource } from '../classes/sources/client_file_source'; import { LAYER_TYPE, SOURCE_DATA_ID_ORIGIN, diff --git a/x-pack/plugins/maps/public/selectors/map_selectors.test.js b/x-pack/plugins/maps/public/selectors/map_selectors.test.js index fec16251914e..b6b192ecd9bc 100644 --- a/x-pack/plugins/maps/public/selectors/map_selectors.test.js +++ b/x-pack/plugins/maps/public/selectors/map_selectors.test.js @@ -4,12 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -jest.mock('../layers/vector_layer', () => {}); -jest.mock('../layers/tiled_vector_layer', () => {}); -jest.mock('../layers/blended_vector_layer', () => {}); -jest.mock('../layers/heatmap_layer', () => {}); -jest.mock('../layers/vector_tile_layer', () => {}); -jest.mock('../layers/joins/inner_join', () => {}); +jest.mock('../classes/layers/vector_layer/vector_layer', () => {}); +jest.mock('../classes/layers/tiled_vector_layer/tiled_vector_layer', () => {}); +jest.mock('../classes/layers/blended_vector_layer/blended_vector_layer', () => {}); +jest.mock('../classes/layers/heatmap_layer/heatmap_layer', () => {}); +jest.mock('../classes/layers/vector_tile_layer/vector_tile_layer', () => {}); +jest.mock('../classes/joins/inner_join', () => {}); jest.mock('../reducers/non_serializable_instances', () => ({ getInspectorAdapters: () => { return {}; From 3bb51bb430a7b3de9d1fce4c924cd1d08aa010a6 Mon Sep 17 00:00:00 2001 From: Xavier Mouligneau <189600+XavierM@users.noreply.github.com> Date: Mon, 11 May 2020 22:52:43 -0400 Subject: [PATCH 44/67] [SIEM] [Security] unified code structure phase 0 (#65965) * apply new structure for teh security solutions * fix few imports + store * fix types * update path in test * miss path in api_integration Co-authored-by: Elastic Machine --- .../components/activity_monitor/columns.tsx | 2 +- .../activity_monitor/index.test.tsx | 0 .../components/activity_monitor/index.tsx | 4 +- .../components/activity_monitor/types.ts | 0 .../index.test.tsx | 0 .../detection_engine_header_page/index.tsx | 2 +- .../translations.ts | 0 .../no_api_integration_callout/index.test.tsx | 0 .../no_api_integration_callout/index.tsx | 0 .../translations.ts | 0 .../no_write_signals_callout/index.test.tsx | 0 .../no_write_signals_callout/index.tsx | 0 .../no_write_signals_callout/translations.ts | 0 .../rules}/accordion_title/index.test.tsx | 0 .../rules}/accordion_title/index.tsx | 0 .../rules}/add_item_form/index.test.tsx | 2 +- .../components/rules}/add_item_form/index.tsx | 4 +- .../rules}/all_rules_tables/index.test.tsx | 2 +- .../rules}/all_rules_tables/index.tsx | 10 +- .../anomaly_threshold_slider/index.test.tsx | 2 +- .../rules}/anomaly_threshold_slider/index.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../assets/list_tree_icon.svg | 0 .../rules}/description_step/helpers.test.tsx | 4 +- .../rules}/description_step/helpers.tsx | 6 +- .../rules}/description_step/index.test.tsx | 20 +- .../rules}/description_step/index.tsx | 14 +- .../ml_job_description.test.tsx | 2 +- .../description_step/ml_job_description.tsx | 6 +- .../rules}/description_step/translations.tsx | 0 .../rules}/description_step/types.ts | 4 +- .../components/rules}/mitre/helpers.test.tsx | 0 .../components/rules}/mitre/helpers.ts | 2 +- .../components/rules}/mitre/index.test.tsx | 2 +- .../components/rules}/mitre/index.tsx | 6 +- .../components/rules}/mitre/translations.ts | 0 .../rules}/ml_job_select/index.test.tsx | 8 +- .../components/rules}/ml_job_select/index.tsx | 8 +- .../__snapshots__/index.test.tsx.snap | 0 .../rules}/next_step/index.test.tsx | 0 .../components/rules}/next_step/index.tsx | 2 +- .../optional_field_label/index.test.tsx | 0 .../rules}/optional_field_label/index.tsx | 2 +- .../rules}/pick_timeline/index.test.tsx | 2 +- .../components/rules}/pick_timeline/index.tsx | 4 +- .../load_empty_prompt.test.tsx | 0 .../pre_packaged_rules/load_empty_prompt.tsx | 2 +- .../rules}/pre_packaged_rules/translations.ts | 0 .../update_callout.test.tsx | 4 +- .../pre_packaged_rules/update_callout.tsx | 2 +- .../rules}/query_bar/index.test.tsx | 4 +- .../components/rules}/query_bar/index.tsx | 24 +- .../rules}/query_bar/translations.tsx | 0 .../rules}/read_only_callout/index.test.tsx | 0 .../rules}/read_only_callout/index.tsx | 0 .../rules}/read_only_callout/translations.ts | 0 .../rules}/rule_actions_field/index.test.tsx | 6 +- .../rules}/rule_actions_field/index.tsx | 12 +- .../__snapshots__/index.test.tsx.snap | 0 .../rule_actions_overflow/index.test.tsx | 9 +- .../rules}/rule_actions_overflow/index.tsx | 15 +- .../rule_actions_overflow/translations.ts | 0 .../rules}/rule_status/helpers.test.tsx | 0 .../components/rules}/rule_status/helpers.ts | 2 +- .../rules}/rule_status/index.test.tsx | 0 .../components/rules}/rule_status/index.tsx | 9 +- .../rules}/rule_status/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../rules}/rule_switch/index.test.tsx | 0 .../components/rules}/rule_switch/index.tsx | 12 +- .../rules}/schedule_item_form/index.test.tsx | 2 +- .../rules}/schedule_item_form/index.tsx | 2 +- .../rules}/schedule_item_form/translations.ts | 0 .../rules}/select_rule_type/index.test.tsx | 4 +- .../rules}/select_rule_type/index.tsx | 8 +- .../rules}/select_rule_type/translations.ts | 0 .../rules}/severity_badge/index.test.tsx | 0 .../rules}/severity_badge/index.tsx | 0 .../rules}/status_icon/index.test.tsx | 4 +- .../components/rules}/status_icon/index.tsx | 4 +- .../rules}/step_about_rule/data.tsx | 0 .../rules}/step_about_rule/default_value.ts | 2 +- .../rules}/step_about_rule/helpers.test.ts | 0 .../rules}/step_about_rule/helpers.ts | 0 .../rules}/step_about_rule/index.test.tsx | 5 +- .../rules}/step_about_rule/index.tsx | 12 +- .../rules}/step_about_rule/schema.tsx | 4 +- .../rules}/step_about_rule/translations.ts | 0 .../step_about_rule_details/index.test.tsx | 12 +- .../rules}/step_about_rule_details/index.tsx | 8 +- .../step_about_rule_details/translations.ts | 0 .../step_content_wrapper/index.test.tsx | 0 .../rules}/step_content_wrapper/index.tsx | 0 .../rules}/step_define_rule/index.test.tsx | 2 +- .../rules}/step_define_rule/index.tsx | 31 ++- .../rules}/step_define_rule/schema.tsx | 6 +- .../rules}/step_define_rule/translations.tsx | 0 .../rules}/step_define_rule/types.ts | 0 .../rules}/step_panel/index.test.tsx | 0 .../components/rules}/step_panel/index.tsx | 2 +- .../rules}/step_rule_actions/index.test.tsx | 2 +- .../rules}/step_rule_actions/index.tsx | 12 +- .../rules}/step_rule_actions/schema.tsx | 2 +- .../rules}/step_rule_actions/translations.tsx | 0 .../rules}/step_schedule_rule/index.test.tsx | 2 +- .../rules}/step_schedule_rule/index.tsx | 10 +- .../rules}/step_schedule_rule/schema.tsx | 2 +- .../step_schedule_rule/translations.tsx | 0 .../throttle_select_field/index.test.tsx | 2 +- .../rules}/throttle_select_field/index.tsx | 4 +- .../components/signals/actions.test.tsx | 6 +- .../components/signals/actions.tsx | 12 +- .../signals/default_config.test.tsx | 6 +- .../components/signals/default_config.tsx | 15 +- .../components/signals/helpers.test.ts | 11 +- .../components/signals/helpers.ts | 6 +- .../components/signals/index.test.tsx | 0 .../components/signals/index.tsx | 24 +- .../signals_filter_group/index.test.tsx | 0 .../signals/signals_filter_group/index.tsx | 0 .../signals_utility_bar/index.test.tsx | 2 +- .../signals/signals_utility_bar/index.tsx | 8 +- .../signals_utility_bar/translations.ts | 0 .../components/signals/translations.ts | 0 .../components/signals/types.ts | 6 +- .../signals_histogram_panel/config.ts | 0 .../signals_histogram_panel/helpers.test.tsx | 0 .../signals_histogram_panel/helpers.tsx | 4 +- .../signals_histogram_panel/index.test.tsx | 4 +- .../signals_histogram_panel/index.tsx | 30 +-- .../signals_histogram.test.tsx | 2 +- .../signals_histogram.tsx | 8 +- .../signals_histogram_panel/translations.ts | 0 .../signals_histogram_panel/types.ts | 2 +- .../components/signals_info/index.tsx | 2 +- .../components/signals_info/query.dsl.ts | 0 .../components/signals_info/types.ts | 0 .../components/user_info/index.test.tsx | 12 +- .../components/user_info/index.tsx | 6 +- .../detection_engine/rules/__mocks__/api.ts | 0 .../detection_engine/rules/api.test.ts | 4 +- .../containers/detection_engine/rules/api.ts | 4 +- .../rules/fetch_index_patterns.test.tsx | 8 +- .../rules/fetch_index_patterns.tsx | 10 +- .../detection_engine/rules/index.ts | 0 .../containers/detection_engine/rules/mock.ts | 0 .../rules/persist_rule.test.tsx | 0 .../detection_engine/rules/persist_rule.tsx | 2 +- .../detection_engine/rules/translations.ts | 0 .../detection_engine/rules/types.ts | 2 +- .../rules/use_pre_packaged_rules.test.tsx | 0 .../rules/use_pre_packaged_rules.tsx | 6 +- .../detection_engine/rules/use_rule.test.tsx | 0 .../detection_engine/rules/use_rule.tsx | 2 +- .../rules/use_rule_status.test.tsx | 2 +- .../rules/use_rule_status.tsx | 2 +- .../detection_engine/rules/use_rules.test.tsx | 0 .../detection_engine/rules/use_rules.tsx | 2 +- .../detection_engine/rules/use_tags.test.tsx | 0 .../detection_engine/rules/use_tags.tsx | 2 +- .../detection_engine/signals/__mocks__/api.ts | 0 .../detection_engine/signals/api.test.ts | 4 +- .../detection_engine/signals/api.ts | 4 +- .../detection_engine/signals/mock.ts | 0 .../detection_engine/signals/translations.ts | 0 .../detection_engine/signals/types.ts | 0 .../signals/use_privilege_user.test.tsx | 0 .../signals/use_privilege_user.tsx | 2 +- .../signals/use_query.test.tsx | 0 .../detection_engine/signals/use_query.tsx | 0 .../signals/use_signal_index.test.tsx | 0 .../signals/use_signal_index.tsx | 4 +- x-pack/plugins/siem/public/alerts/index.ts | 18 ++ .../mitre/mitre_tactics_techniques.ts | 0 .../mitre/types.ts | 0 .../detection_engine.test.tsx | 10 +- .../detection_engine/detection_engine.tsx | 51 +++-- .../detection_engine_empty_page.test.tsx | 2 +- .../detection_engine_empty_page.tsx | 6 +- .../detection_engine_no_signal_index.test.tsx | 2 +- .../detection_engine_no_signal_index.tsx | 4 +- ...ction_engine_user_unauthenticated.test.tsx | 2 +- .../detection_engine_user_unauthenticated.tsx | 4 +- .../pages/detection_engine/index.test.tsx | 2 +- .../pages/detection_engine/index.tsx | 2 +- .../rules/all/__mocks__/mock.ts | 6 +- .../detection_engine/rules/all/actions.tsx | 8 +- .../rules/all/batch_actions.tsx | 4 +- .../rules/all/columns.test.tsx | 0 .../detection_engine/rules/all/columns.tsx | 22 +- .../rules/all/helpers.test.tsx | 2 +- .../detection_engine/rules/all/helpers.ts | 2 +- .../detection_engine/rules/all/index.test.tsx | 8 +- .../detection_engine/rules/all/index.tsx | 22 +- .../detection_engine/rules/all/reducer.ts | 2 +- .../rules_table_filters.test.tsx | 0 .../rules_table_filters.tsx | 4 +- .../tags_filter_popover.test.tsx | 0 .../tags_filter_popover.tsx | 2 +- .../rules/create/helpers.test.ts | 2 +- .../detection_engine/rules/create/helpers.ts | 10 +- .../rules/create/index.test.tsx | 6 +- .../detection_engine/rules/create/index.tsx | 26 +-- .../rules/create/translations.ts | 0 .../rules/details/failure_history.test.tsx | 6 +- .../rules/details/failure_history.tsx | 9 +- .../rules/details/index.test.tsx | 10 +- .../detection_engine/rules/details/index.tsx | 64 +++--- .../details/status_failed_callout.test.tsx | 0 .../rules/details/status_failed_callout.tsx | 2 +- .../rules/details/translations.ts | 0 .../rules/edit/index.test.tsx | 6 +- .../detection_engine/rules/edit/index.tsx | 26 +-- .../rules/edit/translations.ts | 0 .../detection_engine/rules/helpers.test.tsx | 4 +- .../pages/detection_engine/rules/helpers.tsx | 12 +- .../detection_engine/rules/index.test.tsx | 8 +- .../pages/detection_engine/rules/index.tsx | 21 +- .../detection_engine/rules/translations.ts | 0 .../pages/detection_engine/rules/types.ts | 12 +- .../detection_engine/rules/utils.test.ts | 0 .../pages/detection_engine/rules/utils.ts | 7 +- .../pages/detection_engine/translations.ts | 0 .../pages/detection_engine/types.ts | 0 x-pack/plugins/siem/public/alerts/routes.tsx | 20 ++ .../siem/public/{pages => app}/404.tsx | 2 +- x-pack/plugins/siem/public/app/app.tsx | 48 ++-- .../{pages => app}/home/home_navigations.tsx | 4 +- .../siem/public/{pages => app}/home/index.tsx | 68 ++---- .../{pages => app}/home/translations.ts | 0 x-pack/plugins/siem/public/app/index.tsx | 10 +- .../plugins/siem/public/{ => app}/routes.tsx | 11 +- x-pack/plugins/siem/public/app/types.ts | 61 ++++++ .../components/__mock__/form.ts | 4 +- .../components/__mock__/router.ts | 0 .../components/add_comment/index.test.tsx | 20 +- .../components/add_comment/index.tsx | 16 +- .../components/add_comment/schema.tsx | 6 +- .../components/add_comment/translations.ts} | 5 +- .../components/all_cases/actions.tsx | 4 +- .../components/all_cases/columns.test.tsx | 2 +- .../components/all_cases/columns.tsx | 10 +- .../components/all_cases/index.test.tsx | 26 ++- .../components/all_cases/index.tsx | 24 +- .../all_cases/table_filters.test.tsx | 14 +- .../components/all_cases/table_filters.tsx | 8 +- .../components/all_cases/translations.ts | 0 .../components/bulk_actions/index.tsx | 0 .../components/bulk_actions/translations.ts | 0 .../components/callout/helpers.tsx | 0 .../components/callout/index.test.tsx | 2 +- .../components/callout/index.tsx | 0 .../components/callout/translations.ts | 0 .../components/case_header_page/index.tsx | 2 +- .../case_header_page/translations.ts | 0 .../components/case_status/index.tsx | 6 +- .../components/case_view/actions.test.tsx | 8 +- .../components/case_view/actions.tsx | 8 +- .../components/case_view/index.test.tsx | 20 +- .../components/case_view/index.tsx | 28 +-- .../components/case_view/translations.ts | 0 .../configure_cases/__mock__/index.tsx | 15 +- .../configure_cases/button.test.tsx | 2 +- .../components/configure_cases/button.tsx | 2 +- .../configure_cases/closure_options.test.tsx | 2 +- .../configure_cases/closure_options.tsx | 2 +- .../closure_options_radio.test.tsx | 2 +- .../configure_cases/closure_options_radio.tsx | 2 +- .../configure_cases/connectors.test.tsx | 2 +- .../components/configure_cases/connectors.tsx | 2 +- .../connectors_dropdown.test.tsx | 2 +- .../configure_cases/connectors_dropdown.tsx | 4 +- .../configure_cases/field_mapping.test.tsx | 6 +- .../configure_cases/field_mapping.tsx | 8 +- .../field_mapping_row.test.tsx | 4 +- .../configure_cases/field_mapping_row.tsx | 9 +- .../components/configure_cases/index.test.tsx | 22 +- .../components/configure_cases/index.tsx | 23 +- .../configure_cases/mapping.test.tsx | 2 +- .../components/configure_cases/mapping.tsx | 2 +- .../configure_cases/translations.ts | 0 .../components/configure_cases/utils.test.tsx | 2 +- .../components/configure_cases/utils.ts | 2 +- .../components/confirm_delete_case/index.tsx | 0 .../confirm_delete_case/translations.ts | 0 .../components/connector_selector/form.tsx | 4 +- .../components/create/index.test.tsx | 26 +-- .../components/create/index.tsx | 16 +- .../create/optional_field_label/index.tsx | 0 .../components/create/schema.tsx | 4 +- .../components/edit_connector/index.test.tsx | 8 +- .../components/edit_connector/index.tsx | 4 +- .../components/edit_connector/schema.tsx | 2 +- .../components/filter_popover/index.tsx | 0 .../components/open_closed_stats/index.tsx | 0 .../components/property_actions/constants.ts | 0 .../components/property_actions/index.tsx | 0 .../property_actions/translations.ts | 0 .../components/tag_list/index.test.tsx | 16 +- .../components/tag_list/index.tsx | 4 +- .../components/tag_list/schema.tsx | 2 +- .../components/tag_list/translations.ts | 0 .../use_push_to_service/helpers.tsx | 2 +- .../use_push_to_service/index.test.tsx | 18 +- .../components/use_push_to_service/index.tsx | 16 +- .../use_push_to_service/translations.ts | 0 .../user_action_tree/helpers.test.tsx | 4 +- .../components/user_action_tree/helpers.tsx | 4 +- .../user_action_tree/index.test.tsx | 12 +- .../components/user_action_tree/index.tsx | 12 +- .../components/user_action_tree/schema.ts | 2 +- .../user_action_tree/translations.ts | 0 .../user_action_tree/user_action_avatar.tsx | 0 .../user_action_tree/user_action_item.tsx | 0 .../user_action_tree/user_action_markdown.tsx | 10 +- .../user_action_title.test.tsx | 4 +- .../user_action_tree/user_action_title.tsx | 8 +- .../components/user_list/index.test.tsx | 2 +- .../components/user_list/index.tsx | 2 +- .../components/user_list/translations.ts | 0 .../components/wrappers/index.tsx | 0 .../containers}/__mocks__/api.ts | 0 .../case => cases/containers}/api.test.tsx | 4 +- .../case => cases/containers}/api.ts | 2 +- .../containers}/configure/__mocks__/api.ts | 0 .../containers}/configure/api.test.ts | 4 +- .../containers}/configure/api.ts | 2 +- .../containers}/configure/mock.ts | 0 .../containers}/configure/translations.ts | 0 .../containers}/configure/types.ts | 0 .../configure/use_configure.test.tsx | 0 .../containers}/configure/use_configure.tsx | 6 +- .../configure/use_connectors.test.tsx | 0 .../containers}/configure/use_connectors.tsx | 2 +- .../case => cases/containers}/constants.ts | 0 .../case => cases/containers}/mock.ts | 0 .../case => cases/containers}/translations.ts | 0 .../case => cases/containers}/types.ts | 0 .../containers}/use_bulk_update_case.test.tsx | 0 .../containers}/use_bulk_update_case.tsx | 6 +- .../containers}/use_delete_cases.test.tsx | 0 .../containers}/use_delete_cases.tsx | 6 +- .../use_get_action_license.test.tsx | 0 .../containers}/use_get_action_license.tsx | 2 +- .../containers}/use_get_case.test.tsx | 0 .../containers}/use_get_case.tsx | 2 +- .../use_get_case_user_actions.test.tsx | 0 .../containers}/use_get_case_user_actions.tsx | 2 +- .../containers}/use_get_cases.test.tsx | 0 .../containers}/use_get_cases.tsx | 2 +- .../containers}/use_get_cases_status.test.tsx | 0 .../containers}/use_get_cases_status.tsx | 2 +- .../containers}/use_get_reporters.test.tsx | 0 .../containers}/use_get_reporters.tsx | 2 +- .../containers}/use_get_tags.test.tsx | 0 .../containers}/use_get_tags.tsx | 2 +- .../containers}/use_post_case.test.tsx | 0 .../containers}/use_post_case.tsx | 2 +- .../containers}/use_post_comment.test.tsx | 0 .../containers}/use_post_comment.tsx | 2 +- .../use_post_push_to_service.test.tsx | 0 .../containers}/use_post_push_to_service.tsx | 6 +- .../containers}/use_update_case.test.tsx | 0 .../containers}/use_update_case.tsx | 6 +- .../containers}/use_update_comment.test.tsx | 0 .../containers}/use_update_comment.tsx | 2 +- .../case => cases/containers}/utils.ts | 2 +- x-pack/plugins/siem/public/cases/index.ts | 18 ++ .../{pages/case => cases/pages}/case.tsx | 10 +- .../case => cases/pages}/case_details.tsx | 14 +- .../case => cases/pages}/configure_cases.tsx | 18 +- .../case => cases/pages}/create_case.tsx | 16 +- .../{pages/case => cases/pages}/index.tsx | 2 +- .../pages}/saved_object_no_permissions.tsx | 4 +- .../case => cases/pages}/translations.ts | 0 .../{pages/case => cases/pages}/utils.ts | 4 +- x-pack/plugins/siem/public/cases/routes.tsx | 17 ++ .../plugins/siem/public/cases/translations.ts | 205 ++++++++++++++++++ .../__snapshots__/index.test.tsx.snap | 0 .../helpers.test.tsx | 0 .../helpers.ts | 0 .../index.test.tsx | 15 +- .../add_filter_to_global_search_bar/index.tsx | 4 +- .../translations.ts | 0 .../components/alerts_viewer/alerts_table.tsx | 2 +- .../alerts_viewer/default_headers.ts | 8 +- .../alerts_viewer/histogram_configs.ts | 3 +- .../components/alerts_viewer/index.tsx | 2 +- .../components/alerts_viewer/translations.ts | 0 .../components/alerts_viewer/types.ts | 6 +- .../__examples__/index.stories.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../autocomplete_field/index.test.tsx | 5 +- .../components/autocomplete_field/index.tsx | 4 +- .../autocomplete_field/suggestion_item.tsx | 4 +- .../__snapshots__/areachart.test.tsx.snap | 0 .../__snapshots__/barchart.test.tsx.snap | 0 .../components/charts/areachart.test.tsx | 0 .../components/charts/areachart.tsx | 0 .../components/charts/barchart.test.tsx | 0 .../components/charts/barchart.tsx | 0 .../charts/chart_place_holder.test.tsx | 0 .../components/charts/chart_place_holder.tsx | 0 .../components/charts/common.test.tsx | 0 .../{ => common}/components/charts/common.tsx | 2 +- .../charts/draggable_legend.test.tsx | 0 .../components/charts/draggable_legend.tsx | 0 .../charts/draggable_legend_item.test.tsx | 0 .../charts/draggable_legend_item.tsx | 0 .../components/charts/translation.ts | 0 .../drag_drop_context_wrapper.test.tsx.snap | 0 .../draggable_wrapper.test.tsx.snap | 0 .../droppable_wrapper.test.tsx.snap | 0 .../drag_and_drop/drag_drop_context.tsx | 0 .../drag_drop_context_wrapper.test.tsx | 0 .../drag_drop_context_wrapper.tsx | 7 +- .../drag_and_drop/draggable_wrapper.test.tsx | 2 +- .../drag_and_drop/draggable_wrapper.tsx | 2 +- .../draggable_wrapper_hover_content.test.tsx | 4 +- .../draggable_wrapper_hover_content.tsx | 4 +- .../drag_and_drop/droppable_wrapper.test.tsx | 0 .../drag_and_drop/droppable_wrapper.tsx | 0 .../components/drag_and_drop/helpers.test.ts | 0 .../components/drag_and_drop/helpers.ts | 11 +- .../drag_and_drop/provider_container.tsx | 2 +- .../components/drag_and_drop/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../draggables/field_badge/index.tsx | 0 .../draggables/field_badge/translations.ts | 0 .../components/draggables/index.test.tsx | 0 .../components/draggables/index.tsx | 4 +- .../__snapshots__/index.test.tsx.snap | 0 .../components/empty_page/index.test.tsx | 0 .../components/empty_page/index.tsx | 0 .../__snapshots__/empty_value.test.tsx.snap | 0 .../empty_value/empty_value.test.tsx | 0 .../components/empty_value/index.tsx | 0 .../components/empty_value/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../error_toast_dispatcher/index.test.tsx | 6 +- .../error_toast_dispatcher/index.tsx | 0 .../__snapshots__/event_details.test.tsx.snap | 0 .../__snapshots__/json_view.test.tsx.snap | 0 .../components/event_details/columns.tsx | 16 +- .../event_details/event_details.test.tsx | 0 .../event_details/event_details.tsx | 6 +- .../event_fields_browser.test.tsx | 0 .../event_details/event_fields_browser.tsx | 6 +- .../components/event_details/event_id.ts | 0 .../components/event_details/helpers.test.tsx | 0 .../components/event_details/helpers.tsx | 6 +- .../event_details/json_view.test.tsx | 0 .../components/event_details/json_view.tsx | 4 +- .../event_details/stateful_event_details.tsx | 6 +- .../components/event_details/translations.ts | 0 .../components/event_details/types.ts | 2 +- .../events_viewer/default_headers.tsx | 6 +- .../events_viewer/default_model.tsx | 4 +- .../event_details_width_context.tsx | 0 .../events_viewer/events_viewer.test.tsx | 4 +- .../events_viewer/events_viewer.tsx | 34 +-- .../components/events_viewer/index.test.tsx | 4 +- .../components/events_viewer/index.tsx | 17 +- .../components/events_viewer/mock.ts | 2 +- .../components/events_viewer/translations.ts | 0 .../external_link_icon/index.test.tsx | 0 .../components/external_link_icon/index.tsx | 0 .../filters_global.test.tsx.snap | 0 .../filters_global/filters_global.test.tsx | 0 .../filters_global/filters_global.tsx | 0 .../components/filters_global/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/formatted_bytes/index.test.tsx | 0 .../components/formatted_bytes/index.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../components/formatted_date/index.test.tsx | 0 .../components/formatted_date/index.tsx | 0 .../formatted_date/maybe_date.test.ts | 0 .../components/formatted_date/maybe_date.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../generic_downloader/index.test.tsx | 0 .../components/generic_downloader/index.tsx | 2 +- .../generic_downloader/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/header_global/index.test.tsx | 0 .../components/header_global/index.tsx | 4 +- .../components/header_global/translations.ts | 0 .../editable_title.test.tsx.snap | 0 .../__snapshots__/index.test.tsx.snap | 0 .../__snapshots__/title.test.tsx.snap | 0 .../header_page/editable_title.test.tsx | 0 .../components/header_page/editable_title.tsx | 0 .../components/header_page/index.test.tsx | 0 .../components/header_page/index.tsx | 0 .../components/header_page/title.test.tsx | 0 .../components/header_page/title.tsx | 0 .../components/header_page/translations.ts | 0 .../components/header_page/types.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/header_section/index.test.tsx | 0 .../components/header_section/index.tsx | 0 .../components/help_menu/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../import_data_modal/index.test.tsx | 0 .../components/import_data_modal/index.tsx | 5 +- .../import_data_modal/translations.ts | 0 .../components/inspect/index.test.tsx | 7 +- .../{ => common}/components/inspect/index.tsx | 0 .../components/inspect/modal.test.tsx | 0 .../{ => common}/components/inspect/modal.tsx | 0 .../components/inspect/translations.ts | 0 .../components/last_event_time/index.test.tsx | 2 +- .../components/last_event_time/index.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../components/link_icon/index.test.tsx | 0 .../components/link_icon/index.tsx | 0 .../components/link_to/helpers.test.ts | 0 .../components/link_to/helpers.ts | 0 .../{ => common}/components/link_to/index.ts | 0 .../components/link_to/link_to.tsx | 8 +- .../components/link_to/redirect_to_case.tsx | 2 +- .../link_to/redirect_to_detection_engine.tsx | 2 +- .../components/link_to/redirect_to_hosts.tsx | 4 +- .../link_to/redirect_to_network.tsx | 4 +- .../link_to/redirect_to_overview.tsx | 2 +- .../link_to/redirect_to_timelines.tsx | 4 +- .../components/link_to/redirect_wrapper.tsx | 0 .../components/links/index.test.tsx | 2 +- .../{ => common}/components/links/index.tsx | 10 +- .../components/links/translations.ts | 2 +- .../loader/__snapshots__/index.test.tsx.snap | 0 .../components/loader/index.test.tsx | 0 .../{ => common}/components/loader/index.tsx | 0 .../localized_date_tooltip/index.test.tsx | 0 .../localized_date_tooltip/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../__snapshots__/markdown_hint.test.tsx.snap | 0 .../components/markdown/index.test.tsx | 0 .../components/markdown/index.tsx | 0 .../markdown/markdown_hint.test.tsx | 0 .../components/markdown/markdown_hint.tsx | 0 .../components/markdown/translations.ts | 0 .../components/markdown_editor/constants.ts | 0 .../components/markdown_editor/form.tsx | 2 +- .../components/markdown_editor/index.tsx | 0 .../markdown_editor/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../matrix_histogram/index.test.tsx | 2 +- .../components/matrix_histogram/index.tsx | 14 +- .../matrix_histogram/matrix_loader.tsx | 0 .../matrix_histogram/translations.ts | 0 .../components/matrix_histogram/types.ts | 6 +- .../components/matrix_histogram/utils.test.ts | 2 +- .../components/matrix_histogram/utils.ts | 2 +- .../entity_draggable.test.tsx.snap | 0 .../ml/anomaly/anomaly_table_provider.tsx | 0 .../get_interval_from_anomalies.test.ts | 0 .../ml/anomaly/get_interval_from_anomalies.ts | 0 .../components/ml/anomaly/translations.ts | 0 .../anomaly/use_anomalies_table_data.test.ts | 0 .../ml/anomaly/use_anomalies_table_data.ts | 4 +- .../components/ml/api/anomalies_table_data.ts | 0 .../{ => common}/components/ml/api/errors.ts | 0 .../components/ml/api/get_ml_capabilities.ts | 2 +- .../components/ml/api/throw_if_not_ok.test.ts | 0 .../components/ml/api/throw_if_not_ok.ts | 0 .../components/ml/api/translations.ts | 0 .../add_entities_to_kql.test.ts | 0 .../conditional_links/add_entities_to_kql.ts | 0 .../conditional_links/entity_helpers.test.ts | 0 .../ml/conditional_links/entity_helpers.ts | 0 .../ml_host_conditional_container.tsx | 6 +- .../ml_network_conditional_container.tsx | 4 +- .../remove_kql_variables.test.ts | 0 .../conditional_links/remove_kql_variables.ts | 0 .../replace_kql_commas_with_or.test.ts | 0 .../replace_kql_commas_with_or.ts | 0 .../replace_kql_parts.test.ts | 0 .../ml/conditional_links/replace_kql_parts.ts | 0 .../conditional_links/rison_helpers.test.ts | 0 .../ml/conditional_links/rison_helpers.ts | 0 .../get_criteria_from_host_type.test.ts | 2 +- .../criteria/get_criteria_from_host_type.ts | 2 +- .../get_criteria_from_network_type.test.ts | 4 +- .../get_criteria_from_network_type.ts | 4 +- .../ml/criteria/host_to_criteria.test.ts | 2 +- .../ml/criteria/host_to_criteria.ts | 2 +- .../ml/criteria/network_to_criteria.test.ts | 2 +- .../ml/criteria/network_to_criteria.ts | 2 +- .../components/ml/entity_draggable.test.tsx | 0 .../components/ml/entity_draggable.tsx | 4 +- .../components/ml/get_entries.test.ts | 0 .../{ => common}/components/ml/get_entries.ts | 0 .../create_influencers.test.tsx.snap | 0 .../influencers/create_influencers.test.tsx | 0 .../ml/influencers/create_influencers.tsx | 0 .../get_host_name_from_influencers.test.ts | 0 .../get_host_name_from_influencers.ts | 0 .../get_network_from_influencers.test.ts | 0 .../get_network_from_influencers.ts | 0 .../influencers/host_to_influencers.test.ts | 2 +- .../ml/influencers/host_to_influencers.ts | 2 +- .../network_to_influencers.test.ts | 0 .../ml/influencers/network_to_influencers.ts | 0 .../ml/links/create_explorer_link.test.ts | 0 .../ml/links/create_explorer_link.ts | 0 .../ml/links/create_series_link.test.ts | 0 .../components/ml/links/create_series_link.ts | 0 .../public/{ => common}/components/ml/mock.ts | 0 .../permissions/ml_capabilities_provider.tsx | 4 +- .../components/ml/permissions/translations.ts | 0 .../__snapshots__/anomaly_score.test.tsx.snap | 0 .../anomaly_scores.test.tsx.snap | 0 .../create_descriptions_list.test.tsx.snap | 0 .../draggable_score.test.tsx.snap | 0 .../ml/score/anomaly_score.test.tsx | 0 .../components/ml/score/anomaly_score.tsx | 0 .../ml/score/anomaly_scores.test.tsx | 0 .../components/ml/score/anomaly_scores.tsx | 0 .../ml/score/create_description_list.tsx | 2 +- .../score/create_descriptions_list.test.tsx | 0 .../score/create_entities_from_score.test.ts | 0 .../ml/score/create_entities_from_score.ts | 0 .../ml/score/draggable_score.test.tsx | 0 .../components/ml/score/draggable_score.tsx | 4 +- .../ml/score/get_score_string.test.ts | 0 .../ml/score/get_top_severity.test.ts | 0 .../components/ml/score/get_top_severity.ts | 0 .../components/ml/score/score_health.tsx | 0 .../score/score_interval_to_datetime.test.ts | 0 .../ml/score/score_interval_to_datetime.ts | 0 .../components/ml/score/translations.ts | 0 .../ml/tables/anomalies_host_table.tsx | 2 +- .../ml/tables/anomalies_network_table.tsx | 2 +- .../components/ml/tables/basic_table.tsx | 0 .../tables/convert_anomalies_to_hosts.test.ts | 0 .../ml/tables/convert_anomalies_to_hosts.ts | 0 .../convert_anomalies_to_network.test.ts | 0 .../ml/tables/convert_anomalies_to_network.ts | 0 .../ml/tables/create_compound_key.test.ts | 0 .../ml/tables/create_compound_key.ts | 0 .../get_anomalies_host_table_columns.test.tsx | 2 +- .../get_anomalies_host_table_columns.tsx | 2 +- ...t_anomalies_network_table_columns.test.tsx | 2 +- .../get_anomalies_network_table_columns.tsx | 4 +- .../ml/tables/host_equality.test.ts | 2 +- .../components/ml/tables/host_equality.ts | 0 .../ml/tables/network_equality.test.ts | 4 +- .../components/ml/tables/network_equality.ts | 0 .../components/ml/tables/translations.ts | 0 .../{ => common}/components/ml/types.test.ts | 0 .../{ => common}/components/ml/types.ts | 8 +- .../components/ml_popover/__mocks__/api.tsx | 0 .../popover_description.test.tsx.snap | 0 .../upgrade_contents.test.tsx.snap | 0 .../components/ml_popover/api.tsx | 0 .../components/ml_popover/helpers.test.tsx | 0 .../components/ml_popover/helpers.tsx | 0 .../ml_popover/hooks/translations.ts | 0 .../ml_popover/hooks/use_ml_capabilities.tsx | 0 .../ml_popover/hooks/use_siem_jobs.tsx | 4 +- .../hooks/use_siem_jobs_helpers.test.tsx | 0 .../hooks/use_siem_jobs_helpers.tsx | 0 .../__snapshots__/job_switch.test.tsx.snap | 0 .../__snapshots__/jobs_table.test.tsx.snap | 0 .../__snapshots__/showing_count.test.tsx.snap | 0 .../groups_filter_popover.test.tsx.snap | 0 .../jobs_table_filters.test.tsx.snap | 0 .../filters/groups_filter_popover.test.tsx | 0 .../filters/groups_filter_popover.tsx | 0 .../filters/jobs_table_filters.test.tsx | 0 .../jobs_table/filters/jobs_table_filters.tsx | 2 +- .../filters/toggle_selected_group.test.tsx | 0 .../filters/toggle_selected_group.tsx | 0 .../jobs_table/filters/translations.ts | 0 .../ml_popover/jobs_table/job_switch.test.tsx | 0 .../ml_popover/jobs_table/job_switch.tsx | 2 +- .../ml_popover/jobs_table/jobs_table.test.tsx | 0 .../ml_popover/jobs_table/jobs_table.tsx | 0 .../jobs_table/showing_count.test.tsx | 0 .../ml_popover/jobs_table/showing_count.tsx | 0 .../ml_popover/jobs_table/translations.ts | 0 .../components/ml_popover/ml_modules.tsx | 0 .../components/ml_popover/ml_popover.test.tsx | 0 .../components/ml_popover/ml_popover.tsx | 2 +- .../ml_popover/popover_description.test.tsx | 0 .../ml_popover/popover_description.tsx | 0 .../components/ml_popover/translations.ts | 0 .../components/ml_popover/types.ts | 2 +- .../ml_popover/upgrade_contents.test.tsx | 0 .../ml_popover/upgrade_contents.tsx | 0 .../navigation/breadcrumbs/index.test.ts | 4 +- .../navigation/breadcrumbs/index.ts | 19 +- .../components/navigation/helpers.ts | 4 +- .../components/navigation/index.test.tsx | 4 +- .../components/navigation/index.tsx | 0 .../navigation/tab_navigation/index.test.tsx | 8 +- .../navigation/tab_navigation/index.tsx | 0 .../navigation/tab_navigation/types.ts | 6 +- .../components/navigation/types.ts | 6 +- .../navigation/use_get_url_search.tsx | 0 .../components/news_feed/helpers.test.ts | 2 +- .../components/news_feed/helpers.ts | 0 .../components/news_feed/index.tsx | 0 .../components/news_feed/news_feed.tsx | 4 +- .../components/news_feed/news_link/index.tsx | 0 .../components/news_feed/no_news/index.tsx | 0 .../components/news_feed/post/index.tsx | 0 .../components/news_feed/translations.ts | 0 .../components/news_feed/types.ts | 0 .../{ => common}/components/page/index.tsx | 0 .../components/page/manage_query.tsx | 2 +- .../components/page/translations.ts | 0 .../components/page_route/index.tsx | 0 .../components/page_route/pageroute.test.tsx | 0 .../components/page_route/pageroute.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../paginated_table/helpers.test.ts | 0 .../components/paginated_table/helpers.ts | 2 +- .../components/paginated_table/index.mock.tsx | 0 .../components/paginated_table/index.test.tsx | 4 +- .../components/paginated_table/index.tsx | 20 +- .../paginated_table/translations.ts | 0 .../components/panel/index.test.tsx | 0 .../{ => common}/components/panel/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/progress_inline/index.test.tsx | 0 .../components/progress_inline/index.tsx | 0 .../components/query_bar/index.test.tsx | 4 +- .../components/query_bar/index.tsx | 4 +- .../components/scroll_to_top/index.test.tsx | 0 .../components/scroll_to_top/index.tsx | 0 .../components/search_bar/index.tsx | 4 +- .../components/search_bar/selectors.ts | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../components/selectable_text/index.test.tsx | 0 .../components/selectable_text/index.tsx | 0 .../components/sidebar_header/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/stat_items/index.test.tsx | 10 +- .../components/stat_items/index.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../components/subtitle/index.test.tsx | 0 .../components/subtitle/index.tsx | 0 .../super_date_picker/index.test.tsx | 8 +- .../components/super_date_picker/index.tsx | 5 +- .../super_date_picker/selectors.test.ts | 0 .../components/super_date_picker/selectors.ts | 0 .../__snapshots__/helpers.test.tsx.snap | 0 .../components/tables/helpers.test.tsx | 0 .../components/tables/helpers.tsx | 4 +- .../modal_all_errors.test.tsx.snap | 0 .../components/toasters/errors.ts | 0 .../components/toasters/index.test.tsx | 0 .../components/toasters/index.tsx | 0 .../toasters/modal_all_errors.test.tsx | 0 .../components/toasters/modal_all_errors.tsx | 0 .../components/toasters/translations.ts | 0 .../components/toasters/utils.test.ts | 0 .../{ => common}/components/toasters/utils.ts | 0 .../components/top_n/helpers.test.tsx | 0 .../{ => common}/components/top_n/helpers.ts | 2 +- .../components/top_n/index.test.tsx | 16 +- .../{ => common}/components/top_n/index.tsx | 13 +- .../components/top_n/top_n.test.tsx | 0 .../{ => common}/components/top_n/top_n.tsx | 8 +- .../components/top_n/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../truncatable_text/index.test.tsx | 0 .../components/truncatable_text/index.tsx | 0 .../components/url_state/constants.ts | 0 .../components/url_state/helpers.test.ts | 4 +- .../components/url_state/helpers.ts | 11 +- .../components/url_state/index.test.tsx | 2 +- .../components/url_state/index.tsx | 4 +- .../url_state/index_mocked.test.tsx | 2 +- .../url_state/initialize_redux_by_url.tsx | 6 +- .../url_state/normalize_time_range.test.ts | 0 .../url_state/normalize_time_range.ts | 0 .../components/url_state/test_dependencies.ts | 13 +- .../components/url_state/types.ts | 4 +- .../components/url_state/use_url_state.tsx | 2 +- .../__snapshots__/utility_bar.test.tsx.snap | 0 .../utility_bar_action.test.tsx.snap | 0 .../utility_bar_group.test.tsx.snap | 0 .../utility_bar_section.test.tsx.snap | 0 .../utility_bar_text.test.tsx.snap | 0 .../components/utility_bar/index.ts | 0 .../components/utility_bar/styles.tsx | 0 .../utility_bar/utility_bar.test.tsx | 0 .../components/utility_bar/utility_bar.tsx | 0 .../utility_bar/utility_bar_action.test.tsx | 0 .../utility_bar/utility_bar_action.tsx | 0 .../utility_bar/utility_bar_group.test.tsx | 0 .../utility_bar/utility_bar_group.tsx | 0 .../utility_bar/utility_bar_section.test.tsx | 0 .../utility_bar/utility_bar_section.tsx | 0 .../utility_bar/utility_bar_text.test.tsx | 0 .../utility_bar/utility_bar_text.tsx | 0 .../public/{ => common}/components/utils.ts | 0 .../components/with_hover_actions/index.tsx | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components/wrapper_page/index.test.tsx | 0 .../components/wrapper_page/index.tsx | 0 .../histogram_configs.ts | 2 +- .../anomalies_query_tab_body/index.tsx | 2 +- .../anomalies_query_tab_body/translations.ts | 0 .../anomalies_query_tab_body/types.ts | 10 +- .../anomalies_query_tab_body/utils.ts | 4 +- .../containers/errors/index.test.tsx | 0 .../{ => common}/containers/errors/index.tsx | 0 .../containers/errors/translations.ts | 0 .../events/last_event_time/index.ts | 8 +- .../last_event_time.gql_query.ts | 0 .../containers/events/last_event_time/mock.ts | 4 +- .../containers/global_time/index.tsx | 0 .../{ => common}/containers/helpers.test.ts | 2 +- .../public/{ => common}/containers/helpers.ts | 2 +- .../containers/kuery_autocompletion/index.tsx | 2 +- .../matrix_histogram/index.gql_query.ts | 0 .../matrix_histogram/index.test.tsx | 2 +- .../containers/matrix_histogram/index.ts | 4 +- .../containers/query_template.tsx | 2 +- .../containers/query_template_paginated.tsx | 2 +- .../containers/source/index.gql_query.ts | 0 .../containers/source/index.test.tsx | 0 .../{ => common}/containers/source/index.tsx | 4 +- .../{ => common}/containers/source/mock.ts | 2 +- .../{ => common}/hooks/api/__mock__/api.tsx | 0 .../public/{ => common}/hooks/api/api.tsx | 2 +- .../{ => common}/hooks/api/helpers.test.tsx | 0 .../public/{ => common}/hooks/api/helpers.tsx | 0 .../public/{ => common}/hooks/translations.ts | 0 .../siem/public/{ => common}/hooks/types.ts | 3 +- .../hooks/use_add_to_timeline.tsx | 4 +- .../{ => common}/hooks/use_index_patterns.tsx | 0 .../hooks/use_providers_portal.tsx | 0 .../{ => common}/lib/clipboard/clipboard.tsx | 0 .../lib/clipboard/translations.ts | 0 .../lib/clipboard/with_copy_to_clipboard.tsx | 0 .../{ => common}/lib/compose/helpers.test.ts | 2 +- .../{ => common}/lib/compose/helpers.ts | 0 .../lib/compose/kibana_compose.tsx | 5 +- .../components/connector_flyout/index.tsx | 6 +- .../{ => common}/lib/connectors/config.ts | 0 .../{ => common}/lib/connectors/index.ts | 0 .../lib/connectors/jira/config.ts | 0 .../lib/connectors/jira/flyout.tsx | 0 .../lib/connectors/jira/index.tsx | 2 +- .../{ => common}/lib/connectors/jira/logo.svg | 0 .../lib/connectors/jira/translations.ts | 0 .../{ => common}/lib/connectors/jira/types.ts | 4 +- .../lib/connectors/servicenow/config.ts | 0 .../lib/connectors/servicenow/flyout.tsx | 0 .../lib/connectors/servicenow/index.tsx | 2 +- .../lib/connectors/servicenow/logo.svg | 0 .../lib/connectors/servicenow/translations.ts | 0 .../lib/connectors/servicenow/types.ts | 4 +- .../lib/connectors/translations.ts | 0 .../{ => common}/lib/connectors/types.ts | 13 +- .../{ => common}/lib/connectors/utils.ts | 4 +- .../{ => common}/lib/connectors/validators.ts | 0 .../{ => common}/lib/helpers/index.test.tsx | 0 .../public/{ => common}/lib/helpers/index.tsx | 0 .../{ => common}/lib/helpers/scheduler.ts | 0 .../public/{ => common}/lib/history/index.ts | 0 .../{ => common}/lib/keury/index.test.ts | 0 .../public/{ => common}/lib/keury/index.ts | 4 +- .../lib/kibana/__mocks__/index.ts | 0 .../public/{ => common}/lib/kibana/hooks.ts | 6 +- .../public/{ => common}/lib/kibana/index.ts | 0 .../{ => common}/lib/kibana/kibana_react.ts | 4 +- .../{ => common}/lib/kibana/services.ts | 3 +- .../siem/public/{ => common}/lib/lib.ts | 0 .../public/{ => common}/lib/note/index.ts | 0 .../{ => common}/lib/telemetry/index.ts | 2 +- .../{ => common}/lib/telemetry/middleware.ts | 2 +- .../{ => common}/lib/theme/use_eui_theme.tsx | 2 +- .../public/{ => common}/mock/global_state.ts | 11 +- .../siem/public/{ => common}/mock/header.ts | 6 +- .../public/{ => common}/mock/hook_wrapper.tsx | 0 .../siem/public/{ => common}/mock/index.ts | 0 .../public/{ => common}/mock/index_pattern.ts | 0 .../public/{ => common}/mock/kibana_core.ts | 5 +- .../public/{ => common}/mock/kibana_react.ts | 4 +- .../public/{ => common}/mock/match_media.ts | 0 .../{ => common}/mock/mock_detail_item.ts | 2 +- .../siem/public/{ => common}/mock/mock_ecs.ts | 2 +- .../mock/mock_endgame_ecs_data.ts | 2 +- .../{ => common}/mock/mock_timeline_data.ts | 2 +- .../siem/public/{ => common}/mock/netflow.ts | 4 +- .../siem/public/{ => common}/mock/news.ts | 0 .../siem/public/{ => common}/mock/raw_news.ts | 0 .../{ => common}/mock/test_providers.tsx | 7 +- .../{ => common}/mock/timeline_results.ts | 16 +- .../siem/public/{ => common}/mock/utils.ts | 10 + .../siem/public/{ => common}/store/actions.ts | 3 - .../public/{ => common}/store/app/actions.ts | 0 .../public/{ => common}/store/app/index.ts | 0 .../public/{ => common}/store/app/model.ts | 0 .../public/{ => common}/store/app/reducer.ts | 0 .../{ => common}/store/app/selectors.ts | 0 .../public/{ => common}/store/constants.ts | 0 .../store/drag_and_drop/actions.ts | 2 +- .../{ => common}/store/drag_and_drop/index.ts | 0 .../{ => common}/store/drag_and_drop/model.ts | 2 +- .../store/drag_and_drop/reducer.test.ts | 4 +- .../store/drag_and_drop/reducer.ts | 2 +- .../store/drag_and_drop/selectors.ts | 0 .../siem/public/{ => common}/store/epic.ts | 8 +- .../siem/public/{ => common}/store/index.ts | 0 .../{ => common}/store/inputs/actions.ts | 2 +- .../{ => common}/store/inputs/constants.ts | 0 .../{ => common}/store/inputs/helpers.test.ts | 0 .../{ => common}/store/inputs/helpers.ts | 0 .../public/{ => common}/store/inputs/index.ts | 0 .../public/{ => common}/store/inputs/model.ts | 2 +- .../{ => common}/store/inputs/reducer.ts | 0 .../{ => common}/store/inputs/selectors.ts | 0 .../siem/public/{ => common}/store/model.ts | 2 - .../siem/public/common/store/reducer.ts | 46 ++++ .../public/{ => common}/store/selectors.ts | 3 - .../siem/public/{ => common}/store/store.ts | 12 +- .../siem/public/{ => common}/store/types.ts | 0 .../public/{pages => }/common/translations.ts | 0 .../public/{ => common}/utils/api/index.ts | 0 .../{ => common}/utils/apollo_context.ts | 0 .../utils/default_date_settings.test.ts | 4 +- .../utils/default_date_settings.ts | 2 +- .../utils/kql/use_update_kql.test.tsx | 4 +- .../{ => common}/utils/kql/use_update_kql.tsx | 2 +- .../utils/logo_endpoint/64_color.svg | 0 .../{ => common}/utils/route/helpers.ts | 0 .../{ => common}/utils/route/index.test.tsx | 2 +- .../utils/route/manage_spy_routes.tsx | 0 .../{ => common}/utils/route/spy_routes.tsx | 0 .../public/{ => common}/utils/route/types.ts | 8 +- .../utils/route/use_route_spy.tsx | 0 .../utils/saved_query_services/index.tsx | 2 +- .../utils/timeline/use_show_timeline.tsx | 2 +- .../{ => common}/utils/use_mount_appended.ts | 0 .../{ => common}/utils/validators/index.ts | 0 .../public/components/page/network/index.tsx | 12 - .../__snapshots__/index.test.tsx.snap | 0 .../authentications_table/index.test.tsx | 10 +- .../authentications_table/index.tsx | 27 ++- .../components}/authentications_table/mock.ts | 2 +- .../authentications_table/translations.ts | 0 .../first_last_seen_host/index.test.tsx | 6 +- .../first_last_seen_host/index.tsx | 6 +- .../__snapshots__/index.test.tsx.snap | 0 .../components}/hosts_table/columns.tsx | 22 +- .../components}/hosts_table/index.test.tsx | 18 +- .../components}/hosts_table/index.tsx | 11 +- .../components}/hosts_table/mock.ts | 2 +- .../components}/hosts_table/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components}/kpi_hosts/index.test.tsx | 2 +- .../components}/kpi_hosts/index.tsx | 10 +- .../kpi_hosts/kpi_host_details_mapping.ts | 2 +- .../kpi_hosts/kpi_hosts_mapping.ts | 2 +- .../components}/kpi_hosts/mock.tsx | 0 .../components}/kpi_hosts/translations.ts | 0 .../components}/kpi_hosts/types.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../uncommon_process_table/index.test.tsx | 10 +- .../uncommon_process_table/index.tsx | 16 +- .../uncommon_process_table/mock.ts | 2 +- .../uncommon_process_table/translations.ts | 0 .../authentications/index.gql_query.ts | 0 .../containers/authentications/index.tsx | 19 +- .../first_last_seen.gql_query.ts | 0 .../containers/hosts/first_last_seen/index.ts | 10 +- .../containers/hosts/first_last_seen/mock.ts | 4 +- .../containers/hosts/hosts_table.gql_query.ts | 0 .../{ => hosts}/containers/hosts/index.tsx | 19 +- .../hosts/overview/host_overview.gql_query.ts | 0 .../containers/hosts/overview/index.tsx | 12 +- .../kpi_host_details/index.gql_query.tsx | 0 .../containers/kpi_host_details/index.tsx | 12 +- .../containers/kpi_hosts/index.gql_query.ts | 0 .../containers/kpi_hosts/index.tsx | 12 +- .../uncommon_processes/index.gql_query.ts | 0 .../containers/uncommon_processes/index.tsx | 19 +- x-pack/plugins/siem/public/hosts/index.ts | 23 ++ .../pages}/details/details_tabs.test.tsx | 12 +- .../pages}/details/details_tabs.tsx | 12 +- .../pages}/details/helpers.test.ts | 0 .../hosts => hosts/pages}/details/helpers.ts | 2 +- .../hosts => hosts/pages}/details/index.tsx | 49 +++-- .../pages}/details/nav_tabs.test.tsx | 2 +- .../pages}/details/nav_tabs.tsx | 6 +- .../hosts => hosts/pages}/details/types.ts | 10 +- .../hosts => hosts/pages}/details/utils.ts | 12 +- .../hosts => hosts/pages}/hosts.test.tsx | 25 ++- .../{pages/hosts => hosts/pages}/hosts.tsx | 40 ++-- .../pages}/hosts_empty_page.tsx | 7 +- .../hosts => hosts/pages}/hosts_tabs.tsx | 12 +- .../{pages/hosts => hosts/pages}/index.tsx | 6 +- .../hosts => hosts/pages}/nav_tabs.test.tsx | 2 +- .../{pages/hosts => hosts/pages}/nav_tabs.tsx | 4 +- .../navigation/alerts_query_tab_body.tsx | 2 +- .../authentications_query_tab_body.tsx | 14 +- .../navigation/events_query_tab_body.tsx | 10 +- .../navigation/hosts_query_tab_body.tsx | 6 +- .../hosts => hosts/pages}/navigation/index.ts | 0 .../hosts => hosts/pages}/navigation/types.ts | 10 +- .../uncommon_process_query_tab_body.tsx | 6 +- .../hosts => hosts/pages}/translations.ts | 0 .../{pages/hosts => hosts/pages}/types.ts | 8 +- x-pack/plugins/siem/public/hosts/routes.tsx | 18 ++ .../{store/hosts => hosts/store}/actions.ts | 0 .../hosts => hosts/store}/helpers.test.ts | 2 +- .../{store/hosts => hosts/store}/helpers.ts | 2 +- .../{store/hosts => hosts/store}/index.ts | 9 + .../{store/hosts => hosts/store}/model.ts | 0 .../{store/hosts => hosts/store}/reducer.ts | 2 +- .../{store/hosts => hosts/store}/selectors.ts | 2 +- .../arrows/__snapshots__/index.test.tsx.snap | 0 .../components/arrows/helpers.test.ts | 0 .../components/arrows/helpers.ts | 0 .../components/arrows/index.test.tsx | 2 +- .../{ => network}/components/arrows/index.tsx | 0 .../components/direction/direction.test.tsx | 0 .../components/direction/index.tsx | 4 +- .../components/embeddables/__mocks__/mock.ts | 2 +- .../__snapshots__/embeddable.test.tsx.snap | 0 .../embeddable_header.test.tsx.snap | 0 .../__snapshots__/embedded_map.test.tsx.snap | 0 ...ndex_patterns_missing_prompt.test.tsx.snap | 0 .../embeddables/embeddable.test.tsx | 0 .../components/embeddables/embeddable.tsx | 0 .../embeddables/embeddable_header.test.tsx | 2 +- .../embeddables/embeddable_header.tsx | 0 .../embeddables/embedded_map.test.tsx | 6 +- .../components/embeddables/embedded_map.tsx | 23 +- .../embeddables/embedded_map_helpers.test.tsx | 2 +- .../embeddables/embedded_map_helpers.tsx | 10 +- .../index_patterns_missing_prompt.test.tsx | 2 +- .../index_patterns_missing_prompt.tsx | 2 +- .../components/embeddables/map_config.test.ts | 0 .../components/embeddables/map_config.ts | 2 +- .../line_tool_tip_content.test.tsx.snap | 0 .../__snapshots__/map_tool_tip.test.tsx.snap | 0 .../point_tool_tip_content.test.tsx.snap | 0 .../tooltip_footer.test.tsx.snap | 0 .../line_tool_tip_content.test.tsx | 0 .../map_tool_tip/line_tool_tip_content.tsx | 0 .../map_tool_tip/map_tool_tip.test.tsx | 0 .../embeddables/map_tool_tip/map_tool_tip.tsx | 2 +- .../point_tool_tip_content.test.tsx | 10 +- .../map_tool_tip/point_tool_tip_content.tsx | 15 +- .../map_tool_tip/tooltip_footer.test.tsx | 0 .../map_tool_tip/tooltip_footer.tsx | 0 .../components/embeddables/translations.ts | 0 .../components/embeddables/types.ts | 4 +- .../flow_direction_select.test.tsx.snap | 0 .../flow_target_select.test.tsx.snap | 0 .../flow_direction_select.test.tsx | 2 +- .../flow_controls/flow_direction_select.tsx | 2 +- .../flow_controls/flow_target_select.test.tsx | 2 +- .../flow_controls/flow_target_select.tsx | 2 +- .../components/flow_controls/translations.ts | 0 .../index.test.tsx | 4 +- .../flow_target_select_connected/index.tsx | 6 +- .../ip/__snapshots__/index.test.tsx.snap | 0 .../components/ip/index.test.tsx | 4 +- .../{ => network}/components/ip/index.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../components}/ip_overview/index.test.tsx | 20 +- .../components}/ip_overview/index.tsx | 28 +-- .../components}/ip_overview/mock.ts | 2 +- .../components}/ip_overview/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components}/kpi_network/index.test.tsx | 9 +- .../components}/kpi_network/index.tsx | 6 +- .../components}/kpi_network/mock.ts | 4 +- .../components}/kpi_network/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../is_ptr_included.test.tsx.snap | 0 .../components}/network_dns_table/columns.tsx | 19 +- .../network_dns_table/index.test.tsx | 16 +- .../components}/network_dns_table/index.tsx | 8 +- .../is_ptr_included.test.tsx | 2 +- .../network_dns_table/is_ptr_included.tsx | 0 .../components}/network_dns_table/mock.ts | 2 +- .../network_dns_table/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../network_http_table/columns.tsx | 15 +- .../network_http_table/index.test.tsx | 16 +- .../components}/network_http_table/index.tsx | 8 +- .../components}/network_http_table/mock.ts | 2 +- .../network_http_table/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../network_top_countries_table/columns.tsx | 23 +- .../index.test.tsx | 14 +- .../network_top_countries_table/index.tsx | 9 +- .../network_top_countries_table/mock.ts | 2 +- .../translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../network_top_n_flow_table/columns.tsx | 30 ++- .../network_top_n_flow_table/index.test.tsx | 19 +- .../network_top_n_flow_table/index.tsx | 9 +- .../network_top_n_flow_table/mock.ts | 2 +- .../network_top_n_flow_table/translations.ts | 0 .../port/__snapshots__/index.test.tsx.snap | 0 .../components/port/index.test.tsx | 4 +- .../{ => network}/components/port/index.tsx | 8 +- .../__snapshots__/index.test.tsx.snap | 0 .../source_destination/country_flag.tsx | 0 .../source_destination/field_names.ts | 0 .../source_destination/geo_fields.tsx | 2 +- .../source_destination/index.test.tsx | 12 +- .../components/source_destination/index.tsx | 0 .../source_destination/ip_with_port.tsx | 0 .../components/source_destination/label.tsx | 0 .../components/source_destination/network.tsx | 4 +- .../source_destination_arrows.tsx | 4 +- .../source_destination_ip.test.tsx | 12 +- .../source_destination_ip.tsx | 2 +- .../source_destination_with_arrows.tsx | 0 .../source_destination/translations.ts | 0 .../components/source_destination/types.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components}/tls_table/columns.tsx | 13 +- .../components}/tls_table/index.test.tsx | 17 +- .../components}/tls_table/index.tsx | 13 +- .../components}/tls_table/mock.ts | 2 +- .../components}/tls_table/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../components}/users_table/columns.tsx | 11 +- .../components}/users_table/index.test.tsx | 18 +- .../components}/users_table/index.tsx | 15 +- .../components}/users_table/mock.ts | 2 +- .../components}/users_table/translations.ts | 0 .../containers/ip_overview/index.gql_query.ts | 0 .../containers/ip_overview/index.tsx | 14 +- .../containers/kpi_network/index.gql_query.ts | 0 .../containers/kpi_network/index.tsx | 12 +- .../containers/network_dns/index.gql_query.ts | 0 .../containers/network_dns/index.tsx | 31 ++- .../network_http/index.gql_query.ts | 0 .../containers/network_http/index.tsx | 18 +- .../network_top_countries/index.gql_query.ts | 0 .../network_top_countries/index.tsx | 18 +- .../network_top_n_flow/index.gql_query.ts | 0 .../containers/network_top_n_flow/index.tsx | 18 +- .../containers/tls/index.gql_query.ts | 0 .../{ => network}/containers/tls/index.tsx | 18 +- .../containers/users/index.gql_query.ts | 0 .../{ => network}/containers/users/index.tsx | 18 +- x-pack/plugins/siem/public/network/index.ts | 23 ++ .../network => network/pages}/index.tsx | 6 +- .../__snapshots__/index.test.tsx.snap | 0 .../pages}/ip_details/index.test.tsx | 26 ++- .../pages}/ip_details/index.tsx | 51 +++-- .../ip_details/network_http_query_table.tsx | 6 +- .../network_top_countries_query_table.tsx | 6 +- .../network_top_n_flow_query_table.tsx | 6 +- .../pages}/ip_details/tls_query_table.tsx | 6 +- .../pages}/ip_details/types.ts | 6 +- .../pages}/ip_details/users_query_table.tsx | 6 +- .../pages}/ip_details/utils.ts | 12 +- .../navigation/alerts_query_tab_body.tsx | 2 +- .../navigation/conditional_flex_group.tsx | 0 .../navigation/countries_query_tab_body.tsx | 8 +- .../pages}/navigation/dns_query_tab_body.tsx | 12 +- .../pages}/navigation/http_query_tab_body.tsx | 8 +- .../pages}/navigation/index.ts | 0 .../pages}/navigation/ips_query_tab_body.tsx | 8 +- .../pages}/navigation/nav_tabs.tsx | 0 .../pages}/navigation/network_routes.tsx | 10 +- .../navigation/network_routes_loading.tsx | 0 .../pages}/navigation/tls_query_tab_body.tsx | 6 +- .../pages}/navigation/types.ts | 8 +- .../pages}/navigation/utils.ts | 0 .../pages}/network.test.tsx | 22 +- .../network => network/pages}/network.tsx | 38 ++-- .../pages}/network_empty_page.tsx | 6 +- .../network => network/pages}/translations.ts | 0 .../{pages/network => network/pages}/types.ts | 4 +- x-pack/plugins/siem/public/network/routes.tsx | 18 ++ .../network => network/store}/actions.ts | 3 +- .../network => network/store}/helpers.test.ts | 2 +- .../network => network/store}/helpers.ts | 2 +- .../{store/network => network/store}/index.ts | 10 + .../{store/network => network/store}/model.ts | 0 .../network => network/store}/reducer.ts | 2 +- .../network => network/store}/selectors.ts | 2 +- .../alerts_by_category/index.test.tsx | 10 +- .../components}/alerts_by_category/index.tsx | 24 +- .../components}/event_counts/index.test.tsx | 6 +- .../components}/event_counts/index.tsx | 14 +- .../events_by_dataset/__mocks__/index.tsx | 0 .../components}/events_by_dataset/index.tsx | 28 +-- .../__snapshots__/index.test.tsx.snap | 0 .../components}/host_overview/index.test.tsx | 4 +- .../components}/host_overview/index.tsx | 36 +-- .../components}/host_overview/mock.ts | 2 +- .../components}/host_overview/translations.ts | 0 .../loading_placeholders/index.tsx | 0 .../components}/overview_empty/index.tsx | 6 +- .../components}/overview_host/index.test.tsx | 24 +- .../components}/overview_host/index.tsx | 25 +-- .../__snapshots__/index.test.tsx.snap | 0 .../overview_host_stats/index.test.tsx | 2 +- .../components}/overview_host_stats/index.tsx | 2 +- .../components}/overview_host_stats/mock.ts | 2 +- .../overview_network/index.test.tsx | 24 +- .../components}/overview_network/index.tsx | 22 +- .../__snapshots__/index.test.tsx.snap | 0 .../overview_network_stats/index.test.tsx | 2 +- .../overview_network_stats/index.tsx | 2 +- .../overview_network_stats/mock.ts | 2 +- .../components/recent_cases/filters/index.tsx | 0 .../components/recent_cases/index.tsx | 13 +- .../recent_cases/no_cases/index.tsx | 6 +- .../components/recent_cases/recent_cases.tsx | 10 +- .../components/recent_cases/translations.ts | 0 .../components/recent_cases/types.ts | 0 .../recent_timelines/counts/index.tsx | 7 +- .../recent_timelines/filters/index.tsx | 0 .../recent_timelines/header/index.tsx | 7 +- .../components/recent_timelines/index.tsx | 24 +- .../recent_timelines/recent_timelines.tsx | 7 +- .../recent_timelines/translations.ts | 0 .../components/recent_timelines/types.ts | 0 .../components}/sidebar/index.tsx | 4 +- .../components}/sidebar/sidebar.tsx | 24 +- .../components}/signals_by_category/index.tsx | 16 +- .../components}/stat_value.tsx | 4 +- .../overview => overview/components}/types.ts | 0 .../overview_host/index.gql_query.ts | 0 .../containers}/overview_host/index.tsx | 10 +- .../overview_network/index.gql_query.ts | 0 .../containers}/overview_network/index.tsx | 10 +- x-pack/plugins/siem/public/overview/index.ts | 18 ++ .../overview => overview/pages}/index.tsx | 0 .../pages}/overview.test.tsx | 12 +- .../overview => overview/pages}/overview.tsx | 31 +-- .../overview => overview/pages}/summary.tsx | 2 +- .../pages}/translations.ts | 0 .../plugins/siem/public/overview/routes.tsx | 15 ++ .../plugins/siem/public/pages/home/types.ts | 26 --- x-pack/plugins/siem/public/plugin.tsx | 63 +++++- x-pack/plugins/siem/public/store/reducer.ts | 47 ---- .../certificate_fingerprint/index.test.tsx | 4 +- .../certificate_fingerprint/index.tsx | 6 +- .../certificate_fingerprint/translations.ts | 0 .../components/duration/index.test.tsx | 4 +- .../components/duration/index.tsx | 2 +- .../edit_data_provider/helpers.test.tsx | 2 +- .../components/edit_data_provider/helpers.tsx | 2 +- .../edit_data_provider/index.test.tsx | 4 +- .../components/edit_data_provider/index.tsx | 2 +- .../edit_data_provider/translations.ts | 0 .../field_renderers.test.tsx.snap | 0 .../field_renderers/field_renderers.test.tsx | 10 +- .../field_renderers/field_renderers.tsx | 26 ++- .../fields_browser/categories_pane.test.tsx | 2 +- .../fields_browser/categories_pane.tsx | 2 +- .../fields_browser/category.test.tsx | 6 +- .../components/fields_browser/category.tsx | 2 +- .../fields_browser/category_columns.test.tsx | 2 +- .../fields_browser/category_columns.tsx | 8 +- .../fields_browser/category_title.test.tsx | 2 +- .../fields_browser/category_title.tsx | 4 +- .../fields_browser/field_browser.test.tsx | 4 +- .../fields_browser/field_browser.tsx | 4 +- .../fields_browser/field_items.test.tsx | 8 +- .../components/fields_browser/field_items.tsx | 28 ++- .../fields_browser/field_name.test.tsx | 6 +- .../components/fields_browser/field_name.tsx | 6 +- .../fields_browser/fields_pane.test.tsx | 6 +- .../components/fields_browser/fields_pane.tsx | 4 +- .../components/fields_browser/header.test.tsx | 4 +- .../components/fields_browser/header.tsx | 8 +- .../fields_browser/helpers.test.tsx | 4 +- .../components/fields_browser/helpers.tsx | 2 +- .../components/fields_browser/index.test.tsx | 6 +- .../components/fields_browser/index.tsx | 6 +- .../components/fields_browser/translations.ts | 0 .../components/fields_browser/types.ts | 4 +- .../flyout/__snapshots__/index.test.tsx.snap | 0 .../components/flyout/button/index.tsx | 7 +- .../components/flyout/button/translations.ts | 0 .../components/flyout/header/index.tsx | 24 +- .../__snapshots__/index.test.tsx.snap | 0 .../header_with_close_button/index.test.tsx | 2 +- .../flyout/header_with_close_button/index.tsx | 0 .../header_with_close_button/translations.ts | 0 .../components/flyout/index.test.tsx | 33 ++- .../components/flyout/index.tsx | 4 +- .../pane/__snapshots__/index.test.tsx.snap | 0 .../components/flyout/pane/index.test.tsx | 2 +- .../components/flyout/pane/index.tsx | 4 +- .../flyout/pane/timeline_resize_handle.tsx | 0 .../components/flyout/pane/translations.ts | 0 .../formatted_duration/helpers.test.ts | 2 +- .../components/formatted_duration/helpers.tsx | 2 +- .../components/formatted_duration/index.tsx | 0 .../formatted_duration/tooltip/index.tsx | 0 .../formatted_duration/translations.ts | 0 .../components/formatted_ip/index.tsx | 20 +- .../components/ja3_fingerprint/index.test.tsx | 4 +- .../components/ja3_fingerprint/index.tsx | 6 +- .../ja3_fingerprint/translations.ts | 0 .../components/lazy_accordion/index.tsx | 0 .../components/loading/index.tsx | 0 .../netflow/__snapshots__/index.test.tsx.snap | 0 .../components/netflow/fingerprints/index.tsx | 0 .../components/netflow/index.test.tsx | 23 +- .../components/netflow/index.tsx | 0 .../duration_event_start_end.tsx | 4 +- .../netflow/netflow_columns/index.tsx | 2 +- .../netflow/netflow_columns/types.ts | 0 .../netflow/netflow_columns/user_process.tsx | 2 +- .../components/netflow/types.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../__snapshots__/new_note.test.tsx.snap | 0 .../components/notes/add_note/index.test.tsx | 0 .../components/notes/add_note/index.tsx | 2 +- .../notes/add_note/new_note.test.tsx | 0 .../components/notes/add_note/new_note.tsx | 2 +- .../components/notes/columns.tsx | 0 .../components/notes/helpers.tsx | 4 +- .../components/notes/index.tsx | 2 +- .../note_card_body.test.tsx.snap | 0 .../components/notes/note_card/index.test.tsx | 0 .../components/notes/note_card/index.tsx | 0 .../notes/note_card/note_card_body.test.tsx | 0 .../notes/note_card/note_card_body.tsx | 6 +- .../notes/note_card/note_card_header.test.tsx | 0 .../notes/note_card/note_card_header.tsx | 0 .../notes/note_card/note_created.test.tsx | 0 .../notes/note_card/note_created.tsx | 2 +- .../notes/note_cards/index.test.tsx | 2 +- .../components/notes/note_cards/index.tsx | 2 +- .../components/notes/translations.ts | 0 .../components/open_timeline/constants.ts | 0 .../delete_timeline_modal.test.tsx | 0 .../delete_timeline_modal.tsx | 0 .../delete_timeline_modal/index.test.tsx | 0 .../delete_timeline_modal/index.tsx | 0 .../open_timeline/edit_timeline_actions.tsx | 0 .../edit_timeline_batch_actions.tsx | 0 .../export_timeline/export_timeline.test.tsx | 0 .../export_timeline/export_timeline.tsx | 7 +- .../export_timeline/index.test.tsx | 0 .../open_timeline/export_timeline/index.tsx | 2 +- .../open_timeline/export_timeline/mocks.ts | 0 .../components/open_timeline/helpers.test.ts | 22 +- .../components/open_timeline/helpers.ts | 17 +- .../components/open_timeline/index.test.tsx | 16 +- .../components/open_timeline/index.tsx | 18 +- .../note_previews/index.test.tsx | 2 +- .../open_timeline/note_previews/index.tsx | 0 .../note_previews/note_preview.test.tsx | 2 +- .../note_previews/note_preview.tsx | 6 +- .../open_timeline/open_timeline.test.tsx | 6 +- .../open_timeline/open_timeline.tsx | 6 +- .../open_timeline_modal/index.test.tsx | 16 +- .../open_timeline_modal/index.tsx | 4 +- .../open_timeline_modal_body.test.tsx | 6 +- .../open_timeline_modal_body.tsx | 0 .../open_timeline_modal_button.test.tsx | 6 +- .../open_timeline_modal_button.tsx | 0 .../open_timeline/search_row/index.test.tsx | 0 .../open_timeline/search_row/index.tsx | 0 .../timelines_table/actions_columns.test.tsx | 4 +- .../timelines_table/actions_columns.tsx | 0 .../timelines_table/common_columns.test.tsx | 6 +- .../timelines_table/common_columns.tsx | 4 +- .../timelines_table/common_styles.ts | 0 .../timelines_table/extended_columns.test.tsx | 6 +- .../timelines_table/extended_columns.tsx | 2 +- .../icon_header_columns.test.tsx | 4 +- .../timelines_table/icon_header_columns.tsx | 0 .../timelines_table/index.test.tsx | 4 +- .../open_timeline/timelines_table/index.tsx | 0 .../open_timeline/timelines_table/mocks.ts | 2 +- .../open_timeline/title_row/index.test.tsx | 0 .../open_timeline/title_row/index.tsx | 2 +- .../components/open_timeline/translations.ts | 0 .../components/open_timeline/types.ts | 8 +- .../open_timeline/use_timeline_types.tsx | 9 +- .../__snapshots__/timeline.test.tsx.snap | 0 .../__examples__/index.stories.tsx | 0 .../timeline}/and_or_badge/index.tsx | 0 .../timeline}/and_or_badge/translations.ts | 0 .../timeline/auto_save_warning/index.tsx | 11 +- .../auto_save_warning/translations.ts | 0 .../timeline/body/actions/index.test.tsx | 2 +- .../timeline/body/actions/index.tsx | 6 +- .../__snapshots__/index.test.tsx.snap | 0 .../body/column_headers/actions/index.tsx | 2 +- .../body/column_headers/column_header.tsx | 4 +- .../common/dragging_container.tsx | 0 .../body/column_headers/common/styles.tsx | 0 .../body/column_headers/default_headers.ts | 0 .../column_headers/events_select/helpers.tsx | 2 +- .../column_headers/events_select/index.tsx | 0 .../events_select/translations.ts | 0 .../filter/__snapshots__/index.test.tsx.snap | 0 .../body/column_headers/filter/index.test.tsx | 2 +- .../body/column_headers/filter/index.tsx | 2 +- .../header/__snapshots__/index.test.tsx.snap | 0 .../column_headers/header/header_content.tsx | 4 +- .../body/column_headers/header/helpers.ts | 6 +- .../body/column_headers/header/index.test.tsx | 6 +- .../body/column_headers/header/index.tsx | 2 +- .../__snapshots__/index.test.tsx.snap | 0 .../header_tooltip_content/index.test.tsx | 4 +- .../header_tooltip_content/index.tsx | 4 +- .../body/column_headers/helpers.test.ts | 0 .../timeline/body/column_headers/helpers.ts | 4 +- .../body/column_headers/index.test.tsx | 8 +- .../timeline/body/column_headers/index.tsx | 13 +- .../range_picker/index.test.tsx | 0 .../column_headers/range_picker/index.tsx | 0 .../column_headers/range_picker/ranges.ts | 0 .../range_picker/translations.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../column_headers/text_filter/index.test.tsx | 0 .../body/column_headers/text_filter/index.tsx | 0 .../body/column_headers/translations.ts | 0 .../components/timeline/body/column_id.ts | 0 .../components/timeline/body/constants.ts | 0 .../__snapshots__/index.test.tsx.snap | 0 .../body/data_driven_columns/index.test.tsx | 2 +- .../body/data_driven_columns/index.tsx | 4 +- .../body/events/event_column_view.tsx | 6 +- .../components/timeline/body/events/index.tsx | 10 +- .../timeline/body/events/stateful_event.tsx | 16 +- .../components/timeline/body/helpers.test.ts | 2 +- .../components/timeline/body/helpers.ts | 4 +- .../components/timeline/body/index.test.tsx | 14 +- .../components/timeline/body/index.tsx | 8 +- .../body/mini_map/date_ranges.test.ts | 0 .../timeline/body/mini_map/date_ranges.ts | 0 .../__snapshots__/args.test.tsx.snap | 0 .../empty_column_renderer.test.tsx.snap | 0 .../formatted_field.test.tsx.snap | 0 .../get_column_renderer.test.tsx.snap | 0 .../get_row_renderer.test.tsx.snap | 0 .../host_working_dir.test.tsx.snap | 0 .../plain_column_renderer.test.tsx.snap | 0 .../plain_row_renderer.test.tsx.snap | 0 .../process_draggable.test.tsx.snap | 0 .../unknown_column_renderer.test.tsx.snap | 0 .../user_host_working_dir.test.tsx.snap | 0 .../timeline/body/renderers/args.test.tsx | 4 +- .../timeline/body/renderers/args.tsx | 2 +- .../generic_details.test.tsx.snap | 0 .../generic_file_details.test.tsx.snap | 0 .../generic_row_renderer.test.tsx.snap | 0 .../primary_secondary_user_info.test.tsx.snap | 0 ...ession_user_host_working_dir.test.tsx.snap | 0 .../renderers/auditd/generic_details.test.tsx | 8 +- .../body/renderers/auditd/generic_details.tsx | 6 +- .../auditd/generic_file_details.test.tsx | 8 +- .../renderers/auditd/generic_file_details.tsx | 6 +- .../auditd/generic_row_renderer.test.tsx | 12 +- .../renderers/auditd/generic_row_renderer.tsx | 0 .../primary_secondary_user_info.test.tsx | 4 +- .../auditd/primary_secondary_user_info.tsx | 2 +- .../session_user_host_working_dir.test.tsx | 4 +- .../auditd/session_user_host_working_dir.tsx | 2 +- .../body/renderers/auditd/translations.ts | 0 .../body/renderers}/bytes/index.test.tsx | 6 +- .../timeline/body/renderers}/bytes/index.tsx | 4 +- .../body/renderers/column_renderer.ts | 4 +- .../timeline/body/renderers/constants.tsx | 0 .../dns/dns_request_event_details.test.tsx | 8 +- .../dns/dns_request_event_details.tsx | 4 +- .../dns_request_event_details_line.test.tsx | 4 +- .../dns/dns_request_event_details_line.tsx | 2 +- .../body/renderers/dns/translations.ts | 0 .../renderers/empty_column_renderer.test.tsx | 8 +- .../body/renderers/empty_column_renderer.tsx | 13 +- .../endgame_security_event_details.test.tsx | 8 +- .../endgame_security_event_details.tsx | 4 +- ...dgame_security_event_details_line.test.tsx | 4 +- .../endgame_security_event_details_line.tsx | 2 +- .../body/renderers/endgame/helpers.test.tsx | 0 .../body/renderers/endgame/helpers.ts | 0 .../body/renderers/endgame/translations.ts | 0 .../renderers/exit_code_draggable.test.tsx | 4 +- .../body/renderers/exit_code_draggable.tsx | 2 +- .../body/renderers/file_draggable.test.tsx | 4 +- .../body/renderers/file_draggable.tsx | 2 +- .../body/renderers/formatted_field.test.tsx | 8 +- .../body/renderers/formatted_field.tsx | 19 +- .../renderers/formatted_field_helpers.tsx | 12 +- .../renderers/get_column_renderer.test.tsx | 10 +- .../body/renderers/get_column_renderer.ts | 2 +- .../body/renderers/get_row_renderer.test.tsx | 10 +- .../body/renderers/get_row_renderer.ts | 2 +- .../timeline/body/renderers/helpers.test.tsx | 4 +- .../timeline/body/renderers/helpers.tsx | 2 +- .../body/renderers/host_working_dir.test.tsx | 4 +- .../body/renderers/host_working_dir.tsx | 2 +- .../timeline/body/renderers/index.ts | 0 .../timeline/body/renderers/netflow.tsx | 22 +- .../netflow_row_renderer.test.tsx.snap | 0 .../netflow/netflow_row_renderer.test.tsx | 10 +- .../netflow/netflow_row_renderer.tsx | 20 +- .../parent_process_draggable.test.tsx | 4 +- .../renderers/parent_process_draggable.tsx | 2 +- .../body/renderers/parse_query_value.test.ts | 0 .../body/renderers/parse_query_value.ts | 0 .../body/renderers/parse_value.test.ts | 0 .../timeline/body/renderers/parse_value.ts | 0 .../renderers/plain_column_renderer.test.tsx | 8 +- .../body/renderers/plain_column_renderer.tsx | 6 +- .../renderers/plain_row_renderer.test.tsx | 6 +- .../body/renderers/plain_row_renderer.tsx | 0 .../body/renderers/process_draggable.test.tsx | 4 +- .../body/renderers/process_draggable.tsx | 2 +- .../body/renderers/process_hash.test.tsx | 4 +- .../timeline/body/renderers/process_hash.tsx | 2 +- .../timeline/body/renderers/row_renderer.tsx | 4 +- .../suricata_details.test.tsx.snap | 0 .../suricata_row_renderer.test.tsx.snap | 0 .../suricata_signature.test.tsx.snap | 0 .../suricata/suricata_details.test.tsx | 8 +- .../renderers/suricata/suricata_details.tsx | 4 +- .../renderers/suricata/suricata_links.test.ts | 0 .../body/renderers/suricata/suricata_links.ts | 0 .../body/renderers/suricata/suricata_refs.tsx | 2 +- .../suricata/suricata_row_renderer.test.tsx | 10 +- .../suricata/suricata_row_renderer.tsx | 0 .../suricata/suricata_signature.test.tsx | 4 +- .../renderers/suricata/suricata_signature.tsx | 15 +- .../__snapshots__/auth_ssh.test.tsx.snap | 0 .../generic_details.test.tsx.snap | 0 .../generic_file_details.test.tsx.snap | 0 .../generic_row_renderer.test.tsx.snap | 0 .../__snapshots__/package.test.tsx.snap | 0 .../body/renderers/system/auth_ssh.test.tsx | 0 .../body/renderers/system/auth_ssh.tsx | 2 +- .../renderers/system/generic_details.test.tsx | 8 +- .../body/renderers/system/generic_details.tsx | 10 +- .../system/generic_file_details.test.tsx | 8 +- .../renderers/system/generic_file_details.tsx | 10 +- .../system/generic_row_renderer.test.tsx | 14 +- .../renderers/system/generic_row_renderer.tsx | 0 .../body/renderers/system/package.test.tsx | 4 +- .../body/renderers/system/package.tsx | 2 +- .../body/renderers/system/translations.ts | 0 .../timeline/body/renderers/translations.ts | 0 .../unknown_column_renderer.test.tsx | 6 +- .../renderers/unknown_column_renderer.tsx | 2 +- .../renderers/user_host_working_dir.test.tsx | 4 +- .../body/renderers/user_host_working_dir.tsx | 2 +- .../__snapshots__/zeek_details.test.tsx.snap | 0 .../zeek_row_renderer.test.tsx.snap | 0 .../zeek_signature.test.tsx.snap | 0 .../body/renderers/zeek/translations.ts | 0 .../body/renderers/zeek/zeek_details.test.tsx | 6 +- .../body/renderers/zeek/zeek_details.tsx | 4 +- .../renderers/zeek/zeek_row_renderer.test.tsx | 8 +- .../body/renderers/zeek/zeek_row_renderer.tsx | 0 .../renderers/zeek/zeek_signature.test.tsx | 6 +- .../body/renderers/zeek/zeek_signature.tsx | 15 +- .../sort_indicator.test.tsx.snap | 0 .../components/timeline/body/sort/index.ts | 2 +- .../body/sort/sort_indicator.test.tsx | 2 +- .../timeline/body/sort/sort_indicator.tsx | 2 +- .../timeline/body/stateful_body.test.tsx | 2 +- .../timeline/body/stateful_body.tsx | 11 +- .../components/timeline/body/translations.ts | 0 .../data_providers.test.tsx.snap | 0 .../__snapshots__/empty.test.tsx.snap | 0 .../__snapshots__/provider.test.tsx.snap | 0 .../__snapshots__/providers.test.tsx.snap | 0 .../timeline/data_providers/data_provider.ts | 0 .../data_providers/data_providers.test.tsx | 4 +- .../timeline/data_providers/empty.test.tsx | 2 +- .../timeline/data_providers/empty.tsx | 2 +- .../timeline/data_providers/helpers.tsx | 0 .../timeline/data_providers/index.tsx | 6 +- .../mock/mock_data_providers.tsx | 0 .../timeline/data_providers/provider.test.tsx | 2 +- .../timeline/data_providers/provider.tsx | 0 .../data_providers/provider_badge.tsx | 4 +- .../data_providers/provider_item_actions.tsx | 2 +- .../data_providers/provider_item_and.tsx | 95 ++++++++ .../provider_item_and_drag_drop.tsx | 136 ++++++++++++ .../data_providers/provider_item_badge.tsx | 4 +- .../data_providers/providers.test.tsx | 10 +- .../timeline/data_providers/providers.tsx | 6 +- .../timeline/data_providers/translations.ts | 0 .../components/timeline/events.ts | 2 +- .../timeline/expandable_event/index.tsx | 8 +- .../expandable_event/translations.tsx | 0 .../timeline/fetch_kql_timeline.tsx | 10 +- .../footer/__snapshots__/index.test.tsx.snap | 0 .../components/timeline/footer/index.test.tsx | 2 +- .../components/timeline/footer/index.tsx | 2 +- .../timeline/footer/last_updated.tsx | 0 .../components/timeline/footer/mock.ts | 2 +- .../timeline/footer/translations.ts | 0 .../header/__snapshots__/index.test.tsx.snap | 0 .../components/timeline/header/index.test.tsx | 12 +- .../components/timeline/header/index.tsx | 2 +- .../timeline/header/translations.ts | 0 .../components/timeline/helpers.test.tsx | 6 +- .../components/timeline/helpers.tsx | 6 +- .../components/timeline/index.tsx | 12 +- .../insert_timeline_popover/index.test.tsx | 2 +- .../insert_timeline_popover/index.tsx | 2 +- .../use_insert_timeline.tsx | 6 +- .../components/timeline}/pin/index.test.tsx | 0 .../components/timeline}/pin/index.tsx | 2 +- .../timeline/properties/helpers.tsx | 8 +- .../timeline/properties/index.test.tsx | 19 +- .../components/timeline/properties/index.tsx | 6 +- .../timeline/properties/notes_size.ts | 0 .../timeline/properties/properties_left.tsx | 4 +- .../timeline/properties/properties_right.tsx | 4 +- .../components/timeline/properties/styles.tsx | 0 .../timeline/properties/translations.ts | 0 .../timeline/query_bar/index.test.tsx | 16 +- .../components/timeline/query_bar/index.tsx | 16 +- .../components/timeline/refetch_timeline.tsx | 6 +- .../search_or_filter/helpers.test.tsx | 0 .../timeline/search_or_filter/helpers.tsx | 4 +- .../timeline/search_or_filter/index.tsx | 21 +- .../timeline/search_or_filter/pick_events.tsx | 2 +- .../search_or_filter/search_or_filter.tsx | 14 +- .../timeline/search_or_filter/translations.ts | 0 .../timeline/search_super_select/index.tsx | 0 .../timeline/selectable_timeline/index.tsx | 8 +- .../__snapshots__/index.test.tsx.snap | 0 .../timeline}/skeleton_row/index.test.tsx | 2 +- .../timeline}/skeleton_row/index.tsx | 0 .../components/timeline/styles.tsx | 4 +- .../components/timeline/timeline.test.tsx | 14 +- .../components/timeline/timeline.tsx | 12 +- .../components/timeline/timeline_context.tsx | 2 +- .../components/timeline/translations.ts | 0 .../containers}/all/index.gql_query.ts | 0 .../containers}/all/index.tsx | 10 +- .../timeline => timelines/containers}/api.ts | 11 +- .../containers}/delete/persist.gql_query.ts | 0 .../containers}/details/index.gql_query.ts | 0 .../containers}/details/index.tsx | 2 +- .../containers}/favorite/persist.gql_query.ts | 0 .../containers}/index.gql_query.ts | 0 .../containers}/index.tsx | 14 +- .../containers}/notes/persist.gql_query.ts | 0 .../containers}/one/index.gql_query.ts | 0 .../containers}/persist.gql_query.ts | 0 .../pinned_event/persist.gql_query.ts | 0 x-pack/plugins/siem/public/timelines/index.ts | 24 ++ .../timelines => timelines/pages}/index.tsx | 10 +- .../pages}/timelines_page.test.tsx | 13 +- .../pages}/timelines_page.tsx | 15 +- .../pages}/translations.ts | 0 .../plugins/siem/public/timelines/routes.tsx | 15 ++ .../{ => timelines}/store/timeline/actions.ts | 10 +- .../store/timeline/defaults.ts | 9 +- .../store/timeline/epic.test.ts | 11 +- .../{ => timelines}/store/timeline/epic.ts | 18 +- ...c_dispatcher_timeline_persistence_queue.ts | 0 .../store/timeline/epic_favorite.ts | 8 +- .../store/timeline/epic_note.ts | 10 +- .../store/timeline/epic_pinned_event.ts | 8 +- .../{ => timelines}/store/timeline/helpers.ts | 13 +- .../{ => timelines}/store/timeline/index.ts | 10 + .../store/timeline/manage_timeline_id.tsx | 0 .../{ => timelines}/store/timeline/model.ts | 13 +- .../store/timeline/my_epic_timeline_id.ts | 0 .../store/timeline/reducer.test.ts | 14 +- .../{ => timelines}/store/timeline/reducer.ts | 0 .../store/timeline/refetch_queries.ts | 6 +- .../store/timeline/selectors.ts | 4 +- .../{ => timelines}/store/timeline/types.ts | 0 .../apis/siem/authentications.ts | 2 +- .../test/api_integration/apis/siem/hosts.ts | 6 +- .../api_integration/apis/siem/ip_overview.ts | 2 +- .../apis/siem/kpi_host_details.ts | 2 +- .../api_integration/apis/siem/kpi_hosts.ts | 2 +- .../api_integration/apis/siem/kpi_network.ts | 2 +- .../api_integration/apis/siem/network_dns.ts | 2 +- .../apis/siem/network_top_n_flow.ts | 2 +- .../apis/siem/overview_host.ts | 2 +- .../apis/siem/overview_network.ts | 2 +- .../apis/siem/saved_objects/notes.ts | 2 +- .../apis/siem/saved_objects/pinned_events.ts | 2 +- .../apis/siem/saved_objects/timeline.ts | 6 +- .../test/api_integration/apis/siem/sources.ts | 2 +- .../api_integration/apis/siem/timeline.ts | 2 +- .../apis/siem/timeline_details.ts | 2 +- x-pack/test/api_integration/apis/siem/tls.ts | 2 +- .../apis/siem/uncommon_processes.ts | 2 +- .../test/api_integration/apis/siem/users.ts | 2 +- 1698 files changed, 4160 insertions(+), 3026 deletions(-) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/activity_monitor/columns.tsx (96%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/activity_monitor/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/activity_monitor/index.tsx (98%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/activity_monitor/types.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/detection_engine_header_page/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/detection_engine_header_page/index.tsx (88%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/detection_engine_header_page/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/no_api_integration_callout/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/no_api_integration_callout/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/no_api_integration_callout/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/no_write_signals_callout/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/no_write_signals_callout/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/no_write_signals_callout/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/accordion_title/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/accordion_title/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/add_item_form/index.test.tsx (90%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/add_item_form/index.tsx (98%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/all_rules_tables/index.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/all_rules_tables/index.tsx (88%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/anomaly_threshold_slider/index.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/anomaly_threshold_slider/index.tsx (95%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/assets/list_tree_icon.svg (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/helpers.test.tsx (99%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/helpers.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/index.test.tsx (95%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/index.tsx (91%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/ml_job_description.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/ml_job_description.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/translations.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/description_step/types.ts (83%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/mitre/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/mitre/helpers.ts (87%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/mitre/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/mitre/index.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/mitre/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/ml_job_select/index.test.tsx (74%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/ml_job_select/index.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/next_step/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/next_step/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/next_step/index.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/optional_field_label/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/optional_field_label/index.tsx (84%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pick_timeline/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pick_timeline/index.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pre_packaged_rules/load_empty_prompt.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pre_packaged_rules/load_empty_prompt.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pre_packaged_rules/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pre_packaged_rules/update_callout.test.tsx (89%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/pre_packaged_rules/update_callout.tsx (95%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/query_bar/index.test.tsx (90%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/query_bar/index.tsx (90%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/query_bar/translations.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/read_only_callout/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/read_only_callout/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/read_only_callout/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_actions_field/index.test.tsx (86%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_actions_field/index.tsx (86%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_actions_overflow/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_actions_overflow/index.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_actions_overflow/index.tsx (89%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_actions_overflow/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_status/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_status/helpers.ts (85%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_status/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_status/index.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_status/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_switch/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_switch/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/rule_switch/index.tsx (88%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/schedule_item_form/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/schedule_item_form/index.tsx (99%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/schedule_item_form/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/select_rule_type/index.test.tsx (86%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/select_rule_type/index.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/select_rule_type/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/severity_badge/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/severity_badge/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/status_icon/index.test.tsx (85%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/status_icon/index.tsx (87%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/data.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/default_value.ts (89%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/helpers.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/index.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/index.tsx (96%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/schema.tsx (97%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule_details/index.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule_details/index.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_about_rule_details/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_content_wrapper/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_content_wrapper/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_define_rule/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_define_rule/index.tsx (89%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_define_rule/schema.tsx (96%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_define_rule/translations.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_define_rule/types.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_panel/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_panel/index.tsx (91%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_rule_actions/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_rule_actions/index.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_rule_actions/schema.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_rule_actions/translations.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_schedule_rule/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_schedule_rule/index.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_schedule_rule/schema.tsx (95%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/step_schedule_rule/translations.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/throttle_select_field/index.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine/rules/components => alerts/components/rules}/throttle_select_field/index.tsx (91%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/actions.test.tsx (98%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/actions.tsx (93%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/default_config.test.tsx (96%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/default_config.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/helpers.test.ts (96%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/helpers.ts (97%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/index.tsx (92%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/signals_filter_group/index.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/signals_filter_group/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/signals_utility_bar/index.test.tsx (95%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/signals_utility_bar/index.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/signals_utility_bar/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals/types.ts (90%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/config.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/helpers.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/index.test.tsx (86%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/index.tsx (87%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/signals_histogram.test.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/signals_histogram.tsx (89%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_histogram_panel/types.ts (94%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_info/index.tsx (94%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_info/query.dsl.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/signals_info/types.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/user_info/index.test.tsx (71%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/components/user_info/index.tsx (96%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/__mocks__/api.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/api.test.ts (99%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/api.ts (98%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/fetch_index_patterns.test.tsx (98%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/fetch_index_patterns.tsx (89%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/index.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/mock.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/persist_rule.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/persist_rule.tsx (94%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/types.ts (98%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_pre_packaged_rules.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_pre_packaged_rules.tsx (98%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_rule.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_rule.tsx (94%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_rule_status.test.tsx (99%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_rule_status.tsx (97%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_rules.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_rules.tsx (97%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_tags.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/rules/use_tags.tsx (94%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/__mocks__/api.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/api.test.ts (97%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/api.ts (96%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/mock.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/types.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/use_privilege_user.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/use_privilege_user.tsx (96%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/use_query.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/use_query.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/use_signal_index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/containers/detection_engine/signals/use_signal_index.tsx (95%) create mode 100644 x-pack/plugins/siem/public/alerts/index.ts rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/mitre/mitre_tactics_techniques.ts (100%) rename x-pack/plugins/siem/public/{pages/detection_engine => alerts}/mitre/types.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine.test.tsx (80%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine.tsx (80%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine_empty_page.test.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine_empty_page.tsx (83%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine_no_signal_index.test.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine_no_signal_index.tsx (88%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/detection_engine_user_unauthenticated.tsx (88%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/index.test.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/index.tsx (96%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/__mocks__/mock.ts (94%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/actions.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/batch_actions.tsx (97%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/columns.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/columns.tsx (90%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/helpers.test.tsx (97%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/helpers.ts (94%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/index.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/reducer.ts (98%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx (95%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx (95%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/create/helpers.test.ts (99%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/create/helpers.ts (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/create/index.test.tsx (78%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/create/index.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/create/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/failure_history.test.tsx (76%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/failure_history.tsx (87%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/index.test.tsx (78%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/index.tsx (84%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/status_failed_callout.test.tsx (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/status_failed_callout.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/details/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/edit/index.test.tsx (84%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/edit/index.tsx (92%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/edit/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/helpers.test.tsx (98%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/helpers.tsx (93%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/index.test.tsx (71%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/index.tsx (89%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/types.ts (87%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/utils.test.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/rules/utils.ts (90%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/translations.ts (100%) rename x-pack/plugins/siem/public/{ => alerts}/pages/detection_engine/types.ts (100%) create mode 100644 x-pack/plugins/siem/public/alerts/routes.tsx rename x-pack/plugins/siem/public/{pages => app}/404.tsx (90%) rename x-pack/plugins/siem/public/{pages => app}/home/home_navigations.tsx (93%) rename x-pack/plugins/siem/public/{pages => app}/home/index.tsx (56%) rename x-pack/plugins/siem/public/{pages => app}/home/translations.ts (100%) rename x-pack/plugins/siem/public/{ => app}/routes.tsx (69%) create mode 100644 x-pack/plugins/siem/public/app/types.ts rename x-pack/plugins/siem/public/{pages/case => cases}/components/__mock__/form.ts (84%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/__mock__/router.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/add_comment/index.test.tsx (85%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/add_comment/index.tsx (83%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/add_comment/schema.tsx (80%) rename x-pack/plugins/siem/public/{components/page/hosts/index.tsx => cases/components/add_comment/translations.ts} (62%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/actions.tsx (92%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/columns.test.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/columns.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/index.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/index.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/table_filters.test.tsx (90%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/table_filters.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/all_cases/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/bulk_actions/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/bulk_actions/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/callout/helpers.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/callout/index.test.tsx (98%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/callout/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/callout/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_header_page/index.tsx (87%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_header_page/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_status/index.tsx (93%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_view/actions.test.tsx (91%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_view/actions.tsx (88%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_view/index.test.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_view/index.tsx (92%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/case_view/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/__mock__/index.tsx (70%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/button.test.tsx (98%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/button.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/closure_options.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/closure_options.tsx (95%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/closure_options_radio.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/closure_options_radio.tsx (95%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/connectors.test.tsx (98%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/connectors.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/connectors_dropdown.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/connectors_dropdown.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/field_mapping.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/field_mapping.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/field_mapping_row.test.tsx (95%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/field_mapping_row.tsx (92%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/index.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/index.tsx (91%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/mapping.test.tsx (99%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/mapping.tsx (95%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/utils.test.tsx (96%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/configure_cases/utils.ts (95%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/confirm_delete_case/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/confirm_delete_case/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/connector_selector/form.tsx (94%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/create/index.test.tsx (81%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/create/index.tsx (90%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/create/optional_field_label/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/create/schema.tsx (91%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/edit_connector/index.test.tsx (93%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/edit_connector/index.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/edit_connector/schema.tsx (85%) rename x-pack/plugins/siem/public/{ => cases}/components/filter_popover/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/open_closed_stats/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/property_actions/constants.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/property_actions/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/property_actions/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/tag_list/index.test.tsx (88%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/tag_list/index.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/tag_list/schema.tsx (85%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/tag_list/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/use_push_to_service/helpers.tsx (96%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/use_push_to_service/index.test.tsx (89%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/use_push_to_service/index.tsx (89%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/use_push_to_service/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/helpers.test.tsx (96%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/helpers.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/index.test.tsx (96%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/index.tsx (96%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/schema.ts (96%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/user_action_avatar.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/user_action_item.tsx (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/user_action_markdown.tsx (87%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/user_action_title.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_action_tree/user_action_title.tsx (95%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_list/index.test.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_list/index.tsx (97%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/user_list/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases}/components/wrappers/index.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/__mocks__/api.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/api.test.tsx (99%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/api.ts (99%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/__mocks__/api.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/api.test.ts (97%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/api.ts (97%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/mock.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/translations.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/types.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/use_configure.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/use_configure.tsx (98%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/use_connectors.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/configure/use_connectors.tsx (95%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/constants.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/mock.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/translations.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/types.ts (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_bulk_update_case.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_bulk_update_case.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_delete_cases.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_delete_cases.tsx (97%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_action_license.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_action_license.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_case.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_case.tsx (97%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_case_user_actions.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_case_user_actions.tsx (98%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_cases.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_cases.tsx (98%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_cases_status.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_cases_status.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_reporters.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_reporters.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_tags.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_get_tags.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_post_case.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_post_case.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_post_comment.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_post_comment.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_post_push_to_service.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_post_push_to_service.tsx (98%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_update_case.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_update_case.tsx (96%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_update_comment.test.tsx (100%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/use_update_comment.tsx (97%) rename x-pack/plugins/siem/public/{containers/case => cases/containers}/utils.ts (98%) create mode 100644 x-pack/plugins/siem/public/cases/index.ts rename x-pack/plugins/siem/public/{pages/case => cases/pages}/case.tsx (74%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/case_details.tsx (68%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/configure_cases.tsx (68%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/create_case.tsx (65%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/index.tsx (96%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/saved_object_no_permissions.tsx (88%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/case => cases/pages}/utils.ts (92%) create mode 100644 x-pack/plugins/siem/public/cases/routes.tsx create mode 100644 x-pack/plugins/siem/public/cases/translations.ts rename x-pack/plugins/siem/public/{components/page => common/components}/add_filter_to_global_search_bar/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page => common/components}/add_filter_to_global_search_bar/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{components/page => common/components}/add_filter_to_global_search_bar/helpers.ts (100%) rename x-pack/plugins/siem/public/{components/page => common/components}/add_filter_to_global_search_bar/index.test.tsx (91%) rename x-pack/plugins/siem/public/{components/page => common/components}/add_filter_to_global_search_bar/index.tsx (95%) rename x-pack/plugins/siem/public/{components/page => common/components}/add_filter_to_global_search_bar/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/alerts_viewer/alerts_table.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/alerts_viewer/default_headers.ts (85%) rename x-pack/plugins/siem/public/{ => common}/components/alerts_viewer/histogram_configs.ts (94%) rename x-pack/plugins/siem/public/{ => common}/components/alerts_viewer/index.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/alerts_viewer/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/alerts_viewer/types.ts (76%) rename x-pack/plugins/siem/public/{ => common}/components/autocomplete_field/__examples__/index.stories.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/components/autocomplete_field/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/autocomplete_field/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/autocomplete_field/index.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/autocomplete_field/suggestion_item.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/charts/__snapshots__/areachart.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/__snapshots__/barchart.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/areachart.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/areachart.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/barchart.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/barchart.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/chart_place_holder.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/chart_place_holder.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/common.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/common.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/charts/draggable_legend.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/draggable_legend.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/draggable_legend_item.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/draggable_legend_item.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/charts/translation.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/__snapshots__/drag_drop_context_wrapper.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/__snapshots__/draggable_wrapper.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/__snapshots__/droppable_wrapper.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/drag_drop_context.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/drag_drop_context_wrapper.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/drag_drop_context_wrapper.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/draggable_wrapper.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/draggable_wrapper.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/draggable_wrapper_hover_content.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/droppable_wrapper.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/droppable_wrapper.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/helpers.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/provider_container.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/drag_and_drop/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/draggables/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/draggables/field_badge/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/draggables/field_badge/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/draggables/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/draggables/index.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/empty_page/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/empty_page/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/empty_page/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/empty_value/__snapshots__/empty_value.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/empty_value/empty_value.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/empty_value/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/empty_value/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/error_toast_dispatcher/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/error_toast_dispatcher/index.test.tsx (78%) rename x-pack/plugins/siem/public/{ => common}/components/error_toast_dispatcher/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/__snapshots__/event_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/__snapshots__/json_view.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/columns.tsx (89%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/event_details.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/event_details.tsx (90%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/event_fields_browser.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/event_fields_browser.tsx (90%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/event_id.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/helpers.tsx (93%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/json_view.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/json_view.tsx (88%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/stateful_event_details.tsx (86%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/event_details/types.ts (87%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/default_headers.tsx (84%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/default_model.tsx (71%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/event_details_width_context.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/events_viewer.test.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/events_viewer.tsx (86%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/index.test.tsx (92%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/index.tsx (90%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/mock.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/events_viewer/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/external_link_icon/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/external_link_icon/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/filters_global/__snapshots__/filters_global.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/filters_global/filters_global.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/filters_global/filters_global.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/filters_global/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_bytes/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_bytes/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_bytes/index.tsx (93%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_date/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_date/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_date/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_date/maybe_date.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/formatted_date/maybe_date.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/generic_downloader/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/generic_downloader/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/generic_downloader/index.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/generic_downloader/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_global/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_global/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_global/index.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/header_global/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/__snapshots__/editable_title.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/__snapshots__/title.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/editable_title.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/editable_title.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/title.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/title.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_page/types.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_section/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_section/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/header_section/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/help_menu/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/import_data_modal/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/import_data_modal/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/import_data_modal/index.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/import_data_modal/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/inspect/index.test.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/inspect/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/inspect/modal.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/inspect/modal.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/inspect/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/last_event_time/index.test.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/last_event_time/index.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/link_icon/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/link_icon/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/link_icon/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/link_to.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_to_case.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_to_detection_engine.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_to_hosts.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_to_network.tsx (90%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_to_overview.tsx (92%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_to_timelines.tsx (89%) rename x-pack/plugins/siem/public/{ => common}/components/link_to/redirect_wrapper.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/links/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/links/index.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/links/translations.ts (87%) rename x-pack/plugins/siem/public/{ => common}/components/loader/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/loader/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/loader/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/localized_date_tooltip/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/localized_date_tooltip/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/__snapshots__/markdown_hint.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/markdown_hint.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/markdown_hint.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown_editor/constants.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown_editor/form.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/markdown_editor/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/markdown_editor/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/index.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/matrix_loader.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/types.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/utils.test.ts (98%) rename x-pack/plugins/siem/public/{ => common}/components/matrix_histogram/utils.ts (97%) rename x-pack/plugins/siem/public/{ => common}/components/ml/__snapshots__/entity_draggable.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/anomaly/anomaly_table_provider.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/anomaly/get_interval_from_anomalies.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/anomaly/get_interval_from_anomalies.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/anomaly/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/anomaly/use_anomalies_table_data.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/anomaly/use_anomalies_table_data.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/ml/api/anomalies_table_data.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/api/errors.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/api/get_ml_capabilities.ts (92%) rename x-pack/plugins/siem/public/{ => common}/components/ml/api/throw_if_not_ok.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/api/throw_if_not_ok.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/api/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/add_entities_to_kql.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/add_entities_to_kql.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/entity_helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/entity_helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/ml_host_conditional_container.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/ml_network_conditional_container.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/remove_kql_variables.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/remove_kql_variables.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/replace_kql_commas_with_or.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/replace_kql_commas_with_or.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/replace_kql_parts.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/replace_kql_parts.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/rison_helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/conditional_links/rison_helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/get_criteria_from_host_type.test.ts (94%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/get_criteria_from_host_type.ts (90%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/get_criteria_from_network_type.test.ts (92%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/get_criteria_from_network_type.ts (86%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/host_to_criteria.test.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/host_to_criteria.ts (91%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/network_to_criteria.test.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/ml/criteria/network_to_criteria.ts (91%) rename x-pack/plugins/siem/public/{ => common}/components/ml/entity_draggable.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/entity_draggable.tsx (88%) rename x-pack/plugins/siem/public/{ => common}/components/ml/get_entries.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/get_entries.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/__snapshots__/create_influencers.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/create_influencers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/create_influencers.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/get_host_name_from_influencers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/get_host_name_from_influencers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/get_network_from_influencers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/get_network_from_influencers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/host_to_influencers.test.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/host_to_influencers.ts (92%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/network_to_influencers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/influencers/network_to_influencers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/links/create_explorer_link.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/links/create_explorer_link.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/links/create_series_link.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/links/create_series_link.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/mock.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/permissions/ml_capabilities_provider.tsx (92%) rename x-pack/plugins/siem/public/{ => common}/components/ml/permissions/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/__snapshots__/anomaly_score.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/__snapshots__/anomaly_scores.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/__snapshots__/create_descriptions_list.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/__snapshots__/draggable_score.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/anomaly_score.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/anomaly_score.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/anomaly_scores.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/anomaly_scores.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/create_description_list.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/create_descriptions_list.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/create_entities_from_score.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/create_entities_from_score.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/draggable_score.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/draggable_score.tsx (89%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/get_score_string.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/get_top_severity.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/get_top_severity.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/score_health.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/score_interval_to_datetime.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/score_interval_to_datetime.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/score/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/anomalies_host_table.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/anomalies_network_table.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/basic_table.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/convert_anomalies_to_hosts.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/convert_anomalies_to_hosts.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/convert_anomalies_to_network.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/convert_anomalies_to_network.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/create_compound_key.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/create_compound_key.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/get_anomalies_host_table_columns.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/get_anomalies_host_table_columns.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/get_anomalies_network_table_columns.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/get_anomalies_network_table_columns.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/host_equality.test.ts (98%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/host_equality.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/network_equality.test.ts (97%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/network_equality.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/tables/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/types.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml/types.ts (91%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/__mocks__/api.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/__snapshots__/popover_description.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/__snapshots__/upgrade_contents.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/api.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/helpers.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/hooks/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/hooks/use_ml_capabilities.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/hooks/use_siem_jobs.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/hooks/use_siem_jobs_helpers.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/__snapshots__/job_switch.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/__snapshots__/jobs_table.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/__snapshots__/showing_count.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/__snapshots__/groups_filter_popover.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/groups_filter_popover.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/toggle_selected_group.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/toggle_selected_group.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/filters/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/job_switch.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/job_switch.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/jobs_table.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/jobs_table.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/showing_count.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/showing_count.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/jobs_table/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/ml_modules.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/ml_popover.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/ml_popover.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/popover_description.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/popover_description.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/types.ts (98%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/upgrade_contents.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/ml_popover/upgrade_contents.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/breadcrumbs/index.test.ts (98%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/breadcrumbs/index.ts (91%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/helpers.ts (93%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/tab_navigation/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/tab_navigation/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/tab_navigation/types.ts (80%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/types.ts (83%) rename x-pack/plugins/siem/public/{ => common}/components/navigation/use_get_url_search.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/helpers.test.ts (99%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/news_feed.tsx (86%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/news_link/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/no_news/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/post/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/news_feed/types.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/page/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/page/manage_query.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/page/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/page_route/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/page_route/pageroute.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/page_route/pageroute.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/helpers.ts (89%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/index.mock.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/index.tsx (91%) rename x-pack/plugins/siem/public/{ => common}/components/paginated_table/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/panel/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/panel/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/progress_inline/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/progress_inline/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/progress_inline/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/query_bar/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/query_bar/index.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/scroll_to_top/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/scroll_to_top/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/search_bar/index.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/components/search_bar/selectors.ts (91%) rename x-pack/plugins/siem/public/{ => common}/components/selectable_text/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/selectable_text/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/selectable_text/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/sidebar_header/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/stat_items/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/stat_items/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/stat_items/index.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/subtitle/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/subtitle/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/subtitle/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/super_date_picker/index.test.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/super_date_picker/index.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/super_date_picker/selectors.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/super_date_picker/selectors.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/tables/__snapshots__/helpers.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/tables/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/tables/helpers.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/__snapshots__/modal_all_errors.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/errors.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/modal_all_errors.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/modal_all_errors.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/utils.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/toasters/utils.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/helpers.ts (96%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/index.test.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/index.tsx (91%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/top_n.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/top_n.tsx (93%) rename x-pack/plugins/siem/public/{ => common}/components/top_n/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/truncatable_text/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/truncatable_text/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/truncatable_text/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/constants.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/helpers.test.ts (91%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/helpers.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/index.tsx (92%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/index_mocked.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/initialize_redux_by_url.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/normalize_time_range.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/normalize_time_range.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/test_dependencies.ts (95%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/types.ts (96%) rename x-pack/plugins/siem/public/{ => common}/components/url_state/use_url_state.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/__snapshots__/utility_bar.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/__snapshots__/utility_bar_action.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/__snapshots__/utility_bar_group.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/__snapshots__/utility_bar_section.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/__snapshots__/utility_bar_text.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/styles.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_action.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_action.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_group.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_group.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_section.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_section.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_text.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utility_bar/utility_bar_text.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/utils.ts (100%) rename x-pack/plugins/siem/public/{ => common}/components/with_hover_actions/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/wrapper_page/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => common}/components/wrapper_page/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/components/wrapper_page/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts (94%) rename x-pack/plugins/siem/public/{ => common}/containers/anomalies/anomalies_query_tab_body/index.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/containers/anomalies/anomalies_query_tab_body/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/containers/anomalies/anomalies_query_tab_body/types.ts (78%) rename x-pack/plugins/siem/public/{ => common}/containers/anomalies/anomalies_query_tab_body/utils.ts (93%) rename x-pack/plugins/siem/public/{ => common}/containers/errors/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/containers/errors/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/containers/errors/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/containers/events/last_event_time/index.ts (93%) rename x-pack/plugins/siem/public/{ => common}/containers/events/last_event_time/last_event_time.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => common}/containers/events/last_event_time/mock.ts (93%) rename x-pack/plugins/siem/public/{ => common}/containers/global_time/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/containers/helpers.test.ts (94%) rename x-pack/plugins/siem/public/{ => common}/containers/helpers.ts (91%) rename x-pack/plugins/siem/public/{ => common}/containers/kuery_autocompletion/index.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/containers/matrix_histogram/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => common}/containers/matrix_histogram/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => common}/containers/matrix_histogram/index.ts (97%) rename x-pack/plugins/siem/public/{ => common}/containers/query_template.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/containers/query_template_paginated.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/containers/source/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => common}/containers/source/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/containers/source/index.tsx (97%) rename x-pack/plugins/siem/public/{ => common}/containers/source/mock.ts (99%) rename x-pack/plugins/siem/public/{ => common}/hooks/api/__mock__/api.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/hooks/api/api.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/hooks/api/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/hooks/api/helpers.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/hooks/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/hooks/types.ts (80%) rename x-pack/plugins/siem/public/{ => common}/hooks/use_add_to_timeline.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/hooks/use_index_patterns.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/hooks/use_providers_portal.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/clipboard/clipboard.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/clipboard/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/clipboard/with_copy_to_clipboard.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/compose/helpers.test.ts (94%) rename x-pack/plugins/siem/public/{ => common}/lib/compose/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/compose/kibana_compose.tsx (83%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/components/connector_flyout/index.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/config.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/jira/config.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/jira/flyout.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/jira/index.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/jira/logo.svg (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/jira/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/jira/types.ts (78%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/servicenow/config.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/servicenow/flyout.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/servicenow/index.tsx (95%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/servicenow/logo.svg (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/servicenow/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/servicenow/types.ts (78%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/types.ts (82%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/utils.ts (93%) rename x-pack/plugins/siem/public/{ => common}/lib/connectors/validators.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/helpers/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/helpers/index.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/lib/helpers/scheduler.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/history/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/keury/index.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/keury/index.ts (95%) rename x-pack/plugins/siem/public/{ => common}/lib/kibana/__mocks__/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/kibana/hooks.ts (95%) rename x-pack/plugins/siem/public/{ => common}/lib/kibana/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/kibana/kibana_react.ts (86%) rename x-pack/plugins/siem/public/{ => common}/lib/kibana/services.ts (89%) rename x-pack/plugins/siem/public/{ => common}/lib/lib.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/note/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/lib/telemetry/index.ts (96%) rename x-pack/plugins/siem/public/{ => common}/lib/telemetry/middleware.ts (91%) rename x-pack/plugins/siem/public/{ => common}/lib/theme/use_eui_theme.tsx (89%) rename x-pack/plugins/siem/public/{ => common}/mock/global_state.ts (95%) rename x-pack/plugins/siem/public/{ => common}/mock/header.ts (94%) rename x-pack/plugins/siem/public/{ => common}/mock/hook_wrapper.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/mock/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/mock/index_pattern.ts (100%) rename x-pack/plugins/siem/public/{ => common}/mock/kibana_core.ts (66%) rename x-pack/plugins/siem/public/{ => common}/mock/kibana_react.ts (95%) rename x-pack/plugins/siem/public/{ => common}/mock/match_media.ts (100%) rename x-pack/plugins/siem/public/{ => common}/mock/mock_detail_item.ts (98%) rename x-pack/plugins/siem/public/{ => common}/mock/mock_ecs.ts (99%) rename x-pack/plugins/siem/public/{ => common}/mock/mock_endgame_ecs_data.ts (99%) rename x-pack/plugins/siem/public/{ => common}/mock/mock_timeline_data.ts (99%) rename x-pack/plugins/siem/public/{ => common}/mock/netflow.ts (92%) rename x-pack/plugins/siem/public/{ => common}/mock/news.ts (100%) rename x-pack/plugins/siem/public/{ => common}/mock/raw_news.ts (100%) rename x-pack/plugins/siem/public/{ => common}/mock/test_providers.tsx (92%) rename x-pack/plugins/siem/public/{ => common}/mock/timeline_results.ts (99%) rename x-pack/plugins/siem/public/{ => common}/mock/utils.ts (57%) rename x-pack/plugins/siem/public/{ => common}/store/actions.ts (74%) rename x-pack/plugins/siem/public/{ => common}/store/app/actions.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/app/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/app/model.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/app/reducer.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/app/selectors.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/constants.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/drag_and_drop/actions.ts (86%) rename x-pack/plugins/siem/public/{ => common}/store/drag_and_drop/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/drag_and_drop/model.ts (79%) rename x-pack/plugins/siem/public/{ => common}/store/drag_and_drop/reducer.test.ts (85%) rename x-pack/plugins/siem/public/{ => common}/store/drag_and_drop/reducer.ts (93%) rename x-pack/plugins/siem/public/{ => common}/store/drag_and_drop/selectors.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/epic.ts (59%) rename x-pack/plugins/siem/public/{ => common}/store/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/actions.ts (96%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/constants.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/model.ts (96%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/reducer.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/inputs/selectors.ts (100%) rename x-pack/plugins/siem/public/{ => common}/store/model.ts (83%) create mode 100644 x-pack/plugins/siem/public/common/store/reducer.ts rename x-pack/plugins/siem/public/{ => common}/store/selectors.ts (73%) rename x-pack/plugins/siem/public/{ => common}/store/store.ts (87%) rename x-pack/plugins/siem/public/{ => common}/store/types.ts (100%) rename x-pack/plugins/siem/public/{pages => }/common/translations.ts (100%) rename x-pack/plugins/siem/public/{ => common}/utils/api/index.ts (100%) rename x-pack/plugins/siem/public/{ => common}/utils/apollo_context.ts (100%) rename x-pack/plugins/siem/public/{ => common}/utils/default_date_settings.test.ts (99%) rename x-pack/plugins/siem/public/{ => common}/utils/default_date_settings.ts (98%) rename x-pack/plugins/siem/public/{ => common}/utils/kql/use_update_kql.test.tsx (92%) rename x-pack/plugins/siem/public/{ => common}/utils/kql/use_update_kql.tsx (96%) rename x-pack/plugins/siem/public/{ => common}/utils/logo_endpoint/64_color.svg (100%) rename x-pack/plugins/siem/public/{ => common}/utils/route/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => common}/utils/route/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => common}/utils/route/manage_spy_routes.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/utils/route/spy_routes.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/utils/route/types.ts (86%) rename x-pack/plugins/siem/public/{ => common}/utils/route/use_route_spy.tsx (100%) rename x-pack/plugins/siem/public/{ => common}/utils/saved_query_services/index.tsx (93%) rename x-pack/plugins/siem/public/{ => common}/utils/timeline/use_show_timeline.tsx (94%) rename x-pack/plugins/siem/public/{ => common}/utils/use_mount_appended.ts (100%) rename x-pack/plugins/siem/public/{ => common}/utils/validators/index.ts (100%) delete mode 100644 x-pack/plugins/siem/public/components/page/network/index.tsx rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/authentications_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/authentications_table/index.test.tsx (89%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/authentications_table/index.tsx (90%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/authentications_table/mock.ts (96%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/authentications_table/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/first_last_seen_host/index.test.tsx (96%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/first_last_seen_host/index.tsx (89%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/hosts_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/hosts_table/columns.tsx (79%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/hosts_table/index.test.tsx (87%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/hosts_table/index.tsx (94%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/hosts_table/mock.ts (96%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/hosts_table/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/index.test.tsx (97%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/index.tsx (87%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/kpi_host_details_mapping.ts (96%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/kpi_hosts_mapping.ts (96%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/mock.tsx (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/kpi_hosts/types.ts (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/uncommon_process_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/uncommon_process_table/index.test.tsx (97%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/uncommon_process_table/index.tsx (92%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/uncommon_process_table/mock.ts (97%) rename x-pack/plugins/siem/public/{components/page/hosts => hosts/components}/uncommon_process_table/translations.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/authentications/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/authentications/index.tsx (87%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/first_last_seen/first_last_seen.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/first_last_seen/index.ts (87%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/first_last_seen/mock.ts (89%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/hosts_table.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/index.tsx (88%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/overview/host_overview.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/hosts/overview/index.tsx (85%) rename x-pack/plugins/siem/public/{ => hosts}/containers/kpi_host_details/index.gql_query.tsx (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/kpi_host_details/index.tsx (86%) rename x-pack/plugins/siem/public/{ => hosts}/containers/kpi_hosts/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/kpi_hosts/index.tsx (83%) rename x-pack/plugins/siem/public/{ => hosts}/containers/uncommon_processes/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => hosts}/containers/uncommon_processes/index.tsx (87%) create mode 100644 x-pack/plugins/siem/public/hosts/index.ts rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/details_tabs.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/details_tabs.tsx (85%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/helpers.ts (95%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/index.tsx (81%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/nav_tabs.test.tsx (94%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/nav_tabs.tsx (93%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/types.ts (85%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/details/utils.ts (83%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/hosts.test.tsx (88%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/hosts.tsx (81%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/hosts_empty_page.tsx (85%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/hosts_tabs.tsx (84%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/index.tsx (94%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/nav_tabs.test.tsx (95%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/nav_tabs.tsx (95%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/alerts_query_tab_body.tsx (95%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/authentications_query_tab_body.tsx (86%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/events_query_tab_body.tsx (85%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/hosts_query_tab_body.tsx (88%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/index.ts (100%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/types.ts (81%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/navigation/uncommon_process_query_tab_body.tsx (86%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/hosts => hosts/pages}/types.ts (79%) create mode 100644 x-pack/plugins/siem/public/hosts/routes.tsx rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/actions.ts (100%) rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/helpers.test.ts (97%) rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/helpers.ts (96%) rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/index.ts (68%) rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/model.ts (100%) rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/reducer.ts (99%) rename x-pack/plugins/siem/public/{store/hosts => hosts/store}/selectors.ts (95%) rename x-pack/plugins/siem/public/{ => network}/components/arrows/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/arrows/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/arrows/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/arrows/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => network}/components/arrows/index.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/direction/direction.test.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/direction/index.tsx (93%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/__mocks__/mock.ts (99%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/__snapshots__/embeddable.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/__snapshots__/embeddable_header.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/__snapshots__/embedded_map.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/__snapshots__/index_patterns_missing_prompt.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embeddable.test.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embeddable.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embeddable_header.test.tsx (96%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embeddable_header.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embedded_map.test.tsx (85%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embedded_map.tsx (89%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embedded_map_helpers.test.tsx (97%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/embedded_map_helpers.tsx (92%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/index_patterns_missing_prompt.test.tsx (93%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/index_patterns_missing_prompt.tsx (97%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_config.test.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_config.ts (99%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/__snapshots__/line_tool_tip_content.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/__snapshots__/map_tool_tip.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/__snapshots__/point_tool_tip_content.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/__snapshots__/tooltip_footer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/line_tool_tip_content.test.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/line_tool_tip_content.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/map_tool_tip.test.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/map_tool_tip.tsx (98%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx (89%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/point_tool_tip_content.tsx (81%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/tooltip_footer.test.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/map_tool_tip/tooltip_footer.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/translations.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/embeddables/types.ts (88%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/__snapshots__/flow_direction_select.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/flow_direction_select.test.tsx (96%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/flow_direction_select.tsx (95%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/flow_target_select.test.tsx (97%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/flow_target_select.tsx (96%) rename x-pack/plugins/siem/public/{ => network}/components/flow_controls/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/flow_target_select_connected/index.test.tsx (92%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/flow_target_select_connected/index.tsx (88%) rename x-pack/plugins/siem/public/{ => network}/components/ip/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/ip/index.test.tsx (90%) rename x-pack/plugins/siem/public/{ => network}/components/ip/index.tsx (89%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/ip_overview/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/ip_overview/index.test.tsx (71%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/ip_overview/index.tsx (80%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/ip_overview/mock.ts (96%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/ip_overview/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/kpi_network/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/kpi_network/index.test.tsx (84%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/kpi_network/index.tsx (96%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/kpi_network/mock.ts (97%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/kpi_network/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/__snapshots__/is_ptr_included.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/columns.tsx (81%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/index.test.tsx (86%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/index.tsx (95%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/is_ptr_included.test.tsx (95%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/is_ptr_included.tsx (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/mock.ts (98%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_dns_table/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_http_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_http_table/columns.tsx (88%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_http_table/index.test.tsx (86%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_http_table/index.tsx (95%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_http_table/mock.ts (97%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_http_table/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_countries_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_countries_table/columns.tsx (85%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_countries_table/index.test.tsx (91%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_countries_table/index.tsx (96%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_countries_table/mock.ts (94%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_countries_table/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_n_flow_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_n_flow_table/columns.tsx (87%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_n_flow_table/index.test.tsx (89%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_n_flow_table/index.tsx (96%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_n_flow_table/mock.ts (99%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/network_top_n_flow_table/translations.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/port/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/port/index.test.tsx (92%) rename x-pack/plugins/siem/public/{ => network}/components/port/index.tsx (80%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/country_flag.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/field_names.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/geo_fields.tsx (98%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/index.test.tsx (96%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/index.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/ip_with_port.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/label.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/network.tsx (96%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/source_destination_arrows.tsx (98%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/source_destination_ip.test.tsx (99%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/source_destination_ip.tsx (98%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/source_destination_with_arrows.tsx (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/translations.ts (100%) rename x-pack/plugins/siem/public/{ => network}/components/source_destination/types.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/tls_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/tls_table/columns.tsx (85%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/tls_table/index.test.tsx (85%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/tls_table/index.tsx (93%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/tls_table/mock.ts (96%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/tls_table/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/users_table/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/users_table/columns.tsx (86%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/users_table/index.test.tsx (85%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/users_table/index.tsx (92%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/users_table/mock.ts (95%) rename x-pack/plugins/siem/public/{components/page/network => network/components}/users_table/translations.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/ip_overview/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/ip_overview/index.tsx (82%) rename x-pack/plugins/siem/public/{ => network}/containers/kpi_network/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/kpi_network/index.tsx (83%) rename x-pack/plugins/siem/public/{ => network}/containers/network_dns/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/network_dns/index.tsx (85%) rename x-pack/plugins/siem/public/{ => network}/containers/network_http/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/network_http/index.tsx (87%) rename x-pack/plugins/siem/public/{ => network}/containers/network_top_countries/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/network_top_countries/index.tsx (88%) rename x-pack/plugins/siem/public/{ => network}/containers/network_top_n_flow/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/network_top_n_flow/index.tsx (88%) rename x-pack/plugins/siem/public/{ => network}/containers/tls/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/tls/index.tsx (87%) rename x-pack/plugins/siem/public/{ => network}/containers/users/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{ => network}/containers/users/index.tsx (87%) create mode 100644 x-pack/plugins/siem/public/network/index.ts rename x-pack/plugins/siem/public/{pages/network => network/pages}/index.tsx (93%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/index.test.tsx (84%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/index.tsx (84%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/network_http_query_table.tsx (86%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/network_top_countries_query_table.tsx (86%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/network_top_n_flow_query_table.tsx (86%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/tls_query_table.tsx (87%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/types.ts (86%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/users_query_table.tsx (87%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/ip_details/utils.ts (82%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/alerts_query_tab_body.tsx (96%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/conditional_flex_group.tsx (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/countries_query_tab_body.tsx (85%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/dns_query_tab_body.tsx (88%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/http_query_tab_body.tsx (84%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/index.ts (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/ips_query_tab_body.tsx (84%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/nav_tabs.tsx (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/network_routes.tsx (90%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/network_routes_loading.tsx (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/tls_query_tab_body.tsx (87%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/types.ts (89%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/navigation/utils.ts (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/network.test.tsx (89%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/network.tsx (83%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/network_empty_page.tsx (85%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/translations.ts (100%) rename x-pack/plugins/siem/public/{pages/network => network/pages}/types.ts (82%) create mode 100644 x-pack/plugins/siem/public/network/routes.tsx rename x-pack/plugins/siem/public/{store/network => network/store}/actions.ts (95%) rename x-pack/plugins/siem/public/{store/network => network/store}/helpers.test.ts (99%) rename x-pack/plugins/siem/public/{store/network => network/store}/helpers.ts (97%) rename x-pack/plugins/siem/public/{store/network => network/store}/index.ts (64%) rename x-pack/plugins/siem/public/{store/network => network/store}/model.ts (100%) rename x-pack/plugins/siem/public/{store/network => network/store}/reducer.ts (99%) rename x-pack/plugins/siem/public/{store/network => network/store}/selectors.ts (98%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/alerts_by_category/index.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/alerts_by_category/index.tsx (76%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/event_counts/index.test.tsx (87%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/event_counts/index.tsx (81%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/events_by_dataset/__mocks__/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/events_by_dataset/index.tsx (82%) rename x-pack/plugins/siem/public/{components/page/hosts => overview/components}/host_overview/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/hosts => overview/components}/host_overview/index.test.tsx (89%) rename x-pack/plugins/siem/public/{components/page/hosts => overview/components}/host_overview/index.tsx (81%) rename x-pack/plugins/siem/public/{components/page/hosts => overview/components}/host_overview/mock.ts (96%) rename x-pack/plugins/siem/public/{components/page/hosts => overview/components}/host_overview/translations.ts (100%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/loading_placeholders/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/overview_empty/index.tsx (85%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_host/index.test.tsx (85%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_host/index.tsx (82%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_host_stats/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_host_stats/index.test.tsx (96%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_host_stats/index.tsx (99%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_host_stats/mock.ts (92%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_network/index.test.tsx (84%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_network/index.tsx (84%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_network_stats/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_network_stats/index.test.tsx (96%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_network_stats/index.tsx (98%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/overview_network_stats/mock.ts (89%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_cases/filters/index.tsx (100%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_cases/index.tsx (82%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_cases/no_cases/index.tsx (76%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_cases/recent_cases.tsx (82%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_cases/translations.ts (100%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_cases/types.ts (100%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/counts/index.tsx (88%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/filters/index.tsx (100%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/header/index.tsx (82%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/index.tsx (81%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/recent_timelines.tsx (93%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/translations.ts (100%) rename x-pack/plugins/siem/public/{ => overview}/components/recent_timelines/types.ts (100%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/sidebar/index.tsx (82%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/sidebar/sidebar.tsx (78%) rename x-pack/plugins/siem/public/{pages/overview => overview/components}/signals_by_category/index.tsx (80%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/stat_value.tsx (94%) rename x-pack/plugins/siem/public/{components/page/overview => overview/components}/types.ts (100%) rename x-pack/plugins/siem/public/{containers/overview => overview/containers}/overview_host/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/overview => overview/containers}/overview_host/index.tsx (87%) rename x-pack/plugins/siem/public/{containers/overview => overview/containers}/overview_network/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/overview => overview/containers}/overview_network/index.tsx (88%) create mode 100644 x-pack/plugins/siem/public/overview/index.ts rename x-pack/plugins/siem/public/{pages/overview => overview/pages}/index.tsx (100%) rename x-pack/plugins/siem/public/{pages/overview => overview/pages}/overview.test.tsx (88%) rename x-pack/plugins/siem/public/{pages/overview => overview/pages}/overview.tsx (82%) rename x-pack/plugins/siem/public/{pages/overview => overview/pages}/summary.tsx (98%) rename x-pack/plugins/siem/public/{pages/overview => overview/pages}/translations.ts (100%) create mode 100644 x-pack/plugins/siem/public/overview/routes.tsx delete mode 100644 x-pack/plugins/siem/public/pages/home/types.ts delete mode 100644 x-pack/plugins/siem/public/store/reducer.ts rename x-pack/plugins/siem/public/{ => timelines}/components/certificate_fingerprint/index.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/certificate_fingerprint/index.tsx (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/certificate_fingerprint/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/duration/index.test.tsx (87%) rename x-pack/plugins/siem/public/{ => timelines}/components/duration/index.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/edit_data_provider/helpers.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/edit_data_provider/helpers.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/edit_data_provider/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/edit_data_provider/index.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/edit_data_provider/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/field_renderers/__snapshots__/field_renderers.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/field_renderers/field_renderers.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/field_renderers/field_renderers.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/categories_pane.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/categories_pane.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/category.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/category.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/category_columns.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/category_columns.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/category_title.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/category_title.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/field_browser.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/field_browser.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/field_items.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/field_items.tsx (85%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/field_name.test.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/field_name.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/fields_pane.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/fields_pane.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/header.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/header.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/helpers.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/helpers.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/index.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/index.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/fields_browser/types.ts (90%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/button/index.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/button/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/header/index.tsx (87%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/header_with_close_button/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/header_with_close_button/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/header_with_close_button/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/header_with_close_button/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/index.test.tsx (90%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/index.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/pane/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/pane/index.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/pane/index.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/pane/timeline_resize_handle.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/flyout/pane/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/formatted_duration/helpers.test.ts (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/formatted_duration/helpers.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/formatted_duration/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/formatted_duration/tooltip/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/formatted_duration/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/formatted_ip/index.tsx (86%) rename x-pack/plugins/siem/public/{ => timelines}/components/ja3_fingerprint/index.test.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/ja3_fingerprint/index.tsx (86%) rename x-pack/plugins/siem/public/{ => timelines}/components/ja3_fingerprint/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/lazy_accordion/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/loading/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/fingerprints/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/netflow_columns/duration_event_start_end.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/netflow_columns/index.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/netflow_columns/types.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/netflow_columns/user_process.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/netflow/types.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/add_note/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/add_note/__snapshots__/new_note.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/add_note/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/add_note/index.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/add_note/new_note.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/add_note/new_note.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/columns.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/helpers.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/index.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/__snapshots__/note_card_body.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/note_card_body.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/note_card_body.tsx (82%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/note_card_header.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/note_card_header.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/note_created.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_card/note_created.tsx (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_cards/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/note_cards/index.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/notes/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/constants.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/delete_timeline_modal/delete_timeline_modal.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/delete_timeline_modal/delete_timeline_modal.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/delete_timeline_modal/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/delete_timeline_modal/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/edit_timeline_actions.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/edit_timeline_batch_actions.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/export_timeline/export_timeline.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/export_timeline/export_timeline.tsx (90%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/export_timeline/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/export_timeline/index.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/export_timeline/mocks.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/helpers.test.ts (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/helpers.ts (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/index.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/note_previews/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/note_previews/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/note_previews/note_preview.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/note_previews/note_preview.tsx (90%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline_modal/index.test.tsx (83%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline_modal/index.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline_modal/open_timeline_modal_body.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/open_timeline_modal/open_timeline_modal_button.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/search_row/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/search_row/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/actions_columns.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/actions_columns.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/common_columns.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/common_columns.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/common_styles.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/extended_columns.test.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/extended_columns.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/icon_header_columns.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/icon_header_columns.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/index.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/timelines_table/mocks.ts (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/title_row/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/title_row/index.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/types.ts (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/open_timeline/use_timeline_types.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/__snapshots__/timeline.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/and_or_badge/__examples__/index.stories.tsx (100%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/and_or_badge/index.tsx (100%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/and_or_badge/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/auto_save_warning/index.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/auto_save_warning/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/actions/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/actions/index.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/actions/index.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/column_header.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/common/dragging_container.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/common/styles.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/default_headers.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/events_select/helpers.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/events_select/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/events_select/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/filter/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/filter/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/filter/index.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header/header_content.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header/helpers.ts (86%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header/index.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header/index.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header_tooltip_content/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/header_tooltip_content/index.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/helpers.test.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/helpers.ts (90%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/index.test.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/index.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/range_picker/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/range_picker/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/range_picker/ranges.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/range_picker/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/text_filter/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/text_filter/index.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/text_filter/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_headers/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/column_id.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/constants.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/data_driven_columns/index.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/data_driven_columns/index.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/events/event_column_view.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/events/index.tsx (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/events/stateful_event.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/helpers.test.ts (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/helpers.ts (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/index.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/index.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/mini_map/date_ranges.test.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/mini_map/date_ranges.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/args.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/empty_column_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/formatted_field.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/get_column_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/get_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/host_working_dir.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/plain_column_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/plain_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/process_draggable.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/unknown_column_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/__snapshots__/user_host_working_dir.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/args.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/args.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/__snapshots__/generic_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/__snapshots__/generic_file_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/__snapshots__/generic_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/__snapshots__/primary_secondary_user_info.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/__snapshots__/session_user_host_working_dir.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/generic_details.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/generic_details.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/generic_file_details.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/generic_file_details.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/generic_row_renderer.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/auditd/translations.ts (100%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline/body/renderers}/bytes/index.test.tsx (74%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline/body/renderers}/bytes/index.tsx (83%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/column_renderer.ts (82%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/constants.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx (82%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/dns/dns_request_event_details.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/dns/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/empty_column_renderer.test.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/empty_column_renderer.tsx (81%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/helpers.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/endgame/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/exit_code_draggable.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/exit_code_draggable.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/file_draggable.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/file_draggable.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/formatted_field.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/formatted_field.tsx (88%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/formatted_field_helpers.tsx (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/get_column_renderer.test.tsx (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/get_column_renderer.ts (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/get_row_renderer.test.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/get_row_renderer.ts (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/helpers.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/helpers.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/host_working_dir.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/host_working_dir.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/index.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/netflow.tsx (86%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/netflow/__snapshots__/netflow_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx (90%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/parent_process_draggable.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/parent_process_draggable.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/parse_query_value.test.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/parse_query_value.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/parse_value.test.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/parse_value.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/plain_column_renderer.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/plain_column_renderer.tsx (88%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/plain_row_renderer.test.tsx (88%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/plain_row_renderer.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/process_draggable.test.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/process_draggable.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/process_hash.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/process_hash.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/row_renderer.tsx (87%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/__snapshots__/suricata_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/__snapshots__/suricata_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/__snapshots__/suricata_signature.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_details.test.tsx (83%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_details.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_links.test.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_links.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_refs.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx (85%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_row_renderer.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_signature.test.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/suricata/suricata_signature.tsx (87%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/__snapshots__/auth_ssh.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/__snapshots__/generic_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/__snapshots__/generic_file_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/__snapshots__/generic_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/__snapshots__/package.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/auth_ssh.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/auth_ssh.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/generic_details.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/generic_details.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/generic_file_details.test.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/generic_file_details.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/generic_row_renderer.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/generic_row_renderer.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/package.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/package.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/system/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/unknown_column_renderer.test.tsx (91%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/unknown_column_renderer.tsx (83%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/user_host_working_dir.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/user_host_working_dir.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/__snapshots__/zeek_details.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/__snapshots__/zeek_row_renderer.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/__snapshots__/zeek_signature.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/zeek_details.test.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/zeek_details.tsx (88%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx (87%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/zeek_row_renderer.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/zeek_signature.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/renderers/zeek/zeek_signature.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/sort/__snapshots__/sort_indicator.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/sort/index.ts (89%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/sort/sort_indicator.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/sort/sort_indicator.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/stateful_body.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/stateful_body.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/body/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/__snapshots__/empty.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/__snapshots__/provider.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/data_provider.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/data_providers.test.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/empty.test.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/empty.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/helpers.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/index.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/mock/mock_data_providers.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/provider.test.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/provider.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/provider_badge.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/provider_item_actions.tsx (98%) create mode 100644 x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and.tsx create mode 100644 x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and_drag_drop.tsx rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/provider_item_badge.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/providers.test.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/providers.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/data_providers/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/events.ts (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/expandable_event/index.tsx (84%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/expandable_event/translations.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/fetch_kql_timeline.tsx (88%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/footer/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/footer/index.test.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/footer/index.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/footer/last_updated.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/footer/mock.ts (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/footer/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/header/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/header/index.test.tsx (87%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/header/index.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/header/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/helpers.test.tsx (99%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/helpers.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/index.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/insert_timeline_popover/index.test.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/insert_timeline_popover/index.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/insert_timeline_popover/use_insert_timeline.tsx (87%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/pin/index.test.tsx (100%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/pin/index.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/helpers.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/index.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/index.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/notes_size.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/properties_left.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/properties_right.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/styles.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/properties/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/query_bar/index.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/query_bar/index.tsx (94%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/refetch_timeline.tsx (83%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_or_filter/helpers.test.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_or_filter/helpers.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_or_filter/index.tsx (92%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_or_filter/pick_events.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_or_filter/search_or_filter.tsx (93%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_or_filter/translations.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/search_super_select/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/selectable_timeline/index.tsx (97%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/skeleton_row/__snapshots__/index.test.tsx.snap (100%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/skeleton_row/index.test.tsx (96%) rename x-pack/plugins/siem/public/{components => timelines/components/timeline}/skeleton_row/index.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/styles.tsx (98%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/timeline.test.tsx (96%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/timeline.tsx (95%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/timeline_context.tsx (97%) rename x-pack/plugins/siem/public/{ => timelines}/components/timeline/translations.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/all/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/all/index.tsx (93%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/api.ts (90%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/delete/persist.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/details/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/details/index.tsx (97%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/favorite/persist.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/index.tsx (92%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/notes/persist.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/one/index.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/persist.gql_query.ts (100%) rename x-pack/plugins/siem/public/{containers/timeline => timelines/containers}/pinned_event/persist.gql_query.ts (100%) create mode 100644 x-pack/plugins/siem/public/timelines/index.ts rename x-pack/plugins/siem/public/{pages/timelines => timelines/pages}/index.tsx (84%) rename x-pack/plugins/siem/public/{pages/timelines => timelines/pages}/timelines_page.test.tsx (92%) rename x-pack/plugins/siem/public/{pages/timelines => timelines/pages}/timelines_page.tsx (85%) rename x-pack/plugins/siem/public/{pages/timelines => timelines/pages}/translations.ts (100%) create mode 100644 x-pack/plugins/siem/public/timelines/routes.tsx rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/actions.ts (94%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/defaults.ts (80%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/epic.test.ts (97%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/epic.ts (96%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/epic_dispatcher_timeline_persistence_queue.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/epic_favorite.ts (95%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/epic_note.ts (93%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/epic_pinned_event.ts (95%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/helpers.ts (98%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/index.ts (61%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/manage_timeline_id.tsx (100%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/model.ts (91%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/my_epic_timeline_id.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/reducer.test.ts (99%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/reducer.ts (100%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/refetch_queries.ts (69%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/selectors.ts (95%) rename x-pack/plugins/siem/public/{ => timelines}/store/timeline/types.ts (100%) diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/columns.tsx b/x-pack/plugins/siem/public/alerts/components/activity_monitor/columns.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/columns.tsx rename to x-pack/plugins/siem/public/alerts/components/activity_monitor/columns.tsx index 78315d3ba79d..51a5397637e7 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/columns.tsx +++ b/x-pack/plugins/siem/public/alerts/components/activity_monitor/columns.tsx @@ -14,7 +14,7 @@ import { EuiTableActionsColumnType, } from '@elastic/eui'; import React from 'react'; -import { getEmptyTagValue } from '../../../../components/empty_value'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; import { ColumnTypes } from './types'; const actions: EuiTableActionsColumnType['actions'] = [ diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/activity_monitor/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/activity_monitor/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/index.tsx b/x-pack/plugins/siem/public/alerts/components/activity_monitor/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/index.tsx rename to x-pack/plugins/siem/public/alerts/components/activity_monitor/index.tsx index 31420ad07cd5..c2b6b0f025e1 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/activity_monitor/index.tsx @@ -6,14 +6,14 @@ import { EuiBasicTable, EuiPanel, EuiSpacer } from '@elastic/eui'; import React, { useState, useCallback } from 'react'; -import { HeaderSection } from '../../../../components/header_section'; +import { HeaderSection } from '../../../common/components/header_section'; import { UtilityBar, UtilityBarAction, UtilityBarGroup, UtilityBarSection, UtilityBarText, -} from '../../../../components/utility_bar'; +} from '../../../common/components/utility_bar'; import { columns } from './columns'; import { ColumnTypes, PageTypes, SortTypes } from './types'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/types.ts b/x-pack/plugins/siem/public/alerts/components/activity_monitor/types.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/activity_monitor/types.ts rename to x-pack/plugins/siem/public/alerts/components/activity_monitor/types.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/index.tsx b/x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/index.tsx rename to x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/index.tsx index c94507391901..42a5afb600fb 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/index.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { HeaderPage, HeaderPageProps } from '../../../../components/header_page'; +import { HeaderPage, HeaderPageProps } from '../../../common/components/header_page'; import * as i18n from './translations'; const DetectionEngineHeaderPageComponent: React.FC = props => ( diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/translations.ts b/x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/detection_engine_header_page/translations.ts rename to x-pack/plugins/siem/public/alerts/components/detection_engine_header_page/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/no_api_integration_callout/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/no_api_integration_callout/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/no_api_integration_callout/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/no_api_integration_callout/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/no_api_integration_callout/index.tsx b/x-pack/plugins/siem/public/alerts/components/no_api_integration_callout/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/no_api_integration_callout/index.tsx rename to x-pack/plugins/siem/public/alerts/components/no_api_integration_callout/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/no_api_integration_callout/translations.ts b/x-pack/plugins/siem/public/alerts/components/no_api_integration_callout/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/no_api_integration_callout/translations.ts rename to x-pack/plugins/siem/public/alerts/components/no_api_integration_callout/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/no_write_signals_callout/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/no_write_signals_callout/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/no_write_signals_callout/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/no_write_signals_callout/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/no_write_signals_callout/index.tsx b/x-pack/plugins/siem/public/alerts/components/no_write_signals_callout/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/no_write_signals_callout/index.tsx rename to x-pack/plugins/siem/public/alerts/components/no_write_signals_callout/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/no_write_signals_callout/translations.ts b/x-pack/plugins/siem/public/alerts/components/no_write_signals_callout/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/no_write_signals_callout/translations.ts rename to x-pack/plugins/siem/public/alerts/components/no_write_signals_callout/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/accordion_title/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/accordion_title/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/accordion_title/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/accordion_title/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/accordion_title/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/accordion_title/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/accordion_title/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/accordion_title/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/add_item_form/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/add_item_form/index.test.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/add_item_form/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/add_item_form/index.test.tsx index eafa89a33f59..890e66c8767c 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/add_item_form/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/add_item_form/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { AddItem } from './index'; -import { useFormFieldMock } from '../../../../../../public/mock/test_providers'; +import { useFormFieldMock } from '../../../../common/mock/test_providers'; describe('AddItem', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/add_item_form/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/add_item_form/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/add_item_form/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/add_item_form/index.tsx index abbaa6d6192e..d6c18078f8ac 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/add_item_form/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/add_item_form/index.tsx @@ -17,8 +17,8 @@ import { isEmpty } from 'lodash/fp'; import React, { ChangeEvent, useCallback, useEffect, useState, useRef } from 'react'; import styled from 'styled-components'; -import * as RuleI18n from '../../translations'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; +import * as RuleI18n from '../../../pages/detection_engine/rules/translations'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; interface AddItemProps { addText: string; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/all_rules_tables/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/all_rules_tables/index.test.tsx index 8afb8db0c8d5..d841af69a753 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/all_rules_tables/index.test.tsx @@ -8,7 +8,7 @@ import React, { useRef } from 'react'; import { shallow } from 'enzyme'; import { AllRulesTables } from './index'; -import { AllRulesTabs } from '../../all'; +import { AllRulesTabs } from '../../../pages/detection_engine/rules/all'; describe('AllRulesTables', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/all_rules_tables/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/all_rules_tables/index.tsx index 8ea5606d0082..8fd3f648bc81 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/all_rules_tables/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/all_rules_tables/index.tsx @@ -14,14 +14,14 @@ import { import React, { useMemo, memo } from 'react'; import styled from 'styled-components'; -import { EuiBasicTableOnChange } from '../../types'; -import * as i18n from '../../translations'; +import { EuiBasicTableOnChange } from '../../../pages/detection_engine/rules/types'; +import * as i18n from '../../../pages/detection_engine/rules/translations'; import { RulesColumns, RuleStatusRowItemType, -} from '../../../../../pages/detection_engine/rules/all/columns'; -import { Rule, Rules } from '../../../../../containers/detection_engine/rules'; -import { AllRulesTabs } from '../../all'; +} from '../../../pages/detection_engine/rules/all/columns'; +import { Rule, Rules } from '../../../containers/detection_engine/rules/types'; +import { AllRulesTabs } from '../../../pages/detection_engine/rules/all'; // EuiBasicTable give me a hardtime with adding the ref attributes so I went the easy way // after few hours of fight with typescript !!!! I lost :( diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/anomaly_threshold_slider/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/anomaly_threshold_slider/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/anomaly_threshold_slider/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/anomaly_threshold_slider/index.test.tsx index c0e957d94261..5e65ff2fca59 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/anomaly_threshold_slider/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/anomaly_threshold_slider/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { AnomalyThresholdSlider } from './index'; -import { useFormFieldMock } from '../../../../../mock'; +import { useFormFieldMock } from '../../../../common/mock'; describe('AnomalyThresholdSlider', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/anomaly_threshold_slider/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/anomaly_threshold_slider/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/anomaly_threshold_slider/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/anomaly_threshold_slider/index.tsx index 01fddf98b97d..705626c77621 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/anomaly_threshold_slider/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/anomaly_threshold_slider/index.tsx @@ -7,7 +7,7 @@ import React, { useCallback } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiRange, EuiFormRow } from '@elastic/eui'; -import { FieldHook } from '../../../../../shared_imports'; +import { FieldHook } from '../../../../shared_imports'; interface AnomalyThresholdSliderProps { describedByIds: string[]; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/alerts/components/rules/description_step/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/assets/list_tree_icon.svg b/x-pack/plugins/siem/public/alerts/components/rules/description_step/assets/list_tree_icon.svg similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/assets/list_tree_icon.svg rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/assets/list_tree_icon.svg diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/helpers.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/helpers.test.tsx index 186aeae42246..70de3d2a72dc 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/helpers.test.tsx @@ -8,8 +8,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { EuiLoadingSpinner } from '@elastic/eui'; -import { coreMock } from '../../../../../../../../../src/core/public/mocks'; -import { esFilters, FilterManager } from '../../../../../../../../../src/plugins/data/public'; +import { coreMock } from '../../../../../../../../src/core/public/mocks'; +import { esFilters, FilterManager } from '../../../../../../../../src/plugins/data/public'; import { SeverityBadge } from '../severity_badge'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/helpers.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/helpers.tsx index 1ac371a3f682..ad3ed538c875 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/helpers.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/helpers.tsx @@ -19,8 +19,8 @@ import { isEmpty } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { RuleType } from '../../../../../../common/detection_engine/types'; -import { esFilters } from '../../../../../../../../../src/plugins/data/public'; +import { RuleType } from '../../../../../common/detection_engine/types'; +import { esFilters } from '../../../../../../../../src/plugins/data/public'; import { tacticsOptions, techniquesOptions } from '../../../mitre/mitre_tactics_techniques'; @@ -28,7 +28,7 @@ import * as i18n from './translations'; import { BuildQueryBarDescription, BuildThreatDescription, ListItems } from './types'; import { SeverityBadge } from '../severity_badge'; import ListTreeIcon from './assets/list_tree_icon.svg'; -import { assertUnreachable } from '../../../../../lib/helpers'; +import { assertUnreachable } from '../../../../common/lib/helpers'; const NoteDescriptionContainer = styled(EuiFlexItem)` height: 105px; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/index.test.tsx index fdfcfd0fd85f..0cd79f1db78a 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.test.tsx @@ -11,23 +11,23 @@ import { addFilterStateIfNotThere, buildListItems, getDescriptionItem, -} from './'; +} from '.'; +import { esFilters, Filter, FilterManager } from '../../../../../../../../src/plugins/data/public'; import { - esFilters, - Filter, - FilterManager, -} from '../../../../../../../../../src/plugins/data/public'; -import { mockAboutStepRule, mockDefineStepRule } from '../../all/__mocks__/mock'; -import { coreMock } from '../../../../../../../../../src/core/public/mocks'; -import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; + mockAboutStepRule, + mockDefineStepRule, +} from '../../../pages/detection_engine/rules/all/__mocks__/mock'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { coreMock } from '../../../../../../../../src/core/public/mocks'; +import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations'; import * as i18n from './translations'; import { schema } from '../step_about_rule/schema'; import { ListItems } from './types'; -import { AboutStepRule } from '../../types'; +import { AboutStepRule } from '../../../pages/detection_engine/rules/types'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('description_step', () => { const setupMock = coreMock.createSetup(); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx index 108f21381141..86fe128b0a4f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx @@ -9,18 +9,18 @@ import { isEmpty, chunk, get, pick, isNumber } from 'lodash/fp'; import React, { memo, useState } from 'react'; import styled from 'styled-components'; -import { RuleType } from '../../../../../../common/detection_engine/types'; +import { RuleType } from '../../../../../common/detection_engine/types'; import { IIndexPattern, Filter, esFilters, FilterManager, -} from '../../../../../../../../../src/plugins/data/public'; -import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; -import { useKibana } from '../../../../../lib/kibana'; -import { IMitreEnterpriseAttack } from '../../types'; +} from '../../../../../../../../src/plugins/data/public'; +import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations'; +import { useKibana } from '../../../../common/lib/kibana'; +import { IMitreEnterpriseAttack } from '../../../pages/detection_engine/rules/types'; import { FieldValueTimeline } from '../pick_timeline'; -import { FormSchema } from '../../../../../shared_imports'; +import { FormSchema } from '../../../../shared_imports'; import { ListItems } from './types'; import { buildQueryBarDescription, @@ -32,7 +32,7 @@ import { buildNoteDescription, buildRuleTypeDescription, } from './helpers'; -import { useSiemJobs } from '../../../../../components/ml_popover/hooks/use_siem_jobs'; +import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; import { buildMlJobDescription } from './ml_job_description'; const DescriptionListContainer = styled(EuiDescriptionList)` diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/ml_job_description.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/ml_job_description.test.tsx index 59231c31d15b..c82a465f08c3 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/ml_job_description.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { MlJobDescription, AuditIcon, JobStatusBadge } from './ml_job_description'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); const job = { moduleId: 'moduleId', diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/ml_job_description.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/ml_job_description.tsx index 33d3dbcba863..c5df8b1a3db7 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/ml_job_description.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/ml_job_description.tsx @@ -8,9 +8,9 @@ import React from 'react'; import styled from 'styled-components'; import { EuiBadge, EuiIcon, EuiLink, EuiToolTip } from '@elastic/eui'; -import { isJobStarted } from '../../../../../../common/machine_learning/helpers'; -import { useKibana } from '../../../../../lib/kibana'; -import { SiemJob } from '../../../../../components/ml_popover/types'; +import { isJobStarted } from '../../../../../common/machine_learning/helpers'; +import { useKibana } from '../../../../common/lib/kibana'; +import { SiemJob } from '../../../../common/components/ml_popover/types'; import { ListItems } from './types'; import { ML_JOB_STARTED, ML_JOB_STOPPED } from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/translations.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/translations.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/translations.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/translations.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/types.ts b/x-pack/plugins/siem/public/alerts/components/rules/description_step/types.ts similarity index 83% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/types.ts rename to x-pack/plugins/siem/public/alerts/components/rules/description_step/types.ts index 564a3c5dc2c0..bcda5ff67a9a 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/description_step/types.ts +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/types.ts @@ -9,8 +9,8 @@ import { IIndexPattern, Filter, FilterManager, -} from '../../../../../../../../../src/plugins/data/public'; -import { IMitreEnterpriseAttack } from '../../types'; +} from '../../../../../../../../src/plugins/data/public'; +import { IMitreEnterpriseAttack } from '../../../pages/detection_engine/rules/types'; export interface ListItems { title: NonNullable; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/helpers.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/mitre/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/helpers.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/mitre/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/helpers.ts b/x-pack/plugins/siem/public/alerts/components/rules/mitre/helpers.ts similarity index 87% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/helpers.ts rename to x-pack/plugins/siem/public/alerts/components/rules/mitre/helpers.ts index 7a28a16214df..2dc7a6d8f45e 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/helpers.ts +++ b/x-pack/plugins/siem/public/alerts/components/rules/mitre/helpers.ts @@ -5,7 +5,7 @@ */ import { isEmpty } from 'lodash/fp'; -import { IMitreAttack } from '../../types'; +import { IMitreAttack } from '../../../pages/detection_engine/rules/types'; export const isMitreAttackInvalid = ( tacticName: string | null | undefined, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/mitre/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/mitre/index.test.tsx index 3e8d54268245..ecf1bda807b6 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/mitre/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { AddMitreThreat } from './index'; -import { useFormFieldMock } from '../../../../../mock'; +import { useFormFieldMock } from '../../../../common/mock'; describe('AddMitreThreat', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/mitre/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/mitre/index.tsx index a2d81e72af40..4170ce5ebeab 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/mitre/index.tsx @@ -19,10 +19,10 @@ import React, { useCallback, useState } from 'react'; import styled from 'styled-components'; import { tacticsOptions, techniquesOptions } from '../../../mitre/mitre_tactics_techniques'; -import * as Rulei18n from '../../translations'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; +import * as Rulei18n from '../../../pages/detection_engine/rules/translations'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; import { threatDefault } from '../step_about_rule/default_value'; -import { IMitreEnterpriseAttack } from '../../types'; +import { IMitreEnterpriseAttack } from '../../../pages/detection_engine/rules/types'; import { MyAddItemButton } from '../add_item_form'; import { isMitreAttackInvalid } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/mitre/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/mitre/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/mitre/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/ml_job_select/index.test.tsx similarity index 74% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/ml_job_select/index.test.tsx index dea27d8d0453..6f6581e4de1c 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/ml_job_select/index.test.tsx @@ -8,10 +8,10 @@ import React from 'react'; import { shallow } from 'enzyme'; import { MlJobSelect } from './index'; -import { useSiemJobs } from '../../../../../components/ml_popover/hooks/use_siem_jobs'; -import { useFormFieldMock } from '../../../../../mock'; -jest.mock('../../../../../components/ml_popover/hooks/use_siem_jobs'); -jest.mock('../../../../../lib/kibana'); +import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; +import { useFormFieldMock } from '../../../../common/mock'; +jest.mock('../../../../common/components/ml_popover/hooks/use_siem_jobs'); +jest.mock('../../../../common/lib/kibana'); describe('MlJobSelect', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/ml_job_select/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/ml_job_select/index.tsx index c011c06e8654..d3b6de6cf0c4 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/ml_job_select/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/ml_job_select/index.tsx @@ -17,10 +17,10 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; -import { isJobStarted } from '../../../../../../common/machine_learning/helpers'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; -import { useSiemJobs } from '../../../../../components/ml_popover/hooks/use_siem_jobs'; -import { useKibana } from '../../../../../lib/kibana'; +import { isJobStarted } from '../../../../../common/machine_learning/helpers'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; +import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; +import { useKibana } from '../../../../common/lib/kibana'; import { ML_JOB_SELECT_PLACEHOLDER_TEXT, ENABLE_ML_JOB_WARNING, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/alerts/components/rules/next_step/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/alerts/components/rules/next_step/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/next_step/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/next_step/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/next_step/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/next_step/index.tsx index 11332e7af926..d97c2b4c8c0a 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/next_step/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/next_step/index.tsx @@ -6,7 +6,7 @@ import React from 'react'; import { EuiHorizontalRule, EuiFlexGroup, EuiFlexItem, EuiButton } from '@elastic/eui'; -import * as RuleI18n from '../../translations'; +import * as RuleI18n from '../../../pages/detection_engine/rules/translations'; interface NextStepProps { onClick: () => Promise; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/optional_field_label/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/optional_field_label/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/optional_field_label/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/optional_field_label/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/optional_field_label/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/optional_field_label/index.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/optional_field_label/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/optional_field_label/index.tsx index 0dab87b0a3b7..0d144e30cbab 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/optional_field_label/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/optional_field_label/index.tsx @@ -7,7 +7,7 @@ import { EuiText } from '@elastic/eui'; import React from 'react'; -import * as RuleI18n from '../../translations'; +import * as RuleI18n from '../../../pages/detection_engine/rules/translations'; export const OptionalFieldLabel = ( diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/pick_timeline/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/pick_timeline/index.test.tsx index fefc9697176c..379a8a48e1ad 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/pick_timeline/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { PickTimeline } from './index'; -import { useFormFieldMock } from '../../../../../mock'; +import { useFormFieldMock } from '../../../../common/mock'; describe('PickTimeline', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/pick_timeline/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/pick_timeline/index.tsx index 27d668dc6166..0029e70e4edd 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pick_timeline/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/pick_timeline/index.tsx @@ -7,8 +7,8 @@ import { EuiFormRow } from '@elastic/eui'; import React, { useCallback, useEffect, useState } from 'react'; -import { SearchTimelineSuperSelect } from '../../../../../components/timeline/search_super_select'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; +import { SearchTimelineSuperSelect } from '../../../../timelines/components/timeline/search_super_select'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; export interface FieldValueTimeline { id: string | null; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/load_empty_prompt.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/load_empty_prompt.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/load_empty_prompt.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/load_empty_prompt.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/load_empty_prompt.tsx b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/load_empty_prompt.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/load_empty_prompt.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/load_empty_prompt.tsx index 5d136265ef1f..cd88c4ce72af 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/load_empty_prompt.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/load_empty_prompt.tsx @@ -8,7 +8,7 @@ import { EuiEmptyPrompt, EuiFlexGroup, EuiFlexItem, EuiButton } from '@elastic/e import React, { memo, useCallback } from 'react'; import styled from 'styled-components'; -import { DETECTION_ENGINE_PAGE_NAME } from '../../../../../components/link_to/redirect_to_detection_engine'; +import { DETECTION_ENGINE_PAGE_NAME } from '../../../../common/components/link_to/redirect_to_detection_engine'; import * as i18n from './translations'; const EmptyPrompt = styled(EuiEmptyPrompt)` diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/update_callout.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/update_callout.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/update_callout.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/update_callout.test.tsx index 807da79fb7a1..b5dca70ad957 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/update_callout.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/update_callout.test.tsx @@ -8,8 +8,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { UpdatePrePackagedRulesCallOut } from './update_callout'; -import { useKibana } from '../../../../../lib/kibana'; -jest.mock('../../../../../lib/kibana'); +import { useKibana } from '../../../../common/lib/kibana'; +jest.mock('../../../../common/lib/kibana'); describe('UpdatePrePackagedRulesCallOut', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/update_callout.tsx b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/update_callout.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/update_callout.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/update_callout.tsx index c2887508a9ae..0faf4074ed89 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/pre_packaged_rules/update_callout.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/pre_packaged_rules/update_callout.tsx @@ -8,7 +8,7 @@ import React, { memo } from 'react'; import { EuiCallOut, EuiButton, EuiLink } from '@elastic/eui'; -import { useKibana } from '../../../../../lib/kibana'; +import { useKibana } from '../../../../common/lib/kibana'; import * as i18n from './translations'; interface UpdatePrePackagedRulesCallOutProps { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/query_bar/index.test.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/query_bar/index.test.tsx index cdd06ad58bb4..e22359edecd1 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/query_bar/index.test.tsx @@ -8,9 +8,9 @@ import React from 'react'; import { shallow } from 'enzyme'; import { QueryBarDefineRule } from './index'; -import { useFormFieldMock } from '../../../../../mock'; +import { useFormFieldMock } from '../../../../common/mock'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('QueryBarDefineRule', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/query_bar/index.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/query_bar/index.tsx index b92d98a4afb1..1aa5ce66d371 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/query_bar/index.tsx @@ -17,19 +17,19 @@ import { FilterManager, SavedQuery, SavedQueryTimeFilter, -} from '../../../../../../../../../src/plugins/data/public'; +} from '../../../../../../../../src/plugins/data/public'; -import { BrowserFields } from '../../../../../containers/source'; -import { OpenTimelineModal } from '../../../../../components/open_timeline/open_timeline_modal'; -import { ActionTimelineToShow } from '../../../../../components/open_timeline/types'; -import { QueryBar } from '../../../../../components/query_bar'; -import { buildGlobalQuery } from '../../../../../components/timeline/helpers'; -import { getDataProviderFilter } from '../../../../../components/timeline/query_bar'; -import { convertKueryToElasticSearchQuery } from '../../../../../lib/keury'; -import { useKibana } from '../../../../../lib/kibana'; -import { TimelineModel } from '../../../../../store/timeline/model'; -import { useSavedQueryServices } from '../../../../../utils/saved_query_services'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; +import { BrowserFields } from '../../../../common/containers/source'; +import { OpenTimelineModal } from '../../../../timelines/components/open_timeline/open_timeline_modal'; +import { ActionTimelineToShow } from '../../../../timelines/components/open_timeline/types'; +import { QueryBar } from '../../../../common/components/query_bar'; +import { buildGlobalQuery } from '../../../../timelines/components/timeline/helpers'; +import { getDataProviderFilter } from '../../../../timelines/components/timeline/query_bar'; +import { convertKueryToElasticSearchQuery } from '../../../../common/lib/keury'; +import { useKibana } from '../../../../common/lib/kibana'; +import { TimelineModel } from '../../../../timelines/store/timeline/model'; +import { useSavedQueryServices } from '../../../../common/utils/saved_query_services'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; import * as i18n from './translations'; export interface FieldValueQueryBar { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/translations.tsx b/x-pack/plugins/siem/public/alerts/components/rules/query_bar/translations.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/query_bar/translations.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/query_bar/translations.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/read_only_callout/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/read_only_callout/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/read_only_callout/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/read_only_callout/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/read_only_callout/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/read_only_callout/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/read_only_callout/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/read_only_callout/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/read_only_callout/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/read_only_callout/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/read_only_callout/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/read_only_callout/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_field/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_field/index.test.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_field/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_actions_field/index.test.tsx index 13ae3ee3d3b7..579f8869c08b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_field/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_field/index.test.tsx @@ -8,9 +8,9 @@ import React from 'react'; import { shallow } from 'enzyme'; import { RuleActionsField } from './index'; -import { useKibana } from '../../../../../lib/kibana'; -import { useFormFieldMock } from '../../../../../mock'; -jest.mock('../../../../../lib/kibana'); +import { useKibana } from '../../../../common/lib/kibana'; +import { useFormFieldMock } from '../../../../common/mock'; +jest.mock('../../../../common/lib/kibana'); describe('RuleActionsField', () => { it('should not render ActionForm is no actions are supported', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_field/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_field/index.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_field/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_actions_field/index.tsx index d53cf52cc67b..2e9a793bbdef 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_field/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_field/index.tsx @@ -7,13 +7,13 @@ import React, { useCallback, useEffect, useState } from 'react'; import deepMerge from 'deepmerge'; -import { NOTIFICATION_SUPPORTED_ACTION_TYPES_IDS } from '../../../../../../common/constants'; +import { NOTIFICATION_SUPPORTED_ACTION_TYPES_IDS } from '../../../../../common/constants'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { loadActionTypes } from '../../../../../../../triggers_actions_ui/public/application/lib/action_connector_api'; -import { SelectField } from '../../../../../shared_imports'; -import { ActionForm, ActionType } from '../../../../../../../triggers_actions_ui/public'; -import { AlertAction } from '../../../../../../../alerting/common'; -import { useKibana } from '../../../../../lib/kibana'; +import { loadActionTypes } from '../../../../../../triggers_actions_ui/public/application/lib/action_connector_api'; +import { SelectField } from '../../../../shared_imports'; +import { ActionForm, ActionType } from '../../../../../../triggers_actions_ui/public'; +import { AlertAction } from '../../../../../../alerting/common'; +import { useKibana } from '../../../../common/lib/kibana'; type ThrottleSelectField = typeof SelectField; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/index.test.tsx index b54938e6a3cf..a648a1bdb9aa 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/index.test.tsx @@ -7,9 +7,12 @@ import { shallow, mount } from 'enzyme'; import React from 'react'; -import { deleteRulesAction, duplicateRulesAction } from '../../all/actions'; +import { + deleteRulesAction, + duplicateRulesAction, +} from '../../../pages/detection_engine/rules/all/actions'; import { RuleActionsOverflow } from './index'; -import { mockRule } from '../../all/__mocks__/mock'; +import { mockRule } from '../../../pages/detection_engine/rules/all/__mocks__/mock'; jest.mock('react-router-dom', () => ({ useHistory: () => ({ @@ -17,7 +20,7 @@ jest.mock('react-router-dom', () => ({ }), })); -jest.mock('../../all/actions', () => ({ +jest.mock('../../../pages/detection_engine/rules/all/actions', () => ({ deleteRulesAction: jest.fn(), duplicateRulesAction: jest.fn(), })); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/index.tsx index a7ce0c85ffdc..2d8e6bef8ee9 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/index.tsx @@ -16,13 +16,16 @@ import styled from 'styled-components'; import { noop } from 'lodash/fp'; import { useHistory } from 'react-router-dom'; -import { Rule, exportRules } from '../../../../../containers/detection_engine/rules'; +import { Rule, exportRules } from '../../../../alerts/containers/detection_engine/rules'; import * as i18n from './translations'; -import * as i18nActions from '../../../rules/translations'; -import { displaySuccessToast, useStateToaster } from '../../../../../components/toasters'; -import { deleteRulesAction, duplicateRulesAction } from '../../all/actions'; -import { GenericDownloader } from '../../../../../components/generic_downloader'; -import { DETECTION_ENGINE_PAGE_NAME } from '../../../../../components/link_to/redirect_to_detection_engine'; +import * as i18nActions from '../../../pages/detection_engine/rules/translations'; +import { displaySuccessToast, useStateToaster } from '../../../../common/components/toasters'; +import { + deleteRulesAction, + duplicateRulesAction, +} from '../../../pages/detection_engine/rules/all/actions'; +import { GenericDownloader } from '../../../../common/components/generic_downloader'; +import { DETECTION_ENGINE_PAGE_NAME } from '../../../../common/components/link_to/redirect_to_detection_engine'; const MyEuiButtonIcon = styled(EuiButtonIcon)` &.euiButtonIcon { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_actions_overflow/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/rule_actions_overflow/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/helpers.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/helpers.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_status/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/helpers.ts b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/helpers.ts similarity index 85% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/helpers.ts rename to x-pack/plugins/siem/public/alerts/components/rules/rule_status/helpers.ts index 263f602251ea..88fca3d95604 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/helpers.ts +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { RuleStatusType } from '../../../../../containers/detection_engine/rules'; +import { RuleStatusType } from '../../../../alerts/containers/detection_engine/rules'; export const getStatusColor = (status: RuleStatusType | string | null) => status == null diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_status/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_status/index.tsx index ac457d7345c2..53be48bc9885 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/index.tsx @@ -15,9 +15,12 @@ import { import React, { memo, useCallback, useEffect, useState } from 'react'; import deepEqual from 'fast-deep-equal'; -import { useRuleStatus, RuleInfoStatus } from '../../../../../containers/detection_engine/rules'; -import { FormattedDate } from '../../../../../components/formatted_date'; -import { getEmptyTagValue } from '../../../../../components/empty_value'; +import { + useRuleStatus, + RuleInfoStatus, +} from '../../../../alerts/containers/detection_engine/rules'; +import { FormattedDate } from '../../../../common/components/formatted_date'; +import { getEmptyTagValue } from '../../../../common/components/empty_value'; import { getStatusColor } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/rule_status/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_status/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/rule_status/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/alerts/components/rules/rule_switch/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/alerts/components/rules/rule_switch/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_switch/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_switch/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/rule_switch/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/rule_switch/index.tsx index 44845ea68d95..2f718818ff2e 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/rule_switch/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/rule_switch/index.tsx @@ -15,12 +15,12 @@ import { isEmpty } from 'lodash/fp'; import styled from 'styled-components'; import React, { useCallback, useState, useEffect } from 'react'; -import * as i18n from '../../translations'; -import { enableRules } from '../../../../../containers/detection_engine/rules'; -import { enableRulesAction } from '../../all/actions'; -import { Action } from '../../all/reducer'; -import { useStateToaster, displayErrorToast } from '../../../../../components/toasters'; -import { bucketRulesResponse } from '../../all/helpers'; +import * as i18n from '../../../pages/detection_engine/rules/translations'; +import { enableRules } from '../../../../alerts/containers/detection_engine/rules'; +import { enableRulesAction } from '../../../pages/detection_engine/rules/all/actions'; +import { Action } from '../../../pages/detection_engine/rules/all/reducer'; +import { useStateToaster, displayErrorToast } from '../../../../common/components/toasters'; +import { bucketRulesResponse } from '../../../pages/detection_engine/rules/all/helpers'; const StaticSwitch = styled(EuiSwitch)` .euiSwitch__thumb, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/index.test.tsx index 3829af02ca4f..9dddd9e6c408 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { ScheduleItem } from './index'; -import { useFormFieldMock } from '../../../../../mock'; +import { useFormFieldMock } from '../../../../common/mock'; describe('ScheduleItem', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/index.tsx similarity index 99% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/index.tsx index 1b7d17016f83..ffb6c4eda324 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/index.tsx @@ -16,7 +16,7 @@ import { isEmpty } from 'lodash/fp'; import React, { useCallback, useEffect, useMemo, useState } from 'react'; import styled from 'styled-components'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../../shared_imports'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; import * as I18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/schedule_item_form/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/schedule_item_form/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/index.test.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/index.test.tsx index 3d832d61abb2..87401408c3cc 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/index.test.tsx @@ -8,8 +8,8 @@ import React from 'react'; import { shallow } from 'enzyme'; import { SelectRuleType } from './index'; -import { useFormFieldMock } from '../../../../../mock'; -jest.mock('../../../../../lib/kibana'); +import { useFormFieldMock } from '../../../../common/mock'; +jest.mock('../../../../common/lib/kibana'); describe('SelectRuleType', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/index.tsx index dc9a832f820b..58112732bea3 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/index.tsx @@ -16,10 +16,10 @@ import { EuiText, } from '@elastic/eui'; -import { isMlRule } from '../../../../../../common/machine_learning/helpers'; -import { RuleType } from '../../../../../../common/detection_engine/types'; -import { FieldHook } from '../../../../../shared_imports'; -import { useKibana } from '../../../../../lib/kibana'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; +import { RuleType } from '../../../../../common/detection_engine/types'; +import { FieldHook } from '../../../../shared_imports'; +import { useKibana } from '../../../../common/lib/kibana'; import * as i18n from './translations'; const MlCardDescription = ({ diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/select_rule_type/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/select_rule_type/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/severity_badge/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/severity_badge/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/severity_badge/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/severity_badge/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/severity_badge/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/severity_badge/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/severity_badge/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/severity_badge/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/status_icon/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/status_icon/index.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/status_icon/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/status_icon/index.test.tsx index 89b8a56e7905..6a16008e9d61 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/status_icon/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/status_icon/index.test.tsx @@ -7,9 +7,9 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { TestProviders } from '../../../../../mock'; +import { TestProviders } from '../../../../common/mock'; import { RuleStatusIcon } from './index'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('RuleStatusIcon', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/status_icon/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/status_icon/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/status_icon/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/status_icon/index.tsx index 3ec5bf1a12eb..443ee3e1811f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/status_icon/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/status_icon/index.tsx @@ -8,8 +8,8 @@ import { EuiAvatar, EuiIcon } from '@elastic/eui'; import React, { memo } from 'react'; import styled from 'styled-components'; -import { useEuiTheme } from '../../../../../lib/theme/use_eui_theme'; -import { RuleStatusType } from '../../types'; +import { useEuiTheme } from '../../../../common/lib/theme/use_eui_theme'; +import { RuleStatusType } from '../../../pages/detection_engine/rules/types'; export interface RuleStatusIconProps { name: string; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/data.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/data.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/data.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/data.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/default_value.ts b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/default_value.ts similarity index 89% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/default_value.ts rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/default_value.ts index 52b0038507b5..977769158481 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/default_value.ts +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/default_value.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AboutStepRule } from '../../types'; +import { AboutStepRule } from '../../../pages/detection_engine/rules/types'; export const threatDefault = [ { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/helpers.test.ts b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/helpers.test.ts rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/helpers.test.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/helpers.ts b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/helpers.ts rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/helpers.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/index.test.tsx index 3c28e697789a..13a62cee047b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/index.test.tsx @@ -8,8 +8,9 @@ import { mount, shallow } from 'enzyme'; import { ThemeProvider } from 'styled-components'; import euiDarkVars from '@elastic/eui/dist/eui_theme_light.json'; -import { StepAboutRule } from './'; -import { mockAboutStepRule } from '../../all/__mocks__/mock'; +import { StepAboutRule } from '.'; + +import { mockAboutStepRule } from '../../../pages/detection_engine/rules/all/__mocks__/mock'; import { StepRuleDescription } from '../description_step'; import { stepAboutDefaultValue } from './default_value'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/index.tsx index eaf543780d77..78ae3e44705c 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/index.tsx @@ -9,8 +9,11 @@ import React, { FC, memo, useCallback, useEffect, useState } from 'react'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; -import { setFieldValue } from '../../helpers'; -import { RuleStepProps, RuleStep, AboutStepRule } from '../../types'; +import { + RuleStepProps, + RuleStep, + AboutStepRule, +} from '../../../pages/detection_engine/rules/types'; import { AddItem } from '../add_item_form'; import { StepRuleDescription } from '../description_step'; import { AddMitreThreat } from '../mitre'; @@ -21,7 +24,7 @@ import { getUseField, UseField, useForm, -} from '../../../../../shared_imports'; +} from '../../../../shared_imports'; import { defaultRiskScoreBySeverity, severityOptions, SeverityValue } from './data'; import { stepAboutDefaultValue } from './default_value'; @@ -30,7 +33,8 @@ import { schema } from './schema'; import * as I18n from './translations'; import { StepContentWrapper } from '../step_content_wrapper'; import { NextStep } from '../next_step'; -import { MarkdownEditorForm } from '../../../../../components/markdown_editor/form'; +import { MarkdownEditorForm } from '../../../../common/components/markdown_editor/form'; +import { setFieldValue } from '../../../pages/detection_engine/rules/helpers'; const CommonUseField = getUseField({ component: Field }); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/schema.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/schema.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/schema.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/schema.tsx index 7c088c068c9b..3cb5e9a0dd5f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/schema.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/schema.tsx @@ -6,14 +6,14 @@ import { i18n } from '@kbn/i18n'; -import { IMitreEnterpriseAttack } from '../../types'; import { FIELD_TYPES, fieldValidators, FormSchema, ValidationFunc, ERROR_CODE, -} from '../../../../../shared_imports'; +} from '../../../../shared_imports'; +import { IMitreEnterpriseAttack } from '../../../pages/detection_engine/rules/types'; import { isMitreAttackInvalid } from '../mitre/helpers'; import { OptionalFieldLabel } from '../optional_field_label'; import { isUrlInvalid } from './helpers'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/index.test.tsx index 76a3c590a62a..cd499c60b123 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/index.test.tsx @@ -9,13 +9,13 @@ import { EuiProgress, EuiButtonGroup } from '@elastic/eui'; import { ThemeProvider } from 'styled-components'; import euiDarkVars from '@elastic/eui/dist/eui_theme_light.json'; -import { StepAboutRuleToggleDetails } from './'; -import { mockAboutStepRule } from '../../all/__mocks__/mock'; -import { HeaderSection } from '../../../../../components/header_section'; -import { StepAboutRule } from '../step_about_rule/'; -import { AboutStepRule } from '../../types'; +import { StepAboutRuleToggleDetails } from '.'; +import { mockAboutStepRule } from '../../../pages/detection_engine/rules/all/__mocks__/mock'; +import { HeaderSection } from '../../../../common/components/header_section'; +import { StepAboutRule } from '../step_about_rule'; +import { AboutStepRule } from '../../../pages/detection_engine/rules/types'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/index.tsx index 5d9803214fa0..2163ea80f673 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/index.tsx @@ -19,11 +19,11 @@ import React, { memo, useCallback, useState } from 'react'; import styled from 'styled-components'; import { isEmpty } from 'lodash/fp'; -import { HeaderSection } from '../../../../../components/header_section'; -import { Markdown } from '../../../../../components/markdown'; -import { AboutStepRule, AboutStepRuleDetails } from '../../types'; +import { HeaderSection } from '../../../../common/components/header_section'; +import { Markdown } from '../../../../common/components/markdown'; +import { AboutStepRule, AboutStepRuleDetails } from '../../../pages/detection_engine/rules/types'; import * as i18n from './translations'; -import { StepAboutRule } from '../step_about_rule/'; +import { StepAboutRule } from '../step_about_rule'; const MyPanel = styled(EuiPanel)` position: relative; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/translations.ts b/x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_about_rule_details/translations.ts rename to x-pack/plugins/siem/public/alerts/components/rules/step_about_rule_details/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_content_wrapper/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_content_wrapper/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_content_wrapper/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_content_wrapper/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_content_wrapper/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_content_wrapper/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_content_wrapper/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_content_wrapper/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/index.test.tsx index ebef6348d477..6831548992ff 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/index.test.tsx @@ -9,7 +9,7 @@ import { shallow } from 'enzyme'; import { StepDefineRule } from './index'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('StepDefineRule', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/index.tsx index 3517c6fb21e6..119f851ecdfe 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/index.tsx @@ -9,15 +9,24 @@ import React, { FC, memo, useCallback, useState, useEffect } from 'react'; import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; -import { DEFAULT_INDEX_KEY } from '../../../../../../common/constants'; -import { isMlRule } from '../../../../../../common/machine_learning/helpers'; -import { IIndexPattern } from '../../../../../../../../../src/plugins/data/public'; -import { useFetchIndexPatterns } from '../../../../../containers/detection_engine/rules'; -import { DEFAULT_TIMELINE_TITLE } from '../../../../../components/timeline/translations'; -import { useMlCapabilities } from '../../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { useUiSetting$ } from '../../../../../lib/kibana'; -import { setFieldValue } from '../../helpers'; -import { DefineStepRule, RuleStep, RuleStepProps } from '../../types'; +import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; +import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; +import { IIndexPattern } from '../../../../../../../../src/plugins/data/public'; +import { useFetchIndexPatterns } from '../../../../alerts/containers/detection_engine/rules'; +import { DEFAULT_TIMELINE_TITLE } from '../../../../timelines/components/timeline/translations'; +import { useMlCapabilities } from '../../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { useUiSetting$ } from '../../../../common/lib/kibana'; +import { setFieldValue } from '../../../pages/detection_engine/rules/helpers'; +import { + filterRuleFieldsForType, + RuleFields, +} from '../../../pages/detection_engine/rules/create/helpers'; +import { + DefineStepRule, + RuleStep, + RuleStepProps, +} from '../../../pages/detection_engine/rules/types'; import { StepRuleDescription } from '../description_step'; import { QueryBarDefineRule } from '../query_bar'; import { SelectRuleType } from '../select_rule_type'; @@ -34,11 +43,9 @@ import { UseField, useForm, FormSchema, -} from '../../../../../shared_imports'; +} from '../../../../shared_imports'; import { schema } from './schema'; import * as i18n from './translations'; -import { filterRuleFieldsForType, RuleFields } from '../../create/helpers'; -import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; const CommonUseField = getUseField({ component: Field }); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/schema.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/schema.tsx index 08832c5dfe4f..babfebb2c6ca 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/schema.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/schema.tsx @@ -9,8 +9,8 @@ import { EuiText } from '@elastic/eui'; import { isEmpty } from 'lodash/fp'; import React from 'react'; -import { isMlRule } from '../../../../../../common/machine_learning/helpers'; -import { esKuery } from '../../../../../../../../../src/plugins/data/public'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; +import { esKuery } from '../../../../../../../../src/plugins/data/public'; import { FieldValueQueryBar } from '../query_bar'; import { ERROR_CODE, @@ -18,7 +18,7 @@ import { fieldValidators, FormSchema, ValidationFunc, -} from '../../../../../shared_imports'; +} from '../../../../shared_imports'; import { CUSTOM_QUERY_REQUIRED, INVALID_CUSTOM_QUERY, INDEX_HELPER_TEXT } from './translations'; export const schema: FormSchema = { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/translations.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/translations.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/translations.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/translations.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/types.ts b/x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/types.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_define_rule/types.ts rename to x-pack/plugins/siem/public/alerts/components/rules/step_define_rule/types.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_panel/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_panel/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_panel/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_panel/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_panel/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_panel/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_panel/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_panel/index.tsx index 1923ed09252d..ef8cfc99a3b1 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_panel/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_panel/index.tsx @@ -8,7 +8,7 @@ import { EuiPanel, EuiProgress } from '@elastic/eui'; import React, { memo } from 'react'; import styled from 'styled-components'; -import { HeaderSection } from '../../../../../components/header_section'; +import { HeaderSection } from '../../../../common/components/header_section'; interface StepPanelProps { children: React.ReactNode; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.test.tsx index 69d118ba9f28..712aacd3e3e8 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.test.tsx @@ -9,7 +9,7 @@ import { shallow } from 'enzyme'; import { StepRuleActions } from './index'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('StepRuleActions', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx index aec315938b6a..2d22f0a3437f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx @@ -8,14 +8,18 @@ import { EuiHorizontalRule, EuiFlexGroup, EuiFlexItem, EuiButton, EuiSpacer } fr import React, { FC, memo, useCallback, useEffect, useMemo, useState } from 'react'; import deepEqual from 'fast-deep-equal'; -import { setFieldValue } from '../../helpers'; -import { RuleStep, RuleStepProps, ActionsStepRule } from '../../types'; +import { setFieldValue } from '../../../pages/detection_engine/rules/helpers'; +import { + RuleStep, + RuleStepProps, + ActionsStepRule, +} from '../../../pages/detection_engine/rules/types'; import { StepRuleDescription } from '../description_step'; -import { Form, UseField, useForm } from '../../../../../shared_imports'; +import { Form, UseField, useForm } from '../../../../shared_imports'; import { StepContentWrapper } from '../step_content_wrapper'; import { ThrottleSelectField, THROTTLE_OPTIONS } from '../throttle_select_field'; import { RuleActionsField } from '../rule_actions_field'; -import { useKibana } from '../../../../../lib/kibana'; +import { useKibana } from '../../../../common/lib/kibana'; import { schema } from './schema'; import * as I18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx index 1b27d0e0fcc0..a978e038985f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/schema.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx @@ -8,7 +8,7 @@ import { i18n } from '@kbn/i18n'; -import { FormSchema } from '../../../../../shared_imports'; +import { FormSchema } from '../../../../shared_imports'; export const schema: FormSchema = { actions: {}, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/translations.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/translations.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_rule_actions/translations.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/translations.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/index.test.tsx index 98de933590d6..6f5eddfe051a 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { shallow, mount } from 'enzyme'; -import { TestProviders } from '../../../../../mock'; +import { TestProviders } from '../../../../common/mock'; import { StepScheduleRule } from './index'; describe('StepScheduleRule', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/index.tsx index de9abcefdea2..fa49637a0c83 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/index.tsx @@ -8,11 +8,15 @@ import React, { FC, memo, useCallback, useEffect, useState } from 'react'; import deepEqual from 'fast-deep-equal'; import styled from 'styled-components'; -import { setFieldValue } from '../../helpers'; -import { RuleStep, RuleStepProps, ScheduleStepRule } from '../../types'; +import { setFieldValue } from '../../../pages/detection_engine/rules/helpers'; +import { + RuleStep, + RuleStepProps, + ScheduleStepRule, +} from '../../../pages/detection_engine/rules/types'; import { StepRuleDescription } from '../description_step'; import { ScheduleItem } from '../schedule_item_form'; -import { Form, UseField, useForm } from '../../../../../shared_imports'; +import { Form, UseField, useForm } from '../../../../shared_imports'; import { StepContentWrapper } from '../step_content_wrapper'; import { NextStep } from '../next_step'; import { schema } from './schema'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/schema.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/schema.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/schema.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/schema.tsx index e79aec2be6e1..99ff8a672737 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/schema.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/schema.tsx @@ -9,7 +9,7 @@ import { i18n } from '@kbn/i18n'; import { OptionalFieldLabel } from '../optional_field_label'; -import { FormSchema } from '../../../../../shared_imports'; +import { FormSchema } from '../../../../shared_imports'; export const schema: FormSchema = { interval: { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/translations.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/translations.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/step_schedule_rule/translations.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/step_schedule_rule/translations.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/throttle_select_field/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/throttle_select_field/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.test.tsx index 0ab19b671494..2a13c40a0dd1 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/throttle_select_field/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { ThrottleSelectField } from './index'; -import { useFormFieldMock } from '../../../../../mock'; +import { useFormFieldMock } from '../../../../common/mock'; describe('ThrottleSelectField', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/throttle_select_field/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/components/throttle_select_field/index.tsx rename to x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx index 0cf15c41a0f9..281c45b19ece 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/components/throttle_select_field/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx @@ -9,8 +9,8 @@ import React, { useCallback } from 'react'; import { NOTIFICATION_THROTTLE_RULE, NOTIFICATION_THROTTLE_NO_ACTIONS, -} from '../../../../../../common/constants'; -import { SelectField } from '../../../../../shared_imports'; +} from '../../../../../common/constants'; +import { SelectField } from '../../../../shared_imports'; export const THROTTLE_OPTIONS = [ { value: NOTIFICATION_THROTTLE_NO_ACTIONS, text: 'Perform no actions' }, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/actions.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals/actions.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/actions.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/actions.test.tsx index ab75fcb6d6d1..d3be87ce7c39 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/actions.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/actions.test.tsx @@ -12,10 +12,10 @@ import { defaultTimelineProps, apolloClient, mockTimelineApolloResult, -} from '../../../../mock/'; +} from '../../../common/mock/'; import { CreateTimeline, UpdateTimelineLoading } from './types'; -import { Ecs } from '../../../../graphql/types'; -import { TimelineType } from '../../../../../common/types/timeline'; +import { Ecs } from '../../../graphql/types'; +import { TimelineType } from '../../../../common/types/timeline'; jest.mock('apollo-client'); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/actions.tsx b/x-pack/plugins/siem/public/alerts/components/signals/actions.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/actions.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/actions.tsx index c71ede32d840..044633da62f6 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/actions.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/actions.tsx @@ -8,16 +8,16 @@ import dateMath from '@elastic/datemath'; import { getOr, isEmpty } from 'lodash/fp'; import moment from 'moment'; -import { updateSignalStatus } from '../../../../containers/detection_engine/signals/api'; +import { updateSignalStatus } from '../../containers/detection_engine/signals/api'; import { SendSignalToTimelineActionProps, UpdateSignalStatusActionProps } from './types'; -import { TimelineNonEcsData, GetOneTimeline, TimelineResult, Ecs } from '../../../../graphql/types'; -import { oneTimelineQuery } from '../../../../containers/timeline/one/index.gql_query'; +import { TimelineNonEcsData, GetOneTimeline, TimelineResult, Ecs } from '../../../graphql/types'; +import { oneTimelineQuery } from '../../../timelines/containers/one/index.gql_query'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { omitTypenameInTimeline, formatTimelineResultToModel, -} from '../../../../components/open_timeline/helpers'; -import { convertKueryToElasticSearchQuery } from '../../../../lib/keury'; -import { timelineDefaults } from '../../../../store/timeline/defaults'; +} from '../../../timelines/components/open_timeline/helpers'; +import { convertKueryToElasticSearchQuery } from '../../../common/lib/keury'; import { replaceTemplateFieldFromQuery, replaceTemplateFieldFromMatchFilters, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/default_config.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals/default_config.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/default_config.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/default_config.test.tsx index 5428b9932fbd..71da68108da7 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/default_config.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/default_config.test.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; -import { Filter } from '../../../../../../../../src/plugins/data/common/es_query'; -import { TimelineAction } from '../../../../components/timeline/body/actions'; +import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; +import { TimelineAction } from '../../../timelines/components/timeline/body/actions'; import { buildSignalsRuleIdFilter, getSignalsActions } from './default_config'; import { CreateTimeline, @@ -16,7 +16,7 @@ import { SetEventsLoadingProps, UpdateTimelineLoading, } from './types'; -import { mockEcsDataWithSignal } from '../../../../mock/mock_ecs'; +import { mockEcsDataWithSignal } from '../../../common/mock/mock_ecs'; import { sendSignalToTimelineAction, updateSignalStatusAction } from './actions'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/default_config.tsx b/x-pack/plugins/siem/public/alerts/components/signals/default_config.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/default_config.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/default_config.tsx index 81b643b7894d..05e0baba66d0 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/default_config.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/default_config.tsx @@ -10,15 +10,18 @@ import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; import ApolloClient from 'apollo-client'; import React from 'react'; -import { Filter } from '../../../../../../../../src/plugins/data/common/es_query'; -import { TimelineAction, TimelineActionProps } from '../../../../components/timeline/body/actions'; -import { defaultColumnHeaderType } from '../../../../components/timeline/body/column_headers/default_headers'; +import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; +import { + TimelineAction, + TimelineActionProps, +} from '../../../timelines/components/timeline/body/actions'; +import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { DEFAULT_COLUMN_MIN_WIDTH, DEFAULT_DATE_COLUMN_MIN_WIDTH, -} from '../../../../components/timeline/body/constants'; -import { ColumnHeaderOptions, SubsetTimelineModel } from '../../../../store/timeline/model'; -import { timelineDefaults } from '../../../../store/timeline/defaults'; +} from '../../../timelines/components/timeline/body/constants'; +import { ColumnHeaderOptions, SubsetTimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { FILTER_OPEN } from './signals_filter_group'; import { sendSignalToTimelineAction, updateSignalStatusAction } from './actions'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/helpers.test.ts b/x-pack/plugins/siem/public/alerts/components/signals/helpers.test.ts similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/helpers.test.ts rename to x-pack/plugins/siem/public/alerts/components/signals/helpers.test.ts index a948d2b940b0..ad4f5cf8b4aa 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/helpers.test.ts +++ b/x-pack/plugins/siem/public/alerts/components/signals/helpers.test.ts @@ -3,6 +3,12 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ +import { cloneDeep } from 'lodash/fp'; + +import { mockEcsData } from '../../../common/mock/mock_ecs'; +import { Filter } from '../../../../../../../src/plugins/data/public'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { mockDataProviders } from '../../../timelines/components/timeline/data_providers/mock/mock_data_providers'; import { getStringArray, @@ -10,11 +16,6 @@ import { replaceTemplateFieldFromMatchFilters, reformatDataProviderWithNewValue, } from './helpers'; -import { mockEcsData } from '../../../../mock/mock_ecs'; -import { Filter } from '../../../../../../../../src/plugins/data/public'; -import { DataProvider } from '../../../../components/timeline/data_providers/data_provider'; -import { mockDataProviders } from '../../../../components/timeline/data_providers/mock/mock_data_providers'; -import { cloneDeep } from 'lodash/fp'; describe('helpers', () => { let mockEcsDataClone = cloneDeep(mockEcsData); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/helpers.ts b/x-pack/plugins/siem/public/alerts/components/signals/helpers.ts similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/helpers.ts rename to x-pack/plugins/siem/public/alerts/components/signals/helpers.ts index 3fa2da37046b..5099d61254ca 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/helpers.ts +++ b/x-pack/plugins/siem/public/alerts/components/signals/helpers.ts @@ -5,12 +5,12 @@ */ import { get, isEmpty } from 'lodash/fp'; -import { Filter, esKuery, KueryNode } from '../../../../../../../../src/plugins/data/public'; +import { Filter, esKuery, KueryNode } from '../../../../../../../src/plugins/data/public'; import { DataProvider, DataProvidersAnd, -} from '../../../../components/timeline/data_providers/data_provider'; -import { Ecs } from '../../../../graphql/types'; +} from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Ecs } from '../../../graphql/types'; interface FindValueToChangeInQuery { field: string; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/index.tsx b/x-pack/plugins/siem/public/alerts/components/signals/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/index.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/index.tsx index 5442c8c19b5a..eb19cfea9732 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/index.tsx @@ -10,17 +10,17 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; -import { Filter, esQuery } from '../../../../../../../../src/plugins/data/public'; -import { useFetchIndexPatterns } from '../../../../containers/detection_engine/rules/fetch_index_patterns'; -import { StatefulEventsViewer } from '../../../../components/events_viewer'; -import { HeaderSection } from '../../../../components/header_section'; -import { combineQueries } from '../../../../components/timeline/helpers'; -import { useKibana } from '../../../../lib/kibana'; -import { inputsSelectors, State, inputsModel } from '../../../../store'; -import { timelineActions, timelineSelectors } from '../../../../store/timeline'; -import { TimelineModel } from '../../../../store/timeline/model'; -import { timelineDefaults } from '../../../../store/timeline/defaults'; -import { useApolloClient } from '../../../../utils/apollo_context'; +import { Filter, esQuery } from '../../../../../../../src/plugins/data/public'; +import { useFetchIndexPatterns } from '../../../alerts/containers/detection_engine/rules/fetch_index_patterns'; +import { StatefulEventsViewer } from '../../../common/components/events_viewer'; +import { HeaderSection } from '../../../common/components/header_section'; +import { combineQueries } from '../../../timelines/components/timeline/helpers'; +import { useKibana } from '../../../common/lib/kibana'; +import { inputsSelectors, State, inputsModel } from '../../../common/store'; +import { timelineActions, timelineSelectors } from '../../../timelines/store/timeline'; +import { TimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; +import { useApolloClient } from '../../../common/utils/apollo_context'; import { updateSignalStatusAction } from './actions'; import { @@ -45,7 +45,7 @@ import { UpdateSignalsStatusCallback, UpdateSignalsStatusProps, } from './types'; -import { dispatchUpdateTimeline } from '../../../../components/open_timeline/helpers'; +import { dispatchUpdateTimeline } from '../../../timelines/components/open_timeline/helpers'; export const SIGNALS_PAGE_TIMELINE_ID = 'signals-page'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_filter_group/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals/signals_filter_group/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_filter_group/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/signals_filter_group/index.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_filter_group/index.tsx b/x-pack/plugins/siem/public/alerts/components/signals/signals_filter_group/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_filter_group/index.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/signals_filter_group/index.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/index.test.tsx index 6cab43b5285b..3b43185c2c16 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/index.test.tsx @@ -9,7 +9,7 @@ import { shallow } from 'enzyme'; import { SignalsUtilityBar } from './index'; -jest.mock('../../../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('SignalsUtilityBar', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/index.tsx b/x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/index.tsx rename to x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/index.tsx index b9268716f85f..e23f4ebdd3d3 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/index.tsx @@ -8,17 +8,17 @@ import { isEmpty } from 'lodash/fp'; import React, { useCallback } from 'react'; import numeral from '@elastic/numeral'; -import { DEFAULT_NUMBER_FORMAT } from '../../../../../../common/constants'; +import { DEFAULT_NUMBER_FORMAT } from '../../../../../common/constants'; import { UtilityBar, UtilityBarAction, UtilityBarGroup, UtilityBarSection, UtilityBarText, -} from '../../../../../components/utility_bar'; +} from '../../../../common/components/utility_bar'; import * as i18n from './translations'; -import { useUiSetting$ } from '../../../../../lib/kibana'; -import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { useUiSetting$ } from '../../../../common/lib/kibana'; +import { TimelineNonEcsData } from '../../../../graphql/types'; import { UpdateSignalsStatus } from '../types'; import { FILTER_CLOSED, FILTER_OPEN } from '../signals_filter_group'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/translations.ts b/x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/signals_utility_bar/translations.ts rename to x-pack/plugins/siem/public/alerts/components/signals/signals_utility_bar/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/translations.ts b/x-pack/plugins/siem/public/alerts/components/signals/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/translations.ts rename to x-pack/plugins/siem/public/alerts/components/signals/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/types.ts b/x-pack/plugins/siem/public/alerts/components/signals/types.ts similarity index 90% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals/types.ts rename to x-pack/plugins/siem/public/alerts/components/signals/types.ts index 909b21764674..b3c770415ed5 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals/types.ts +++ b/x-pack/plugins/siem/public/alerts/components/signals/types.ts @@ -6,9 +6,9 @@ import ApolloClient from 'apollo-client'; -import { Ecs } from '../../../../graphql/types'; -import { TimelineModel } from '../../../../store/timeline/model'; -import { inputsModel } from '../../../../store'; +import { Ecs } from '../../../graphql/types'; +import { TimelineModel } from '../../../timelines/store/timeline/model'; +import { inputsModel } from '../../../common/store'; export interface SetEventsLoadingProps { eventIds: string[]; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/config.ts b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/config.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/config.ts rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/config.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/helpers.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/helpers.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/helpers.tsx b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/helpers.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/helpers.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/helpers.tsx index 24b12cae62d8..0c9fa39e53d0 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/helpers.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/helpers.tsx @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { showAllOthersBucket } from '../../../../../common/constants'; +import { showAllOthersBucket } from '../../../../common/constants'; import { HistogramData, SignalsAggregation, SignalsBucket, SignalsGroupBucket } from './types'; -import { SignalSearchResponse } from '../../../../containers/detection_engine/signals/types'; +import { SignalSearchResponse } from '../../containers/detection_engine/signals/types'; import * as i18n from './translations'; export const formatSignalsData = ( diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/index.test.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/index.test.tsx index 6921c49d8a8b..6578af19094d 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/index.test.tsx @@ -9,8 +9,8 @@ import { shallow } from 'enzyme'; import { SignalsHistogramPanel } from './index'; -jest.mock('../../../../lib/kibana'); -jest.mock('../../../../components/navigation/use_get_url_search'); +jest.mock('../../../common/lib/kibana'); +jest.mock('../../../common/components/navigation/use_get_url_search'); describe('SignalsHistogramPanel', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/index.tsx b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/index.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/index.tsx index 9b336766b172..0a1ce5a39af8 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/index.tsx @@ -11,21 +11,21 @@ import styled from 'styled-components'; import { isEmpty } from 'lodash/fp'; import uuid from 'uuid'; -import { DEFAULT_NUMBER_FORMAT } from '../../../../../common/constants'; -import { UpdateDateRange } from '../../../../components/charts/common'; -import { LegendItem } from '../../../../components/charts/draggable_legend_item'; -import { escapeDataProviderId } from '../../../../components/drag_and_drop/helpers'; -import { HeaderSection } from '../../../../components/header_section'; -import { Filter, esQuery, Query } from '../../../../../../../../src/plugins/data/public'; -import { useQuerySignals } from '../../../../containers/detection_engine/signals/use_query'; -import { getDetectionEngineUrl } from '../../../../components/link_to'; -import { defaultLegendColors } from '../../../../components/matrix_histogram/utils'; -import { InspectButtonContainer } from '../../../../components/inspect'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; -import { MatrixLoader } from '../../../../components/matrix_histogram/matrix_loader'; -import { MatrixHistogramOption } from '../../../../components/matrix_histogram/types'; -import { useKibana, useUiSetting$ } from '../../../../lib/kibana'; -import { navTabs } from '../../../home/home_navigations'; +import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; +import { UpdateDateRange } from '../../../common/components/charts/common'; +import { LegendItem } from '../../../common/components/charts/draggable_legend_item'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { HeaderSection } from '../../../common/components/header_section'; +import { Filter, esQuery, Query } from '../../../../../../../src/plugins/data/public'; +import { useQuerySignals } from '../../containers/detection_engine/signals/use_query'; +import { getDetectionEngineUrl } from '../../../common/components/link_to'; +import { defaultLegendColors } from '../../../common/components/matrix_histogram/utils'; +import { InspectButtonContainer } from '../../../common/components/inspect'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { MatrixLoader } from '../../../common/components/matrix_histogram/matrix_loader'; +import { MatrixHistogramOption } from '../../../common/components/matrix_histogram/types'; +import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; +import { navTabs } from '../../../app/home/home_navigations'; import { signalsHistogramOptions } from './config'; import { formatSignalsData, getSignalsHistogramQuery, showInitialLoadingSpinner } from './helpers'; import { SignalsHistogram } from './signals_histogram'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/signals_histogram.test.tsx b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/signals_histogram.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/signals_histogram.test.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/signals_histogram.test.tsx index 6a116efb8f2f..f921c00cdafb 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/signals_histogram.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/signals_histogram.test.tsx @@ -9,7 +9,7 @@ import { shallow } from 'enzyme'; import { SignalsHistogram } from './signals_histogram'; -jest.mock('../../../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); describe('SignalsHistogram', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/signals_histogram.tsx b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/signals_histogram.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/signals_histogram.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/signals_histogram.tsx index a031f2542b87..3c6e7b84fd2b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/signals_histogram.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/signals_histogram.tsx @@ -15,10 +15,10 @@ import { import { EuiFlexGroup, EuiFlexItem, EuiProgress } from '@elastic/eui'; import React, { useMemo } from 'react'; -import { useTheme, UpdateDateRange } from '../../../../components/charts/common'; -import { histogramDateTimeFormatter } from '../../../../components/utils'; -import { DraggableLegend } from '../../../../components/charts/draggable_legend'; -import { LegendItem } from '../../../../components/charts/draggable_legend_item'; +import { useTheme, UpdateDateRange } from '../../../common/components/charts/common'; +import { histogramDateTimeFormatter } from '../../../common/components/utils'; +import { DraggableLegend } from '../../../common/components/charts/draggable_legend'; +import { LegendItem } from '../../../common/components/charts/draggable_legend_item'; import { HistogramData } from './types'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/translations.ts b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/translations.ts rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/types.ts b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/types.ts similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/types.ts rename to x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/types.ts index 6ef4cecc4ec8..41d58a4a7391 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_histogram_panel/types.ts +++ b/x-pack/plugins/siem/public/alerts/components/signals_histogram_panel/types.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { inputsModel } from '../../../../store'; +import { inputsModel } from '../../../common/store'; export interface SignalsHistogramOption { text: string; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/index.tsx b/x-pack/plugins/siem/public/alerts/components/signals_info/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/index.tsx rename to x-pack/plugins/siem/public/alerts/components/signals_info/index.tsx index e7cdc3345c03..b1d7f2cfe7eb 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/signals_info/index.tsx @@ -8,7 +8,7 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import { FormattedRelative } from '@kbn/i18n/react'; import React, { useState, useEffect } from 'react'; -import { useQuerySignals } from '../../../../containers/detection_engine/signals/use_query'; +import { useQuerySignals } from '../../containers/detection_engine/signals/use_query'; import { buildLastSignalsQuery } from './query.dsl'; import { Aggs } from './types'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/query.dsl.ts b/x-pack/plugins/siem/public/alerts/components/signals_info/query.dsl.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/query.dsl.ts rename to x-pack/plugins/siem/public/alerts/components/signals_info/query.dsl.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/types.ts b/x-pack/plugins/siem/public/alerts/components/signals_info/types.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/components/signals_info/types.ts rename to x-pack/plugins/siem/public/alerts/components/signals_info/types.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/user_info/index.test.tsx b/x-pack/plugins/siem/public/alerts/components/user_info/index.test.tsx similarity index 71% rename from x-pack/plugins/siem/public/pages/detection_engine/components/user_info/index.test.tsx rename to x-pack/plugins/siem/public/alerts/components/user_info/index.test.tsx index b3d710de5e94..81b2c4347e17 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/user_info/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/components/user_info/index.test.tsx @@ -7,12 +7,12 @@ import { renderHook } from '@testing-library/react-hooks'; import { useUserInfo } from './index'; -import { usePrivilegeUser } from '../../../../containers/detection_engine/signals/use_privilege_user'; -import { useSignalIndex } from '../../../../containers/detection_engine/signals/use_signal_index'; -import { useKibana } from '../../../../lib/kibana'; -jest.mock('../../../../containers/detection_engine/signals/use_privilege_user'); -jest.mock('../../../../containers/detection_engine/signals/use_signal_index'); -jest.mock('../../../../lib/kibana'); +import { usePrivilegeUser } from '../../containers/detection_engine/signals/use_privilege_user'; +import { useSignalIndex } from '../../containers/detection_engine/signals/use_signal_index'; +import { useKibana } from '../../../common/lib/kibana'; +jest.mock('../../containers/detection_engine/signals/use_privilege_user'); +jest.mock('../../containers/detection_engine/signals/use_signal_index'); +jest.mock('../../../common/lib/kibana'); describe('useUserInfo', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/components/user_info/index.tsx b/x-pack/plugins/siem/public/alerts/components/user_info/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/components/user_info/index.tsx rename to x-pack/plugins/siem/public/alerts/components/user_info/index.tsx index 9e45371fb605..faf901629255 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/components/user_info/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/user_info/index.tsx @@ -7,9 +7,9 @@ import { noop } from 'lodash/fp'; import React, { useEffect, useReducer, Dispatch, createContext, useContext } from 'react'; -import { usePrivilegeUser } from '../../../../containers/detection_engine/signals/use_privilege_user'; -import { useSignalIndex } from '../../../../containers/detection_engine/signals/use_signal_index'; -import { useKibana } from '../../../../lib/kibana'; +import { usePrivilegeUser } from '../../containers/detection_engine/signals/use_privilege_user'; +import { useSignalIndex } from '../../containers/detection_engine/signals/use_signal_index'; +import { useKibana } from '../../../common/lib/kibana'; export interface State { canUserCRUD: boolean | null; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/__mocks__/api.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/__mocks__/api.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/__mocks__/api.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/__mocks__/api.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/api.test.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/api.test.ts similarity index 99% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/api.test.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/api.test.ts index 9eb4acbdb616..abba7c02cf87 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/api.test.ts +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/api.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KibanaServices } from '../../../lib/kibana'; +import { KibanaServices } from '../../../../common/lib/kibana'; import { addRule, fetchRules, @@ -23,7 +23,7 @@ import { ruleMock, rulesMock } from './mock'; const abortCtrl = new AbortController(); const mockKibanaServices = KibanaServices.get as jest.Mock; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); const fetchMock = jest.fn(); mockKibanaServices.mockReturnValue({ http: { fetch: fetchMock } }); diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/api.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/api.ts similarity index 98% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/api.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/api.ts index c1fadf289ef4..9ae29a740dd8 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/api.ts +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/api.ts @@ -10,7 +10,7 @@ import { DETECTION_ENGINE_RULES_STATUS_URL, DETECTION_ENGINE_PREPACKAGED_RULES_STATUS_URL, DETECTION_ENGINE_TAGS_URL, -} from '../../../../common/constants'; +} from '../../../../../common/constants'; import { AddRulesProps, DeleteRulesProps, @@ -29,7 +29,7 @@ import { PrePackagedRulesStatusResponse, BulkRuleResponse, } from './types'; -import { KibanaServices } from '../../../lib/kibana'; +import { KibanaServices } from '../../../../common/lib/kibana'; import * as i18n from '../../../pages/detection_engine/rules/translations'; /** diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/fetch_index_patterns.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/fetch_index_patterns.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/fetch_index_patterns.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/fetch_index_patterns.test.tsx index 8c688fe5615f..79d5886f8845 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/fetch_index_patterns.test.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/fetch_index_patterns.test.tsx @@ -6,14 +6,14 @@ import { renderHook, act } from '@testing-library/react-hooks'; -import { DEFAULT_INDEX_PATTERN } from '../../../../common/constants'; -import { useApolloClient } from '../../../utils/apollo_context'; -import { mocksSource } from '../../source/mock'; +import { DEFAULT_INDEX_PATTERN } from '../../../../../common/constants'; +import { useApolloClient } from '../../../../common/utils/apollo_context'; +import { mocksSource } from '../../../../common/containers/source/mock'; import { useFetchIndexPatterns, Return } from './fetch_index_patterns'; const mockUseApolloClient = useApolloClient as jest.Mock; -jest.mock('../../../utils/apollo_context'); +jest.mock('../../../../common/utils/apollo_context'); describe('useFetchIndexPatterns', () => { beforeEach(() => { diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/fetch_index_patterns.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/fetch_index_patterns.tsx similarity index 89% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/fetch_index_patterns.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/fetch_index_patterns.tsx index 7e222045a1a3..dec9f344e16b 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/fetch_index_patterns.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/fetch_index_patterns.tsx @@ -8,16 +8,16 @@ import { isEmpty, get } from 'lodash/fp'; import { useEffect, useState, Dispatch, SetStateAction } from 'react'; import deepEqual from 'fast-deep-equal'; -import { IIndexPattern } from '../../../../../../../src/plugins/data/public'; +import { IIndexPattern } from '../../../../../../../../src/plugins/data/public'; import { BrowserFields, getBrowserFields, getIndexFields, sourceQuery, -} from '../../../containers/source'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; -import { SourceQuery } from '../../../graphql/types'; -import { useApolloClient } from '../../../utils/apollo_context'; +} from '../../../../common/containers/source'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; +import { SourceQuery } from '../../../../graphql/types'; +import { useApolloClient } from '../../../../common/utils/apollo_context'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/index.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/index.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/index.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/index.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/mock.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/mock.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/mock.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/mock.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/persist_rule.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/persist_rule.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/persist_rule.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/persist_rule.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/persist_rule.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/persist_rule.tsx similarity index 94% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/persist_rule.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/persist_rule.tsx index 4d4f6c9d8f63..03080bf68cbf 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/persist_rule.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/persist_rule.tsx @@ -6,7 +6,7 @@ import { useEffect, useState, Dispatch } from 'react'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { addRule as persistRule } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/translations.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/translations.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/translations.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/types.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/types.ts similarity index 98% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/types.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/types.ts index f89d21ef1aeb..897568cdbf16 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/types.ts +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/types.ts @@ -6,7 +6,7 @@ import * as t from 'io-ts'; -import { RuleTypeSchema } from '../../../../common/detection_engine/types'; +import { RuleTypeSchema } from '../../../../../common/detection_engine/types'; /** * Params is an "record", since it is a type of AlertActionParams which is action templates. diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_pre_packaged_rules.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_pre_packaged_rules.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_pre_packaged_rules.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_pre_packaged_rules.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_pre_packaged_rules.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_pre_packaged_rules.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_pre_packaged_rules.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_pre_packaged_rules.tsx index 44d5de10e361..f1897002e13c 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_pre_packaged_rules.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_pre_packaged_rules.tsx @@ -6,7 +6,11 @@ import { useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster, displaySuccessToast } from '../../../components/toasters'; +import { + errorToToaster, + useStateToaster, + displaySuccessToast, +} from '../../../../common/components/toasters'; import { getPrePackagedRulesStatus, createPrepackagedRules } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule.tsx similarity index 94% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule.tsx index d6a49e006e1b..6ae5da3e56ff 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule.tsx @@ -6,7 +6,7 @@ import { useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { fetchRuleById } from './api'; import * as i18n from './translations'; import { Rule } from './types'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule_status.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule_status.test.tsx index f74c2bad1019..f203eca42cde 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule_status.test.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule_status.test.tsx @@ -12,7 +12,7 @@ import { ReturnRulesStatuses, } from './use_rule_status'; import * as api from './api'; -import { Rule } from '../rules/types'; +import { Rule } from './types'; jest.mock('./api'); diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule_status.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule_status.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule_status.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule_status.tsx index 412fc0706b15..9164f38d2ac2 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rule_status.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rule_status.tsx @@ -6,7 +6,7 @@ import { useEffect, useRef, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { RuleStatusRowItemType } from '../../../pages/detection_engine/rules/all/columns'; import { getRuleStatusById, getRulesStatusByIds } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rules.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rules.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_rules.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rules.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rules.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rules.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_rules.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rules.tsx index 6e41e229c249..3a074f2bc378 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_rules.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_rules.tsx @@ -8,7 +8,7 @@ import { noop } from 'lodash/fp'; import { useEffect, useState, useRef } from 'react'; import { FetchRulesResponse, FilterOptions, PaginationOptions, Rule } from './types'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { fetchRules } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_tags.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_tags.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_tags.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_tags.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_tags.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_tags.tsx similarity index 94% rename from x-pack/plugins/siem/public/containers/detection_engine/rules/use_tags.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_tags.tsx index 669efedc619b..ebfe73f2f086 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/rules/use_tags.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/rules/use_tags.tsx @@ -6,7 +6,7 @@ import { noop } from 'lodash/fp'; import { useEffect, useState, useRef } from 'react'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { fetchTags } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/__mocks__/api.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/__mocks__/api.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/__mocks__/api.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/__mocks__/api.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/api.test.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/api.test.ts similarity index 97% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/api.test.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/api.test.ts index c011ecffb35b..67d81d19faa7 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/signals/api.test.ts +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/api.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KibanaServices } from '../../../lib/kibana'; +import { KibanaServices } from '../../../../common/lib/kibana'; import { signalsMock, mockSignalsQuery, @@ -22,7 +22,7 @@ import { const abortCtrl = new AbortController(); const mockKibanaServices = KibanaServices.get as jest.Mock; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); const fetchMock = jest.fn(); mockKibanaServices.mockReturnValue({ http: { fetch: fetchMock } }); diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/api.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/api.ts similarity index 96% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/api.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/api.ts index 1397e4a8696b..860305dd58e6 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/signals/api.ts +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/api.ts @@ -9,8 +9,8 @@ import { DETECTION_ENGINE_SIGNALS_STATUS_URL, DETECTION_ENGINE_INDEX_URL, DETECTION_ENGINE_PRIVILEGES_URL, -} from '../../../../common/constants'; -import { KibanaServices } from '../../../lib/kibana'; +} from '../../../../../common/constants'; +import { KibanaServices } from '../../../../common/lib/kibana'; import { BasicSignals, Privilege, diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/mock.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/mock.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/mock.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/mock.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/translations.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/translations.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/translations.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/types.ts b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/types.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/types.ts rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/types.ts diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_privilege_user.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_privilege_user.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/use_privilege_user.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_privilege_user.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_privilege_user.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_privilege_user.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/use_privilege_user.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_privilege_user.tsx index 140dd1544b12..e67afd686a7c 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_privilege_user.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_privilege_user.tsx @@ -6,7 +6,7 @@ import { useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { getUserPrivilege } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_query.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_query.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/use_query.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_query.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_query.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_query.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/use_query.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_query.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_signal_index.test.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_signal_index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/use_signal_index.test.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_signal_index.test.tsx diff --git a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_signal_index.tsx b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_signal_index.tsx similarity index 95% rename from x-pack/plugins/siem/public/containers/detection_engine/signals/use_signal_index.tsx rename to x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_signal_index.tsx index a7f5c9731320..6c428bd9354e 100644 --- a/x-pack/plugins/siem/public/containers/detection_engine/signals/use_signal_index.tsx +++ b/x-pack/plugins/siem/public/alerts/containers/detection_engine/signals/use_signal_index.tsx @@ -6,10 +6,10 @@ import { useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../../../common/components/toasters'; import { createSignalIndex, getSignalIndex } from './api'; import * as i18n from './translations'; -import { isApiError } from '../../../utils/api'; +import { isApiError } from '../../../../common/utils/api'; type Func = () => void; diff --git a/x-pack/plugins/siem/public/alerts/index.ts b/x-pack/plugins/siem/public/alerts/index.ts new file mode 100644 index 000000000000..c1501419a1cf --- /dev/null +++ b/x-pack/plugins/siem/public/alerts/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { getAlertsRoutes } from './routes'; +import { SecuritySubPlugin } from '../app/types'; + +export class Alerts { + public setup() {} + + public start(): SecuritySubPlugin { + return { + routes: getAlertsRoutes(), + }; + } +} diff --git a/x-pack/plugins/siem/public/pages/detection_engine/mitre/mitre_tactics_techniques.ts b/x-pack/plugins/siem/public/alerts/mitre/mitre_tactics_techniques.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/mitre/mitre_tactics_techniques.ts rename to x-pack/plugins/siem/public/alerts/mitre/mitre_tactics_techniques.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/mitre/types.ts b/x-pack/plugins/siem/public/alerts/mitre/types.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/mitre/types.ts rename to x-pack/plugins/siem/public/alerts/mitre/types.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine.test.tsx similarity index 80% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine.test.tsx index 779e9a4557f2..de8a73283972 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine.test.tsx @@ -8,13 +8,13 @@ import React from 'react'; import { shallow } from 'enzyme'; import { useParams } from 'react-router-dom'; -import '../../mock/match_media'; -import { setAbsoluteRangeDatePicker } from '../../store/inputs/actions'; +import '../../../common/mock/match_media'; +import { setAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; import { DetectionEnginePageComponent } from './detection_engine'; -import { useUserInfo } from './components/user_info'; +import { useUserInfo } from '../../components/user_info'; -jest.mock('./components/user_info'); -jest.mock('../../lib/kibana'); +jest.mock('../../components/user_info'); +jest.mock('../../../common/lib/kibana'); jest.mock('react-router-dom', () => { const originalModule = jest.requireActual('react-router-dom'); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine.tsx similarity index 80% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine.tsx index 3e23700b08e6..a83a85678bd0 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine.tsx @@ -10,35 +10,38 @@ import { useParams } from 'react-router-dom'; import { StickyContainer } from 'react-sticky'; import { connect, ConnectedProps } from 'react-redux'; -import { GlobalTime } from '../../containers/global_time'; -import { indicesExistOrDataTemporarilyUnavailable, WithSource } from '../../containers/source'; -import { AlertsTable } from '../../components/alerts_viewer/alerts_table'; -import { UpdateDateRange } from '../../components/charts/common'; -import { FiltersGlobal } from '../../components/filters_global'; +import { GlobalTime } from '../../../common/containers/global_time'; +import { + indicesExistOrDataTemporarilyUnavailable, + WithSource, +} from '../../../common/containers/source'; +import { AlertsTable } from '../../../common/components/alerts_viewer/alerts_table'; +import { UpdateDateRange } from '../../../common/components/charts/common'; +import { FiltersGlobal } from '../../../common/components/filters_global'; import { getDetectionEngineTabUrl, getRulesUrl, -} from '../../components/link_to/redirect_to_detection_engine'; -import { SiemSearchBar } from '../../components/search_bar'; -import { WrapperPage } from '../../components/wrapper_page'; -import { SiemNavigation } from '../../components/navigation'; -import { NavTab } from '../../components/navigation/types'; -import { State } from '../../store'; -import { inputsSelectors } from '../../store/inputs'; -import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../store/inputs/actions'; -import { SpyRoute } from '../../utils/route/spy_routes'; -import { InputsRange } from '../../store/inputs/model'; -import { AlertsByCategory } from '../overview/alerts_by_category'; -import { useSignalInfo } from './components/signals_info'; -import { SignalsTable } from './components/signals'; -import { NoApiIntegrationKeyCallOut } from './components/no_api_integration_callout'; -import { NoWriteSignalsCallOut } from './components/no_write_signals_callout'; -import { SignalsHistogramPanel } from './components/signals_histogram_panel'; -import { signalsHistogramOptions } from './components/signals_histogram_panel/config'; -import { useUserInfo } from './components/user_info'; +} from '../../../common/components/link_to/redirect_to_detection_engine'; +import { SiemSearchBar } from '../../../common/components/search_bar'; +import { WrapperPage } from '../../../common/components/wrapper_page'; +import { SiemNavigation } from '../../../common/components/navigation'; +import { NavTab } from '../../../common/components/navigation/types'; +import { State } from '../../../common/store'; +import { inputsSelectors } from '../../../common/store/inputs'; +import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; +import { SpyRoute } from '../../../common/utils/route/spy_routes'; +import { InputsRange } from '../../../common/store/inputs/model'; +import { AlertsByCategory } from '../../../overview/components/alerts_by_category'; +import { useSignalInfo } from '../../components/signals_info'; +import { SignalsTable } from '../../components/signals'; +import { NoApiIntegrationKeyCallOut } from '../../components/no_api_integration_callout'; +import { NoWriteSignalsCallOut } from '../../components/no_write_signals_callout'; +import { SignalsHistogramPanel } from '../../components/signals_histogram_panel'; +import { signalsHistogramOptions } from '../../components/signals_histogram_panel/config'; +import { useUserInfo } from '../../components/user_info'; import { DetectionEngineEmptyPage } from './detection_engine_empty_page'; import { DetectionEngineNoIndex } from './detection_engine_no_signal_index'; -import { DetectionEngineHeaderPage } from './components/detection_engine_header_page'; +import { DetectionEngineHeaderPage } from '../../components/detection_engine_header_page'; import { DetectionEngineUserUnauthenticated } from './detection_engine_user_unauthenticated'; import * as i18n from './translations'; import { DetectionEngineTab } from './types'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_empty_page.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_empty_page.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine_empty_page.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_empty_page.test.tsx index f64526fd2f7c..039c878b121a 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_empty_page.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_empty_page.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { DetectionEngineEmptyPage } from './detection_engine_empty_page'; -jest.mock('../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); describe('DetectionEngineEmptyPage', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_empty_page.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_empty_page.tsx similarity index 83% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine_empty_page.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_empty_page.tsx index 7516bb13a9e7..3d8f221a0237 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_empty_page.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_empty_page.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { useKibana } from '../../lib/kibana'; -import { EmptyPage } from '../../components/empty_page'; -import * as i18n from '../common/translations'; +import { useKibana } from '../../../common/lib/kibana'; +import { EmptyPage } from '../../../common/components/empty_page'; +import * as i18n from '../../../common/translations'; export const DetectionEngineEmptyPage = React.memo(() => ( { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_no_signal_index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_no_signal_index.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine_no_signal_index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_no_signal_index.tsx index f1478ab5858c..59267b5d62a2 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_no_signal_index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_no_signal_index.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { EmptyPage } from '../../components/empty_page'; +import { EmptyPage } from '../../../common/components/empty_page'; import * as i18n from './translations'; -import { useKibana } from '../../lib/kibana'; +import { useKibana } from '../../../common/lib/kibana'; export const DetectionEngineNoIndex = React.memo(() => { const docLinks = useKibana().services.docLinks; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx index e71f4de2b010..5a1efe1c7185 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_user_unauthenticated.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { shallow } from 'enzyme'; import { DetectionEngineUserUnauthenticated } from './detection_engine_user_unauthenticated'; -jest.mock('../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); describe('DetectionEngineUserUnauthenticated', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_user_unauthenticated.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_user_unauthenticated.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/detection_engine/detection_engine_user_unauthenticated.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_user_unauthenticated.tsx index b5c805f92135..fc1fee1077bd 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/detection_engine_user_unauthenticated.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/detection_engine_user_unauthenticated.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { EmptyPage } from '../../components/empty_page'; +import { EmptyPage } from '../../../common/components/empty_page'; import * as i18n from './translations'; -import { useKibana } from '../../lib/kibana'; +import { useKibana } from '../../../common/lib/kibana'; export const DetectionEngineUserUnauthenticated = React.memo(() => { const docLinks = useKibana().services.docLinks; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/index.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/index.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/index.test.tsx index 6c4980f1d150..d4e654321ef9 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import '../../mock/match_media'; +import '../../../common/mock/match_media'; import { DetectionEngineContainer } from './index'; describe('DetectionEngineContainer', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/detection_engine/index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/index.tsx index 150934881951..756e222c0295 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; -import { ManageUserInfo } from './components/user_info'; +import { ManageUserInfo } from '../../components/user_info'; import { CreateRulePage } from './rules/create'; import { DetectionEnginePage } from './detection_engine'; import { EditRulePage } from './rules/edit'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/__mocks__/mock.ts similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/__mocks__/mock.ts index 66964fae70f9..1b43a513d0d2 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/__mocks__/mock.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/__mocks__/mock.ts @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { esFilters } from '../../../../../../../../../src/plugins/data/public'; -import { Rule, RuleError } from '../../../../../containers/detection_engine/rules'; +import { esFilters } from '../../../../../../../../../../src/plugins/data/public'; +import { Rule, RuleError } from '../../../../../../alerts/containers/detection_engine/rules'; import { AboutStepRule, ActionsStepRule, DefineStepRule, ScheduleStepRule } from '../../types'; -import { FieldValueQueryBar } from '../../components/query_bar'; +import { FieldValueQueryBar } from '../../../../../../alerts/components/rules/query_bar'; export const mockQueryBar: FieldValueQueryBar = { query: { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/actions.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/actions.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/actions.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/actions.tsx index bc5d0c32bb9c..5ed7221b68bf 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/actions.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/actions.tsx @@ -7,13 +7,13 @@ import * as H from 'history'; import React, { Dispatch } from 'react'; -import { DETECTION_ENGINE_PAGE_NAME } from '../../../../components/link_to/redirect_to_detection_engine'; +import { DETECTION_ENGINE_PAGE_NAME } from '../../../../../common/components/link_to/redirect_to_detection_engine'; import { deleteRules, duplicateRules, enableRules, Rule, -} from '../../../../containers/detection_engine/rules'; +} from '../../../../../alerts/containers/detection_engine/rules'; import { Action } from './reducer'; import { @@ -21,8 +21,8 @@ import { displayErrorToast, displaySuccessToast, errorToToaster, -} from '../../../../components/toasters'; -import { track, METRIC_TYPE, TELEMETRY_EVENT } from '../../../../lib/telemetry'; +} from '../../../../../common/components/toasters'; +import { track, METRIC_TYPE, TELEMETRY_EVENT } from '../../../../../common/lib/telemetry'; import * as i18n from '../translations'; import { bucketRulesResponse } from './helpers'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/batch_actions.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/batch_actions.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/batch_actions.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/batch_actions.tsx index 454ef18e0ae1..769839a62091 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/batch_actions.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/batch_actions.tsx @@ -14,8 +14,8 @@ import { enableRulesAction, exportRulesAction, } from './actions'; -import { ActionToaster, displayWarningToast } from '../../../../components/toasters'; -import { Rule } from '../../../../containers/detection_engine/rules'; +import { ActionToaster, displayWarningToast } from '../../../../../common/components/toasters'; +import { Rule } from '../../../../../alerts/containers/detection_engine/rules'; import * as detectionI18n from '../../translations'; interface GetBatchItems { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/columns.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/columns.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/columns.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/columns.tsx index 542a004cb372..224a32ef6ac9 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/columns.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/columns.tsx @@ -19,16 +19,16 @@ import { FormattedRelative } from '@kbn/i18n/react'; import * as H from 'history'; import React, { Dispatch } from 'react'; -import { isMlRule } from '../../../../../common/machine_learning/helpers'; -import { Rule, RuleStatus } from '../../../../containers/detection_engine/rules'; -import { getEmptyTagValue } from '../../../../components/empty_value'; -import { FormattedDate } from '../../../../components/formatted_date'; -import { getRuleDetailsUrl } from '../../../../components/link_to/redirect_to_detection_engine'; -import { ActionToaster } from '../../../../components/toasters'; -import { TruncatableText } from '../../../../components/truncatable_text'; -import { getStatusColor } from '../components/rule_status/helpers'; -import { RuleSwitch } from '../components/rule_switch'; -import { SeverityBadge } from '../components/severity_badge'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; +import { Rule, RuleStatus } from '../../../../../alerts/containers/detection_engine/rules'; +import { getEmptyTagValue } from '../../../../../common/components/empty_value'; +import { FormattedDate } from '../../../../../common/components/formatted_date'; +import { getRuleDetailsUrl } from '../../../../../common/components/link_to/redirect_to_detection_engine'; +import { ActionToaster } from '../../../../../common/components/toasters'; +import { TruncatableText } from '../../../../../common/components/truncatable_text'; +import { getStatusColor } from '../../../../components/rules/rule_status/helpers'; +import { RuleSwitch } from '../../../../components/rules/rule_switch'; +import { SeverityBadge } from '../../../../components/rules/severity_badge'; import * as i18n from '../translations'; import { deleteRulesAction, @@ -37,7 +37,7 @@ import { exportRulesAction, } from './actions'; import { Action } from './reducer'; -import { LocalizedDateTooltip } from '../../../../components/localized_date_tooltip'; +import { LocalizedDateTooltip } from '../../../../../common/components/localized_date_tooltip'; import * as detectionI18n from '../../translations'; export const getActions = ( diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/helpers.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/helpers.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/helpers.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/helpers.test.tsx index 062d7967bf30..7350cec0115f 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/helpers.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/helpers.test.tsx @@ -7,7 +7,7 @@ import { bucketRulesResponse, showRulesTable } from './helpers'; import { mockRule, mockRuleError } from './__mocks__/mock'; import uuid from 'uuid'; -import { Rule, RuleError } from '../../../../containers/detection_engine/rules'; +import { Rule, RuleError } from '../../../../../alerts/containers/detection_engine/rules'; describe('AllRulesTable Helpers', () => { const mockRule1: Readonly = mockRule(uuid.v4()); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/helpers.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/helpers.ts similarity index 94% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/helpers.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/helpers.ts index 0ebeb84d5746..632d03cebef7 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/helpers.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/helpers.ts @@ -7,7 +7,7 @@ import { BulkRuleResponse, RuleResponseBuckets, -} from '../../../../containers/detection_engine/rules'; +} from '../../../../../alerts/containers/detection_engine/rules'; /** * Separates rules/errors from bulk rules API response (create/update/delete) diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/index.test.tsx index 59b3b02ff358..11909ae7d9c5 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/index.test.tsx @@ -8,9 +8,9 @@ import React from 'react'; import { shallow, mount } from 'enzyme'; import { act } from 'react-dom/test-utils'; -import { createKibanaContextProviderMock } from '../../../../mock/kibana_react'; -import { TestProviders } from '../../../../mock'; -import { wait } from '../../../../lib/helpers'; +import { createKibanaContextProviderMock } from '../../../../../common/mock/kibana_react'; +import { TestProviders } from '../../../../../common/mock'; +import { wait } from '../../../../../common/lib/helpers'; import { AllRules } from './index'; jest.mock('./reducer', () => { @@ -67,7 +67,7 @@ jest.mock('./reducer', () => { }; }); -jest.mock('../../../../containers/detection_engine/rules', () => { +jest.mock('../../../../../alerts/containers/detection_engine/rules', () => { return { useRules: jest.fn().mockReturnValue([ false, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/index.tsx index d9a2fafd144b..c1fd24e24a38 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/index.tsx @@ -24,21 +24,21 @@ import { Rule, PaginationOptions, exportRules, -} from '../../../../containers/detection_engine/rules'; -import { HeaderSection } from '../../../../components/header_section'; +} from '../../../../../alerts/containers/detection_engine/rules'; +import { HeaderSection } from '../../../../../common/components/header_section'; import { UtilityBar, UtilityBarAction, UtilityBarGroup, UtilityBarSection, UtilityBarText, -} from '../../../../components/utility_bar'; -import { useStateToaster } from '../../../../components/toasters'; -import { Loader } from '../../../../components/loader'; -import { Panel } from '../../../../components/panel'; -import { PrePackagedRulesPrompt } from '../components/pre_packaged_rules/load_empty_prompt'; -import { GenericDownloader } from '../../../../components/generic_downloader'; -import { AllRulesTables, SortingType } from '../components/all_rules_tables'; +} from '../../../../../common/components/utility_bar'; +import { useStateToaster } from '../../../../../common/components/toasters'; +import { Loader } from '../../../../../common/components/loader'; +import { Panel } from '../../../../../common/components/panel'; +import { PrePackagedRulesPrompt } from '../../../../components/rules/pre_packaged_rules/load_empty_prompt'; +import { GenericDownloader } from '../../../../../common/components/generic_downloader'; +import { AllRulesTables, SortingType } from '../../../../components/rules/all_rules_tables'; import { getPrePackagedRuleStatus } from '../helpers'; import * as i18n from '../translations'; import { EuiBasicTableOnChange } from '../types'; @@ -47,8 +47,8 @@ import { getColumns, getMonitoringColumns } from './columns'; import { showRulesTable } from './helpers'; import { allRulesReducer, State } from './reducer'; import { RulesTableFilters } from './rules_table_filters/rules_table_filters'; -import { useMlCapabilities } from '../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; +import { useMlCapabilities } from '../../../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; const SORT_FIELD = 'enabled'; const initialState: State = { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/reducer.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/reducer.ts similarity index 98% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/reducer.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/reducer.ts index bc5297e7628b..72559d84eeab 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/reducer.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/reducer.ts @@ -9,7 +9,7 @@ import { FilterOptions, PaginationOptions, Rule, -} from '../../../../containers/detection_engine/rules'; +} from '../../../../../alerts/containers/detection_engine/rules'; type LoadingRuleAction = 'duplicate' | 'enable' | 'disable' | 'export' | 'delete' | null; export interface State { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx index ddb8894c206b..de4804f37f1b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/rules_table_filters.tsx @@ -16,8 +16,8 @@ import { import { isEqual } from 'lodash/fp'; import * as i18n from '../../translations'; -import { FilterOptions } from '../../../../../containers/detection_engine/rules'; -import { useTags } from '../../../../../containers/detection_engine/rules/use_tags'; +import { FilterOptions } from '../../../../../../alerts/containers/detection_engine/rules'; +import { useTags } from '../../../../../../alerts/containers/detection_engine/rules/use_tags'; import { TagsFilterPopover } from './tags_filter_popover'; interface RulesTableFiltersProps { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx index 44149a072f5c..b453125223c3 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/all/rules_table_filters/tags_filter_popover.tsx @@ -16,7 +16,7 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; import * as i18n from '../../translations'; -import { toggleSelectedGroup } from '../../../../../components/ml_popover/jobs_table/filters/toggle_selected_group'; +import { toggleSelectedGroup } from '../../../../../../common/components/ml_popover/jobs_table/filters/toggle_selected_group'; interface TagsFilterPopoverProps { selectedTags: string[]; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/helpers.test.ts similarity index 99% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/helpers.test.ts index 8d793f39afa9..1894d0ab1a9e 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.test.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NewRule } from '../../../../containers/detection_engine/rules'; +import { NewRule } from '../../../../../alerts/containers/detection_engine/rules'; import { DefineStepRuleJson, ScheduleStepRuleJson, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/helpers.ts similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/helpers.ts index b912c182a7c6..7f200ef421c4 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/helpers.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/helpers.ts @@ -8,11 +8,11 @@ import { has, isEmpty } from 'lodash/fp'; import moment from 'moment'; import deepmerge from 'deepmerge'; -import { NOTIFICATION_THROTTLE_NO_ACTIONS } from '../../../../../common/constants'; -import { transformAlertToRuleAction } from '../../../../../common/detection_engine/transform_actions'; -import { RuleType } from '../../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../../common/machine_learning/helpers'; -import { NewRule } from '../../../../containers/detection_engine/rules'; +import { NOTIFICATION_THROTTLE_NO_ACTIONS } from '../../../../../../common/constants'; +import { transformAlertToRuleAction } from '../../../../../../common/detection_engine/transform_actions'; +import { RuleType } from '../../../../../../common/detection_engine/types'; +import { isMlRule } from '../../../../../../common/machine_learning/helpers'; +import { NewRule } from '../../../../../alerts/containers/detection_engine/rules'; import { AboutStepRule, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/index.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/index.test.tsx similarity index 78% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/create/index.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/index.test.tsx index db32be652d0f..7749e38578e9 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/index.test.tsx @@ -7,11 +7,11 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { CreateRulePage } from './index'; -import { useUserInfo } from '../../components/user_info'; +import { useUserInfo } from '../../../../components/user_info'; -jest.mock('../../components/user_info'); +jest.mock('../../../../components/user_info'); describe('CreateRulePage', () => { it('renders correctly', () => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/create/index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/index.tsx index 2686bb47925b..5cf7f9e5b15a 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/index.tsx @@ -9,20 +9,20 @@ import React, { useCallback, useRef, useState, useMemo } from 'react'; import { Redirect } from 'react-router-dom'; import styled, { StyledComponent } from 'styled-components'; -import { usePersistRule } from '../../../../containers/detection_engine/rules'; +import { usePersistRule } from '../../../../../alerts/containers/detection_engine/rules'; -import { DETECTION_ENGINE_PAGE_NAME } from '../../../../components/link_to/redirect_to_detection_engine'; -import { WrapperPage } from '../../../../components/wrapper_page'; -import { displaySuccessToast, useStateToaster } from '../../../../components/toasters'; -import { SpyRoute } from '../../../../utils/route/spy_routes'; -import { useUserInfo } from '../../components/user_info'; -import { AccordionTitle } from '../components/accordion_title'; -import { FormData, FormHook } from '../../../../shared_imports'; -import { StepAboutRule } from '../components/step_about_rule'; -import { StepDefineRule } from '../components/step_define_rule'; -import { StepScheduleRule } from '../components/step_schedule_rule'; -import { StepRuleActions } from '../components/step_rule_actions'; -import { DetectionEngineHeaderPage } from '../../components/detection_engine_header_page'; +import { DETECTION_ENGINE_PAGE_NAME } from '../../../../../common/components/link_to/redirect_to_detection_engine'; +import { WrapperPage } from '../../../../../common/components/wrapper_page'; +import { displaySuccessToast, useStateToaster } from '../../../../../common/components/toasters'; +import { SpyRoute } from '../../../../../common/utils/route/spy_routes'; +import { useUserInfo } from '../../../../components/user_info'; +import { AccordionTitle } from '../../../../components/rules/accordion_title'; +import { FormData, FormHook } from '../../../../../shared_imports'; +import { StepAboutRule } from '../../../../components/rules/step_about_rule'; +import { StepDefineRule } from '../../../../components/rules/step_define_rule'; +import { StepScheduleRule } from '../../../../components/rules/step_schedule_rule'; +import { StepRuleActions } from '../../../../components/rules/step_rule_actions'; +import { DetectionEngineHeaderPage } from '../../../../components/detection_engine_header_page'; import * as RuleI18n from '../translations'; import { redirectToDetections, getActionMessageParams, userHasNoPermissions } from '../helpers'; import { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/create/translations.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/create/translations.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/create/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/failure_history.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/failure_history.test.tsx similarity index 76% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/failure_history.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/failure_history.test.tsx index a83ff4c54b07..fc16bcd96f76 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/failure_history.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/failure_history.test.tsx @@ -7,10 +7,10 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { FailureHistory } from './failure_history'; -import { useRuleStatus } from '../../../../containers/detection_engine/rules'; -jest.mock('../../../../containers/detection_engine/rules'); +import { useRuleStatus } from '../../../../../alerts/containers/detection_engine/rules'; +jest.mock('../../../../../alerts/containers/detection_engine/rules'); describe('FailureHistory', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/failure_history.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/failure_history.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/failure_history.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/failure_history.tsx index f660c1763d5e..f03f320c5141 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/failure_history.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/failure_history.tsx @@ -15,10 +15,13 @@ import { } from '@elastic/eui'; import React, { memo } from 'react'; -import { useRuleStatus, RuleInfoStatus } from '../../../../containers/detection_engine/rules'; -import { HeaderSection } from '../../../../components/header_section'; +import { + useRuleStatus, + RuleInfoStatus, +} from '../../../../../alerts/containers/detection_engine/rules'; +import { HeaderSection } from '../../../../../common/components/header_section'; import * as i18n from './translations'; -import { FormattedDate } from '../../../../components/formatted_date'; +import { FormattedDate } from '../../../../../common/components/formatted_date'; interface FailureHistoryProps { id?: string | null; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/index.test.tsx similarity index 78% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/index.test.tsx index 19c6f39a9bc7..d755f972f295 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/index.test.tsx @@ -7,14 +7,14 @@ import React from 'react'; import { shallow } from 'enzyme'; -import '../../../../mock/match_media'; -import { TestProviders } from '../../../../mock'; +import '../../../../../common/mock/match_media'; +import { TestProviders } from '../../../../../common/mock'; import { RuleDetailsPageComponent } from './index'; -import { setAbsoluteRangeDatePicker } from '../../../../store/inputs/actions'; -import { useUserInfo } from '../../components/user_info'; +import { setAbsoluteRangeDatePicker } from '../../../../../common/store/inputs/actions'; +import { useUserInfo } from '../../../../components/user_info'; import { useParams } from 'react-router-dom'; -jest.mock('../../components/user_info'); +jest.mock('../../../../components/user_info'); jest.mock('react-router-dom', () => { const originalModule = jest.requireActual('react-router-dom'); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/index.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/index.tsx index 6a43c217e5ff..60491387c492 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/index.tsx @@ -22,54 +22,54 @@ import { Redirect, useParams } from 'react-router-dom'; import { StickyContainer } from 'react-sticky'; import { connect, ConnectedProps } from 'react-redux'; -import { UpdateDateRange } from '../../../../components/charts/common'; -import { FiltersGlobal } from '../../../../components/filters_global'; -import { FormattedDate } from '../../../../components/formatted_date'; +import { UpdateDateRange } from '../../../../../common/components/charts/common'; +import { FiltersGlobal } from '../../../../../common/components/filters_global'; +import { FormattedDate } from '../../../../../common/components/formatted_date'; import { getEditRuleUrl, getRulesUrl, DETECTION_ENGINE_PAGE_NAME, -} from '../../../../components/link_to/redirect_to_detection_engine'; -import { SiemSearchBar } from '../../../../components/search_bar'; -import { WrapperPage } from '../../../../components/wrapper_page'; -import { useRule } from '../../../../containers/detection_engine/rules'; +} from '../../../../../common/components/link_to/redirect_to_detection_engine'; +import { SiemSearchBar } from '../../../../../common/components/search_bar'; +import { WrapperPage } from '../../../../../common/components/wrapper_page'; +import { useRule } from '../../../../../alerts/containers/detection_engine/rules'; import { indicesExistOrDataTemporarilyUnavailable, WithSource, -} from '../../../../containers/source'; -import { SpyRoute } from '../../../../utils/route/spy_routes'; +} from '../../../../../common/containers/source'; +import { SpyRoute } from '../../../../../common/utils/route/spy_routes'; -import { StepAboutRuleToggleDetails } from '../components/step_about_rule_details/'; -import { DetectionEngineHeaderPage } from '../../components/detection_engine_header_page'; -import { SignalsHistogramPanel } from '../../components/signals_histogram_panel'; -import { SignalsTable } from '../../components/signals'; -import { useUserInfo } from '../../components/user_info'; +import { StepAboutRuleToggleDetails } from '../../../../components/rules/step_about_rule_details'; +import { DetectionEngineHeaderPage } from '../../../../components/detection_engine_header_page'; +import { SignalsHistogramPanel } from '../../../../components/signals_histogram_panel'; +import { SignalsTable } from '../../../../components/signals'; +import { useUserInfo } from '../../../../components/user_info'; import { DetectionEngineEmptyPage } from '../../detection_engine_empty_page'; -import { useSignalInfo } from '../../components/signals_info'; -import { StepDefineRule } from '../components/step_define_rule'; -import { StepScheduleRule } from '../components/step_schedule_rule'; -import { buildSignalsRuleIdFilter } from '../../components/signals/default_config'; -import { NoWriteSignalsCallOut } from '../../components/no_write_signals_callout'; +import { useSignalInfo } from '../../../../components/signals_info'; +import { StepDefineRule } from '../../../../components/rules/step_define_rule'; +import { StepScheduleRule } from '../../../../components/rules/step_schedule_rule'; +import { buildSignalsRuleIdFilter } from '../../../../components/signals/default_config'; +import { NoWriteSignalsCallOut } from '../../../../components/no_write_signals_callout'; import * as detectionI18n from '../../translations'; -import { ReadOnlyCallOut } from '../components/read_only_callout'; -import { RuleSwitch } from '../components/rule_switch'; -import { StepPanel } from '../components/step_panel'; +import { ReadOnlyCallOut } from '../../../../components/rules/read_only_callout'; +import { RuleSwitch } from '../../../../components/rules/rule_switch'; +import { StepPanel } from '../../../../components/rules/step_panel'; import { getStepsData, redirectToDetections, userHasNoPermissions } from '../helpers'; import * as ruleI18n from '../translations'; import * as i18n from './translations'; -import { GlobalTime } from '../../../../containers/global_time'; -import { signalsHistogramOptions } from '../../components/signals_histogram_panel/config'; -import { inputsSelectors } from '../../../../store/inputs'; -import { State } from '../../../../store'; -import { InputsRange } from '../../../../store/inputs/model'; -import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../../../store/inputs/actions'; -import { RuleActionsOverflow } from '../components/rule_actions_overflow'; +import { GlobalTime } from '../../../../../common/containers/global_time'; +import { signalsHistogramOptions } from '../../../../components/signals_histogram_panel/config'; +import { inputsSelectors } from '../../../../../common/store/inputs'; +import { State } from '../../../../../common/store'; +import { InputsRange } from '../../../../../common/store/inputs/model'; +import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../../../../common/store/inputs/actions'; +import { RuleActionsOverflow } from '../../../../components/rules/rule_actions_overflow'; import { RuleStatusFailedCallOut } from './status_failed_callout'; import { FailureHistory } from './failure_history'; -import { RuleStatus } from '../components/rule_status'; -import { useMlCapabilities } from '../../../../components/ml_popover/hooks/use_ml_capabilities'; -import { hasMlAdminPermissions } from '../../../../../common/machine_learning/has_ml_admin_permissions'; +import { RuleStatus } from '../../../../components/rules//rule_status'; +import { useMlCapabilities } from '../../../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { hasMlAdminPermissions } from '../../../../../../common/machine_learning/has_ml_admin_permissions'; enum RuleDetailTabs { signals = 'signals', diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/status_failed_callout.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/status_failed_callout.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/status_failed_callout.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/status_failed_callout.test.tsx diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/status_failed_callout.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/status_failed_callout.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/status_failed_callout.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/status_failed_callout.tsx index d1699a83beca..5b5b96ace867 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/status_failed_callout.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/status_failed_callout.tsx @@ -7,7 +7,7 @@ import { EuiCallOut, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React, { memo } from 'react'; -import { FormattedDate } from '../../../../components/formatted_date'; +import { FormattedDate } from '../../../../../common/components/formatted_date'; import * as i18n from './translations'; interface RuleStatusFailedCallOutComponentProps { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/details/translations.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/details/translations.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/details/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/edit/index.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/index.test.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/edit/index.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/index.test.tsx index d22bc12abf9f..91bc2ce7bce2 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/edit/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/index.test.tsx @@ -7,12 +7,12 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { EditRulePage } from './index'; -import { useUserInfo } from '../../components/user_info'; +import { useUserInfo } from '../../../../components/user_info'; import { useParams } from 'react-router-dom'; -jest.mock('../../components/user_info'); +jest.mock('../../../../components/user_info'); jest.mock('react-router-dom', () => { const originalModule = jest.requireActual('react-router-dom'); diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/index.tsx index c42e7b902cd5..041f932c412c 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/edit/index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/index.tsx @@ -19,19 +19,19 @@ import { FormattedMessage } from '@kbn/i18n/react'; import React, { FC, memo, useCallback, useEffect, useMemo, useRef, useState } from 'react'; import { Redirect, useParams } from 'react-router-dom'; -import { useRule, usePersistRule } from '../../../../containers/detection_engine/rules'; -import { WrapperPage } from '../../../../components/wrapper_page'; -import { DETECTION_ENGINE_PAGE_NAME } from '../../../../components/link_to/redirect_to_detection_engine'; -import { displaySuccessToast, useStateToaster } from '../../../../components/toasters'; -import { SpyRoute } from '../../../../utils/route/spy_routes'; -import { useUserInfo } from '../../components/user_info'; -import { DetectionEngineHeaderPage } from '../../components/detection_engine_header_page'; -import { FormHook, FormData } from '../../../../shared_imports'; -import { StepPanel } from '../components/step_panel'; -import { StepAboutRule } from '../components/step_about_rule'; -import { StepDefineRule } from '../components/step_define_rule'; -import { StepScheduleRule } from '../components/step_schedule_rule'; -import { StepRuleActions } from '../components/step_rule_actions'; +import { useRule, usePersistRule } from '../../../../../alerts/containers/detection_engine/rules'; +import { WrapperPage } from '../../../../../common/components/wrapper_page'; +import { DETECTION_ENGINE_PAGE_NAME } from '../../../../../common/components/link_to/redirect_to_detection_engine'; +import { displaySuccessToast, useStateToaster } from '../../../../../common/components/toasters'; +import { SpyRoute } from '../../../../../common/utils/route/spy_routes'; +import { useUserInfo } from '../../../../components/user_info'; +import { DetectionEngineHeaderPage } from '../../../../components/detection_engine_header_page'; +import { FormHook, FormData } from '../../../../../shared_imports'; +import { StepPanel } from '../../../../components/rules/step_panel'; +import { StepAboutRule } from '../../../../components/rules/step_about_rule'; +import { StepDefineRule } from '../../../../components/rules/step_define_rule'; +import { StepScheduleRule } from '../../../../components/rules/step_schedule_rule'; +import { StepRuleActions } from '../../../../components/rules/step_rule_actions'; import { formatRule } from '../create/helpers'; import { getStepsData, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/edit/translations.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/edit/translations.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/edit/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/helpers.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/helpers.test.tsx index f2a04a87ced2..6c64577b083d 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/helpers.test.tsx @@ -17,8 +17,8 @@ import { userHasNoPermissions, } from './helpers'; import { mockRuleWithEverything, mockRule } from './all/__mocks__/mock'; -import { esFilters } from '../../../../../../../src/plugins/data/public'; -import { Rule } from '../../../containers/detection_engine/rules'; +import { esFilters } from '../../../../../../../../src/plugins/data/public'; +import { Rule } from '../../../../alerts/containers/detection_engine/rules'; import { AboutStepRule, AboutStepRuleDetails, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/helpers.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/helpers.tsx index 3dbcf3b2425c..8fbb8babe90c 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/helpers.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/helpers.tsx @@ -10,12 +10,12 @@ import moment from 'moment'; import memoizeOne from 'memoize-one'; import { useLocation } from 'react-router-dom'; -import { RuleAlertAction, RuleType } from '../../../../common/detection_engine/types'; -import { isMlRule } from '../../../../common/machine_learning/helpers'; -import { transformRuleToAlertAction } from '../../../../common/detection_engine/transform_actions'; -import { Filter } from '../../../../../../../src/plugins/data/public'; -import { Rule } from '../../../containers/detection_engine/rules'; -import { FormData, FormHook, FormSchema } from '../../../shared_imports'; +import { RuleAlertAction, RuleType } from '../../../../../common/detection_engine/types'; +import { isMlRule } from '../../../../../common/machine_learning/helpers'; +import { transformRuleToAlertAction } from '../../../../../common/detection_engine/transform_actions'; +import { Filter } from '../../../../../../../../src/plugins/data/public'; +import { Rule } from '../../../../alerts/containers/detection_engine/rules'; +import { FormData, FormHook, FormSchema } from '../../../../shared_imports'; import { AboutStepRule, AboutStepRuleDetails, diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/index.test.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/index.test.tsx similarity index 71% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/index.test.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/index.test.tsx index 3fa81ca3ced0..29f875d113a4 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/index.test.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/index.test.tsx @@ -8,11 +8,11 @@ import React from 'react'; import { shallow } from 'enzyme'; import { RulesPage } from './index'; -import { useUserInfo } from '../components/user_info'; -import { usePrePackagedRules } from '../../../containers/detection_engine/rules'; +import { useUserInfo } from '../../../components/user_info'; +import { usePrePackagedRules } from '../../../../alerts/containers/detection_engine/rules'; -jest.mock('../components/user_info'); -jest.mock('../../../containers/detection_engine/rules'); +jest.mock('../../../components/user_info'); +jest.mock('../../../../alerts/containers/detection_engine/rules'); describe('RulesPage', () => { beforeAll(() => { diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/index.tsx b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/index.tsx rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/index.tsx index 8831bc77691f..7a9620df3a7b 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/index.tsx +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/index.tsx @@ -8,21 +8,24 @@ import { EuiButton, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React, { useCallback, useRef, useState } from 'react'; import { Redirect } from 'react-router-dom'; -import { usePrePackagedRules, importRules } from '../../../containers/detection_engine/rules'; +import { + usePrePackagedRules, + importRules, +} from '../../../../alerts/containers/detection_engine/rules'; import { DETECTION_ENGINE_PAGE_NAME, getDetectionEngineUrl, getCreateRuleUrl, -} from '../../../components/link_to/redirect_to_detection_engine'; -import { DetectionEngineHeaderPage } from '../components/detection_engine_header_page'; -import { WrapperPage } from '../../../components/wrapper_page'; -import { SpyRoute } from '../../../utils/route/spy_routes'; +} from '../../../../common/components/link_to/redirect_to_detection_engine'; +import { DetectionEngineHeaderPage } from '../../../components/detection_engine_header_page'; +import { WrapperPage } from '../../../../common/components/wrapper_page'; +import { SpyRoute } from '../../../../common/utils/route/spy_routes'; -import { useUserInfo } from '../components/user_info'; +import { useUserInfo } from '../../../components/user_info'; import { AllRules } from './all'; -import { ImportDataModal } from '../../../components/import_data_modal'; -import { ReadOnlyCallOut } from './components/read_only_callout'; -import { UpdatePrePackagedRulesCallOut } from './components/pre_packaged_rules/update_callout'; +import { ImportDataModal } from '../../../../common/components/import_data_modal'; +import { ReadOnlyCallOut } from '../../../components/rules/read_only_callout'; +import { UpdatePrePackagedRulesCallOut } from '../../../components/rules/pre_packaged_rules/update_callout'; import { getPrePackagedRuleStatus, redirectToDetections, userHasNoPermissions } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/translations.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/translations.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/types.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/types.ts similarity index 87% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/types.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/types.ts index dcb5397d28f7..92c9780a1172 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/types.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/types.ts @@ -4,12 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { RuleAlertAction, RuleType } from '../../../../common/detection_engine/types'; -import { AlertAction } from '../../../../../alerting/common'; -import { Filter } from '../../../../../../../src/plugins/data/common'; -import { FieldValueQueryBar } from './components/query_bar'; -import { FormData, FormHook } from '../../../shared_imports'; -import { FieldValueTimeline } from './components/pick_timeline'; +import { RuleAlertAction, RuleType } from '../../../../../common/detection_engine/types'; +import { AlertAction } from '../../../../../../alerting/common'; +import { Filter } from '../../../../../../../../src/plugins/data/common'; +import { FormData, FormHook } from '../../../../shared_imports'; +import { FieldValueQueryBar } from '../../../components/rules/query_bar'; +import { FieldValueTimeline } from '../../../components/rules/pick_timeline'; export interface EuiBasicTableSortTypes { field: string; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/utils.test.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/utils.test.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/utils.test.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/utils.test.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/rules/utils.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/utils.ts similarity index 90% rename from x-pack/plugins/siem/public/pages/detection_engine/rules/utils.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/utils.ts index f93ad94dd462..159301a07de7 100644 --- a/x-pack/plugins/siem/public/pages/detection_engine/rules/utils.ts +++ b/x-pack/plugins/siem/public/alerts/pages/detection_engine/rules/utils.ts @@ -6,7 +6,8 @@ import { isEmpty } from 'lodash/fp'; -import { ChromeBreadcrumb } from '../../../../../../../src/core/public'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { ChromeBreadcrumb } from '../../../../../../../../src/core/public'; import { getDetectionEngineUrl, getDetectionEngineTabUrl, @@ -14,10 +15,10 @@ import { getRuleDetailsUrl, getCreateRuleUrl, getEditRuleUrl, -} from '../../../components/link_to/redirect_to_detection_engine'; +} from '../../../../common/components/link_to/redirect_to_detection_engine'; import * as i18nDetections from '../translations'; import * as i18nRules from './translations'; -import { RouteSpyState } from '../../../utils/route/types'; +import { RouteSpyState } from '../../../../common/utils/route/types'; const getTabBreadcrumb = (pathname: string, search: string[]) => { const tabPath = pathname.split('/')[2]; diff --git a/x-pack/plugins/siem/public/pages/detection_engine/translations.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/translations.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/translations.ts diff --git a/x-pack/plugins/siem/public/pages/detection_engine/types.ts b/x-pack/plugins/siem/public/alerts/pages/detection_engine/types.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/detection_engine/types.ts rename to x-pack/plugins/siem/public/alerts/pages/detection_engine/types.ts diff --git a/x-pack/plugins/siem/public/alerts/routes.tsx b/x-pack/plugins/siem/public/alerts/routes.tsx new file mode 100644 index 000000000000..897ba3269546 --- /dev/null +++ b/x-pack/plugins/siem/public/alerts/routes.tsx @@ -0,0 +1,20 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { Route } from 'react-router-dom'; + +import { DetectionEngineContainer } from './pages/detection_engine'; +import { SiemPageName } from '../app/types'; + +export const getAlertsRoutes = () => [ + ( + + )} + />, +]; diff --git a/x-pack/plugins/siem/public/pages/404.tsx b/x-pack/plugins/siem/public/app/404.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/404.tsx rename to x-pack/plugins/siem/public/app/404.tsx index ba1cb4f40cbe..6a1b5c56dc85 100644 --- a/x-pack/plugins/siem/public/pages/404.tsx +++ b/x-pack/plugins/siem/public/app/404.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { FormattedMessage } from '@kbn/i18n/react'; -import { WrapperPage } from '../components/wrapper_page'; +import { WrapperPage } from '../common/components/wrapper_page'; export const NotFoundPage = React.memo(() => ( diff --git a/x-pack/plugins/siem/public/app/app.tsx b/x-pack/plugins/siem/public/app/app.tsx index 6e2a4642f99a..7aef91380b52 100644 --- a/x-pack/plugins/siem/public/app/app.tsx +++ b/x-pack/plugins/siem/public/app/app.tsx @@ -17,32 +17,35 @@ import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; import { BehaviorSubject } from 'rxjs'; import { pluck } from 'rxjs/operators'; -import { KibanaContextProvider, useKibana, useUiSetting$ } from '../lib/kibana'; +import { KibanaContextProvider, useKibana, useUiSetting$ } from '../common/lib/kibana'; import { Storage } from '../../../../../src/plugins/kibana_utils/public'; import { DEFAULT_DARK_MODE } from '../../common/constants'; -import { ErrorToastDispatcher } from '../components/error_toast_dispatcher'; -import { compose } from '../lib/compose/kibana_compose'; -import { AppFrontendLibs, AppApolloClient } from '../lib/lib'; +import { ErrorToastDispatcher } from '../common/components/error_toast_dispatcher'; +import { compose } from '../common/lib/compose/kibana_compose'; +import { AppFrontendLibs, AppApolloClient } from '../common/lib/lib'; import { StartServices } from '../plugin'; -import { PageRouter } from '../routes'; -import { createStore, createInitialState } from '../store'; -import { GlobalToaster, ManageGlobalToaster } from '../components/toasters'; -import { MlCapabilitiesProvider } from '../components/ml/permissions/ml_capabilities_provider'; +import { PageRouter } from './routes'; +import { createStore, createInitialState } from '../common/store'; +import { GlobalToaster, ManageGlobalToaster } from '../common/components/toasters'; +import { MlCapabilitiesProvider } from '../common/components/ml/permissions/ml_capabilities_provider'; -import { ApolloClientContext } from '../utils/apollo_context'; +import { ApolloClientContext } from '../common/utils/apollo_context'; +import { SecuritySubPlugins } from './types'; interface AppPluginRootComponentProps { apolloClient: AppApolloClient; history: History; store: Store; + subPluginRoutes: React.ReactElement[]; theme: any; // eslint-disable-line @typescript-eslint/no-explicit-any } const AppPluginRootComponent: React.FC = ({ + apolloClient, theme, store, - apolloClient, + subPluginRoutes, history, }) => ( @@ -51,7 +54,7 @@ const AppPluginRootComponent: React.FC = ({ - + @@ -64,11 +67,22 @@ const AppPluginRootComponent: React.FC = ({ const AppPluginRoot = memo(AppPluginRootComponent); -const StartAppComponent: FC = libs => { +interface StartAppComponent extends AppFrontendLibs { + subPlugins: SecuritySubPlugins; +} + +const StartAppComponent: FC = ({ subPlugins, ...libs }) => { + const { routes: subPluginRoutes, store: subPluginsStore } = subPlugins; const { i18n } = useKibana().services; const history = createHashHistory(); const libs$ = new BehaviorSubject(libs); - const store = createStore(createInitialState(), libs$.pipe(pluck('apolloClient'))); + + const store = createStore( + createInitialState(subPluginsStore.initialState), + subPluginsStore.reducer, + libs$.pipe(pluck('apolloClient')) + ); + const [darkMode] = useUiSetting$(DEFAULT_DARK_MODE); const theme = useMemo( () => ({ @@ -82,9 +96,10 @@ const StartAppComponent: FC = libs => { @@ -96,9 +111,10 @@ const StartApp = memo(StartAppComponent); interface SiemAppComponentProps { services: StartServices; + subPlugins: SecuritySubPlugins; } -const SiemAppComponent: React.FC = ({ services }) => ( +const SiemAppComponent: React.FC = ({ services, subPlugins }) => ( = ({ services }) => ( ...services, }} > - + ); diff --git a/x-pack/plugins/siem/public/pages/home/home_navigations.tsx b/x-pack/plugins/siem/public/app/home/home_navigations.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/home/home_navigations.tsx rename to x-pack/plugins/siem/public/app/home/home_navigations.tsx index 543469e2fddb..2eed64a2b26e 100644 --- a/x-pack/plugins/siem/public/pages/home/home_navigations.tsx +++ b/x-pack/plugins/siem/public/app/home/home_navigations.tsx @@ -11,9 +11,9 @@ import { getTimelinesUrl, getHostsUrl, getCaseUrl, -} from '../../components/link_to'; +} from '../../common/components/link_to'; import * as i18n from './translations'; -import { SiemPageName, SiemNavTab } from './types'; +import { SiemPageName, SiemNavTab } from '../types'; export const navTabs: SiemNavTab = { [SiemPageName.overview]: { diff --git a/x-pack/plugins/siem/public/pages/home/index.tsx b/x-pack/plugins/siem/public/app/home/index.tsx similarity index 56% rename from x-pack/plugins/siem/public/pages/home/index.tsx rename to x-pack/plugins/siem/public/app/home/index.tsx index a9e0962f16e6..b6116ad4f066 100644 --- a/x-pack/plugins/siem/public/pages/home/index.tsx +++ b/x-pack/plugins/siem/public/app/home/index.tsx @@ -8,28 +8,25 @@ import React, { useMemo } from 'react'; import { Redirect, Route, Switch } from 'react-router-dom'; import styled from 'styled-components'; -import { useThrottledResizeObserver } from '../../components/utils'; -import { DragDropContextWrapper } from '../../components/drag_and_drop/drag_drop_context_wrapper'; -import { Flyout } from '../../components/flyout'; -import { HeaderGlobal } from '../../components/header_global'; -import { HelpMenu } from '../../components/help_menu'; -import { LinkToPage } from '../../components/link_to'; -import { MlHostConditionalContainer } from '../../components/ml/conditional_links/ml_host_conditional_container'; -import { MlNetworkConditionalContainer } from '../../components/ml/conditional_links/ml_network_conditional_container'; -import { AutoSaveWarningMsg } from '../../components/timeline/auto_save_warning'; -import { UseUrlState } from '../../components/url_state'; -import { WithSource, indicesExistOrDataTemporarilyUnavailable } from '../../containers/source'; -import { SpyRoute } from '../../utils/route/spy_routes'; -import { useShowTimeline } from '../../utils/timeline/use_show_timeline'; +import { useThrottledResizeObserver } from '../../common/components/utils'; +import { DragDropContextWrapper } from '../../common/components/drag_and_drop/drag_drop_context_wrapper'; +import { Flyout } from '../../timelines/components/flyout'; +import { HeaderGlobal } from '../../common/components/header_global'; +import { HelpMenu } from '../../common/components/help_menu'; +import { LinkToPage } from '../../common/components/link_to'; +import { MlHostConditionalContainer } from '../../common/components/ml/conditional_links/ml_host_conditional_container'; +import { MlNetworkConditionalContainer } from '../../common/components/ml/conditional_links/ml_network_conditional_container'; +import { AutoSaveWarningMsg } from '../../timelines/components/timeline/auto_save_warning'; +import { UseUrlState } from '../../common/components/url_state'; +import { + WithSource, + indicesExistOrDataTemporarilyUnavailable, +} from '../../common/containers/source'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { useShowTimeline } from '../../common/utils/timeline/use_show_timeline'; import { NotFoundPage } from '../404'; -import { DetectionEngineContainer } from '../detection_engine'; -import { HostsContainer } from '../hosts'; -import { NetworkContainer } from '../network'; -import { Overview } from '../overview'; -import { Case } from '../case'; -import { Timelines } from '../timelines'; import { navTabs } from './home_navigations'; -import { SiemPageName } from './types'; +import { SiemPageName } from '../types'; const WrappedByAutoSizer = styled.div` height: 100%; @@ -54,7 +51,11 @@ const calculateFlyoutHeight = ({ windowHeight: number; }): number => Math.max(0, windowHeight - globalHeaderSize); -export const HomePage: React.FC = () => { +interface HomePageProps { + subPlugins: JSX.Element[]; +} + +export const HomePage: React.FC = ({ subPlugins }) => { const { ref: measureRef, height: windowHeight = 0 } = useThrottledResizeObserver(); const flyoutHeight = useMemo( () => @@ -89,27 +90,7 @@ export const HomePage: React.FC = () => { - } /> - } - /> - ( - - )} - /> - ( - - )} - /> - } - /> + {subPlugins} } /> { )} /> - - - } /> diff --git a/x-pack/plugins/siem/public/pages/home/translations.ts b/x-pack/plugins/siem/public/app/home/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/home/translations.ts rename to x-pack/plugins/siem/public/app/home/translations.ts diff --git a/x-pack/plugins/siem/public/app/index.tsx b/x-pack/plugins/siem/public/app/index.tsx index 7275a718564e..d69be6e09e61 100644 --- a/x-pack/plugins/siem/public/app/index.tsx +++ b/x-pack/plugins/siem/public/app/index.tsx @@ -7,11 +7,17 @@ import React from 'react'; import { render, unmountComponentAtNode } from 'react-dom'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths import { AppMountParameters } from '../../../../../src/core/public'; import { StartServices } from '../plugin'; import { SiemApp } from './app'; +import { SecuritySubPlugins } from './types'; -export const renderApp = (services: StartServices, { element }: AppMountParameters) => { - render(, element); +export const renderApp = ( + services: StartServices, + { element }: AppMountParameters, + subPlugins: SecuritySubPlugins +) => { + render(, element); return () => unmountComponentAtNode(element); }; diff --git a/x-pack/plugins/siem/public/routes.tsx b/x-pack/plugins/siem/public/app/routes.tsx similarity index 69% rename from x-pack/plugins/siem/public/routes.tsx rename to x-pack/plugins/siem/public/app/routes.tsx index a989fa987343..ed3565df5f50 100644 --- a/x-pack/plugins/siem/public/routes.tsx +++ b/x-pack/plugins/siem/public/app/routes.tsx @@ -8,20 +8,21 @@ import { History } from 'history'; import React, { FC, memo } from 'react'; import { Route, Router, Switch } from 'react-router-dom'; -import { NotFoundPage } from './pages/404'; -import { HomePage } from './pages/home'; -import { ManageRoutesSpy } from './utils/route/manage_spy_routes'; +import { NotFoundPage } from './404'; +import { HomePage } from './home'; +import { ManageRoutesSpy } from '../common/utils/route/manage_spy_routes'; interface RouterProps { history: History; + subPluginRoutes: JSX.Element[]; } -const PageRouterComponent: FC = ({ history }) => ( +const PageRouterComponent: FC = ({ history, subPluginRoutes }) => ( - + diff --git a/x-pack/plugins/siem/public/app/types.ts b/x-pack/plugins/siem/public/app/types.ts new file mode 100644 index 000000000000..5fe4b5a8d822 --- /dev/null +++ b/x-pack/plugins/siem/public/app/types.ts @@ -0,0 +1,61 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { Reducer, AnyAction } from 'redux'; + +import { NavTab } from '../common/components/navigation/types'; +import { HostsState } from '../hosts/store'; +import { NetworkState } from '../network/store'; +import { TimelineState } from '../timelines/store/timeline/types'; + +export enum SiemPageName { + overview = 'overview', + hosts = 'hosts', + network = 'network', + detections = 'detections', + timelines = 'timelines', + case = 'case', +} + +export type SiemNavTabKey = + | SiemPageName.overview + | SiemPageName.hosts + | SiemPageName.network + | SiemPageName.detections + | SiemPageName.timelines + | SiemPageName.case; + +export type SiemNavTab = Record; + +export interface SecuritySubPluginStore { + initialState: Record; + reducer: Record>; +} + +export interface SecuritySubPlugin { + routes: React.ReactElement[]; +} + +type SecuritySubPluginKeyStore = 'hosts' | 'network' | 'timeline'; +export interface SecuritySubPluginWithStore + extends SecuritySubPlugin { + store: SecuritySubPluginStore; +} + +export interface SecuritySubPlugins extends SecuritySubPlugin { + store: { + initialState: { + hosts: HostsState; + network: NetworkState; + timeline: TimelineState; + }; + reducer: { + hosts: Reducer; + network: Reducer; + timeline: Reducer; + }; + }; +} diff --git a/x-pack/plugins/siem/public/pages/case/components/__mock__/form.ts b/x-pack/plugins/siem/public/cases/components/__mock__/form.ts similarity index 84% rename from x-pack/plugins/siem/public/pages/case/components/__mock__/form.ts rename to x-pack/plugins/siem/public/cases/components/__mock__/form.ts index 12946c3af06b..96c1217577ff 100644 --- a/x-pack/plugins/siem/public/pages/case/components/__mock__/form.ts +++ b/x-pack/plugins/siem/public/cases/components/__mock__/form.ts @@ -3,9 +3,9 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { useForm } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks'; +import { useForm } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' ); export const mockFormHook = { isSubmitted: false, diff --git a/x-pack/plugins/siem/public/pages/case/components/__mock__/router.ts b/x-pack/plugins/siem/public/cases/components/__mock__/router.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/__mock__/router.ts rename to x-pack/plugins/siem/public/cases/components/__mock__/router.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/add_comment/index.test.tsx b/x-pack/plugins/siem/public/cases/components/add_comment/index.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/case/components/add_comment/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/add_comment/index.test.tsx index 7ba8ec966625..ab61930cd841 100644 --- a/x-pack/plugins/siem/public/pages/case/components/add_comment/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/add_comment/index.test.tsx @@ -7,20 +7,22 @@ import React from 'react'; import { mount } from 'enzyme'; -import { AddComment } from './'; -import { TestProviders } from '../../../../mock'; +import { AddComment } from '.'; +import { TestProviders } from '../../../common/mock'; import { getFormMock } from '../__mock__/form'; import { Router, routeData, mockHistory, mockLocation } from '../__mock__/router'; -import { useInsertTimeline } from '../../../../components/timeline/insert_timeline_popover/use_insert_timeline'; -import { usePostComment } from '../../../../containers/case/use_post_comment'; -import { useForm } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; -import { wait } from '../../../../lib/helpers'; +import { useInsertTimeline } from '../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'; +import { usePostComment } from '../../containers/use_post_comment'; +import { useForm } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; +import { wait } from '../../../common/lib/helpers'; + jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' ); -jest.mock('../../../../components/timeline/insert_timeline_popover/use_insert_timeline'); -jest.mock('../../../../containers/case/use_post_comment'); + +jest.mock('../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'); +jest.mock('../../containers/use_post_comment'); export const useFormMock = useForm as jest.Mock; diff --git a/x-pack/plugins/siem/public/pages/case/components/add_comment/index.tsx b/x-pack/plugins/siem/public/cases/components/add_comment/index.tsx similarity index 83% rename from x-pack/plugins/siem/public/pages/case/components/add_comment/index.tsx rename to x-pack/plugins/siem/public/cases/components/add_comment/index.tsx index aa987b277da0..277352c39df6 100644 --- a/x-pack/plugins/siem/public/pages/case/components/add_comment/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/add_comment/index.tsx @@ -8,15 +8,15 @@ import { EuiButton, EuiLoadingSpinner } from '@elastic/eui'; import React, { useCallback, useEffect } from 'react'; import styled from 'styled-components'; -import { CommentRequest } from '../../../../../../case/common/api'; -import { usePostComment } from '../../../../containers/case/use_post_comment'; -import { Case } from '../../../../containers/case/types'; -import { MarkdownEditorForm } from '../../../../components/markdown_editor/form'; -import { InsertTimelinePopover } from '../../../../components/timeline/insert_timeline_popover'; -import { useInsertTimeline } from '../../../../components/timeline/insert_timeline_popover/use_insert_timeline'; -import { Form, useForm, UseField } from '../../../../shared_imports'; +import { CommentRequest } from '../../../../../case/common/api'; +import { usePostComment } from '../../containers/use_post_comment'; +import { Case } from '../../containers/types'; +import { MarkdownEditorForm } from '../../../common/components/markdown_editor/form'; +import { InsertTimelinePopover } from '../../../timelines/components/timeline/insert_timeline_popover'; +import { useInsertTimeline } from '../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'; +import { Form, useForm, UseField } from '../../../shared_imports'; -import * as i18n from '../../translations'; +import * as i18n from './translations'; import { schema } from './schema'; const MySpinner = styled(EuiLoadingSpinner)` diff --git a/x-pack/plugins/siem/public/pages/case/components/add_comment/schema.tsx b/x-pack/plugins/siem/public/cases/components/add_comment/schema.tsx similarity index 80% rename from x-pack/plugins/siem/public/pages/case/components/add_comment/schema.tsx rename to x-pack/plugins/siem/public/cases/components/add_comment/schema.tsx index ad73fd71b8e1..eb11357cd7ce 100644 --- a/x-pack/plugins/siem/public/pages/case/components/add_comment/schema.tsx +++ b/x-pack/plugins/siem/public/cases/components/add_comment/schema.tsx @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { CommentRequest } from '../../../../../../case/common/api'; -import { FIELD_TYPES, fieldValidators, FormSchema } from '../../../../shared_imports'; -import * as i18n from '../../translations'; +import { CommentRequest } from '../../../../../case/common/api'; +import { FIELD_TYPES, fieldValidators, FormSchema } from '../../../shared_imports'; +import * as i18n from './translations'; const { emptyField } = fieldValidators; diff --git a/x-pack/plugins/siem/public/components/page/hosts/index.tsx b/x-pack/plugins/siem/public/cases/components/add_comment/translations.ts similarity index 62% rename from x-pack/plugins/siem/public/components/page/hosts/index.tsx rename to x-pack/plugins/siem/public/cases/components/add_comment/translations.ts index 9b3f36faa065..704b8db48c1d 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/add_comment/translations.ts @@ -4,7 +4,4 @@ * you may not use this file except in compliance with the Elastic License. */ -export * from './authentications_table'; -export * from './hosts_table'; -export * from './uncommon_process_table'; -export * from './kpi_hosts'; +export * from '../../translations'; diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/actions.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/actions.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/actions.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/actions.tsx index 01b501bf6cf0..9f7e2e73c5bb 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/actions.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/actions.tsx @@ -5,10 +5,10 @@ */ import { DefaultItemIconButtonAction } from '@elastic/eui/src/components/basic_table/action_types'; import { Dispatch } from 'react'; -import { Case } from '../../../../containers/case/types'; +import { Case } from '../../containers/types'; import * as i18n from './translations'; -import { UpdateCase } from '../../../../containers/case/use_get_cases'; +import { UpdateCase } from '../../containers/use_get_cases'; interface GetActions { caseStatus: string; diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/columns.test.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/columns.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/columns.test.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/columns.test.tsx index 2a06fa6eb51a..8316823591f3 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/columns.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/columns.test.tsx @@ -9,7 +9,7 @@ import { mount } from 'enzyme'; import { ExternalServiceColumn } from './columns'; -import { useGetCasesMockState } from '../../../../containers/case/mock'; +import { useGetCasesMockState } from '../../containers/mock'; describe('ExternalServiceColumn ', () => { it('Not pushed render', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/columns.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/columns.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/columns.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/columns.tsx index 9a0460009ffa..ddd860a8720c 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/columns.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/columns.tsx @@ -14,11 +14,11 @@ import { } from '@elastic/eui'; import styled from 'styled-components'; import { DefaultItemIconButtonAction } from '@elastic/eui/src/components/basic_table/action_types'; -import { getEmptyTagValue } from '../../../../components/empty_value'; -import { Case } from '../../../../containers/case/types'; -import { FormattedRelativePreferenceDate } from '../../../../components/formatted_date'; -import { CaseDetailsLink } from '../../../../components/links'; -import { TruncatableText } from '../../../../components/truncatable_text'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { Case } from '../../containers/types'; +import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; +import { CaseDetailsLink } from '../../../common/components/links'; +import { TruncatableText } from '../../../common/components/truncatable_text'; import * as i18n from './translations'; export type CasesColumns = diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/index.test.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/index.test.tsx index eb5bca6cc57f..1dbd008277b3 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/index.test.tsx @@ -7,21 +7,23 @@ import React from 'react'; import { mount } from 'enzyme'; import moment from 'moment-timezone'; -import { AllCases } from './'; -import { TestProviders } from '../../../../mock'; -import { useGetCasesMockState } from '../../../../containers/case/mock'; +import { AllCases } from '.'; +import { TestProviders } from '../../../common/mock'; +import { useGetCasesMockState } from '../../containers/mock'; import * as i18n from './translations'; -import { getEmptyTagValue } from '../../../../components/empty_value'; -import { useDeleteCases } from '../../../../containers/case/use_delete_cases'; -import { useGetCases } from '../../../../containers/case/use_get_cases'; -import { useGetCasesStatus } from '../../../../containers/case/use_get_cases_status'; -import { useUpdateCases } from '../../../../containers/case/use_bulk_update_case'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { useDeleteCases } from '../../containers/use_delete_cases'; +import { useGetCases } from '../../containers/use_get_cases'; +import { useGetCasesStatus } from '../../containers/use_get_cases_status'; +import { useUpdateCases } from '../../containers/use_bulk_update_case'; import { getCasesColumns } from './columns'; -jest.mock('../../../../containers/case/use_bulk_update_case'); -jest.mock('../../../../containers/case/use_delete_cases'); -jest.mock('../../../../containers/case/use_get_cases'); -jest.mock('../../../../containers/case/use_get_cases_status'); + +jest.mock('../../containers/use_bulk_update_case'); +jest.mock('../../containers/use_delete_cases'); +jest.mock('../../containers/use_get_cases'); +jest.mock('../../containers/use_get_cases_status'); + const useDeleteCasesMock = useDeleteCases as jest.Mock; const useGetCasesMock = useGetCases as jest.Mock; const useGetCasesStatusMock = useGetCasesStatus as jest.Mock; diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/index.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/index.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/index.tsx index 9dd90074a2e7..e86953c84336 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/index.tsx @@ -22,31 +22,31 @@ import styled, { css } from 'styled-components'; import * as i18n from './translations'; import { getCasesColumns } from './columns'; -import { Case, DeleteCase, FilterOptions, SortFieldCase } from '../../../../containers/case/types'; -import { useGetCases, UpdateCase } from '../../../../containers/case/use_get_cases'; -import { useGetCasesStatus } from '../../../../containers/case/use_get_cases_status'; -import { useDeleteCases } from '../../../../containers/case/use_delete_cases'; -import { EuiBasicTableOnChange } from '../../../detection_engine/rules/types'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; -import { Panel } from '../../../../components/panel'; +import { Case, DeleteCase, FilterOptions, SortFieldCase } from '../../containers/types'; +import { useGetCases, UpdateCase } from '../../containers/use_get_cases'; +import { useGetCasesStatus } from '../../containers/use_get_cases_status'; +import { useDeleteCases } from '../../containers/use_delete_cases'; +import { EuiBasicTableOnChange } from '../../../alerts/pages/detection_engine/rules/types'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { Panel } from '../../../common/components/panel'; import { UtilityBar, UtilityBarAction, UtilityBarGroup, UtilityBarSection, UtilityBarText, -} from '../../../../components/utility_bar'; -import { getCreateCaseUrl } from '../../../../components/link_to'; +} from '../../../common/components/utility_bar'; +import { getCreateCaseUrl } from '../../../common/components/link_to'; import { getBulkItems } from '../bulk_actions'; import { CaseHeaderPage } from '../case_header_page'; import { ConfirmDeleteCaseModal } from '../confirm_delete_case'; import { OpenClosedStats } from '../open_closed_stats'; -import { navTabs } from '../../../home/home_navigations'; +import { navTabs } from '../../../app/home/home_navigations'; import { getActions } from './actions'; import { CasesTableFilters } from './table_filters'; -import { useUpdateCases } from '../../../../containers/case/use_bulk_update_case'; -import { useGetActionLicense } from '../../../../containers/case/use_get_action_license'; +import { useUpdateCases } from '../../containers/use_bulk_update_case'; +import { useGetActionLicense } from '../../containers/use_get_action_license'; import { getActionLicenseError } from '../use_push_to_service/helpers'; import { CaseCallOut } from '../callout'; import { ConfigureCaseButton } from '../configure_cases/button'; diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/table_filters.test.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/table_filters.test.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/table_filters.test.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/table_filters.test.tsx index 21dcc9732440..05702e931fc2 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/table_filters.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/table_filters.test.tsx @@ -8,14 +8,14 @@ import React from 'react'; import { mount } from 'enzyme'; import { CasesTableFilters } from './table_filters'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; -import { useGetTags } from '../../../../containers/case/use_get_tags'; -import { useGetReporters } from '../../../../containers/case/use_get_reporters'; -import { DEFAULT_FILTER_OPTIONS } from '../../../../containers/case/use_get_cases'; -jest.mock('../../../../components/timeline/insert_timeline_popover/use_insert_timeline'); -jest.mock('../../../../containers/case/use_get_reporters'); -jest.mock('../../../../containers/case/use_get_tags'); +import { useGetTags } from '../../containers/use_get_tags'; +import { useGetReporters } from '../../containers/use_get_reporters'; +import { DEFAULT_FILTER_OPTIONS } from '../../containers/use_get_cases'; +jest.mock('../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'); +jest.mock('../../containers/use_get_reporters'); +jest.mock('../../containers/use_get_tags'); const onFilterChanged = jest.fn(); const fetchReporters = jest.fn(); diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx b/x-pack/plugins/siem/public/cases/components/all_cases/table_filters.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx rename to x-pack/plugins/siem/public/cases/components/all_cases/table_filters.tsx index 901fb133753e..55713c201743 100644 --- a/x-pack/plugins/siem/public/pages/case/components/all_cases/table_filters.tsx +++ b/x-pack/plugins/siem/public/cases/components/all_cases/table_filters.tsx @@ -15,10 +15,10 @@ import { } from '@elastic/eui'; import * as i18n from './translations'; -import { FilterOptions } from '../../../../containers/case/types'; -import { useGetTags } from '../../../../containers/case/use_get_tags'; -import { useGetReporters } from '../../../../containers/case/use_get_reporters'; -import { FilterPopover } from '../../../../components/filter_popover'; +import { FilterOptions } from '../../containers/types'; +import { useGetTags } from '../../containers/use_get_tags'; +import { useGetReporters } from '../../containers/use_get_reporters'; +import { FilterPopover } from '../filter_popover'; interface CasesTableFiltersProps { countClosedCases: number | null; diff --git a/x-pack/plugins/siem/public/pages/case/components/all_cases/translations.ts b/x-pack/plugins/siem/public/cases/components/all_cases/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/all_cases/translations.ts rename to x-pack/plugins/siem/public/cases/components/all_cases/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/bulk_actions/index.tsx b/x-pack/plugins/siem/public/cases/components/bulk_actions/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/bulk_actions/index.tsx rename to x-pack/plugins/siem/public/cases/components/bulk_actions/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/bulk_actions/translations.ts b/x-pack/plugins/siem/public/cases/components/bulk_actions/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/bulk_actions/translations.ts rename to x-pack/plugins/siem/public/cases/components/bulk_actions/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/callout/helpers.tsx b/x-pack/plugins/siem/public/cases/components/callout/helpers.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/callout/helpers.tsx rename to x-pack/plugins/siem/public/cases/components/callout/helpers.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/callout/index.test.tsx b/x-pack/plugins/siem/public/cases/components/callout/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/case/components/callout/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/callout/index.test.tsx index 126ea13e96af..0ab90d8a7312 100644 --- a/x-pack/plugins/siem/public/pages/case/components/callout/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/callout/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { mount } from 'enzyme'; -import { CaseCallOut } from './'; +import { CaseCallOut } from '.'; const defaultProps = { title: 'hey title', diff --git a/x-pack/plugins/siem/public/pages/case/components/callout/index.tsx b/x-pack/plugins/siem/public/cases/components/callout/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/callout/index.tsx rename to x-pack/plugins/siem/public/cases/components/callout/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/callout/translations.ts b/x-pack/plugins/siem/public/cases/components/callout/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/callout/translations.ts rename to x-pack/plugins/siem/public/cases/components/callout/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/case_header_page/index.tsx b/x-pack/plugins/siem/public/cases/components/case_header_page/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/case/components/case_header_page/index.tsx rename to x-pack/plugins/siem/public/cases/components/case_header_page/index.tsx index ae2664ca6e83..4c7cfabe757c 100644 --- a/x-pack/plugins/siem/public/pages/case/components/case_header_page/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/case_header_page/index.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { HeaderPage, HeaderPageProps } from '../../../../components/header_page'; +import { HeaderPage, HeaderPageProps } from '../../../common/components/header_page'; import * as i18n from './translations'; const CaseHeaderPageComponent: React.FC = props => ; diff --git a/x-pack/plugins/siem/public/pages/case/components/case_header_page/translations.ts b/x-pack/plugins/siem/public/cases/components/case_header_page/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/case_header_page/translations.ts rename to x-pack/plugins/siem/public/cases/components/case_header_page/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/case_status/index.tsx b/x-pack/plugins/siem/public/cases/components/case_status/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/case/components/case_status/index.tsx rename to x-pack/plugins/siem/public/cases/components/case_status/index.tsx index f48d9a68ffaf..a37c9052c2ff 100644 --- a/x-pack/plugins/siem/public/pages/case/components/case_status/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/case_status/index.tsx @@ -17,10 +17,10 @@ import { EuiFlexItem, } from '@elastic/eui'; import * as i18n from '../case_view/translations'; -import { FormattedRelativePreferenceDate } from '../../../../components/formatted_date'; +import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; import { CaseViewActions } from '../case_view/actions'; -import { Case } from '../../../../containers/case/types'; -import { CaseService } from '../../../../containers/case/use_get_case_user_actions'; +import { Case } from '../../containers/types'; +import { CaseService } from '../../containers/use_get_case_user_actions'; const MyDescriptionList = styled(EuiDescriptionList)` ${({ theme }) => css` diff --git a/x-pack/plugins/siem/public/pages/case/components/case_view/actions.test.tsx b/x-pack/plugins/siem/public/cases/components/case_view/actions.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/pages/case/components/case_view/actions.test.tsx rename to x-pack/plugins/siem/public/cases/components/case_view/actions.test.tsx index 24fbd59b3282..1f8d3230f42a 100644 --- a/x-pack/plugins/siem/public/pages/case/components/case_view/actions.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/case_view/actions.test.tsx @@ -7,12 +7,12 @@ import React from 'react'; import { mount } from 'enzyme'; -import { useDeleteCases } from '../../../../containers/case/use_delete_cases'; -import { TestProviders } from '../../../../mock'; -import { basicCase, basicPush } from '../../../../containers/case/mock'; +import { useDeleteCases } from '../../containers/use_delete_cases'; +import { TestProviders } from '../../../common/mock'; +import { basicCase, basicPush } from '../../containers/mock'; import { CaseViewActions } from './actions'; import * as i18n from './translations'; -jest.mock('../../../../containers/case/use_delete_cases'); +jest.mock('../../containers/use_delete_cases'); const useDeleteCasesMock = useDeleteCases as jest.Mock; describe('CaseView actions', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/case_view/actions.tsx b/x-pack/plugins/siem/public/cases/components/case_view/actions.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/case/components/case_view/actions.tsx rename to x-pack/plugins/siem/public/cases/components/case_view/actions.tsx index 4acdaef6ca51..cd9318a355e3 100644 --- a/x-pack/plugins/siem/public/pages/case/components/case_view/actions.tsx +++ b/x-pack/plugins/siem/public/cases/components/case_view/actions.tsx @@ -8,12 +8,12 @@ import { isEmpty } from 'lodash/fp'; import React, { useMemo } from 'react'; import { Redirect } from 'react-router-dom'; import * as i18n from './translations'; -import { useDeleteCases } from '../../../../containers/case/use_delete_cases'; +import { useDeleteCases } from '../../containers/use_delete_cases'; import { ConfirmDeleteCaseModal } from '../confirm_delete_case'; -import { SiemPageName } from '../../../home/types'; +import { SiemPageName } from '../../../app/types'; import { PropertyActions } from '../property_actions'; -import { Case } from '../../../../containers/case/types'; -import { CaseService } from '../../../../containers/case/use_get_case_user_actions'; +import { Case } from '../../containers/types'; +import { CaseService } from '../../containers/use_get_case_user_actions'; interface CaseViewActions { caseData: Case; diff --git a/x-pack/plugins/siem/public/pages/case/components/case_view/index.test.tsx b/x-pack/plugins/siem/public/cases/components/case_view/index.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/case_view/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/case_view/index.test.tsx index a6e6b19a071c..70d2dc97f3f4 100644 --- a/x-pack/plugins/siem/public/pages/case/components/case_view/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/case_view/index.test.tsx @@ -8,17 +8,17 @@ import React from 'react'; import { mount } from 'enzyme'; import { Router, routeData, mockHistory, mockLocation } from '../__mock__/router'; -import { CaseComponent, CaseProps, CaseView } from './'; -import { basicCase, basicCaseClosed, caseUserActions } from '../../../../containers/case/mock'; -import { TestProviders } from '../../../../mock'; -import { useUpdateCase } from '../../../../containers/case/use_update_case'; -import { useGetCase } from '../../../../containers/case/use_get_case'; -import { useGetCaseUserActions } from '../../../../containers/case/use_get_case_user_actions'; -import { wait } from '../../../../lib/helpers'; +import { CaseComponent, CaseProps, CaseView } from '.'; +import { basicCase, basicCaseClosed, caseUserActions } from '../../containers/mock'; +import { TestProviders } from '../../../common/mock'; +import { useUpdateCase } from '../../containers/use_update_case'; +import { useGetCase } from '../../containers/use_get_case'; +import { useGetCaseUserActions } from '../../containers/use_get_case_user_actions'; +import { wait } from '../../../common/lib/helpers'; import { usePushToService } from '../use_push_to_service'; -jest.mock('../../../../containers/case/use_update_case'); -jest.mock('../../../../containers/case/use_get_case_user_actions'); -jest.mock('../../../../containers/case/use_get_case'); +jest.mock('../../containers/use_update_case'); +jest.mock('../../containers/use_get_case_user_actions'); +jest.mock('../../containers/use_get_case'); jest.mock('../use_push_to_service'); const useUpdateCaseMock = useUpdateCase as jest.Mock; const useGetCaseUserActionsMock = useGetCaseUserActions as jest.Mock; diff --git a/x-pack/plugins/siem/public/pages/case/components/case_view/index.tsx b/x-pack/plugins/siem/public/cases/components/case_view/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/case/components/case_view/index.tsx rename to x-pack/plugins/siem/public/cases/components/case_view/index.tsx index fed8ec8edbe8..d02119580a75 100644 --- a/x-pack/plugins/siem/public/pages/case/components/case_view/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/case_view/index.tsx @@ -16,27 +16,27 @@ import React, { useCallback, useEffect, useMemo, useState } from 'react'; import styled from 'styled-components'; import * as i18n from './translations'; -import { Case } from '../../../../containers/case/types'; -import { getCaseUrl } from '../../../../components/link_to'; -import { HeaderPage } from '../../../../components/header_page'; -import { EditableTitle } from '../../../../components/header_page/editable_title'; +import { Case } from '../../containers/types'; +import { getCaseUrl } from '../../../common/components/link_to'; +import { HeaderPage } from '../../../common/components/header_page'; +import { EditableTitle } from '../../../common/components/header_page/editable_title'; import { TagList } from '../tag_list'; -import { useGetCase } from '../../../../containers/case/use_get_case'; +import { useGetCase } from '../../containers/use_get_case'; import { UserActionTree } from '../user_action_tree'; import { UserList } from '../user_list'; -import { useUpdateCase } from '../../../../containers/case/use_update_case'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; -import { WrapperPage } from '../../../../components/wrapper_page'; -import { getTypedPayload } from '../../../../containers/case/utils'; +import { useUpdateCase } from '../../containers/use_update_case'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { WrapperPage } from '../../../common/components/wrapper_page'; +import { getTypedPayload } from '../../containers/utils'; import { WhitePageWrapper } from '../wrappers'; -import { useBasePath } from '../../../../lib/kibana'; +import { useBasePath } from '../../../common/lib/kibana'; import { CaseStatus } from '../case_status'; -import { navTabs } from '../../../home/home_navigations'; -import { SpyRoute } from '../../../../utils/route/spy_routes'; -import { useGetCaseUserActions } from '../../../../containers/case/use_get_case_user_actions'; +import { navTabs } from '../../../app/home/home_navigations'; +import { SpyRoute } from '../../../common/utils/route/spy_routes'; +import { useGetCaseUserActions } from '../../containers/use_get_case_user_actions'; import { usePushToService } from '../use_push_to_service'; import { EditConnector } from '../edit_connector'; -import { useConnectors } from '../../../../containers/case/configure/use_connectors'; +import { useConnectors } from '../../containers/configure/use_connectors'; interface Props { caseId: string; diff --git a/x-pack/plugins/siem/public/pages/case/components/case_view/translations.ts b/x-pack/plugins/siem/public/cases/components/case_view/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/case_view/translations.ts rename to x-pack/plugins/siem/public/cases/components/case_view/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/__mock__/index.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/__mock__/index.tsx similarity index 70% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/__mock__/index.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/__mock__/index.tsx index 0eccd8980ccd..23c76953a6a0 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/__mock__/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/__mock__/index.tsx @@ -4,17 +4,18 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Connector } from '../../../../../containers/case/configure/types'; -import { ReturnConnectors } from '../../../../../containers/case/configure/use_connectors'; -import { connectorsMock } from '../../../../../containers/case/configure/mock'; -import { ReturnUseCaseConfigure } from '../../../../../containers/case/configure/use_configure'; -import { createUseKibanaMock } from '../../../../../mock/kibana_react'; -export { mapping } from '../../../../../containers/case/configure/mock'; +import { Connector } from '../../../containers/configure/types'; +import { ReturnConnectors } from '../../../containers/configure/use_connectors'; +import { connectorsMock } from '../../../containers/configure/mock'; +import { ReturnUseCaseConfigure } from '../../../containers/configure/use_configure'; +import { createUseKibanaMock } from '../../../../common/mock/kibana_react'; +export { mapping } from '../../../containers/configure/mock'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { actionTypeRegistryMock } from '../../../../../../../triggers_actions_ui/public/application/action_type_registry.mock'; +import { actionTypeRegistryMock } from '../../../../../../triggers_actions_ui/public/application/action_type_registry.mock'; export const connectors: Connector[] = connectorsMock; +// x - pack / plugins / triggers_actions_ui; export const searchURL = '?timerange=(global:(linkTo:!(),timerange:(from:1585487656371,fromStr:now-24h,kind:relative,to:1585574056371,toStr:now)),timeline:(linkTo:!(),timerange:(from:1585227005527,kind:absolute,to:1585313405527)))'; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/button.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/button.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/button.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/button.test.tsx index cf52fef94ed1..550b9bd9896a 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/button.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/button.test.tsx @@ -9,7 +9,7 @@ import { ReactWrapper, mount } from 'enzyme'; import { EuiText } from '@elastic/eui'; import { ConfigureCaseButton, ConfigureCaseButtonProps } from './button'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { searchURL } from './__mock__'; describe('Configuration button', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/button.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/button.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/button.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/button.tsx index 844ffea28415..a6d78d4a2a62 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/button.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/button.tsx @@ -6,7 +6,7 @@ import { EuiButton, EuiToolTip } from '@elastic/eui'; import React, { memo, useMemo } from 'react'; -import { getConfigureCasesUrl } from '../../../../components/link_to'; +import { getConfigureCasesUrl } from '../../../common/components/link_to'; export interface ConfigureCaseButtonProps { label: string; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/closure_options.test.tsx index eaef524b13da..6192fd0ee9ff 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; import { ClosureOptions, ClosureOptionsProps } from './closure_options'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { ClosureOptionsRadio } from './closure_options_radio'; describe('ClosureOptions', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/closure_options.tsx index 6fa97818dd0c..b845b423449e 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { EuiDescribedFormGroup, EuiFormRow } from '@elastic/eui'; -import { ClosureType } from '../../../../containers/case/configure/types'; +import { ClosureType } from '../../containers/configure/types'; import { ClosureOptionsRadio } from './closure_options_radio'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options_radio.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options_radio.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options_radio.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/closure_options_radio.test.tsx index f2ef2c2d55c2..dae2204bc466 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options_radio.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options_radio.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { ReactWrapper, mount } from 'enzyme'; import { ClosureOptionsRadio, ClosureOptionsRadioComponentProps } from './closure_options_radio'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; describe('ClosureOptionsRadio', () => { let wrapper: ReactWrapper; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options_radio.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options_radio.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options_radio.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/closure_options_radio.tsx index d2cdb7ecda7b..673c8fbcc70d 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/closure_options_radio.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/closure_options_radio.tsx @@ -7,7 +7,7 @@ import React, { ReactNode, useCallback } from 'react'; import { EuiRadioGroup } from '@elastic/eui'; -import { ClosureType } from '../../../../containers/case/configure/types'; +import { ClosureType } from '../../containers/configure/types'; import * as i18n from './translations'; interface ClosureRadios { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/connectors.test.tsx index b0271f6849ac..41cd3e549415 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors.test.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; import { Connectors, Props } from './connectors'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { ConnectorsDropdown } from './connectors_dropdown'; import { connectors } from './__mock__'; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/connectors.tsx index 1b1439d3bac4..3916ce297a0a 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors.tsx @@ -19,7 +19,7 @@ import styled from 'styled-components'; import { ConnectorsDropdown } from './connectors_dropdown'; import * as i18n from './translations'; -import { Connector } from '../../../../containers/case/configure/types'; +import { Connector } from '../../containers/configure/types'; const EuiFormRowExtended = styled(EuiFormRow)` .euiFormRow__labelWrapper { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors_dropdown.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors_dropdown.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors_dropdown.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/connectors_dropdown.test.tsx index 6abe4f1ac00a..da20078dde0d 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors_dropdown.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors_dropdown.test.tsx @@ -9,7 +9,7 @@ import { mount, ReactWrapper } from 'enzyme'; import { EuiSuperSelect } from '@elastic/eui'; import { ConnectorsDropdown, Props } from './connectors_dropdown'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { connectors } from './__mock__'; describe('ConnectorsDropdown', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors_dropdown.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors_dropdown.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors_dropdown.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/connectors_dropdown.tsx index 2f73c8c5dba0..b2b2edb04bd2 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/connectors_dropdown.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/connectors_dropdown.tsx @@ -8,8 +8,8 @@ import React, { useMemo } from 'react'; import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiSuperSelect } from '@elastic/eui'; import styled from 'styled-components'; -import { Connector } from '../../../../containers/case/configure/types'; -import { connectorsConfiguration } from '../../../../lib/connectors/config'; +import { Connector } from '../../containers/configure/types'; +import { connectorsConfiguration } from '../../../common/lib/connectors/config'; import * as i18n from './translations'; export interface Props { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping.test.tsx index 498757a34b78..7f9ad8770669 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping.test.tsx @@ -7,13 +7,13 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { connectorsConfiguration } from '../../../../lib/connectors/config'; -import { createDefaultMapping } from '../../../../lib/connectors/utils'; +import { connectorsConfiguration } from '../../../common/lib/connectors/config'; +import { createDefaultMapping } from '../../../common/lib/connectors/utils'; import { FieldMapping, FieldMappingProps } from './field_mapping'; import { mapping } from './__mock__'; import { FieldMappingRow } from './field_mapping_row'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; describe('FieldMappingRow', () => { let wrapper: ReactWrapper; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping.tsx index 41a6fbca3c00..0eab690915f4 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping.tsx @@ -13,17 +13,17 @@ import { CaseField, ActionType, ThirdPartyField, -} from '../../../../containers/case/configure/types'; +} from '../../containers/configure/types'; import { FieldMappingRow } from './field_mapping_row'; import * as i18n from './translations'; -import { connectorsConfiguration } from '../../../../lib/connectors/config'; +import { connectorsConfiguration } from '../../../common/lib/connectors/config'; import { setActionTypeToMapping, setThirdPartyToMapping } from './utils'; import { ThirdPartyField as ConnectorConfigurationThirdPartyField, AllThirdPartyFields, -} from '../../../../lib/connectors/types'; -import { createDefaultMapping } from '../../../../lib/connectors/utils'; +} from '../../../common/lib/connectors/types'; +import { createDefaultMapping } from '../../../common/lib/connectors/utils'; const FieldRowWrapper = styled.div` margin-top: 8px; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping_row.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping_row.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping_row.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping_row.test.tsx index e30096cc7eb6..4d0401fdf1bf 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping_row.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping_row.test.tsx @@ -9,8 +9,8 @@ import { mount, ReactWrapper } from 'enzyme'; import { EuiSuperSelectOption, EuiSuperSelect } from '@elastic/eui'; import { FieldMappingRow, RowProps } from './field_mapping_row'; -import { TestProviders } from '../../../../mock'; -import { ThirdPartyField, ActionType } from '../../../../containers/case/configure/types'; +import { TestProviders } from '../../../common/mock'; +import { ThirdPartyField, ActionType } from '../../containers/configure/types'; const thirdPartyOptions: Array> = [ { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping_row.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping_row.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping_row.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping_row.tsx index 687b0517326e..922ea7222efc 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/field_mapping_row.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/field_mapping_row.tsx @@ -14,13 +14,8 @@ import { } from '@elastic/eui'; import { capitalize } from 'lodash/fp'; - -import { - CaseField, - ActionType, - ThirdPartyField, -} from '../../../../containers/case/configure/types'; -import { AllThirdPartyFields } from '../../../../lib/connectors/types'; +import { CaseField, ActionType, ThirdPartyField } from '../../containers/configure/types'; +import { AllThirdPartyFields } from '../../../common/lib/connectors/types'; export interface RowProps { id: string; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/index.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/index.test.tsx index 08975703241c..fcacb6dedff7 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/index.test.tsx @@ -7,20 +7,20 @@ import React from 'react'; import { ReactWrapper, mount } from 'enzyme'; -import { ConfigureCases } from './'; -import { TestProviders } from '../../../../mock'; +import { ConfigureCases } from '.'; +import { TestProviders } from '../../../common/mock'; import { Connectors } from './connectors'; import { ClosureOptions } from './closure_options'; import { ActionsConnectorsContextProvider, ConnectorAddFlyout, ConnectorEditFlyout, -} from '../../../../../../triggers_actions_ui/public'; +} from '../../../../../triggers_actions_ui/public'; -import { useKibana } from '../../../../lib/kibana'; -import { useConnectors } from '../../../../containers/case/configure/use_connectors'; -import { useCaseConfigure } from '../../../../containers/case/configure/use_configure'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; +import { useKibana } from '../../../common/lib/kibana'; +import { useConnectors } from '../../containers/configure/use_connectors'; +import { useCaseConfigure } from '../../containers/configure/use_configure'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; import { connectors, @@ -30,10 +30,10 @@ import { kibanaMockImplementationArgs, } from './__mock__'; -jest.mock('../../../../lib/kibana'); -jest.mock('../../../../containers/case/configure/use_connectors'); -jest.mock('../../../../containers/case/configure/use_configure'); -jest.mock('../../../../components/navigation/use_get_url_search'); +jest.mock('../../../common/lib/kibana'); +jest.mock('../../containers/configure/use_connectors'); +jest.mock('../../containers/configure/use_configure'); +jest.mock('../../../common/components/navigation/use_get_url_search'); const useKibanaMock = useKibana as jest.Mock; const useConnectorsMock = useConnectors as jest.Mock; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/index.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/index.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/index.tsx index 739083a5009e..d5c6cc671433 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/index.tsx @@ -16,28 +16,27 @@ import { EuiButtonEmpty, EuiText, } from '@elastic/eui'; - import { difference } from 'lodash/fp'; -import { useKibana } from '../../../../lib/kibana'; -import { useConnectors } from '../../../../containers/case/configure/use_connectors'; -import { useCaseConfigure } from '../../../../containers/case/configure/use_configure'; +import { useKibana } from '../../../common/lib/kibana'; +import { useConnectors } from '../../containers/configure/use_connectors'; +import { useCaseConfigure } from '../../containers/configure/use_configure'; import { ActionsConnectorsContextProvider, ActionType, ConnectorAddFlyout, ConnectorEditFlyout, -} from '../../../../../../triggers_actions_ui/public'; +} from '../../../../../triggers_actions_ui/public'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ActionConnectorTableItem } from '../../../../../../triggers_actions_ui/public/types'; -import { getCaseUrl } from '../../../../components/link_to'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; -import { connectorsConfiguration } from '../../../../lib/connectors/config'; +import { ActionConnectorTableItem } from '../../../../../triggers_actions_ui/public/types'; +import { getCaseUrl } from '../../../common/components/link_to'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { connectorsConfiguration } from '../../../common/lib/connectors/config'; -import { Connectors } from '../configure_cases/connectors'; -import { ClosureOptions } from '../configure_cases/closure_options'; +import { Connectors } from './connectors'; +import { ClosureOptions } from './closure_options'; import { SectionWrapper } from '../wrappers'; -import { navTabs } from '../../../../pages/home/home_navigations'; +import { navTabs } from '../../../app/home/home_navigations'; import * as i18n from './translations'; const FormWrapper = styled.div` diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/mapping.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/mapping.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/mapping.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/mapping.test.tsx index 083904d30349..68a35987ecaf 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/mapping.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/mapping.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { mount, ReactWrapper } from 'enzyme'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { Mapping, MappingProps } from './mapping'; import { mapping } from './__mock__'; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/mapping.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/mapping.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/mapping.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/mapping.tsx index acbcdac68a13..2c3172a30f15 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/mapping.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/mapping.tsx @@ -18,7 +18,7 @@ import { import * as i18n from './translations'; import { FieldMapping } from './field_mapping'; -import { CasesConfigurationMapping } from '../../../../containers/case/configure/types'; +import { CasesConfigurationMapping } from '../../containers/configure/types'; export interface MappingProps { disabled: boolean; diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/translations.ts b/x-pack/plugins/siem/public/cases/components/configure_cases/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/translations.ts rename to x-pack/plugins/siem/public/cases/components/configure_cases/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/utils.test.tsx b/x-pack/plugins/siem/public/cases/components/configure_cases/utils.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/utils.test.tsx rename to x-pack/plugins/siem/public/cases/components/configure_cases/utils.test.tsx index 1c6fc9b2d405..d6755f687100 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/utils.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/utils.test.tsx @@ -6,7 +6,7 @@ import { mapping } from './__mock__'; import { setActionTypeToMapping, setThirdPartyToMapping } from './utils'; -import { CasesConfigurationMapping } from '../../../../containers/case/configure/types'; +import { CasesConfigurationMapping } from '../../containers/configure/types'; describe('FieldMappingRow', () => { test('it should change the action type', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/configure_cases/utils.ts b/x-pack/plugins/siem/public/cases/components/configure_cases/utils.ts similarity index 95% rename from x-pack/plugins/siem/public/pages/case/components/configure_cases/utils.ts rename to x-pack/plugins/siem/public/cases/components/configure_cases/utils.ts index a44378c22e89..95851ec294e0 100644 --- a/x-pack/plugins/siem/public/pages/case/components/configure_cases/utils.ts +++ b/x-pack/plugins/siem/public/cases/components/configure_cases/utils.ts @@ -8,7 +8,7 @@ import { ActionType, CasesConfigurationMapping, ThirdPartyField, -} from '../../../../containers/case/configure/types'; +} from '../../containers/configure/types'; export const setActionTypeToMapping = ( caseField: CaseField, diff --git a/x-pack/plugins/siem/public/pages/case/components/confirm_delete_case/index.tsx b/x-pack/plugins/siem/public/cases/components/confirm_delete_case/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/confirm_delete_case/index.tsx rename to x-pack/plugins/siem/public/cases/components/confirm_delete_case/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/confirm_delete_case/translations.ts b/x-pack/plugins/siem/public/cases/components/confirm_delete_case/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/confirm_delete_case/translations.ts rename to x-pack/plugins/siem/public/cases/components/confirm_delete_case/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/connector_selector/form.tsx b/x-pack/plugins/siem/public/cases/components/connector_selector/form.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/case/components/connector_selector/form.tsx rename to x-pack/plugins/siem/public/cases/components/connector_selector/form.tsx index 5f0e498bb405..9e058ee5cf09 100644 --- a/x-pack/plugins/siem/public/pages/case/components/connector_selector/form.tsx +++ b/x-pack/plugins/siem/public/cases/components/connector_selector/form.tsx @@ -7,9 +7,9 @@ import { EuiFormRow } from '@elastic/eui'; import React, { useCallback, useEffect } from 'react'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../../../shared_imports'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../shared_imports'; import { ConnectorsDropdown } from '../configure_cases/connectors_dropdown'; -import { Connector } from '../../../../../../case/common/api/cases'; +import { Connector } from '../../../../../case/common/api/cases'; interface ConnectorSelectorProps { connectors: Connector[]; diff --git a/x-pack/plugins/siem/public/pages/case/components/create/index.test.tsx b/x-pack/plugins/siem/public/cases/components/create/index.test.tsx similarity index 81% rename from x-pack/plugins/siem/public/pages/case/components/create/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/create/index.test.tsx index 4c2e15ddfa98..647a0d324725 100644 --- a/x-pack/plugins/siem/public/pages/case/components/create/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/create/index.test.tsx @@ -7,26 +7,26 @@ import React from 'react'; import { mount } from 'enzyme'; -import { Create } from './'; -import { TestProviders } from '../../../../mock'; +import { Create } from '.'; +import { TestProviders } from '../../../common/mock'; import { getFormMock } from '../__mock__/form'; import { Router, routeData, mockHistory, mockLocation } from '../__mock__/router'; -import { useInsertTimeline } from '../../../../components/timeline/insert_timeline_popover/use_insert_timeline'; -import { usePostCase } from '../../../../containers/case/use_post_case'; -import { useGetTags } from '../../../../containers/case/use_get_tags'; +import { useInsertTimeline } from '../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'; +import { usePostCase } from '../../containers/use_post_case'; +import { useGetTags } from '../../containers/use_get_tags'; -jest.mock('../../../../components/timeline/insert_timeline_popover/use_insert_timeline'); -jest.mock('../../../../containers/case/use_post_case'); -import { useForm } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks'; -import { wait } from '../../../../lib/helpers'; -import { SiemPageName } from '../../../home/types'; +jest.mock('../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'); +jest.mock('../../containers/use_post_case'); +import { useForm } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; +import { wait } from '../../../common/lib/helpers'; +import { SiemPageName } from '../../../app/types'; jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' ); -jest.mock('../../../../containers/case/use_get_tags'); +jest.mock('../../containers/use_get_tags'); jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/components/form_data_provider', + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/components/form_data_provider', () => ({ FormDataProvider: ({ children }: { children: ({ tags }: { tags: string[] }) => void }) => children({ tags: ['rad', 'dude'] }), diff --git a/x-pack/plugins/siem/public/pages/case/components/create/index.tsx b/x-pack/plugins/siem/public/cases/components/create/index.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/case/components/create/index.tsx rename to x-pack/plugins/siem/public/cases/components/create/index.tsx index 6731b88572cd..655536faa171 100644 --- a/x-pack/plugins/siem/public/pages/case/components/create/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/create/index.tsx @@ -16,7 +16,7 @@ import styled, { css } from 'styled-components'; import { Redirect } from 'react-router-dom'; import { isEqual } from 'lodash/fp'; -import { CasePostRequest } from '../../../../../../case/common/api'; +import { CasePostRequest } from '../../../../../case/common/api'; import { Field, Form, @@ -24,15 +24,15 @@ import { useForm, UseField, FormDataProvider, -} from '../../../../shared_imports'; -import { usePostCase } from '../../../../containers/case/use_post_case'; +} from '../../../shared_imports'; +import { usePostCase } from '../../containers/use_post_case'; import { schema } from './schema'; -import { InsertTimelinePopover } from '../../../../components/timeline/insert_timeline_popover'; -import { useInsertTimeline } from '../../../../components/timeline/insert_timeline_popover/use_insert_timeline'; +import { InsertTimelinePopover } from '../../../timelines/components/timeline/insert_timeline_popover'; +import { useInsertTimeline } from '../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'; import * as i18n from '../../translations'; -import { SiemPageName } from '../../../home/types'; -import { MarkdownEditorForm } from '../../../../components/markdown_editor/form'; -import { useGetTags } from '../../../../containers/case/use_get_tags'; +import { SiemPageName } from '../../../app/types'; +import { MarkdownEditorForm } from '../../../common/components//markdown_editor/form'; +import { useGetTags } from '../../containers/use_get_tags'; export const CommonUseField = getUseField({ component: Field }); diff --git a/x-pack/plugins/siem/public/pages/case/components/create/optional_field_label/index.tsx b/x-pack/plugins/siem/public/cases/components/create/optional_field_label/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/create/optional_field_label/index.tsx rename to x-pack/plugins/siem/public/cases/components/create/optional_field_label/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/create/schema.tsx b/x-pack/plugins/siem/public/cases/components/create/schema.tsx similarity index 91% rename from x-pack/plugins/siem/public/pages/case/components/create/schema.tsx rename to x-pack/plugins/siem/public/cases/components/create/schema.tsx index a4e0bb691653..ce38033271d0 100644 --- a/x-pack/plugins/siem/public/pages/case/components/create/schema.tsx +++ b/x-pack/plugins/siem/public/cases/components/create/schema.tsx @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { CasePostRequest } from '../../../../../../case/common/api'; -import { FIELD_TYPES, fieldValidators, FormSchema } from '../../../../shared_imports'; +import { CasePostRequest } from '../../../../../case/common/api'; +import { FIELD_TYPES, fieldValidators, FormSchema } from '../../../shared_imports'; import * as i18n from '../../translations'; import { OptionalFieldLabel } from './optional_field_label'; diff --git a/x-pack/plugins/siem/public/pages/case/components/edit_connector/index.test.tsx b/x-pack/plugins/siem/public/cases/components/edit_connector/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/case/components/edit_connector/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/edit_connector/index.test.tsx index 29776360b72d..5dfed80baa8e 100644 --- a/x-pack/plugins/siem/public/pages/case/components/edit_connector/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/edit_connector/index.test.tsx @@ -9,12 +9,12 @@ import { mount } from 'enzyme'; import { EditConnector } from './index'; import { getFormMock, useFormMock } from '../__mock__/form'; -import { TestProviders } from '../../../../mock'; -import { connectorsMock } from '../../../../containers/case/configure/mock'; -import { wait } from '../../../../lib/helpers'; +import { TestProviders } from '../../../common/mock'; +import { connectorsMock } from '../../containers/configure/mock'; +import { wait } from '../../../common/lib/helpers'; import { act } from 'react-dom/test-utils'; jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' ); const onSubmit = jest.fn(); const defaultProps = { diff --git a/x-pack/plugins/siem/public/pages/case/components/edit_connector/index.tsx b/x-pack/plugins/siem/public/cases/components/edit_connector/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/edit_connector/index.tsx rename to x-pack/plugins/siem/public/cases/components/edit_connector/index.tsx index 83be8b5ad7e5..29f06532a4ab 100644 --- a/x-pack/plugins/siem/public/pages/case/components/edit_connector/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/edit_connector/index.tsx @@ -17,10 +17,10 @@ import { } from '@elastic/eui'; import styled, { css } from 'styled-components'; import * as i18n from '../../translations'; -import { Form, UseField, useForm } from '../../../../shared_imports'; +import { Form, UseField, useForm } from '../../../shared_imports'; import { schema } from './schema'; import { ConnectorSelector } from '../connector_selector/form'; -import { Connector } from '../../../../../../case/common/api/cases'; +import { Connector } from '../../../../../case/common/api/cases'; interface EditConnectorProps { connectors: Connector[]; diff --git a/x-pack/plugins/siem/public/pages/case/components/edit_connector/schema.tsx b/x-pack/plugins/siem/public/cases/components/edit_connector/schema.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/case/components/edit_connector/schema.tsx rename to x-pack/plugins/siem/public/cases/components/edit_connector/schema.tsx index 4b9008839e69..cdc50c7d28e4 100644 --- a/x-pack/plugins/siem/public/pages/case/components/edit_connector/schema.tsx +++ b/x-pack/plugins/siem/public/cases/components/edit_connector/schema.tsx @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { FormSchema } from '../../../../shared_imports'; +import { FormSchema } from '../../../shared_imports'; export const schema: FormSchema = { connector: { diff --git a/x-pack/plugins/siem/public/components/filter_popover/index.tsx b/x-pack/plugins/siem/public/cases/components/filter_popover/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/filter_popover/index.tsx rename to x-pack/plugins/siem/public/cases/components/filter_popover/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/open_closed_stats/index.tsx b/x-pack/plugins/siem/public/cases/components/open_closed_stats/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/open_closed_stats/index.tsx rename to x-pack/plugins/siem/public/cases/components/open_closed_stats/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/property_actions/constants.ts b/x-pack/plugins/siem/public/cases/components/property_actions/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/property_actions/constants.ts rename to x-pack/plugins/siem/public/cases/components/property_actions/constants.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/property_actions/index.tsx b/x-pack/plugins/siem/public/cases/components/property_actions/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/property_actions/index.tsx rename to x-pack/plugins/siem/public/cases/components/property_actions/index.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/property_actions/translations.ts b/x-pack/plugins/siem/public/cases/components/property_actions/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/property_actions/translations.ts rename to x-pack/plugins/siem/public/cases/components/property_actions/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/tag_list/index.test.tsx b/x-pack/plugins/siem/public/cases/components/tag_list/index.test.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/case/components/tag_list/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/tag_list/index.test.tsx index 9ddb96a4ed29..0b7b4211f6a3 100644 --- a/x-pack/plugins/siem/public/pages/case/components/tag_list/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/tag_list/index.test.tsx @@ -8,19 +8,19 @@ import React from 'react'; import { mount } from 'enzyme'; import { act } from 'react-dom/test-utils'; -import { TagList } from './'; +import { TagList } from '.'; import { getFormMock } from '../__mock__/form'; -import { TestProviders } from '../../../../mock'; -import { wait } from '../../../../lib/helpers'; -import { useForm } from '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks'; -import { useGetTags } from '../../../../containers/case/use_get_tags'; +import { TestProviders } from '../../../common/mock'; +import { wait } from '../../../common/lib/helpers'; +import { useForm } from '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form'; +import { useGetTags } from '../../containers/use_get_tags'; jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/hooks/use_form' ); -jest.mock('../../../../containers/case/use_get_tags'); +jest.mock('../../containers/use_get_tags'); jest.mock( - '../../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/components/form_data_provider', + '../../../../../../../src/plugins/es_ui_shared/static/forms/hook_form_lib/components/form_data_provider', () => ({ FormDataProvider: ({ children }: { children: ({ tags }: { tags: string[] }) => void }) => children({ tags: ['rad', 'dude'] }), diff --git a/x-pack/plugins/siem/public/pages/case/components/tag_list/index.tsx b/x-pack/plugins/siem/public/cases/components/tag_list/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/tag_list/index.tsx rename to x-pack/plugins/siem/public/cases/components/tag_list/index.tsx index c61feab0bab9..259028d9c636 100644 --- a/x-pack/plugins/siem/public/pages/case/components/tag_list/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/tag_list/index.tsx @@ -19,10 +19,10 @@ import { import styled, { css } from 'styled-components'; import { isEqual } from 'lodash/fp'; import * as i18n from './translations'; -import { Form, FormDataProvider, useForm } from '../../../../shared_imports'; +import { Form, FormDataProvider, useForm } from '../../../shared_imports'; import { schema } from './schema'; import { CommonUseField } from '../create'; -import { useGetTags } from '../../../../containers/case/use_get_tags'; +import { useGetTags } from '../../containers/use_get_tags'; interface TagListProps { disabled?: boolean; diff --git a/x-pack/plugins/siem/public/pages/case/components/tag_list/schema.tsx b/x-pack/plugins/siem/public/cases/components/tag_list/schema.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/case/components/tag_list/schema.tsx rename to x-pack/plugins/siem/public/cases/components/tag_list/schema.tsx index 50ba114de528..335a0785ecb0 100644 --- a/x-pack/plugins/siem/public/pages/case/components/tag_list/schema.tsx +++ b/x-pack/plugins/siem/public/cases/components/tag_list/schema.tsx @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { FormSchema } from '../../../../shared_imports'; +import { FormSchema } from '../../../shared_imports'; import { schemaTags } from '../create/schema'; export const schema: FormSchema = { diff --git a/x-pack/plugins/siem/public/pages/case/components/tag_list/translations.ts b/x-pack/plugins/siem/public/cases/components/tag_list/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/tag_list/translations.ts rename to x-pack/plugins/siem/public/cases/components/tag_list/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/helpers.tsx b/x-pack/plugins/siem/public/cases/components/use_push_to_service/helpers.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/case/components/use_push_to_service/helpers.tsx rename to x-pack/plugins/siem/public/cases/components/use_push_to_service/helpers.tsx index 0613c40d1181..f0ded815fce4 100644 --- a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/helpers.tsx +++ b/x-pack/plugins/siem/public/cases/components/use_push_to_service/helpers.tsx @@ -9,7 +9,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; import * as i18n from './translations'; -import { ActionLicense } from '../../../../containers/case/types'; +import { ActionLicense } from '../../containers/types'; export const getLicenseError = () => ({ title: i18n.PUSH_DISABLE_BY_LICENSE_TITLE, diff --git a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/index.test.tsx b/x-pack/plugins/siem/public/cases/components/use_push_to_service/index.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/case/components/use_push_to_service/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/use_push_to_service/index.test.tsx index b19c2dbf5273..cb0020194231 100644 --- a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/use_push_to_service/index.test.tsx @@ -6,17 +6,17 @@ /* eslint-disable react/display-name */ import React from 'react'; import { renderHook, act } from '@testing-library/react-hooks'; -import { usePushToService, ReturnUsePushToService, UsePushToService } from './'; -import { TestProviders } from '../../../../mock'; -import { usePostPushToService } from '../../../../containers/case/use_post_push_to_service'; -import { basicPush, actionLicenses } from '../../../../containers/case/mock'; +import { usePushToService, ReturnUsePushToService, UsePushToService } from '.'; +import { TestProviders } from '../../../common/mock'; +import { usePostPushToService } from '../../containers/use_post_push_to_service'; +import { basicPush, actionLicenses } from '../../containers/mock'; import * as i18n from './translations'; -import { useGetActionLicense } from '../../../../containers/case/use_get_action_license'; +import { useGetActionLicense } from '../../containers/use_get_action_license'; import { getKibanaConfigError, getLicenseError } from './helpers'; -import { connectorsMock } from '../../../../containers/case/configure/mock'; -jest.mock('../../../../containers/case/use_get_action_license'); -jest.mock('../../../../containers/case/use_post_push_to_service'); -jest.mock('../../../../containers/case/configure/api'); +import { connectorsMock } from '../../containers/configure/mock'; +jest.mock('../../containers/use_get_action_license'); +jest.mock('../../containers/use_post_push_to_service'); +jest.mock('../../containers/configure/api'); describe('usePushToService', () => { const caseId = '12345'; diff --git a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/index.tsx b/x-pack/plugins/siem/public/cases/components/use_push_to_service/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/case/components/use_push_to_service/index.tsx rename to x-pack/plugins/siem/public/cases/components/use_push_to_service/index.tsx index 7f3a951339ef..157639f011fe 100644 --- a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/use_push_to_service/index.tsx @@ -8,17 +8,17 @@ import { EuiButton, EuiLink, EuiToolTip } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import React, { useCallback, useMemo } from 'react'; -import { Case } from '../../../../containers/case/types'; -import { useGetActionLicense } from '../../../../containers/case/use_get_action_license'; -import { usePostPushToService } from '../../../../containers/case/use_post_push_to_service'; -import { getConfigureCasesUrl } from '../../../../components/link_to'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; -import { navTabs } from '../../../home/home_navigations'; +import { Case } from '../../containers/types'; +import { useGetActionLicense } from '../../containers/use_get_action_license'; +import { usePostPushToService } from '../../containers/use_post_push_to_service'; +import { getConfigureCasesUrl } from '../../../common/components/link_to'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; import { CaseCallOut } from '../callout'; import { getLicenseError, getKibanaConfigError } from './helpers'; import * as i18n from './translations'; -import { Connector } from '../../../../../../case/common/api/cases'; -import { CaseServices } from '../../../../containers/case/use_get_case_user_actions'; +import { Connector } from '../../../../../case/common/api/cases'; +import { CaseServices } from '../../containers/use_get_case_user_actions'; export interface UsePushToService { caseId: string; diff --git a/x-pack/plugins/siem/public/pages/case/components/use_push_to_service/translations.ts b/x-pack/plugins/siem/public/cases/components/use_push_to_service/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/use_push_to_service/translations.ts rename to x-pack/plugins/siem/public/cases/components/use_push_to_service/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/helpers.test.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/helpers.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/helpers.test.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/helpers.test.tsx index 6e7c2979f80b..678bd5497514 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/helpers.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/helpers.test.tsx @@ -5,11 +5,11 @@ */ import React from 'react'; -import { basicPush, getUserAction } from '../../../../containers/case/mock'; +import { basicPush, getUserAction } from '../../containers/mock'; import { getLabelTitle } from './helpers'; import * as i18n from '../case_view/translations'; import { mount } from 'enzyme'; -import { connectorsMock } from '../../../../containers/case/configure/mock'; +import { connectorsMock } from '../../containers/configure/mock'; describe('User action tree helpers', () => { const connectors = connectorsMock; diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/helpers.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/helpers.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/helpers.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/helpers.tsx index 285fa3c58c18..58c176ed96b5 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/helpers.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/helpers.tsx @@ -7,8 +7,8 @@ import { EuiFlexGroup, EuiFlexItem, EuiBadge, EuiLink } from '@elastic/eui'; import React from 'react'; -import { CaseFullExternalService, Connector } from '../../../../../../case/common/api'; -import { CaseUserActions } from '../../../../containers/case/types'; +import { CaseFullExternalService, Connector } from '../../../../../case/common/api'; +import { CaseUserActions } from '../../containers/types'; import * as i18n from '../case_view/translations'; interface LabelTitle { diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/index.test.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/index.test.tsx index b9a94f83fded..d3e8ea6563b2 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/index.test.tsx @@ -9,11 +9,11 @@ import { mount } from 'enzyme'; import { Router, routeData, mockHistory, mockLocation } from '../__mock__/router'; import { getFormMock, useFormMock } from '../__mock__/form'; -import { useUpdateComment } from '../../../../containers/case/use_update_comment'; -import { basicCase, basicPush, getUserAction } from '../../../../containers/case/mock'; -import { UserActionTree } from './'; -import { TestProviders } from '../../../../mock'; -import { wait } from '../../../../lib/helpers'; +import { useUpdateComment } from '../../containers/use_update_comment'; +import { basicCase, basicPush, getUserAction } from '../../containers/mock'; +import { UserActionTree } from '.'; +import { TestProviders } from '../../../common/mock'; +import { wait } from '../../../common/lib/helpers'; import { act } from 'react-dom/test-utils'; const fetchUserActions = jest.fn(); @@ -32,7 +32,7 @@ const defaultProps = { userCanCrud: true, }; const useUpdateCommentMock = useUpdateComment as jest.Mock; -jest.mock('../../../../containers/case/use_update_comment'); +jest.mock('../../containers/use_update_comment'); const patchComment = jest.fn(); describe('UserActionTree ', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/index.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/index.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/index.tsx index 80d2c2063143..3a909636bc04 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/index.tsx @@ -11,16 +11,16 @@ import styled from 'styled-components'; import * as i18n from '../case_view/translations'; -import { Case, CaseUserActions } from '../../../../containers/case/types'; -import { useUpdateComment } from '../../../../containers/case/use_update_comment'; -import { useCurrentUser } from '../../../../lib/kibana'; +import { Case, CaseUserActions } from '../../containers/types'; +import { useUpdateComment } from '../../containers/use_update_comment'; +import { useCurrentUser } from '../../../common/lib/kibana'; import { AddComment } from '../add_comment'; import { getLabelTitle } from './helpers'; import { UserActionItem } from './user_action_item'; import { UserActionMarkdown } from './user_action_markdown'; -import { Connector } from '../../../../../../case/common/api/cases'; -import { CaseServices } from '../../../../containers/case/use_get_case_user_actions'; -import { parseString } from '../../../../containers/case/utils'; +import { Connector } from '../../../../../case/common/api/cases'; +import { CaseServices } from '../../containers/use_get_case_user_actions'; +import { parseString } from '../../containers/utils'; export interface UserActionTreeProps { caseServices: CaseServices; diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/schema.ts b/x-pack/plugins/siem/public/cases/components/user_action_tree/schema.ts similarity index 96% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/schema.ts rename to x-pack/plugins/siem/public/cases/components/user_action_tree/schema.ts index a9e6bf84a1a1..7a2777037023 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/schema.ts +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/schema.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { FIELD_TYPES, fieldValidators, FormSchema } from '../../../../shared_imports'; +import { FIELD_TYPES, fieldValidators, FormSchema } from '../../../shared_imports'; import * as i18n from '../../translations'; const { emptyField } = fieldValidators; diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/translations.ts b/x-pack/plugins/siem/public/cases/components/user_action_tree/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/translations.ts rename to x-pack/plugins/siem/public/cases/components/user_action_tree/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_avatar.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_avatar.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_avatar.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_avatar.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_item.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_item.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_item.tsx diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_markdown.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_markdown.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_markdown.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_markdown.tsx index 827fe2df120a..23d8d8f1a7e6 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_markdown.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_markdown.tsx @@ -9,12 +9,12 @@ import React, { useCallback } from 'react'; import styled, { css } from 'styled-components'; import * as i18n from '../case_view/translations'; -import { Markdown } from '../../../../components/markdown'; -import { Form, useForm, UseField } from '../../../../shared_imports'; +import { Markdown } from '../../../common/components/markdown'; +import { Form, useForm, UseField } from '../../../shared_imports'; import { schema, Content } from './schema'; -import { InsertTimelinePopover } from '../../../../components/timeline/insert_timeline_popover'; -import { useInsertTimeline } from '../../../../components/timeline/insert_timeline_popover/use_insert_timeline'; -import { MarkdownEditorForm } from '../../../../components/markdown_editor/form'; +import { InsertTimelinePopover } from '../../../timelines/components/timeline/insert_timeline_popover'; +import { useInsertTimeline } from '../../../timelines/components/timeline/insert_timeline_popover/use_insert_timeline'; +import { MarkdownEditorForm } from '../../../common/components//markdown_editor/form'; const ContentWrapper = styled.div` ${({ theme }) => css` diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.test.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_title.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.test.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_title.test.tsx index 8a1e8a80f664..cf29fa061e41 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_title.test.tsx @@ -8,9 +8,9 @@ import React from 'react'; import { mount } from 'enzyme'; import copy from 'copy-to-clipboard'; import { Router, routeData, mockHistory } from '../__mock__/router'; -import { caseUserActions as basicUserActions } from '../../../../containers/case/mock'; +import { caseUserActions as basicUserActions } from '../../containers/mock'; import { UserActionTitle } from './user_action_title'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; const outlineComment = jest.fn(); const onEdit = jest.fn(); diff --git a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_title.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx rename to x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_title.tsx index fc2a74466ded..307790194421 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_action_tree/user_action_title.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_action_tree/user_action_title.tsx @@ -19,11 +19,11 @@ import React, { useMemo, useCallback } from 'react'; import styled from 'styled-components'; import { useParams } from 'react-router-dom'; -import { LocalizedDateTooltip } from '../../../../components/localized_date_tooltip'; -import { useGetUrlSearch } from '../../../../components/navigation/use_get_url_search'; -import { navTabs } from '../../../home/home_navigations'; +import { LocalizedDateTooltip } from '../../../common/components/localized_date_tooltip'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; import { PropertyActions } from '../property_actions'; -import { SiemPageName } from '../../../home/types'; +import { SiemPageName } from '../../../app/types'; import * as i18n from './translations'; const MySpinner = styled(EuiLoadingSpinner)` diff --git a/x-pack/plugins/siem/public/pages/case/components/user_list/index.test.tsx b/x-pack/plugins/siem/public/cases/components/user_list/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/user_list/index.test.tsx rename to x-pack/plugins/siem/public/cases/components/user_list/index.test.tsx index 51acb3b810d9..7916a72d591a 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_list/index.test.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_list/index.test.tsx @@ -6,7 +6,7 @@ import React from 'react'; import { shallow } from 'enzyme'; -import { UserList } from './'; +import { UserList } from '.'; import * as i18n from '../case_view/translations'; describe('UserList ', () => { diff --git a/x-pack/plugins/siem/public/pages/case/components/user_list/index.tsx b/x-pack/plugins/siem/public/cases/components/user_list/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/pages/case/components/user_list/index.tsx rename to x-pack/plugins/siem/public/cases/components/user_list/index.tsx index 579e8e48fa14..0606da371d16 100644 --- a/x-pack/plugins/siem/public/pages/case/components/user_list/index.tsx +++ b/x-pack/plugins/siem/public/cases/components/user_list/index.tsx @@ -20,7 +20,7 @@ import { import styled, { css } from 'styled-components'; -import { ElasticUser } from '../../../../containers/case/types'; +import { ElasticUser } from '../../containers/types'; import * as i18n from './translations'; interface UserListProps { diff --git a/x-pack/plugins/siem/public/pages/case/components/user_list/translations.ts b/x-pack/plugins/siem/public/cases/components/user_list/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/user_list/translations.ts rename to x-pack/plugins/siem/public/cases/components/user_list/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/components/wrappers/index.tsx b/x-pack/plugins/siem/public/cases/components/wrappers/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/case/components/wrappers/index.tsx rename to x-pack/plugins/siem/public/cases/components/wrappers/index.tsx diff --git a/x-pack/plugins/siem/public/containers/case/__mocks__/api.ts b/x-pack/plugins/siem/public/cases/containers/__mocks__/api.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/__mocks__/api.ts rename to x-pack/plugins/siem/public/cases/containers/__mocks__/api.ts diff --git a/x-pack/plugins/siem/public/containers/case/api.test.tsx b/x-pack/plugins/siem/public/cases/containers/api.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/containers/case/api.test.tsx rename to x-pack/plugins/siem/public/cases/containers/api.test.tsx index 174738098fa1..b4f0c2198b45 100644 --- a/x-pack/plugins/siem/public/containers/case/api.test.tsx +++ b/x-pack/plugins/siem/public/cases/containers/api.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KibanaServices } from '../../lib/kibana'; +import { KibanaServices } from '../../common/lib/kibana'; import { CASES_URL } from '../../../../case/common/constants'; @@ -54,7 +54,7 @@ import * as i18n from './translations'; const abortCtrl = new AbortController(); const mockKibanaServices = KibanaServices.get as jest.Mock; -jest.mock('../../lib/kibana'); +jest.mock('../../common/lib/kibana'); const fetchMock = jest.fn(); mockKibanaServices.mockReturnValue({ http: { fetch: fetchMock } }); diff --git a/x-pack/plugins/siem/public/containers/case/api.ts b/x-pack/plugins/siem/public/cases/containers/api.ts similarity index 99% rename from x-pack/plugins/siem/public/containers/case/api.ts rename to x-pack/plugins/siem/public/cases/containers/api.ts index 438eae9d88a4..678286c0634d 100644 --- a/x-pack/plugins/siem/public/containers/case/api.ts +++ b/x-pack/plugins/siem/public/cases/containers/api.ts @@ -35,7 +35,7 @@ import { getCaseCommentsUrl, } from '../../../../case/common/api/helpers'; -import { KibanaServices } from '../../lib/kibana'; +import { KibanaServices } from '../../common/lib/kibana'; import { ActionLicense, diff --git a/x-pack/plugins/siem/public/containers/case/configure/__mocks__/api.ts b/x-pack/plugins/siem/public/cases/containers/configure/__mocks__/api.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/configure/__mocks__/api.ts rename to x-pack/plugins/siem/public/cases/containers/configure/__mocks__/api.ts diff --git a/x-pack/plugins/siem/public/containers/case/configure/api.test.ts b/x-pack/plugins/siem/public/cases/containers/configure/api.test.ts similarity index 97% rename from x-pack/plugins/siem/public/containers/case/configure/api.test.ts rename to x-pack/plugins/siem/public/cases/containers/configure/api.test.ts index ef0e51fb1c24..11a293ef437f 100644 --- a/x-pack/plugins/siem/public/containers/case/configure/api.test.ts +++ b/x-pack/plugins/siem/public/cases/containers/configure/api.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KibanaServices } from '../../../lib/kibana'; +import { KibanaServices } from '../../../common/lib/kibana'; import { fetchConnectors, getCaseConfigure, postCaseConfigure, patchCaseConfigure } from './api'; import { connectorsMock, @@ -15,7 +15,7 @@ import { const abortCtrl = new AbortController(); const mockKibanaServices = KibanaServices.get as jest.Mock; -jest.mock('../../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); const fetchMock = jest.fn(); mockKibanaServices.mockReturnValue({ http: { fetch: fetchMock } }); diff --git a/x-pack/plugins/siem/public/containers/case/configure/api.ts b/x-pack/plugins/siem/public/cases/containers/configure/api.ts similarity index 97% rename from x-pack/plugins/siem/public/containers/case/configure/api.ts rename to x-pack/plugins/siem/public/cases/containers/configure/api.ts index 4f516764e46f..4b4b81460ebc 100644 --- a/x-pack/plugins/siem/public/containers/case/configure/api.ts +++ b/x-pack/plugins/siem/public/cases/containers/configure/api.ts @@ -11,7 +11,7 @@ import { CasesConfigureResponse, CasesConfigureRequest, } from '../../../../../case/common/api'; -import { KibanaServices } from '../../../lib/kibana'; +import { KibanaServices } from '../../../common/lib/kibana'; import { CASE_CONFIGURE_CONNECTORS_URL, diff --git a/x-pack/plugins/siem/public/containers/case/configure/mock.ts b/x-pack/plugins/siem/public/cases/containers/configure/mock.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/configure/mock.ts rename to x-pack/plugins/siem/public/cases/containers/configure/mock.ts diff --git a/x-pack/plugins/siem/public/containers/case/configure/translations.ts b/x-pack/plugins/siem/public/cases/containers/configure/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/configure/translations.ts rename to x-pack/plugins/siem/public/cases/containers/configure/translations.ts diff --git a/x-pack/plugins/siem/public/containers/case/configure/types.ts b/x-pack/plugins/siem/public/cases/containers/configure/types.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/configure/types.ts rename to x-pack/plugins/siem/public/cases/containers/configure/types.ts diff --git a/x-pack/plugins/siem/public/containers/case/configure/use_configure.test.tsx b/x-pack/plugins/siem/public/cases/containers/configure/use_configure.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/configure/use_configure.test.tsx rename to x-pack/plugins/siem/public/cases/containers/configure/use_configure.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/configure/use_configure.tsx b/x-pack/plugins/siem/public/cases/containers/configure/use_configure.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/case/configure/use_configure.tsx rename to x-pack/plugins/siem/public/cases/containers/configure/use_configure.tsx index a185d435f716..5a85a3a0633b 100644 --- a/x-pack/plugins/siem/public/containers/case/configure/use_configure.tsx +++ b/x-pack/plugins/siem/public/cases/containers/configure/use_configure.tsx @@ -7,7 +7,11 @@ import { useEffect, useCallback, useReducer } from 'react'; import { getCaseConfigure, patchCaseConfigure, postCaseConfigure } from './api'; -import { useStateToaster, errorToToaster, displaySuccessToast } from '../../../components/toasters'; +import { + useStateToaster, + errorToToaster, + displaySuccessToast, +} from '../../../common/components/toasters'; import * as i18n from './translations'; import { CasesConfigurationMapping, ClosureType } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/configure/use_connectors.test.tsx b/x-pack/plugins/siem/public/cases/containers/configure/use_connectors.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/configure/use_connectors.test.tsx rename to x-pack/plugins/siem/public/cases/containers/configure/use_connectors.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/configure/use_connectors.tsx b/x-pack/plugins/siem/public/cases/containers/configure/use_connectors.tsx similarity index 95% rename from x-pack/plugins/siem/public/containers/case/configure/use_connectors.tsx rename to x-pack/plugins/siem/public/cases/containers/configure/use_connectors.tsx index 30108ecf3387..9cd755864d37 100644 --- a/x-pack/plugins/siem/public/containers/case/configure/use_connectors.tsx +++ b/x-pack/plugins/siem/public/cases/containers/configure/use_connectors.tsx @@ -6,7 +6,7 @@ import { useState, useEffect, useCallback } from 'react'; -import { useStateToaster, errorToToaster } from '../../../components/toasters'; +import { useStateToaster, errorToToaster } from '../../../common/components/toasters'; import * as i18n from '../translations'; import { fetchConnectors } from './api'; import { Connector } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/constants.ts b/x-pack/plugins/siem/public/cases/containers/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/constants.ts rename to x-pack/plugins/siem/public/cases/containers/constants.ts diff --git a/x-pack/plugins/siem/public/containers/case/mock.ts b/x-pack/plugins/siem/public/cases/containers/mock.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/mock.ts rename to x-pack/plugins/siem/public/cases/containers/mock.ts diff --git a/x-pack/plugins/siem/public/containers/case/translations.ts b/x-pack/plugins/siem/public/cases/containers/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/translations.ts rename to x-pack/plugins/siem/public/cases/containers/translations.ts diff --git a/x-pack/plugins/siem/public/containers/case/types.ts b/x-pack/plugins/siem/public/cases/containers/types.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/case/types.ts rename to x-pack/plugins/siem/public/cases/containers/types.ts diff --git a/x-pack/plugins/siem/public/containers/case/use_bulk_update_case.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_bulk_update_case.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_bulk_update_case.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_bulk_update_case.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_bulk_update_case.tsx b/x-pack/plugins/siem/public/cases/containers/use_bulk_update_case.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_bulk_update_case.tsx rename to x-pack/plugins/siem/public/cases/containers/use_bulk_update_case.tsx index d0cc4d99f8f9..b9b64aa77493 100644 --- a/x-pack/plugins/siem/public/containers/case/use_bulk_update_case.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_bulk_update_case.tsx @@ -5,7 +5,11 @@ */ import { useCallback, useReducer } from 'react'; -import { displaySuccessToast, errorToToaster, useStateToaster } from '../../components/toasters'; +import { + displaySuccessToast, + errorToToaster, + useStateToaster, +} from '../../common/components/toasters'; import * as i18n from './translations'; import { patchCasesStatus } from './api'; import { BulkUpdateStatus, Case } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/use_delete_cases.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_delete_cases.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_delete_cases.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_delete_cases.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_delete_cases.tsx b/x-pack/plugins/siem/public/cases/containers/use_delete_cases.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/case/use_delete_cases.tsx rename to x-pack/plugins/siem/public/cases/containers/use_delete_cases.tsx index 3c49be551c06..31a73351de8f 100644 --- a/x-pack/plugins/siem/public/containers/case/use_delete_cases.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_delete_cases.tsx @@ -5,7 +5,11 @@ */ import { useCallback, useReducer } from 'react'; -import { displaySuccessToast, errorToToaster, useStateToaster } from '../../components/toasters'; +import { + displaySuccessToast, + errorToToaster, + useStateToaster, +} from '../../common/components/toasters'; import * as i18n from './translations'; import { deleteCases } from './api'; import { DeleteCase } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/use_get_action_license.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_action_license.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_action_license.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_action_license.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_action_license.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_action_license.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_get_action_license.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_action_license.tsx index 0d28a1b20c61..c09cc8dedd37 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_action_license.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_action_license.tsx @@ -6,7 +6,7 @@ import { useCallback, useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { getActionLicense } from './api'; import * as i18n from './translations'; import { ActionLicense } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/use_get_case.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_case.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_case.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_case.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_case.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_case.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/case/use_get_case.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_case.tsx index 06d4c38ddda4..01ada00ba9b7 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_case.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_case.tsx @@ -8,7 +8,7 @@ import { useEffect, useReducer, useCallback } from 'react'; import { Case } from './types'; import * as i18n from './translations'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { getCase } from './api'; interface CaseState { diff --git a/x-pack/plugins/siem/public/containers/case/use_get_case_user_actions.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_case_user_actions.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_case_user_actions.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_case_user_actions.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_case_user_actions.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_case_user_actions.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/case/use_get_case_user_actions.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_case_user_actions.tsx index 5afe06a9828e..2848d56378cd 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_case_user_actions.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_case_user_actions.tsx @@ -7,7 +7,7 @@ import { isEmpty, uniqBy } from 'lodash/fp'; import { useCallback, useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { getCaseUserActions } from './api'; import * as i18n from './translations'; import { CaseExternalService, CaseUserActions, ElasticUser } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/use_get_cases.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_cases.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_cases.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_cases.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_cases.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_cases.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/case/use_get_cases.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_cases.tsx index 465b50dbdc1b..b0701c71b857 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_cases.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_cases.tsx @@ -7,7 +7,7 @@ import { useCallback, useEffect, useReducer } from 'react'; import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from './constants'; import { AllCases, SortFieldCase, FilterOptions, QueryParams, Case } from './types'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import * as i18n from './translations'; import { UpdateByKey } from './use_update_case'; import { getCases, patchCase } from './api'; diff --git a/x-pack/plugins/siem/public/containers/case/use_get_cases_status.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_cases_status.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_cases_status.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_cases_status.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_cases_status.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_cases_status.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_get_cases_status.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_cases_status.tsx index 078846460235..476462b7e4c2 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_cases_status.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_cases_status.tsx @@ -6,7 +6,7 @@ import { useCallback, useEffect, useState } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { getCasesStatus } from './api'; import * as i18n from './translations'; import { CasesStatus } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/use_get_reporters.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_reporters.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_reporters.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_reporters.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_reporters.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_reporters.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_get_reporters.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_reporters.tsx index 01679ae4ccd8..5bfc8c84d1ec 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_reporters.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_reporters.tsx @@ -8,7 +8,7 @@ import { useCallback, useEffect, useState } from 'react'; import { isEmpty } from 'lodash/fp'; import { User } from '../../../../case/common/api'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { getReporters } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/case/use_get_tags.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_tags.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_get_tags.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_tags.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_get_tags.tsx b/x-pack/plugins/siem/public/cases/containers/use_get_tags.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_get_tags.tsx rename to x-pack/plugins/siem/public/cases/containers/use_get_tags.tsx index 99bb65fa160f..14f5e35bc497 100644 --- a/x-pack/plugins/siem/public/containers/case/use_get_tags.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_get_tags.tsx @@ -6,7 +6,7 @@ import { useEffect, useReducer } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { getTags } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/case/use_post_case.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_post_case.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_post_case.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_post_case.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_post_case.tsx b/x-pack/plugins/siem/public/cases/containers/use_post_case.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_post_case.tsx rename to x-pack/plugins/siem/public/cases/containers/use_post_case.tsx index b33269f26e97..13cfc2738620 100644 --- a/x-pack/plugins/siem/public/containers/case/use_post_case.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_post_case.tsx @@ -7,7 +7,7 @@ import { useReducer, useCallback } from 'react'; import { CasePostRequest } from '../../../../case/common/api'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { postCase } from './api'; import * as i18n from './translations'; import { Case } from './types'; diff --git a/x-pack/plugins/siem/public/containers/case/use_post_comment.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_post_comment.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_post_comment.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_post_comment.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_post_comment.tsx b/x-pack/plugins/siem/public/cases/containers/use_post_comment.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_post_comment.tsx rename to x-pack/plugins/siem/public/cases/containers/use_post_comment.tsx index c7d3b4125aad..9a52eaaf0db6 100644 --- a/x-pack/plugins/siem/public/containers/case/use_post_comment.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_post_comment.tsx @@ -7,7 +7,7 @@ import { useReducer, useCallback } from 'react'; import { CommentRequest } from '../../../../case/common/api'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { postComment } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/case/use_post_push_to_service.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_post_push_to_service.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_post_push_to_service.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_post_push_to_service.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_post_push_to_service.tsx b/x-pack/plugins/siem/public/cases/containers/use_post_push_to_service.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/case/use_post_push_to_service.tsx rename to x-pack/plugins/siem/public/cases/containers/use_post_push_to_service.tsx index 7f4c4a427617..def324dcf442 100644 --- a/x-pack/plugins/siem/public/containers/case/use_post_push_to_service.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_post_push_to_service.tsx @@ -10,7 +10,11 @@ import { ServiceConnectorCaseResponse, ServiceConnectorCaseParams, } from '../../../../case/common/api'; -import { errorToToaster, useStateToaster, displaySuccessToast } from '../../components/toasters'; +import { + errorToToaster, + useStateToaster, + displaySuccessToast, +} from '../../common/components/toasters'; import { getCase, pushToService, pushCase } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/case/use_update_case.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_update_case.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_update_case.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_update_case.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_update_case.tsx b/x-pack/plugins/siem/public/cases/containers/use_update_case.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/case/use_update_case.tsx rename to x-pack/plugins/siem/public/cases/containers/use_update_case.tsx index af824674999b..77cf53165d91 100644 --- a/x-pack/plugins/siem/public/containers/case/use_update_case.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_update_case.tsx @@ -5,7 +5,11 @@ */ import { useReducer, useCallback } from 'react'; -import { displaySuccessToast, errorToToaster, useStateToaster } from '../../components/toasters'; +import { + displaySuccessToast, + errorToToaster, + useStateToaster, +} from '../../common/components/toasters'; import { CasePatchRequest } from '../../../../case/common/api'; import { patchCase } from './api'; diff --git a/x-pack/plugins/siem/public/containers/case/use_update_comment.test.tsx b/x-pack/plugins/siem/public/cases/containers/use_update_comment.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/case/use_update_comment.test.tsx rename to x-pack/plugins/siem/public/cases/containers/use_update_comment.test.tsx diff --git a/x-pack/plugins/siem/public/containers/case/use_update_comment.tsx b/x-pack/plugins/siem/public/cases/containers/use_update_comment.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/case/use_update_comment.tsx rename to x-pack/plugins/siem/public/cases/containers/use_update_comment.tsx index ffc5cffee7a5..66064faea27d 100644 --- a/x-pack/plugins/siem/public/containers/case/use_update_comment.tsx +++ b/x-pack/plugins/siem/public/cases/containers/use_update_comment.tsx @@ -6,7 +6,7 @@ import { useReducer, useCallback } from 'react'; -import { errorToToaster, useStateToaster } from '../../components/toasters'; +import { errorToToaster, useStateToaster } from '../../common/components/toasters'; import { patchComment } from './api'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/containers/case/utils.ts b/x-pack/plugins/siem/public/cases/containers/utils.ts similarity index 98% rename from x-pack/plugins/siem/public/containers/case/utils.ts rename to x-pack/plugins/siem/public/cases/containers/utils.ts index 15e514d6ea8b..ebaba0fe42f7 100644 --- a/x-pack/plugins/siem/public/containers/case/utils.ts +++ b/x-pack/plugins/siem/public/cases/containers/utils.ts @@ -26,7 +26,7 @@ import { ServiceConnectorCaseResponseRt, ServiceConnectorCaseResponse, } from '../../../../case/common/api'; -import { ToasterError } from '../../components/toasters'; +import { ToasterError } from '../../common/components/toasters'; import { AllCases, Case } from './types'; export const getTypedPayload = (a: unknown): T => a as T; diff --git a/x-pack/plugins/siem/public/cases/index.ts b/x-pack/plugins/siem/public/cases/index.ts new file mode 100644 index 000000000000..1eb8c82532e2 --- /dev/null +++ b/x-pack/plugins/siem/public/cases/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SecuritySubPlugin } from '../app/types'; +import { getCasesRoutes } from './routes'; + +export class Cases { + public setup() {} + + public start(): SecuritySubPlugin { + return { + routes: getCasesRoutes(), + }; + } +} diff --git a/x-pack/plugins/siem/public/pages/case/case.tsx b/x-pack/plugins/siem/public/cases/pages/case.tsx similarity index 74% rename from x-pack/plugins/siem/public/pages/case/case.tsx rename to x-pack/plugins/siem/public/cases/pages/case.tsx index 2b613f6692df..03ebec34c2cd 100644 --- a/x-pack/plugins/siem/public/pages/case/case.tsx +++ b/x-pack/plugins/siem/public/cases/pages/case.tsx @@ -6,12 +6,12 @@ import React from 'react'; -import { WrapperPage } from '../../components/wrapper_page'; -import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; -import { SpyRoute } from '../../utils/route/spy_routes'; -import { AllCases } from './components/all_cases'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { useGetUserSavedObjectPermissions } from '../../common/lib/kibana'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { AllCases } from '../components/all_cases'; -import { savedObjectReadOnly, CaseCallOut } from './components/callout'; +import { savedObjectReadOnly, CaseCallOut } from '../components/callout'; import { CaseSavedObjectNoPermissions } from './saved_object_no_permissions'; export const CasesPage = React.memo(() => { diff --git a/x-pack/plugins/siem/public/pages/case/case_details.tsx b/x-pack/plugins/siem/public/cases/pages/case_details.tsx similarity index 68% rename from x-pack/plugins/siem/public/pages/case/case_details.tsx rename to x-pack/plugins/siem/public/cases/pages/case_details.tsx index 4bb8afa7f8d4..5ea5e5295159 100644 --- a/x-pack/plugins/siem/public/pages/case/case_details.tsx +++ b/x-pack/plugins/siem/public/cases/pages/case_details.tsx @@ -7,13 +7,13 @@ import React from 'react'; import { useParams, Redirect } from 'react-router-dom'; -import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; -import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; -import { SpyRoute } from '../../utils/route/spy_routes'; -import { getCaseUrl } from '../../components/link_to'; -import { navTabs } from '../home/home_navigations'; -import { CaseView } from './components/case_view'; -import { savedObjectReadOnly, CaseCallOut } from './components/callout'; +import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; +import { useGetUserSavedObjectPermissions } from '../../common/lib/kibana'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { getCaseUrl } from '../../common/components/link_to'; +import { navTabs } from '../../app/home/home_navigations'; +import { CaseView } from '../components/case_view'; +import { savedObjectReadOnly, CaseCallOut } from '../components/callout'; export const CaseDetailsPage = React.memo(() => { const userPermissions = useGetUserSavedObjectPermissions(); diff --git a/x-pack/plugins/siem/public/pages/case/configure_cases.tsx b/x-pack/plugins/siem/public/cases/pages/configure_cases.tsx similarity index 68% rename from x-pack/plugins/siem/public/pages/case/configure_cases.tsx rename to x-pack/plugins/siem/public/cases/pages/configure_cases.tsx index 7515efa0e1b7..bea3a9fb110a 100644 --- a/x-pack/plugins/siem/public/pages/case/configure_cases.tsx +++ b/x-pack/plugins/siem/public/cases/pages/configure_cases.tsx @@ -7,15 +7,15 @@ import React, { useMemo } from 'react'; import { Redirect } from 'react-router-dom'; -import { getCaseUrl } from '../../components/link_to'; -import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; -import { WrapperPage } from '../../components/wrapper_page'; -import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; -import { SpyRoute } from '../../utils/route/spy_routes'; -import { navTabs } from '../home/home_navigations'; -import { CaseHeaderPage } from './components/case_header_page'; -import { ConfigureCases } from './components/configure_cases'; -import { WhitePageWrapper, SectionWrapper } from './components/wrappers'; +import { getCaseUrl } from '../../common/components/link_to'; +import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { useGetUserSavedObjectPermissions } from '../../common/lib/kibana'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { navTabs } from '../../app/home/home_navigations'; +import { CaseHeaderPage } from '../components/case_header_page'; +import { ConfigureCases } from '../components/configure_cases'; +import { WhitePageWrapper, SectionWrapper } from '../components/wrappers'; import * as i18n from './translations'; const wrapperPageStyle: Record = { diff --git a/x-pack/plugins/siem/public/pages/case/create_case.tsx b/x-pack/plugins/siem/public/cases/pages/create_case.tsx similarity index 65% rename from x-pack/plugins/siem/public/pages/case/create_case.tsx rename to x-pack/plugins/siem/public/cases/pages/create_case.tsx index 06cb7fadfb8d..c586a90e5ef9 100644 --- a/x-pack/plugins/siem/public/pages/case/create_case.tsx +++ b/x-pack/plugins/siem/public/cases/pages/create_case.tsx @@ -7,14 +7,14 @@ import React, { useMemo } from 'react'; import { Redirect } from 'react-router-dom'; -import { getCaseUrl } from '../../components/link_to'; -import { useGetUrlSearch } from '../../components/navigation/use_get_url_search'; -import { WrapperPage } from '../../components/wrapper_page'; -import { useGetUserSavedObjectPermissions } from '../../lib/kibana'; -import { SpyRoute } from '../../utils/route/spy_routes'; -import { navTabs } from '../home/home_navigations'; -import { CaseHeaderPage } from './components/case_header_page'; -import { Create } from './components/create'; +import { getCaseUrl } from '../../common/components/link_to'; +import { useGetUrlSearch } from '../../common/components/navigation/use_get_url_search'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { useGetUserSavedObjectPermissions } from '../../common/lib/kibana'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { navTabs } from '../../app/home/home_navigations'; +import { CaseHeaderPage } from '../components/case_header_page'; +import { Create } from '../components/create'; import * as i18n from './translations'; export const CreateCasePage = React.memo(() => { diff --git a/x-pack/plugins/siem/public/pages/case/index.tsx b/x-pack/plugins/siem/public/cases/pages/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/case/index.tsx rename to x-pack/plugins/siem/public/cases/pages/index.tsx index 124cefa726a8..32f64d2690cb 100644 --- a/x-pack/plugins/siem/public/pages/case/index.tsx +++ b/x-pack/plugins/siem/public/cases/pages/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { Route, Switch } from 'react-router-dom'; -import { SiemPageName } from '../home/types'; +import { SiemPageName } from '../../app/types'; import { CaseDetailsPage } from './case_details'; import { CasesPage } from './case'; import { CreateCasePage } from './create_case'; diff --git a/x-pack/plugins/siem/public/pages/case/saved_object_no_permissions.tsx b/x-pack/plugins/siem/public/cases/pages/saved_object_no_permissions.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/case/saved_object_no_permissions.tsx rename to x-pack/plugins/siem/public/cases/pages/saved_object_no_permissions.tsx index 689c290c9101..a560f697de41 100644 --- a/x-pack/plugins/siem/public/pages/case/saved_object_no_permissions.tsx +++ b/x-pack/plugins/siem/public/cases/pages/saved_object_no_permissions.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { EmptyPage } from '../../components/empty_page'; +import { EmptyPage } from '../../common/components/empty_page'; import * as i18n from './translations'; -import { useKibana } from '../../lib/kibana'; +import { useKibana } from '../../common/lib/kibana'; export const CaseSavedObjectNoPermissions = React.memo(() => { const docLinks = useKibana().services.docLinks; diff --git a/x-pack/plugins/siem/public/pages/case/translations.ts b/x-pack/plugins/siem/public/cases/pages/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/case/translations.ts rename to x-pack/plugins/siem/public/cases/pages/translations.ts diff --git a/x-pack/plugins/siem/public/pages/case/utils.ts b/x-pack/plugins/siem/public/cases/pages/utils.ts similarity index 92% rename from x-pack/plugins/siem/public/pages/case/utils.ts rename to x-pack/plugins/siem/public/cases/pages/utils.ts index f1aea747485e..0b60d66756d0 100644 --- a/x-pack/plugins/siem/public/pages/case/utils.ts +++ b/x-pack/plugins/siem/public/cases/pages/utils.ts @@ -8,8 +8,8 @@ import { isEmpty } from 'lodash/fp'; import { ChromeBreadcrumb } from 'src/core/public'; -import { getCaseDetailsUrl, getCaseUrl, getCreateCaseUrl } from '../../components/link_to'; -import { RouteSpyState } from '../../utils/route/types'; +import { getCaseDetailsUrl, getCaseUrl, getCreateCaseUrl } from '../../common/components/link_to'; +import { RouteSpyState } from '../../common/utils/route/types'; import * as i18n from './translations'; export const getBreadcrumbs = (params: RouteSpyState, search: string[]): ChromeBreadcrumb[] => { diff --git a/x-pack/plugins/siem/public/cases/routes.tsx b/x-pack/plugins/siem/public/cases/routes.tsx new file mode 100644 index 000000000000..698350e49bc3 --- /dev/null +++ b/x-pack/plugins/siem/public/cases/routes.tsx @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { Route } from 'react-router-dom'; + +import { Case } from './pages'; +import { SiemPageName } from '../app/types'; + +export const getCasesRoutes = () => [ + + + , +]; diff --git a/x-pack/plugins/siem/public/cases/translations.ts b/x-pack/plugins/siem/public/cases/translations.ts new file mode 100644 index 000000000000..782ba9d9f32d --- /dev/null +++ b/x-pack/plugins/siem/public/cases/translations.ts @@ -0,0 +1,205 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { i18n } from '@kbn/i18n'; + +export const SAVED_OBJECT_NO_PERMISSIONS_TITLE = i18n.translate( + 'xpack.siem.case.caseSavedObjectNoPermissionsTitle', + { + defaultMessage: 'Kibana feature privileges required', + } +); + +export const SAVED_OBJECT_NO_PERMISSIONS_MSG = i18n.translate( + 'xpack.siem.case.caseSavedObjectNoPermissionsMessage', + { + defaultMessage: + 'To view cases, you must have privileges for the Saved Object Management feature in the Kibana space. For more information, contact your Kibana administrator.', + } +); + +export const BACK_TO_ALL = i18n.translate('xpack.siem.case.caseView.backLabel', { + defaultMessage: 'Back to cases', +}); + +export const CANCEL = i18n.translate('xpack.siem.case.caseView.cancel', { + defaultMessage: 'Cancel', +}); + +export const DELETE_CASE = i18n.translate('xpack.siem.case.confirmDeleteCase.deleteCase', { + defaultMessage: 'Delete case', +}); + +export const DELETE_CASES = i18n.translate('xpack.siem.case.confirmDeleteCase.deleteCases', { + defaultMessage: 'Delete cases', +}); + +export const NAME = i18n.translate('xpack.siem.case.caseView.name', { + defaultMessage: 'Name', +}); + +export const OPENED_ON = i18n.translate('xpack.siem.case.caseView.openedOn', { + defaultMessage: 'Opened on', +}); + +export const CLOSED_ON = i18n.translate('xpack.siem.case.caseView.closedOn', { + defaultMessage: 'Closed on', +}); + +export const REPORTER = i18n.translate('xpack.siem.case.caseView.reporterLabel', { + defaultMessage: 'Reporter', +}); + +export const PARTICIPANTS = i18n.translate('xpack.siem.case.caseView.particpantsLabel', { + defaultMessage: 'Participants', +}); + +export const CREATE_BC_TITLE = i18n.translate('xpack.siem.case.caseView.breadcrumb', { + defaultMessage: 'Create', +}); + +export const CREATE_TITLE = i18n.translate('xpack.siem.case.caseView.create', { + defaultMessage: 'Create new case', +}); + +export const DESCRIPTION = i18n.translate('xpack.siem.case.caseView.description', { + defaultMessage: 'Description', +}); + +export const DESCRIPTION_REQUIRED = i18n.translate( + 'xpack.siem.case.createCase.descriptionFieldRequiredError', + { + defaultMessage: 'A description is required.', + } +); + +export const COMMENT_REQUIRED = i18n.translate( + 'xpack.siem.case.caseView.commentFieldRequiredError', + { + defaultMessage: 'A comment is required.', + } +); + +export const REQUIRED_FIELD = i18n.translate('xpack.siem.case.caseView.fieldRequiredError', { + defaultMessage: 'Required field', +}); + +export const EDIT = i18n.translate('xpack.siem.case.caseView.edit', { + defaultMessage: 'Edit', +}); + +export const OPTIONAL = i18n.translate('xpack.siem.case.caseView.optional', { + defaultMessage: 'Optional', +}); + +export const PAGE_TITLE = i18n.translate('xpack.siem.case.pageTitle', { + defaultMessage: 'Cases', +}); + +export const CREATE_CASE = i18n.translate('xpack.siem.case.caseView.createCase', { + defaultMessage: 'Create case', +}); + +export const CLOSED_CASE = i18n.translate('xpack.siem.case.caseView.closedCase', { + defaultMessage: 'Closed case', +}); + +export const CLOSE_CASE = i18n.translate('xpack.siem.case.caseView.closeCase', { + defaultMessage: 'Close case', +}); + +export const REOPEN_CASE = i18n.translate('xpack.siem.case.caseView.reopenCase', { + defaultMessage: 'Reopen case', +}); + +export const REOPENED_CASE = i18n.translate('xpack.siem.case.caseView.reopenedCase', { + defaultMessage: 'Reopened case', +}); + +export const CASE_NAME = i18n.translate('xpack.siem.case.caseView.caseName', { + defaultMessage: 'Case name', +}); + +export const TO = i18n.translate('xpack.siem.case.caseView.to', { + defaultMessage: 'to', +}); + +export const TAGS = i18n.translate('xpack.siem.case.caseView.tags', { + defaultMessage: 'Tags', +}); + +export const ACTIONS = i18n.translate('xpack.siem.case.allCases.actions', { + defaultMessage: 'Actions', +}); + +export const NO_TAGS_AVAILABLE = i18n.translate('xpack.siem.case.allCases.noTagsAvailable', { + defaultMessage: 'No tags available', +}); + +export const NO_REPORTERS_AVAILABLE = i18n.translate( + 'xpack.siem.case.caseView.noReportersAvailable', + { + defaultMessage: 'No reporters available.', + } +); + +export const COMMENTS = i18n.translate('xpack.siem.case.allCases.comments', { + defaultMessage: 'Comments', +}); + +export const TAGS_HELP = i18n.translate('xpack.siem.case.createCase.fieldTagsHelpText', { + defaultMessage: + 'Type one or more custom identifying tags for this case. Press enter after each tag to begin a new one.', +}); + +export const NO_TAGS = i18n.translate('xpack.siem.case.caseView.noTags', { + defaultMessage: 'No tags are currently assigned to this case.', +}); + +export const TITLE_REQUIRED = i18n.translate('xpack.siem.case.createCase.titleFieldRequiredError', { + defaultMessage: 'A title is required.', +}); + +export const CONFIGURE_CASES_PAGE_TITLE = i18n.translate( + 'xpack.siem.case.configureCases.headerTitle', + { + defaultMessage: 'Configure cases', + } +); + +export const CONFIGURE_CASES_BUTTON = i18n.translate('xpack.siem.case.configureCasesButton', { + defaultMessage: 'Edit external connection', +}); + +export const ADD_COMMENT = i18n.translate('xpack.siem.case.caseView.comment.addComment', { + defaultMessage: 'Add comment', +}); + +export const ADD_COMMENT_HELP_TEXT = i18n.translate( + 'xpack.siem.case.caseView.comment.addCommentHelpText', + { + defaultMessage: 'Add a new comment...', + } +); + +export const SAVE = i18n.translate('xpack.siem.case.caseView.description.save', { + defaultMessage: 'Save', +}); + +export const GO_TO_DOCUMENTATION = i18n.translate( + 'xpack.siem.case.caseView.goToDocumentationButton', + { + defaultMessage: 'View documentation', + } +); + +export const CONNECTORS = i18n.translate('xpack.siem.case.caseView.connectors', { + defaultMessage: 'External incident management system', +}); + +export const EDIT_CONNECTOR = i18n.translate('xpack.siem.case.caseView.editConnector', { + defaultMessage: 'Change external incident management system', +}); diff --git a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/helpers.test.tsx b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/helpers.test.tsx rename to x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/helpers.ts b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/helpers.ts rename to x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/helpers.ts diff --git a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/index.test.tsx b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/index.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/index.test.tsx rename to x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/index.test.tsx index 677fc5e10261..18c0032f58c3 100644 --- a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/index.test.tsx @@ -7,12 +7,17 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../mock'; -import { createStore, State } from '../../../store'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../mock'; +import { createStore, State } from '../../store'; import { AddFilterToGlobalSearchBar } from '.'; const mockAddFilters = jest.fn(); -jest.mock('../../../lib/kibana', () => ({ +jest.mock('../../lib/kibana', () => ({ useKibana: () => ({ services: { data: { @@ -28,10 +33,10 @@ jest.mock('../../../lib/kibana', () => ({ describe('AddFilterToGlobalSearchBar Component', () => { const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); mockAddFilters.mockClear(); }); diff --git a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/index.tsx b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/index.tsx rename to x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/index.tsx index 7aed36422bd2..8a294ec1b71f 100644 --- a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/index.tsx +++ b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/index.tsx @@ -8,8 +8,8 @@ import { EuiButtonIcon, EuiToolTip } from '@elastic/eui'; import React, { useCallback } from 'react'; import { Filter } from '../../../../../../../src/plugins/data/public'; -import { WithHoverActions } from '../../with_hover_actions'; -import { useKibana } from '../../../lib/kibana'; +import { WithHoverActions } from '../with_hover_actions'; +import { useKibana } from '../../lib/kibana'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/translations.ts b/x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/add_filter_to_global_search_bar/translations.ts rename to x-pack/plugins/siem/public/common/components/add_filter_to_global_search_bar/translations.ts diff --git a/x-pack/plugins/siem/public/components/alerts_viewer/alerts_table.tsx b/x-pack/plugins/siem/public/common/components/alerts_viewer/alerts_table.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/alerts_viewer/alerts_table.tsx rename to x-pack/plugins/siem/public/common/components/alerts_viewer/alerts_table.tsx index d545a071c3ea..dd608babef48 100644 --- a/x-pack/plugins/siem/public/components/alerts_viewer/alerts_table.tsx +++ b/x-pack/plugins/siem/public/common/components/alerts_viewer/alerts_table.tsx @@ -6,7 +6,7 @@ import React, { useMemo } from 'react'; -import { Filter } from '../../../../../../src/plugins/data/public'; +import { Filter } from '../../../../../../../src/plugins/data/public'; import { StatefulEventsViewer } from '../events_viewer'; import * as i18n from './translations'; import { alertsDefaultModel } from './default_headers'; diff --git a/x-pack/plugins/siem/public/components/alerts_viewer/default_headers.ts b/x-pack/plugins/siem/public/common/components/alerts_viewer/default_headers.ts similarity index 85% rename from x-pack/plugins/siem/public/components/alerts_viewer/default_headers.ts rename to x-pack/plugins/siem/public/common/components/alerts_viewer/default_headers.ts index b12bd1b6c2a5..cf5b565b99f6 100644 --- a/x-pack/plugins/siem/public/components/alerts_viewer/default_headers.ts +++ b/x-pack/plugins/siem/public/common/components/alerts_viewer/default_headers.ts @@ -4,13 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { defaultColumnHeaderType } from '../timeline/body/column_headers/default_headers'; +import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { DEFAULT_COLUMN_MIN_WIDTH, DEFAULT_DATE_COLUMN_MIN_WIDTH, -} from '../timeline/body/constants'; -import { ColumnHeaderOptions, SubsetTimelineModel } from '../../store/timeline/model'; -import { timelineDefaults } from '../../store/timeline/defaults'; +} from '../../../timelines/components/timeline/body/constants'; +import { ColumnHeaderOptions, SubsetTimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; export const alertsHeaders: ColumnHeaderOptions[] = [ { diff --git a/x-pack/plugins/siem/public/components/alerts_viewer/histogram_configs.ts b/x-pack/plugins/siem/public/common/components/alerts_viewer/histogram_configs.ts similarity index 94% rename from x-pack/plugins/siem/public/components/alerts_viewer/histogram_configs.ts rename to x-pack/plugins/siem/public/common/components/alerts_viewer/histogram_configs.ts index fbcf4c6ed039..5a00079bb056 100644 --- a/x-pack/plugins/siem/public/components/alerts_viewer/histogram_configs.ts +++ b/x-pack/plugins/siem/public/common/components/alerts_viewer/histogram_configs.ts @@ -3,9 +3,10 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ + import * as i18n from './translations'; import { MatrixHistogramOption, MatrixHisrogramConfigs } from '../matrix_histogram/types'; -import { HistogramType } from '../../graphql/types'; +import { HistogramType } from '../../../graphql/types'; export const alertsStackByOptions: MatrixHistogramOption[] = [ { diff --git a/x-pack/plugins/siem/public/components/alerts_viewer/index.tsx b/x-pack/plugins/siem/public/common/components/alerts_viewer/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/alerts_viewer/index.tsx rename to x-pack/plugins/siem/public/common/components/alerts_viewer/index.tsx index 957feb624479..29f4bdff92ad 100644 --- a/x-pack/plugins/siem/public/components/alerts_viewer/index.tsx +++ b/x-pack/plugins/siem/public/common/components/alerts_viewer/index.tsx @@ -6,7 +6,7 @@ import React, { useEffect, useCallback, useMemo } from 'react'; import numeral from '@elastic/numeral'; -import { DEFAULT_NUMBER_FORMAT } from '../../../common/constants'; +import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; import { AlertsComponentsQueryProps } from './types'; import { AlertsTable } from './alerts_table'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/alerts_viewer/translations.ts b/x-pack/plugins/siem/public/common/components/alerts_viewer/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/alerts_viewer/translations.ts rename to x-pack/plugins/siem/public/common/components/alerts_viewer/translations.ts diff --git a/x-pack/plugins/siem/public/components/alerts_viewer/types.ts b/x-pack/plugins/siem/public/common/components/alerts_viewer/types.ts similarity index 76% rename from x-pack/plugins/siem/public/components/alerts_viewer/types.ts rename to x-pack/plugins/siem/public/common/components/alerts_viewer/types.ts index 321f7214c8fe..2bc33aaf1bae 100644 --- a/x-pack/plugins/siem/public/components/alerts_viewer/types.ts +++ b/x-pack/plugins/siem/public/common/components/alerts_viewer/types.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Filter } from '../../../../../../src/plugins/data/public'; -import { HostsComponentsQueryProps } from '../../pages/hosts/navigation/types'; -import { NetworkComponentQueryProps } from '../../pages/network/navigation/types'; +import { Filter } from '../../../../../../../src/plugins/data/public'; +import { HostsComponentsQueryProps } from '../../../hosts/pages/navigation/types'; +import { NetworkComponentQueryProps } from '../../../network/pages/navigation/types'; import { MatrixHistogramOption } from '../matrix_histogram/types'; type CommonQueryProps = HostsComponentsQueryProps | NetworkComponentQueryProps; diff --git a/x-pack/plugins/siem/public/components/autocomplete_field/__examples__/index.stories.tsx b/x-pack/plugins/siem/public/common/components/autocomplete_field/__examples__/index.stories.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/autocomplete_field/__examples__/index.stories.tsx rename to x-pack/plugins/siem/public/common/components/autocomplete_field/__examples__/index.stories.tsx index dccc156ff6e4..8f261da629f9 100644 --- a/x-pack/plugins/siem/public/components/autocomplete_field/__examples__/index.stories.tsx +++ b/x-pack/plugins/siem/public/common/components/autocomplete_field/__examples__/index.stories.tsx @@ -11,7 +11,7 @@ import euiLightVars from '@elastic/eui/dist/eui_theme_light.json'; import { QuerySuggestion, QuerySuggestionTypes, -} from '../../../../../../../src/plugins/data/public'; +} from '../../../../../../../../src/plugins/data/public'; import { SuggestionItem } from '../suggestion_item'; const suggestion: QuerySuggestion = { diff --git a/x-pack/plugins/siem/public/components/autocomplete_field/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/autocomplete_field/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/autocomplete_field/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/autocomplete_field/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/autocomplete_field/index.test.tsx b/x-pack/plugins/siem/public/common/components/autocomplete_field/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/autocomplete_field/index.test.tsx rename to x-pack/plugins/siem/public/common/components/autocomplete_field/index.test.tsx index 72236d799f99..55e114818ffe 100644 --- a/x-pack/plugins/siem/public/components/autocomplete_field/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/autocomplete_field/index.test.tsx @@ -10,7 +10,10 @@ import { mount, shallow } from 'enzyme'; import { noop } from 'lodash/fp'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { QuerySuggestion, QuerySuggestionTypes } from '../../../../../../src/plugins/data/public'; +import { + QuerySuggestion, + QuerySuggestionTypes, +} from '../../../../../../../src/plugins/data/public'; import { TestProviders } from '../../mock'; diff --git a/x-pack/plugins/siem/public/components/autocomplete_field/index.tsx b/x-pack/plugins/siem/public/common/components/autocomplete_field/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/autocomplete_field/index.tsx rename to x-pack/plugins/siem/public/common/components/autocomplete_field/index.tsx index 9821bb6048b5..0140a652ba18 100644 --- a/x-pack/plugins/siem/public/components/autocomplete_field/index.tsx +++ b/x-pack/plugins/siem/public/common/components/autocomplete_field/index.tsx @@ -11,9 +11,9 @@ import { EuiPanel, } from '@elastic/eui'; import React from 'react'; -import { QuerySuggestion } from '../../../../../../src/plugins/data/public'; +import { QuerySuggestion } from '../../../../../../../src/plugins/data/public'; -import euiStyled from '../../../../../legacy/common/eui_styled_components'; +import euiStyled from '../../../../../../legacy/common/eui_styled_components'; import { SuggestionItem } from './suggestion_item'; diff --git a/x-pack/plugins/siem/public/components/autocomplete_field/suggestion_item.tsx b/x-pack/plugins/siem/public/common/components/autocomplete_field/suggestion_item.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/autocomplete_field/suggestion_item.tsx rename to x-pack/plugins/siem/public/common/components/autocomplete_field/suggestion_item.tsx index be9a9817265b..b305663dd48b 100644 --- a/x-pack/plugins/siem/public/components/autocomplete_field/suggestion_item.tsx +++ b/x-pack/plugins/siem/public/common/components/autocomplete_field/suggestion_item.tsx @@ -8,8 +8,8 @@ import { EuiIcon } from '@elastic/eui'; import { transparentize } from 'polished'; import React from 'react'; import styled from 'styled-components'; -import euiStyled from '../../../../../legacy/common/eui_styled_components'; -import { QuerySuggestion } from '../../../../../../src/plugins/data/public'; +import euiStyled from '../../../../../../legacy/common/eui_styled_components'; +import { QuerySuggestion } from '../../../../../../../src/plugins/data/public'; interface SuggestionItemProps { isSelected?: boolean; diff --git a/x-pack/plugins/siem/public/components/charts/__snapshots__/areachart.test.tsx.snap b/x-pack/plugins/siem/public/common/components/charts/__snapshots__/areachart.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/charts/__snapshots__/areachart.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/charts/__snapshots__/areachart.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/charts/__snapshots__/barchart.test.tsx.snap b/x-pack/plugins/siem/public/common/components/charts/__snapshots__/barchart.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/charts/__snapshots__/barchart.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/charts/__snapshots__/barchart.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/charts/areachart.test.tsx b/x-pack/plugins/siem/public/common/components/charts/areachart.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/areachart.test.tsx rename to x-pack/plugins/siem/public/common/components/charts/areachart.test.tsx diff --git a/x-pack/plugins/siem/public/components/charts/areachart.tsx b/x-pack/plugins/siem/public/common/components/charts/areachart.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/areachart.tsx rename to x-pack/plugins/siem/public/common/components/charts/areachart.tsx diff --git a/x-pack/plugins/siem/public/components/charts/barchart.test.tsx b/x-pack/plugins/siem/public/common/components/charts/barchart.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/barchart.test.tsx rename to x-pack/plugins/siem/public/common/components/charts/barchart.test.tsx diff --git a/x-pack/plugins/siem/public/components/charts/barchart.tsx b/x-pack/plugins/siem/public/common/components/charts/barchart.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/barchart.tsx rename to x-pack/plugins/siem/public/common/components/charts/barchart.tsx diff --git a/x-pack/plugins/siem/public/components/charts/chart_place_holder.test.tsx b/x-pack/plugins/siem/public/common/components/charts/chart_place_holder.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/chart_place_holder.test.tsx rename to x-pack/plugins/siem/public/common/components/charts/chart_place_holder.test.tsx diff --git a/x-pack/plugins/siem/public/components/charts/chart_place_holder.tsx b/x-pack/plugins/siem/public/common/components/charts/chart_place_holder.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/chart_place_holder.tsx rename to x-pack/plugins/siem/public/common/components/charts/chart_place_holder.tsx diff --git a/x-pack/plugins/siem/public/components/charts/common.test.tsx b/x-pack/plugins/siem/public/common/components/charts/common.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/common.test.tsx rename to x-pack/plugins/siem/public/common/components/charts/common.test.tsx diff --git a/x-pack/plugins/siem/public/components/charts/common.tsx b/x-pack/plugins/siem/public/common/components/charts/common.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/charts/common.tsx rename to x-pack/plugins/siem/public/common/components/charts/common.tsx index 7e4b30791604..1078040e9efd 100644 --- a/x-pack/plugins/siem/public/components/charts/common.tsx +++ b/x-pack/plugins/siem/public/common/components/charts/common.tsx @@ -20,7 +20,7 @@ import { import React, { useMemo } from 'react'; import styled from 'styled-components'; -import { DEFAULT_DARK_MODE } from '../../../common/constants'; +import { DEFAULT_DARK_MODE } from '../../../../common/constants'; import { useUiSetting } from '../../lib/kibana'; export const defaultChartHeight = '100%'; diff --git a/x-pack/plugins/siem/public/components/charts/draggable_legend.test.tsx b/x-pack/plugins/siem/public/common/components/charts/draggable_legend.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/draggable_legend.test.tsx rename to x-pack/plugins/siem/public/common/components/charts/draggable_legend.test.tsx diff --git a/x-pack/plugins/siem/public/components/charts/draggable_legend.tsx b/x-pack/plugins/siem/public/common/components/charts/draggable_legend.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/draggable_legend.tsx rename to x-pack/plugins/siem/public/common/components/charts/draggable_legend.tsx diff --git a/x-pack/plugins/siem/public/components/charts/draggable_legend_item.test.tsx b/x-pack/plugins/siem/public/common/components/charts/draggable_legend_item.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/draggable_legend_item.test.tsx rename to x-pack/plugins/siem/public/common/components/charts/draggable_legend_item.test.tsx diff --git a/x-pack/plugins/siem/public/components/charts/draggable_legend_item.tsx b/x-pack/plugins/siem/public/common/components/charts/draggable_legend_item.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/charts/draggable_legend_item.tsx rename to x-pack/plugins/siem/public/common/components/charts/draggable_legend_item.tsx diff --git a/x-pack/plugins/siem/public/components/charts/translation.ts b/x-pack/plugins/siem/public/common/components/charts/translation.ts similarity index 100% rename from x-pack/plugins/siem/public/components/charts/translation.ts rename to x-pack/plugins/siem/public/common/components/charts/translation.ts diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/__snapshots__/drag_drop_context_wrapper.test.tsx.snap b/x-pack/plugins/siem/public/common/components/drag_and_drop/__snapshots__/drag_drop_context_wrapper.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/__snapshots__/drag_drop_context_wrapper.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/drag_and_drop/__snapshots__/drag_drop_context_wrapper.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/__snapshots__/draggable_wrapper.test.tsx.snap b/x-pack/plugins/siem/public/common/components/drag_and_drop/__snapshots__/draggable_wrapper.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/__snapshots__/draggable_wrapper.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/drag_and_drop/__snapshots__/draggable_wrapper.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/__snapshots__/droppable_wrapper.test.tsx.snap b/x-pack/plugins/siem/public/common/components/drag_and_drop/__snapshots__/droppable_wrapper.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/__snapshots__/droppable_wrapper.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/drag_and_drop/__snapshots__/droppable_wrapper.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context.tsx diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context_wrapper.test.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context_wrapper.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context_wrapper.test.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context_wrapper.test.tsx diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context_wrapper.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context_wrapper.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx index 8e6743ad8f92..3bd2a3da1c88 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/drag_drop_context_wrapper.tsx +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/drag_drop_context_wrapper.tsx @@ -12,11 +12,12 @@ import { Dispatch } from 'redux'; import { BeforeCapture } from './drag_drop_context'; import { BrowserFields } from '../../containers/source'; -import { dragAndDropModel, dragAndDropSelectors, timelineSelectors } from '../../store'; +import { dragAndDropModel, dragAndDropSelectors } from '../../store'; +import { timelineSelectors } from '../../../timelines/store/timeline'; import { IdToDataProvider } from '../../store/drag_and_drop/model'; import { State } from '../../store/reducer'; -import { DataProvider } from '../timeline/data_providers/data_provider'; -import { reArrangeProviders } from '../timeline/data_providers/helpers'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { reArrangeProviders } from '../../../timelines/components/timeline/data_providers/helpers'; import { ACTIVE_TIMELINE_REDUX_ID } from '../top_n'; import { ADDED_TO_TIMELINE_MESSAGE } from '../../hooks/translations'; import { useAddToTimelineSensor } from '../../hooks/use_add_to_timeline'; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper.test.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper.test.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper.test.tsx index cd9e1dc95ff0..d1b3b671307d 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper.test.tsx +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper.test.tsx @@ -11,7 +11,7 @@ import { DraggableStateSnapshot, DraggingStyle } from 'react-beautiful-dnd'; import { mockBrowserFields, mocksSource } from '../../containers/source/mock'; import { TestProviders } from '../../mock'; -import { mockDataProviders } from '../timeline/data_providers/mock/mock_data_providers'; +import { mockDataProviders } from '../../../timelines/components/timeline/data_providers/mock/mock_data_providers'; import { DragDropContextWrapper } from './drag_drop_context_wrapper'; import { ConditionalPortal, DraggableWrapper, getStyle } from './draggable_wrapper'; import { useMountAppended } from '../../utils/use_mount_appended'; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper.tsx index 5676c8fe5c30..f90a5c1410c3 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper.tsx +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper.tsx @@ -18,7 +18,7 @@ import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; import { dragAndDropActions } from '../../store/drag_and_drop'; -import { DataProvider } from '../timeline/data_providers/data_provider'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; import { TruncatableText } from '../truncatable_text'; import { WithHoverActions } from '../with_hover_actions'; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx index 1d9508fc28f3..a5fcdd9a943d 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper_hover_content.test.tsx @@ -13,8 +13,8 @@ import { wait } from '../../lib/helpers'; import { useKibana } from '../../lib/kibana'; import { TestProviders } from '../../mock'; import { createKibanaCoreStartMock } from '../../mock/kibana_core'; -import { FilterManager } from '../../../../../../src/plugins/data/public'; -import { TimelineContext } from '../timeline/timeline_context'; +import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import { TimelineContext } from '../../../timelines/components/timeline/timeline_context'; import { DraggableWrapperHoverContent } from './draggable_wrapper_hover_content'; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper_hover_content.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper_hover_content.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper_hover_content.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper_hover_content.tsx index 6976714cbe32..a0546dc64113 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/draggable_wrapper_hover_content.tsx +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/draggable_wrapper_hover_content.tsx @@ -12,8 +12,8 @@ import { getAllFieldsByName, WithSource } from '../../containers/source'; import { useAddToTimeline } from '../../hooks/use_add_to_timeline'; import { WithCopyToClipboard } from '../../lib/clipboard/with_copy_to_clipboard'; import { useKibana } from '../../lib/kibana'; -import { createFilter } from '../page/add_filter_to_global_search_bar'; -import { useTimelineContext } from '../timeline/timeline_context'; +import { createFilter } from '../add_filter_to_global_search_bar'; +import { useTimelineContext } from '../../../timelines/components/timeline/timeline_context'; import { StatefulTopN } from '../top_n'; import { allowTopN } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/droppable_wrapper.test.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/droppable_wrapper.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/droppable_wrapper.test.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/droppable_wrapper.test.tsx diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/droppable_wrapper.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/droppable_wrapper.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/droppable_wrapper.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/droppable_wrapper.tsx diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/helpers.test.ts b/x-pack/plugins/siem/public/common/components/drag_and_drop/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/helpers.test.ts rename to x-pack/plugins/siem/public/common/components/drag_and_drop/helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/helpers.ts b/x-pack/plugins/siem/public/common/components/drag_and_drop/helpers.ts similarity index 95% rename from x-pack/plugins/siem/public/components/drag_and_drop/helpers.ts rename to x-pack/plugins/siem/public/common/components/drag_and_drop/helpers.ts index 9b37387ce076..ad370f647738 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/helpers.ts +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/helpers.ts @@ -10,12 +10,13 @@ import { Dispatch } from 'redux'; import { ActionCreator } from 'typescript-fsa'; import { BrowserField, BrowserFields, getAllFieldsByName } from '../../containers/source'; -import { dragAndDropActions, timelineActions } from '../../store/actions'; +import { dragAndDropActions } from '../../store/actions'; import { IdToDataProvider } from '../../store/drag_and_drop/model'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; -import { DEFAULT_COLUMN_MIN_WIDTH } from '../timeline/body/constants'; -import { DataProvider } from '../timeline/data_providers/data_provider'; -import { addContentToTimeline } from '../timeline/data_providers/helpers'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; +import { timelineActions } from '../../../timelines/store/timeline'; +import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants'; +import { addContentToTimeline } from '../../../timelines/components/timeline/data_providers/helpers'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; export const draggableIdPrefix = 'draggableId'; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/provider_container.tsx b/x-pack/plugins/siem/public/common/components/drag_and_drop/provider_container.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/drag_and_drop/provider_container.tsx rename to x-pack/plugins/siem/public/common/components/drag_and_drop/provider_container.tsx index c1f029086aa3..06cb8ee2e1a4 100644 --- a/x-pack/plugins/siem/public/components/drag_and_drop/provider_container.tsx +++ b/x-pack/plugins/siem/public/common/components/drag_and_drop/provider_container.tsx @@ -6,7 +6,7 @@ import React from 'react'; import styled, { css } from 'styled-components'; -import { STATEFUL_EVENT_CSS_CLASS_NAME } from '../timeline/helpers'; +import { STATEFUL_EVENT_CSS_CLASS_NAME } from '../../../timelines/components/timeline/helpers'; interface ProviderContainerProps { isDragging: boolean; diff --git a/x-pack/plugins/siem/public/components/drag_and_drop/translations.ts b/x-pack/plugins/siem/public/common/components/drag_and_drop/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/drag_and_drop/translations.ts rename to x-pack/plugins/siem/public/common/components/drag_and_drop/translations.ts diff --git a/x-pack/plugins/siem/public/components/draggables/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/draggables/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/draggables/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/draggables/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/draggables/field_badge/index.tsx b/x-pack/plugins/siem/public/common/components/draggables/field_badge/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/draggables/field_badge/index.tsx rename to x-pack/plugins/siem/public/common/components/draggables/field_badge/index.tsx diff --git a/x-pack/plugins/siem/public/components/draggables/field_badge/translations.ts b/x-pack/plugins/siem/public/common/components/draggables/field_badge/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/draggables/field_badge/translations.ts rename to x-pack/plugins/siem/public/common/components/draggables/field_badge/translations.ts diff --git a/x-pack/plugins/siem/public/components/draggables/index.test.tsx b/x-pack/plugins/siem/public/common/components/draggables/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/draggables/index.test.tsx rename to x-pack/plugins/siem/public/common/components/draggables/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/draggables/index.tsx b/x-pack/plugins/siem/public/common/components/draggables/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/draggables/index.tsx rename to x-pack/plugins/siem/public/common/components/draggables/index.tsx index cea900f7bccf..fcf007a4cf1b 100644 --- a/x-pack/plugins/siem/public/components/draggables/index.tsx +++ b/x-pack/plugins/siem/public/common/components/draggables/index.tsx @@ -11,8 +11,8 @@ import styled from 'styled-components'; import { DragEffects, DraggableWrapper } from '../drag_and_drop/draggable_wrapper'; import { escapeDataProviderId } from '../drag_and_drop/helpers'; import { getEmptyStringTag } from '../empty_value'; -import { IS_OPERATOR } from '../timeline/data_providers/data_provider'; -import { Provider } from '../timeline/data_providers/provider'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; export interface DefaultDraggableType { id: string; diff --git a/x-pack/plugins/siem/public/components/empty_page/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/empty_page/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/empty_page/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/empty_page/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/empty_page/index.test.tsx b/x-pack/plugins/siem/public/common/components/empty_page/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/empty_page/index.test.tsx rename to x-pack/plugins/siem/public/common/components/empty_page/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/empty_page/index.tsx b/x-pack/plugins/siem/public/common/components/empty_page/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/empty_page/index.tsx rename to x-pack/plugins/siem/public/common/components/empty_page/index.tsx diff --git a/x-pack/plugins/siem/public/components/empty_value/__snapshots__/empty_value.test.tsx.snap b/x-pack/plugins/siem/public/common/components/empty_value/__snapshots__/empty_value.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/empty_value/__snapshots__/empty_value.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/empty_value/__snapshots__/empty_value.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/empty_value/empty_value.test.tsx b/x-pack/plugins/siem/public/common/components/empty_value/empty_value.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/empty_value/empty_value.test.tsx rename to x-pack/plugins/siem/public/common/components/empty_value/empty_value.test.tsx diff --git a/x-pack/plugins/siem/public/components/empty_value/index.tsx b/x-pack/plugins/siem/public/common/components/empty_value/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/empty_value/index.tsx rename to x-pack/plugins/siem/public/common/components/empty_value/index.tsx diff --git a/x-pack/plugins/siem/public/components/empty_value/translations.ts b/x-pack/plugins/siem/public/common/components/empty_value/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/empty_value/translations.ts rename to x-pack/plugins/siem/public/common/components/empty_value/translations.ts diff --git a/x-pack/plugins/siem/public/components/error_toast_dispatcher/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/error_toast_dispatcher/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/error_toast_dispatcher/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/error_toast_dispatcher/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/error_toast_dispatcher/index.test.tsx b/x-pack/plugins/siem/public/common/components/error_toast_dispatcher/index.test.tsx similarity index 78% rename from x-pack/plugins/siem/public/components/error_toast_dispatcher/index.test.tsx rename to x-pack/plugins/siem/public/common/components/error_toast_dispatcher/index.test.tsx index 6b90d9ccd08c..50b20099b17d 100644 --- a/x-pack/plugins/siem/public/components/error_toast_dispatcher/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/error_toast_dispatcher/index.test.tsx @@ -8,7 +8,7 @@ import { shallow } from 'enzyme'; import React from 'react'; import { Provider } from 'react-redux'; -import { apolloClientObservable, mockGlobalState } from '../../mock'; +import { apolloClientObservable, mockGlobalState, SUB_PLUGINS_REDUCER } from '../../mock'; import { createStore } from '../../store/store'; import { ErrorToastDispatcher } from '.'; @@ -16,10 +16,10 @@ import { State } from '../../store/reducer'; describe('Error Toast Dispatcher', () => { const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/error_toast_dispatcher/index.tsx b/x-pack/plugins/siem/public/common/components/error_toast_dispatcher/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/error_toast_dispatcher/index.tsx rename to x-pack/plugins/siem/public/common/components/error_toast_dispatcher/index.tsx diff --git a/x-pack/plugins/siem/public/components/event_details/__snapshots__/event_details.test.tsx.snap b/x-pack/plugins/siem/public/common/components/event_details/__snapshots__/event_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/__snapshots__/event_details.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/event_details/__snapshots__/event_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/event_details/__snapshots__/json_view.test.tsx.snap b/x-pack/plugins/siem/public/common/components/event_details/__snapshots__/json_view.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/__snapshots__/json_view.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/event_details/__snapshots__/json_view.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/event_details/columns.tsx b/x-pack/plugins/siem/public/common/components/event_details/columns.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/event_details/columns.tsx rename to x-pack/plugins/siem/public/common/components/event_details/columns.tsx index 131a3a63bae3..4b5ce3b98e5e 100644 --- a/x-pack/plugins/siem/public/components/event_details/columns.tsx +++ b/x-pack/plugins/siem/public/common/components/event_details/columns.tsx @@ -20,20 +20,20 @@ import { Draggable } from 'react-beautiful-dnd'; import styled from 'styled-components'; import { BrowserFields } from '../../containers/source'; -import { ToStringArray } from '../../graphql/types'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { ToStringArray } from '../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { DragEffects } from '../drag_and_drop/draggable_wrapper'; import { DroppableWrapper } from '../drag_and_drop/droppable_wrapper'; import { getDroppableId, getDraggableFieldId, DRAG_TYPE_FIELD } from '../drag_and_drop/helpers'; import { DraggableFieldBadge } from '../draggables/field_badge'; -import { FieldName } from '../fields_browser/field_name'; +import { FieldName } from '../../../timelines/components/fields_browser/field_name'; import { SelectableText } from '../selectable_text'; import { OverflowField } from '../tables/helpers'; -import { defaultColumnHeaderType } from '../timeline/body/column_headers/default_headers'; -import { DEFAULT_COLUMN_MIN_WIDTH } from '../timeline/body/constants'; -import { MESSAGE_FIELD_NAME } from '../timeline/body/renderers/constants'; -import { FormattedFieldValue } from '../timeline/body/renderers/formatted_field'; -import { OnUpdateColumns } from '../timeline/events'; +import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; +import { DEFAULT_COLUMN_MIN_WIDTH } from '../../../timelines/components/timeline/body/constants'; +import { MESSAGE_FIELD_NAME } from '../../../timelines/components/timeline/body/renderers/constants'; +import { FormattedFieldValue } from '../../../timelines/components/timeline/body/renderers/formatted_field'; +import { OnUpdateColumns } from '../../../timelines/components/timeline/events'; import { getIconFromType, getExampleText, getColumnsWithTimestamp } from './helpers'; import * as i18n from './translations'; import { EventFieldsData } from './types'; diff --git a/x-pack/plugins/siem/public/components/event_details/event_details.test.tsx b/x-pack/plugins/siem/public/common/components/event_details/event_details.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/event_details.test.tsx rename to x-pack/plugins/siem/public/common/components/event_details/event_details.test.tsx diff --git a/x-pack/plugins/siem/public/components/event_details/event_details.tsx b/x-pack/plugins/siem/public/common/components/event_details/event_details.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/event_details/event_details.tsx rename to x-pack/plugins/siem/public/common/components/event_details/event_details.tsx index 9234fe44320f..c6a7a05bb269 100644 --- a/x-pack/plugins/siem/public/components/event_details/event_details.tsx +++ b/x-pack/plugins/siem/public/common/components/event_details/event_details.tsx @@ -9,9 +9,9 @@ import React from 'react'; import styled from 'styled-components'; import { BrowserFields } from '../../containers/source'; -import { DetailItem } from '../../graphql/types'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; -import { OnUpdateColumns } from '../timeline/events'; +import { DetailItem } from '../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; +import { OnUpdateColumns } from '../../../timelines/components/timeline/events'; import { EventFieldsBrowser } from './event_fields_browser'; import { JsonView } from './json_view'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/event_details/event_fields_browser.test.tsx b/x-pack/plugins/siem/public/common/components/event_details/event_fields_browser.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/event_fields_browser.test.tsx rename to x-pack/plugins/siem/public/common/components/event_details/event_fields_browser.test.tsx diff --git a/x-pack/plugins/siem/public/components/event_details/event_fields_browser.tsx b/x-pack/plugins/siem/public/common/components/event_details/event_fields_browser.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/event_details/event_fields_browser.tsx rename to x-pack/plugins/siem/public/common/components/event_details/event_fields_browser.tsx index 9a842339cb62..0428f3ec8a19 100644 --- a/x-pack/plugins/siem/public/components/event_details/event_fields_browser.tsx +++ b/x-pack/plugins/siem/public/common/components/event_details/event_fields_browser.tsx @@ -8,10 +8,10 @@ import { sortBy } from 'lodash'; import { EuiInMemoryTable } from '@elastic/eui'; import React, { useMemo } from 'react'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { BrowserFields, getAllFieldsByName } from '../../containers/source'; -import { DetailItem } from '../../graphql/types'; -import { OnUpdateColumns } from '../timeline/events'; +import { DetailItem } from '../../../graphql/types'; +import { OnUpdateColumns } from '../../../timelines/components/timeline/events'; import { getColumns } from './columns'; import { search } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/event_details/event_id.ts b/x-pack/plugins/siem/public/common/components/event_details/event_id.ts similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/event_id.ts rename to x-pack/plugins/siem/public/common/components/event_details/event_id.ts diff --git a/x-pack/plugins/siem/public/components/event_details/helpers.test.tsx b/x-pack/plugins/siem/public/common/components/event_details/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/helpers.test.tsx rename to x-pack/plugins/siem/public/common/components/event_details/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/event_details/helpers.tsx b/x-pack/plugins/siem/public/common/components/event_details/helpers.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/event_details/helpers.tsx rename to x-pack/plugins/siem/public/common/components/event_details/helpers.tsx index 5d9c9d82490b..aae7ca901c3d 100644 --- a/x-pack/plugins/siem/public/components/event_details/helpers.tsx +++ b/x-pack/plugins/siem/public/common/components/event_details/helpers.tsx @@ -7,12 +7,12 @@ import { get, getOr, isEmpty, uniqBy } from 'lodash/fp'; import { BrowserField, BrowserFields } from '../../containers/source'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { DEFAULT_DATE_COLUMN_MIN_WIDTH, DEFAULT_COLUMN_MIN_WIDTH, -} from '../timeline/body/constants'; -import { ToStringArray } from '../../graphql/types'; +} from '../../../timelines/components/timeline/body/constants'; +import { ToStringArray } from '../../../graphql/types'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/event_details/json_view.test.tsx b/x-pack/plugins/siem/public/common/components/event_details/json_view.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/json_view.test.tsx rename to x-pack/plugins/siem/public/common/components/event_details/json_view.test.tsx diff --git a/x-pack/plugins/siem/public/components/event_details/json_view.tsx b/x-pack/plugins/siem/public/common/components/event_details/json_view.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/event_details/json_view.tsx rename to x-pack/plugins/siem/public/common/components/event_details/json_view.tsx index 9897e319e048..788ca95e2022 100644 --- a/x-pack/plugins/siem/public/components/event_details/json_view.tsx +++ b/x-pack/plugins/siem/public/common/components/event_details/json_view.tsx @@ -9,8 +9,8 @@ import { set } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { DetailItem } from '../../graphql/types'; -import { omitTypenameAndEmpty } from '../timeline/body/helpers'; +import { DetailItem } from '../../../graphql/types'; +import { omitTypenameAndEmpty } from '../../../timelines/components/timeline/body/helpers'; interface Props { data: DetailItem[]; diff --git a/x-pack/plugins/siem/public/components/event_details/stateful_event_details.tsx b/x-pack/plugins/siem/public/common/components/event_details/stateful_event_details.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/event_details/stateful_event_details.tsx rename to x-pack/plugins/siem/public/common/components/event_details/stateful_event_details.tsx index c79f02740253..ec0e82c218a0 100644 --- a/x-pack/plugins/siem/public/components/event_details/stateful_event_details.tsx +++ b/x-pack/plugins/siem/public/common/components/event_details/stateful_event_details.tsx @@ -7,9 +7,9 @@ import React, { useCallback, useState } from 'react'; import { BrowserFields } from '../../containers/source'; -import { DetailItem } from '../../graphql/types'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; -import { OnUpdateColumns } from '../timeline/events'; +import { DetailItem } from '../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; +import { OnUpdateColumns } from '../../../timelines/components/timeline/events'; import { EventDetails, View } from './event_details'; diff --git a/x-pack/plugins/siem/public/components/event_details/translations.ts b/x-pack/plugins/siem/public/common/components/event_details/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/event_details/translations.ts rename to x-pack/plugins/siem/public/common/components/event_details/translations.ts diff --git a/x-pack/plugins/siem/public/components/event_details/types.ts b/x-pack/plugins/siem/public/common/components/event_details/types.ts similarity index 87% rename from x-pack/plugins/siem/public/components/event_details/types.ts rename to x-pack/plugins/siem/public/common/components/event_details/types.ts index 4e351fcdf98e..db53f411fa51 100644 --- a/x-pack/plugins/siem/public/components/event_details/types.ts +++ b/x-pack/plugins/siem/public/common/components/event_details/types.ts @@ -5,6 +5,6 @@ */ import { BrowserField } from '../../containers/source'; -import { DetailItem } from '../../graphql/types'; +import { DetailItem } from '../../../graphql/types'; export type EventFieldsData = BrowserField & DetailItem; diff --git a/x-pack/plugins/siem/public/components/events_viewer/default_headers.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/default_headers.tsx similarity index 84% rename from x-pack/plugins/siem/public/components/events_viewer/default_headers.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/default_headers.tsx index b97e0da5df07..4660351e0d8f 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/default_headers.tsx +++ b/x-pack/plugins/siem/public/common/components/events_viewer/default_headers.tsx @@ -4,12 +4,12 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ColumnHeaderOptions } from '../../store/timeline/model'; -import { defaultColumnHeaderType } from '../timeline/body/column_headers/default_headers'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; +import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { DEFAULT_COLUMN_MIN_WIDTH, DEFAULT_DATE_COLUMN_MIN_WIDTH, -} from '../timeline/body/constants'; +} from '../../../timelines/components/timeline/body/constants'; export const defaultHeaders: ColumnHeaderOptions[] = [ { diff --git a/x-pack/plugins/siem/public/components/events_viewer/default_model.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/default_model.tsx similarity index 71% rename from x-pack/plugins/siem/public/components/events_viewer/default_model.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/default_model.tsx index 59a9f6d061c8..ecb76eb7ff93 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/default_model.tsx +++ b/x-pack/plugins/siem/public/common/components/events_viewer/default_model.tsx @@ -5,8 +5,8 @@ */ import { defaultHeaders } from './default_headers'; -import { SubsetTimelineModel } from '../../store/timeline/model'; -import { timelineDefaults } from '../../store/timeline/defaults'; +import { SubsetTimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; export const eventsDefaultModel: SubsetTimelineModel = { ...timelineDefaults, diff --git a/x-pack/plugins/siem/public/components/events_viewer/event_details_width_context.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/event_details_width_context.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/events_viewer/event_details_width_context.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/event_details_width_context.tsx diff --git a/x-pack/plugins/siem/public/components/events_viewer/events_viewer.test.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/events_viewer.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/events_viewer/events_viewer.test.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/events_viewer.test.tsx index d3cdf9886e46..d2f0d47380dd 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/events_viewer.test.tsx +++ b/x-pack/plugins/siem/public/common/components/events_viewer/events_viewer.test.tsx @@ -14,13 +14,13 @@ import { wait } from '../../lib/helpers'; import { mockEventViewerResponse } from './mock'; import { StatefulEventsViewer } from '.'; import { defaultHeaders } from './default_headers'; -import { useFetchIndexPatterns } from '../../containers/detection_engine/rules/fetch_index_patterns'; +import { useFetchIndexPatterns } from '../../../alerts/containers/detection_engine/rules/fetch_index_patterns'; import { mockBrowserFields } from '../../containers/source/mock'; import { eventsDefaultModel } from './default_model'; import { useMountAppended } from '../../utils/use_mount_appended'; const mockUseFetchIndexPatterns: jest.Mock = useFetchIndexPatterns as jest.Mock; -jest.mock('../../containers/detection_engine/rules/fetch_index_patterns'); +jest.mock('../../../alerts/containers/detection_engine/rules/fetch_index_patterns'); mockUseFetchIndexPatterns.mockImplementation(() => [ { browserFields: mockBrowserFields, diff --git a/x-pack/plugins/siem/public/components/events_viewer/events_viewer.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/events_viewer.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/events_viewer/events_viewer.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/events_viewer.tsx index aff66396af39..bec8c30ecdd3 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/events_viewer.tsx +++ b/x-pack/plugins/siem/public/common/components/events_viewer/events_viewer.tsx @@ -11,23 +11,31 @@ import styled from 'styled-components'; import deepEqual from 'fast-deep-equal'; import { BrowserFields } from '../../containers/source'; -import { TimelineQuery } from '../../containers/timeline'; -import { Direction } from '../../graphql/types'; +import { TimelineQuery } from '../../../timelines/containers'; +import { Direction } from '../../../graphql/types'; import { useKibana } from '../../lib/kibana'; -import { ColumnHeaderOptions, KqlMode } from '../../store/timeline/model'; +import { ColumnHeaderOptions, KqlMode } from '../../../timelines/store/timeline/model'; import { HeaderSection } from '../header_section'; -import { defaultHeaders } from '../timeline/body/column_headers/default_headers'; -import { Sort } from '../timeline/body/sort'; -import { StatefulBody } from '../timeline/body/stateful_body'; -import { DataProvider } from '../timeline/data_providers/data_provider'; -import { OnChangeItemsPerPage } from '../timeline/events'; -import { Footer, footerHeight } from '../timeline/footer'; -import { combineQueries } from '../timeline/helpers'; -import { TimelineRefetch } from '../timeline/refetch_timeline'; -import { ManageTimelineContext, TimelineTypeContextProps } from '../timeline/timeline_context'; +import { defaultHeaders } from '../../../timelines/components/timeline/body/column_headers/default_headers'; +import { Sort } from '../../../timelines/components/timeline/body/sort'; +import { StatefulBody } from '../../../timelines/components/timeline/body/stateful_body'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { OnChangeItemsPerPage } from '../../../timelines/components/timeline/events'; +import { Footer, footerHeight } from '../../../timelines/components/timeline/footer'; +import { combineQueries } from '../../../timelines/components/timeline/helpers'; +import { TimelineRefetch } from '../../../timelines/components/timeline/refetch_timeline'; +import { + ManageTimelineContext, + TimelineTypeContextProps, +} from '../../../timelines/components/timeline/timeline_context'; import { EventDetailsWidthProvider } from './event_details_width_context'; import * as i18n from './translations'; -import { Filter, esQuery, IIndexPattern, Query } from '../../../../../../src/plugins/data/public'; +import { + Filter, + esQuery, + IIndexPattern, + Query, +} from '../../../../../../../src/plugins/data/public'; import { inputsModel } from '../../store'; const DEFAULT_EVENTS_VIEWER_HEIGHT = 500; diff --git a/x-pack/plugins/siem/public/components/events_viewer/index.test.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/events_viewer/index.test.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/index.test.tsx index 6f614c1e32f6..bdc033845050 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/events_viewer/index.test.tsx @@ -14,12 +14,12 @@ import { useMountAppended } from '../../utils/use_mount_appended'; import { mockEventViewerResponse } from './mock'; import { StatefulEventsViewer } from '.'; -import { useFetchIndexPatterns } from '../../containers/detection_engine/rules/fetch_index_patterns'; +import { useFetchIndexPatterns } from '../../../alerts/containers/detection_engine/rules/fetch_index_patterns'; import { mockBrowserFields } from '../../containers/source/mock'; import { eventsDefaultModel } from './default_model'; const mockUseFetchIndexPatterns: jest.Mock = useFetchIndexPatterns as jest.Mock; -jest.mock('../../containers/detection_engine/rules/fetch_index_patterns'); +jest.mock('../../../alerts/containers/detection_engine/rules/fetch_index_patterns'); mockUseFetchIndexPatterns.mockImplementation(() => [ { browserFields: mockBrowserFields, diff --git a/x-pack/plugins/siem/public/components/events_viewer/index.tsx b/x-pack/plugins/siem/public/common/components/events_viewer/index.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/events_viewer/index.tsx rename to x-pack/plugins/siem/public/common/components/events_viewer/index.tsx index bc6a1b3b77bf..e7af69096179 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/index.tsx +++ b/x-pack/plugins/siem/public/common/components/events_viewer/index.tsx @@ -8,20 +8,21 @@ import React, { useCallback, useMemo, useEffect } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { inputsModel, inputsSelectors, State, timelineSelectors } from '../../store'; -import { inputsActions, timelineActions } from '../../store/actions'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { inputsModel, inputsSelectors, State } from '../../store'; +import { inputsActions } from '../../store/actions'; +import { timelineSelectors, timelineActions } from '../../../timelines/store/timeline'; import { ColumnHeaderOptions, SubsetTimelineModel, TimelineModel, -} from '../../store/timeline/model'; -import { OnChangeItemsPerPage } from '../timeline/events'; -import { Filter } from '../../../../../../src/plugins/data/public'; +} from '../../../timelines/store/timeline/model'; +import { OnChangeItemsPerPage } from '../../../timelines/components/timeline/events'; +import { Filter } from '../../../../../../../src/plugins/data/public'; import { useUiSetting } from '../../lib/kibana'; import { EventsViewer } from './events_viewer'; -import { useFetchIndexPatterns } from '../../containers/detection_engine/rules/fetch_index_patterns'; -import { TimelineTypeContextProps } from '../timeline/timeline_context'; +import { useFetchIndexPatterns } from '../../../alerts/containers/detection_engine/rules/fetch_index_patterns'; +import { TimelineTypeContextProps } from '../../../timelines/components/timeline/timeline_context'; import { InspectButtonContainer } from '../inspect'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/events_viewer/mock.ts b/x-pack/plugins/siem/public/common/components/events_viewer/mock.ts similarity index 95% rename from x-pack/plugins/siem/public/components/events_viewer/mock.ts rename to x-pack/plugins/siem/public/common/components/events_viewer/mock.ts index 352b0b95c6dd..bf95a58aec98 100644 --- a/x-pack/plugins/siem/public/components/events_viewer/mock.ts +++ b/x-pack/plugins/siem/public/common/components/events_viewer/mock.ts @@ -5,7 +5,7 @@ */ import { noop } from 'lodash/fp'; -import { timelineQuery } from '../../containers/timeline/index.gql_query'; +import { timelineQuery } from '../../../timelines/containers/index.gql_query'; export const mockEventViewerResponse = [ { diff --git a/x-pack/plugins/siem/public/components/events_viewer/translations.ts b/x-pack/plugins/siem/public/common/components/events_viewer/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/events_viewer/translations.ts rename to x-pack/plugins/siem/public/common/components/events_viewer/translations.ts diff --git a/x-pack/plugins/siem/public/components/external_link_icon/index.test.tsx b/x-pack/plugins/siem/public/common/components/external_link_icon/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/external_link_icon/index.test.tsx rename to x-pack/plugins/siem/public/common/components/external_link_icon/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/external_link_icon/index.tsx b/x-pack/plugins/siem/public/common/components/external_link_icon/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/external_link_icon/index.tsx rename to x-pack/plugins/siem/public/common/components/external_link_icon/index.tsx diff --git a/x-pack/plugins/siem/public/components/filters_global/__snapshots__/filters_global.test.tsx.snap b/x-pack/plugins/siem/public/common/components/filters_global/__snapshots__/filters_global.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/filters_global/__snapshots__/filters_global.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/filters_global/__snapshots__/filters_global.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/filters_global/filters_global.test.tsx b/x-pack/plugins/siem/public/common/components/filters_global/filters_global.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/filters_global/filters_global.test.tsx rename to x-pack/plugins/siem/public/common/components/filters_global/filters_global.test.tsx diff --git a/x-pack/plugins/siem/public/components/filters_global/filters_global.tsx b/x-pack/plugins/siem/public/common/components/filters_global/filters_global.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/filters_global/filters_global.tsx rename to x-pack/plugins/siem/public/common/components/filters_global/filters_global.tsx diff --git a/x-pack/plugins/siem/public/components/filters_global/index.tsx b/x-pack/plugins/siem/public/common/components/filters_global/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/filters_global/index.tsx rename to x-pack/plugins/siem/public/common/components/filters_global/index.tsx diff --git a/x-pack/plugins/siem/public/components/formatted_bytes/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/formatted_bytes/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_bytes/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/formatted_bytes/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/formatted_bytes/index.test.tsx b/x-pack/plugins/siem/public/common/components/formatted_bytes/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_bytes/index.test.tsx rename to x-pack/plugins/siem/public/common/components/formatted_bytes/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/formatted_bytes/index.tsx b/x-pack/plugins/siem/public/common/components/formatted_bytes/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/formatted_bytes/index.tsx rename to x-pack/plugins/siem/public/common/components/formatted_bytes/index.tsx index 98a1acf47162..5664af2aa3f5 100644 --- a/x-pack/plugins/siem/public/components/formatted_bytes/index.tsx +++ b/x-pack/plugins/siem/public/common/components/formatted_bytes/index.tsx @@ -7,7 +7,7 @@ import React from 'react'; import numeral from '@elastic/numeral'; -import { DEFAULT_BYTES_FORMAT } from '../../../common/constants'; +import { DEFAULT_BYTES_FORMAT } from '../../../../common/constants'; import { useUiSetting$ } from '../../lib/kibana'; type Bytes = string | number; diff --git a/x-pack/plugins/siem/public/components/formatted_date/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/formatted_date/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_date/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/formatted_date/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/formatted_date/index.test.tsx b/x-pack/plugins/siem/public/common/components/formatted_date/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_date/index.test.tsx rename to x-pack/plugins/siem/public/common/components/formatted_date/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/formatted_date/index.tsx b/x-pack/plugins/siem/public/common/components/formatted_date/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_date/index.tsx rename to x-pack/plugins/siem/public/common/components/formatted_date/index.tsx diff --git a/x-pack/plugins/siem/public/components/formatted_date/maybe_date.test.ts b/x-pack/plugins/siem/public/common/components/formatted_date/maybe_date.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_date/maybe_date.test.ts rename to x-pack/plugins/siem/public/common/components/formatted_date/maybe_date.test.ts diff --git a/x-pack/plugins/siem/public/components/formatted_date/maybe_date.ts b/x-pack/plugins/siem/public/common/components/formatted_date/maybe_date.ts similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_date/maybe_date.ts rename to x-pack/plugins/siem/public/common/components/formatted_date/maybe_date.ts diff --git a/x-pack/plugins/siem/public/components/generic_downloader/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/generic_downloader/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/generic_downloader/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/generic_downloader/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/generic_downloader/index.test.tsx b/x-pack/plugins/siem/public/common/components/generic_downloader/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/generic_downloader/index.test.tsx rename to x-pack/plugins/siem/public/common/components/generic_downloader/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/generic_downloader/index.tsx b/x-pack/plugins/siem/public/common/components/generic_downloader/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/generic_downloader/index.tsx rename to x-pack/plugins/siem/public/common/components/generic_downloader/index.tsx index 6f08f5c8c381..2f68da0c1872 100644 --- a/x-pack/plugins/siem/public/components/generic_downloader/index.tsx +++ b/x-pack/plugins/siem/public/common/components/generic_downloader/index.tsx @@ -9,7 +9,7 @@ import styled from 'styled-components'; import { isFunction } from 'lodash/fp'; import * as i18n from './translations'; -import { ExportDocumentsProps } from '../../containers/detection_engine/rules'; +import { ExportDocumentsProps } from '../../../alerts/containers/detection_engine/rules'; import { useStateToaster, errorToToaster } from '../toasters'; const InvisibleAnchor = styled.a` diff --git a/x-pack/plugins/siem/public/components/generic_downloader/translations.ts b/x-pack/plugins/siem/public/common/components/generic_downloader/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/generic_downloader/translations.ts rename to x-pack/plugins/siem/public/common/components/generic_downloader/translations.ts diff --git a/x-pack/plugins/siem/public/components/header_global/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/header_global/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/header_global/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/header_global/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/header_global/index.test.tsx b/x-pack/plugins/siem/public/common/components/header_global/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_global/index.test.tsx rename to x-pack/plugins/siem/public/common/components/header_global/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/header_global/index.tsx b/x-pack/plugins/siem/public/common/components/header_global/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/header_global/index.tsx rename to x-pack/plugins/siem/public/common/components/header_global/index.tsx index adc2be4f9c36..bc4bb80d8874 100644 --- a/x-pack/plugins/siem/public/components/header_global/index.tsx +++ b/x-pack/plugins/siem/public/common/components/header_global/index.tsx @@ -11,8 +11,8 @@ import styled, { css } from 'styled-components'; import { useLocation } from 'react-router-dom'; import { gutterTimeline } from '../../lib/helpers'; -import { navTabs } from '../../pages/home/home_navigations'; -import { SiemPageName } from '../../pages/home/types'; +import { navTabs } from '../../../app/home/home_navigations'; +import { SiemPageName } from '../../../app/types'; import { getOverviewUrl } from '../link_to'; import { MlPopover } from '../ml_popover/ml_popover'; import { SiemNavigation } from '../navigation'; diff --git a/x-pack/plugins/siem/public/components/header_global/translations.ts b/x-pack/plugins/siem/public/common/components/header_global/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/header_global/translations.ts rename to x-pack/plugins/siem/public/common/components/header_global/translations.ts diff --git a/x-pack/plugins/siem/public/components/header_page/__snapshots__/editable_title.test.tsx.snap b/x-pack/plugins/siem/public/common/components/header_page/__snapshots__/editable_title.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/__snapshots__/editable_title.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/header_page/__snapshots__/editable_title.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/header_page/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/header_page/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/header_page/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/header_page/__snapshots__/title.test.tsx.snap b/x-pack/plugins/siem/public/common/components/header_page/__snapshots__/title.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/__snapshots__/title.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/header_page/__snapshots__/title.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/header_page/editable_title.test.tsx b/x-pack/plugins/siem/public/common/components/header_page/editable_title.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/editable_title.test.tsx rename to x-pack/plugins/siem/public/common/components/header_page/editable_title.test.tsx diff --git a/x-pack/plugins/siem/public/components/header_page/editable_title.tsx b/x-pack/plugins/siem/public/common/components/header_page/editable_title.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/editable_title.tsx rename to x-pack/plugins/siem/public/common/components/header_page/editable_title.tsx diff --git a/x-pack/plugins/siem/public/components/header_page/index.test.tsx b/x-pack/plugins/siem/public/common/components/header_page/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/index.test.tsx rename to x-pack/plugins/siem/public/common/components/header_page/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/header_page/index.tsx b/x-pack/plugins/siem/public/common/components/header_page/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/index.tsx rename to x-pack/plugins/siem/public/common/components/header_page/index.tsx diff --git a/x-pack/plugins/siem/public/components/header_page/title.test.tsx b/x-pack/plugins/siem/public/common/components/header_page/title.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/title.test.tsx rename to x-pack/plugins/siem/public/common/components/header_page/title.test.tsx diff --git a/x-pack/plugins/siem/public/components/header_page/title.tsx b/x-pack/plugins/siem/public/common/components/header_page/title.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/title.tsx rename to x-pack/plugins/siem/public/common/components/header_page/title.tsx diff --git a/x-pack/plugins/siem/public/components/header_page/translations.ts b/x-pack/plugins/siem/public/common/components/header_page/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/translations.ts rename to x-pack/plugins/siem/public/common/components/header_page/translations.ts diff --git a/x-pack/plugins/siem/public/components/header_page/types.ts b/x-pack/plugins/siem/public/common/components/header_page/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/header_page/types.ts rename to x-pack/plugins/siem/public/common/components/header_page/types.ts diff --git a/x-pack/plugins/siem/public/components/header_section/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/header_section/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/header_section/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/header_section/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/header_section/index.test.tsx b/x-pack/plugins/siem/public/common/components/header_section/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_section/index.test.tsx rename to x-pack/plugins/siem/public/common/components/header_section/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/header_section/index.tsx b/x-pack/plugins/siem/public/common/components/header_section/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/header_section/index.tsx rename to x-pack/plugins/siem/public/common/components/header_section/index.tsx diff --git a/x-pack/plugins/siem/public/components/help_menu/index.tsx b/x-pack/plugins/siem/public/common/components/help_menu/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/help_menu/index.tsx rename to x-pack/plugins/siem/public/common/components/help_menu/index.tsx diff --git a/x-pack/plugins/siem/public/components/import_data_modal/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/import_data_modal/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/import_data_modal/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/import_data_modal/index.test.tsx b/x-pack/plugins/siem/public/common/components/import_data_modal/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/import_data_modal/index.test.tsx rename to x-pack/plugins/siem/public/common/components/import_data_modal/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/import_data_modal/index.tsx b/x-pack/plugins/siem/public/common/components/import_data_modal/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/import_data_modal/index.tsx rename to x-pack/plugins/siem/public/common/components/import_data_modal/index.tsx index c827411a41e2..45368d1fefc5 100644 --- a/x-pack/plugins/siem/public/components/import_data_modal/index.tsx +++ b/x-pack/plugins/siem/public/common/components/import_data_modal/index.tsx @@ -21,7 +21,10 @@ import { } from '@elastic/eui'; import React, { useCallback, useState } from 'react'; -import { ImportDataResponse, ImportDataProps } from '../../containers/detection_engine/rules'; +import { + ImportDataResponse, + ImportDataProps, +} from '../../../alerts/containers/detection_engine/rules'; import { displayErrorToast, displaySuccessToast, diff --git a/x-pack/plugins/siem/public/components/import_data_modal/translations.ts b/x-pack/plugins/siem/public/common/components/import_data_modal/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/import_data_modal/translations.ts rename to x-pack/plugins/siem/public/common/components/import_data_modal/translations.ts diff --git a/x-pack/plugins/siem/public/components/inspect/index.test.tsx b/x-pack/plugins/siem/public/common/components/inspect/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/inspect/index.test.tsx rename to x-pack/plugins/siem/public/common/components/inspect/index.test.tsx index 9492002717e2..a4ef6f8c7957 100644 --- a/x-pack/plugins/siem/public/components/inspect/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/inspect/index.test.tsx @@ -13,6 +13,7 @@ import { TestProviderWithoutDragAndDrop, mockGlobalState, apolloClientObservable, + SUB_PLUGINS_REDUCER, } from '../../mock'; import { createStore, State } from '../../store'; import { UpdateQueryParams, upsertQuery } from '../../store/inputs/helpers'; @@ -33,13 +34,13 @@ describe('Inspect Button', () => { state: state.inputs, }; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); describe('Render', () => { beforeEach(() => { const myState = cloneDeep(state); myState.inputs = upsertQuery(newQuery); - store = createStore(myState, apolloClientObservable); + store = createStore(myState, SUB_PLUGINS_REDUCER, apolloClientObservable); }); test('Eui Empty Button', () => { const wrapper = mount( @@ -155,7 +156,7 @@ describe('Inspect Button', () => { response: ['my response'], }; myState.inputs = upsertQuery(myQuery); - store = createStore(myState, apolloClientObservable); + store = createStore(myState, SUB_PLUGINS_REDUCER, apolloClientObservable); }); test('Open Inspect Modal', () => { const wrapper = mount( diff --git a/x-pack/plugins/siem/public/components/inspect/index.tsx b/x-pack/plugins/siem/public/common/components/inspect/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/inspect/index.tsx rename to x-pack/plugins/siem/public/common/components/inspect/index.tsx diff --git a/x-pack/plugins/siem/public/components/inspect/modal.test.tsx b/x-pack/plugins/siem/public/common/components/inspect/modal.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/inspect/modal.test.tsx rename to x-pack/plugins/siem/public/common/components/inspect/modal.test.tsx diff --git a/x-pack/plugins/siem/public/components/inspect/modal.tsx b/x-pack/plugins/siem/public/common/components/inspect/modal.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/inspect/modal.tsx rename to x-pack/plugins/siem/public/common/components/inspect/modal.tsx diff --git a/x-pack/plugins/siem/public/components/inspect/translations.ts b/x-pack/plugins/siem/public/common/components/inspect/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/inspect/translations.ts rename to x-pack/plugins/siem/public/common/components/inspect/translations.ts diff --git a/x-pack/plugins/siem/public/components/last_event_time/index.test.tsx b/x-pack/plugins/siem/public/common/components/last_event_time/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/last_event_time/index.test.tsx rename to x-pack/plugins/siem/public/common/components/last_event_time/index.test.tsx index 69a795d0c8db..2f0060c91668 100644 --- a/x-pack/plugins/siem/public/components/last_event_time/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/last_event_time/index.test.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { getEmptyValue } from '../empty_value'; -import { LastEventIndexKey } from '../../graphql/types'; +import { LastEventIndexKey } from '../../../graphql/types'; import { mockLastEventTimeQuery } from '../../containers/events/last_event_time/mock'; import { useMountAppended } from '../../utils/use_mount_appended'; diff --git a/x-pack/plugins/siem/public/components/last_event_time/index.tsx b/x-pack/plugins/siem/public/common/components/last_event_time/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/last_event_time/index.tsx rename to x-pack/plugins/siem/public/common/components/last_event_time/index.tsx index 2493a1378e94..1c988ed989e8 100644 --- a/x-pack/plugins/siem/public/components/last_event_time/index.tsx +++ b/x-pack/plugins/siem/public/common/components/last_event_time/index.tsx @@ -8,7 +8,7 @@ import { EuiIcon, EuiLoadingSpinner, EuiToolTip } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import React, { memo } from 'react'; -import { LastEventIndexKey } from '../../graphql/types'; +import { LastEventIndexKey } from '../../../graphql/types'; import { useLastEventTimeQuery } from '../../containers/events/last_event_time'; import { getEmptyTagValue } from '../empty_value'; import { FormattedRelativePreferenceDate } from '../formatted_date'; diff --git a/x-pack/plugins/siem/public/components/link_icon/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/link_icon/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/link_icon/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/link_icon/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/link_icon/index.test.tsx b/x-pack/plugins/siem/public/common/components/link_icon/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/link_icon/index.test.tsx rename to x-pack/plugins/siem/public/common/components/link_icon/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/link_icon/index.tsx b/x-pack/plugins/siem/public/common/components/link_icon/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/link_icon/index.tsx rename to x-pack/plugins/siem/public/common/components/link_icon/index.tsx diff --git a/x-pack/plugins/siem/public/components/link_to/helpers.test.ts b/x-pack/plugins/siem/public/common/components/link_to/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/link_to/helpers.test.ts rename to x-pack/plugins/siem/public/common/components/link_to/helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/link_to/helpers.ts b/x-pack/plugins/siem/public/common/components/link_to/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/link_to/helpers.ts rename to x-pack/plugins/siem/public/common/components/link_to/helpers.ts diff --git a/x-pack/plugins/siem/public/components/link_to/index.ts b/x-pack/plugins/siem/public/common/components/link_to/index.ts similarity index 100% rename from x-pack/plugins/siem/public/components/link_to/index.ts rename to x-pack/plugins/siem/public/common/components/link_to/index.ts diff --git a/x-pack/plugins/siem/public/components/link_to/link_to.tsx b/x-pack/plugins/siem/public/common/components/link_to/link_to.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/link_to/link_to.tsx rename to x-pack/plugins/siem/public/common/components/link_to/link_to.tsx index d3bf2e34b435..77636af8bc4a 100644 --- a/x-pack/plugins/siem/public/components/link_to/link_to.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/link_to.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { match as RouteMatch, Redirect, Route, Switch } from 'react-router-dom'; -import { SiemPageName } from '../../pages/home/types'; -import { HostsTableType } from '../../store/hosts/model'; +import { SiemPageName } from '../../../app/types'; +import { HostsTableType } from '../../../hosts/store/model'; import { RedirectToCreateRulePage, RedirectToDetectionEnginePage, @@ -25,8 +25,8 @@ import { RedirectToCreatePage, RedirectToConfigureCasesPage, } from './redirect_to_case'; -import { DetectionEngineTab } from '../../pages/detection_engine/types'; -import { TimelineType } from '../../../common/types/timeline'; +import { DetectionEngineTab } from '../../../alerts/pages/detection_engine/types'; +import { TimelineType } from '../../../../common/types/timeline'; interface LinkToPageProps { match: RouteMatch<{}>; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_to_case.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_case.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/link_to/redirect_to_case.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_to_case.tsx index 6ec15b55ba83..e0c03519c6cb 100644 --- a/x-pack/plugins/siem/public/components/link_to/redirect_to_case.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_case.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; import { appendSearch } from './helpers'; import { RedirectWrapper } from './redirect_wrapper'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; export type CaseComponentProps = RouteComponentProps<{ detailName: string; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_to_detection_engine.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_detection_engine.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/link_to/redirect_to_detection_engine.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_to_detection_engine.tsx index 18111aa93a27..fc5aef966f22 100644 --- a/x-pack/plugins/siem/public/components/link_to/redirect_to_detection_engine.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_detection_engine.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; -import { DetectionEngineTab } from '../../pages/detection_engine/types'; +import { DetectionEngineTab } from '../../../alerts/pages/detection_engine/types'; import { appendSearch } from './helpers'; import { RedirectWrapper } from './redirect_wrapper'; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_to_hosts.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_hosts.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/link_to/redirect_to_hosts.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_to_hosts.tsx index 746a959cc996..0cfe8e655e25 100644 --- a/x-pack/plugins/siem/public/components/link_to/redirect_to_hosts.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_hosts.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; -import { HostsTableType } from '../../store/hosts/model'; -import { SiemPageName } from '../../pages/home/types'; +import { HostsTableType } from '../../../hosts/store/model'; +import { SiemPageName } from '../../../app/types'; import { appendSearch } from './helpers'; import { RedirectWrapper } from './redirect_wrapper'; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_to_network.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_network.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/link_to/redirect_to_network.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_to_network.tsx index 71925edd5c08..d72bacf511fa 100644 --- a/x-pack/plugins/siem/public/components/link_to/redirect_to_network.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_network.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; -import { SiemPageName } from '../../pages/home/types'; -import { FlowTarget, FlowTargetSourceDest } from '../../graphql/types'; +import { SiemPageName } from '../../../app/types'; +import { FlowTarget, FlowTargetSourceDest } from '../../../graphql/types'; import { appendSearch } from './helpers'; import { RedirectWrapper } from './redirect_wrapper'; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_to_overview.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_overview.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/link_to/redirect_to_overview.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_to_overview.tsx index e0789ac9e255..2043b820e696 100644 --- a/x-pack/plugins/siem/public/components/link_to/redirect_to_overview.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_overview.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; import { RedirectWrapper } from './redirect_wrapper'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; export type OverviewComponentProps = RouteComponentProps<{ search: string; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_to_timelines.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_timelines.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/link_to/redirect_to_timelines.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_to_timelines.tsx index 9c704a7f70d2..3562153bea64 100644 --- a/x-pack/plugins/siem/public/components/link_to/redirect_to_timelines.tsx +++ b/x-pack/plugins/siem/public/common/components/link_to/redirect_to_timelines.tsx @@ -7,11 +7,11 @@ import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; import { appendSearch } from './helpers'; import { RedirectWrapper } from './redirect_wrapper'; -import { TimelineTypeLiteral, TimelineType } from '../../../common/types/timeline'; +import { TimelineTypeLiteral, TimelineType } from '../../../../common/types/timeline'; export type TimelineComponentProps = RouteComponentProps<{ tabName: TimelineTypeLiteral; diff --git a/x-pack/plugins/siem/public/components/link_to/redirect_wrapper.tsx b/x-pack/plugins/siem/public/common/components/link_to/redirect_wrapper.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/link_to/redirect_wrapper.tsx rename to x-pack/plugins/siem/public/common/components/link_to/redirect_wrapper.tsx diff --git a/x-pack/plugins/siem/public/components/links/index.test.tsx b/x-pack/plugins/siem/public/common/components/links/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/links/index.test.tsx rename to x-pack/plugins/siem/public/common/components/links/index.test.tsx index 214c0294f2cf..9eff86bffb36 100644 --- a/x-pack/plugins/siem/public/components/links/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/links/index.test.tsx @@ -24,7 +24,7 @@ import { ExternalLink, } from '.'; -jest.mock('../../pages/overview/events_by_dataset'); +jest.mock('../../../overview/components/events_by_dataset'); jest.mock('../../lib/kibana', () => { return { diff --git a/x-pack/plugins/siem/public/components/links/index.tsx b/x-pack/plugins/siem/public/common/components/links/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/links/index.tsx rename to x-pack/plugins/siem/public/common/components/links/index.tsx index 6d473f472171..4d639ce2781b 100644 --- a/x-pack/plugins/siem/public/components/links/index.tsx +++ b/x-pack/plugins/siem/public/common/components/links/index.tsx @@ -9,11 +9,11 @@ import React, { useMemo } from 'react'; import { isNil } from 'lodash/fp'; import styled from 'styled-components'; -import { IP_REPUTATION_LINKS_SETTING } from '../../../common/constants'; +import { IP_REPUTATION_LINKS_SETTING } from '../../../../common/constants'; import { DefaultFieldRendererOverflow, DEFAULT_MORE_MAX_HEIGHT, -} from '../field_renderers/field_renderers'; +} from '../../../timelines/components/field_renderers/field_renderers'; import { encodeIpv6 } from '../../lib/helpers'; import { getCaseDetailsUrl, @@ -21,11 +21,11 @@ import { getIPDetailsUrl, getCreateCaseUrl, } from '../link_to'; -import { FlowTarget, FlowTargetSourceDest } from '../../graphql/types'; +import { FlowTarget, FlowTargetSourceDest } from '../../../graphql/types'; import { useUiSetting$ } from '../../lib/kibana'; -import { isUrlInvalid } from '../../pages/detection_engine/rules/components/step_about_rule/helpers'; +import { isUrlInvalid } from '../../../alerts/components/rules/step_about_rule/helpers'; import { ExternalLinkIcon } from '../external_link_icon'; -import { navTabs } from '../../pages/home/home_navigations'; +import { navTabs } from '../../../app/home/home_navigations'; import { useGetUrlSearch } from '../navigation/use_get_url_search'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/links/translations.ts b/x-pack/plugins/siem/public/common/components/links/translations.ts similarity index 87% rename from x-pack/plugins/siem/public/components/links/translations.ts rename to x-pack/plugins/siem/public/common/components/links/translations.ts index bed867cd5bf5..fdc503611757 100644 --- a/x-pack/plugins/siem/public/components/links/translations.ts +++ b/x-pack/plugins/siem/public/common/components/links/translations.ts @@ -6,7 +6,7 @@ import { i18n } from '@kbn/i18n'; -export * from '../page/network/ip_overview/translations'; +export * from '../../../network/components/ip_overview/translations'; export const CASE_DETAILS_LINK_ARIA = (detailName: string) => i18n.translate('xpack.siem.case.caseTable.caseDetailsLinkAria', { diff --git a/x-pack/plugins/siem/public/components/loader/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/loader/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/loader/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/loader/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/loader/index.test.tsx b/x-pack/plugins/siem/public/common/components/loader/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/loader/index.test.tsx rename to x-pack/plugins/siem/public/common/components/loader/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/loader/index.tsx b/x-pack/plugins/siem/public/common/components/loader/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/loader/index.tsx rename to x-pack/plugins/siem/public/common/components/loader/index.tsx diff --git a/x-pack/plugins/siem/public/components/localized_date_tooltip/index.test.tsx b/x-pack/plugins/siem/public/common/components/localized_date_tooltip/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/localized_date_tooltip/index.test.tsx rename to x-pack/plugins/siem/public/common/components/localized_date_tooltip/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/localized_date_tooltip/index.tsx b/x-pack/plugins/siem/public/common/components/localized_date_tooltip/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/localized_date_tooltip/index.tsx rename to x-pack/plugins/siem/public/common/components/localized_date_tooltip/index.tsx diff --git a/x-pack/plugins/siem/public/components/markdown/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/markdown/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/markdown/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/markdown/__snapshots__/markdown_hint.test.tsx.snap b/x-pack/plugins/siem/public/common/components/markdown/__snapshots__/markdown_hint.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/__snapshots__/markdown_hint.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/markdown/__snapshots__/markdown_hint.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/markdown/index.test.tsx b/x-pack/plugins/siem/public/common/components/markdown/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/index.test.tsx rename to x-pack/plugins/siem/public/common/components/markdown/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/markdown/index.tsx b/x-pack/plugins/siem/public/common/components/markdown/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/index.tsx rename to x-pack/plugins/siem/public/common/components/markdown/index.tsx diff --git a/x-pack/plugins/siem/public/components/markdown/markdown_hint.test.tsx b/x-pack/plugins/siem/public/common/components/markdown/markdown_hint.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/markdown_hint.test.tsx rename to x-pack/plugins/siem/public/common/components/markdown/markdown_hint.test.tsx diff --git a/x-pack/plugins/siem/public/components/markdown/markdown_hint.tsx b/x-pack/plugins/siem/public/common/components/markdown/markdown_hint.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/markdown_hint.tsx rename to x-pack/plugins/siem/public/common/components/markdown/markdown_hint.tsx diff --git a/x-pack/plugins/siem/public/components/markdown/translations.ts b/x-pack/plugins/siem/public/common/components/markdown/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/markdown/translations.ts rename to x-pack/plugins/siem/public/common/components/markdown/translations.ts diff --git a/x-pack/plugins/siem/public/components/markdown_editor/constants.ts b/x-pack/plugins/siem/public/common/components/markdown_editor/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/components/markdown_editor/constants.ts rename to x-pack/plugins/siem/public/common/components/markdown_editor/constants.ts diff --git a/x-pack/plugins/siem/public/components/markdown_editor/form.tsx b/x-pack/plugins/siem/public/common/components/markdown_editor/form.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/markdown_editor/form.tsx rename to x-pack/plugins/siem/public/common/components/markdown_editor/form.tsx index 17c321b15418..2ed85b04fe3f 100644 --- a/x-pack/plugins/siem/public/components/markdown_editor/form.tsx +++ b/x-pack/plugins/siem/public/common/components/markdown_editor/form.tsx @@ -7,7 +7,7 @@ import { EuiFormRow } from '@elastic/eui'; import React, { useCallback } from 'react'; -import { FieldHook, getFieldValidityAndErrorMessage } from '../../shared_imports'; +import { FieldHook, getFieldValidityAndErrorMessage } from '../../../shared_imports'; import { CursorPosition, MarkdownEditor } from '.'; interface IMarkdownEditorForm { diff --git a/x-pack/plugins/siem/public/components/markdown_editor/index.tsx b/x-pack/plugins/siem/public/common/components/markdown_editor/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/markdown_editor/index.tsx rename to x-pack/plugins/siem/public/common/components/markdown_editor/index.tsx diff --git a/x-pack/plugins/siem/public/components/markdown_editor/translations.ts b/x-pack/plugins/siem/public/common/components/markdown_editor/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/markdown_editor/translations.ts rename to x-pack/plugins/siem/public/common/components/markdown_editor/translations.ts diff --git a/x-pack/plugins/siem/public/components/matrix_histogram/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/matrix_histogram/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/matrix_histogram/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/matrix_histogram/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/matrix_histogram/index.test.tsx b/x-pack/plugins/siem/public/common/components/matrix_histogram/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/matrix_histogram/index.test.tsx rename to x-pack/plugins/siem/public/common/components/matrix_histogram/index.test.tsx index 3b8a43a0f395..b45207ab47c7 100644 --- a/x-pack/plugins/siem/public/components/matrix_histogram/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/matrix_histogram/index.test.tsx @@ -11,7 +11,7 @@ import React from 'react'; import { MatrixHistogram } from '.'; import { useQuery } from '../../containers/matrix_histogram'; -import { HistogramType } from '../../graphql/types'; +import { HistogramType } from '../../../graphql/types'; jest.mock('../../lib/kibana'); jest.mock('./matrix_loader', () => { diff --git a/x-pack/plugins/siem/public/components/matrix_histogram/index.tsx b/x-pack/plugins/siem/public/common/components/matrix_histogram/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/matrix_histogram/index.tsx rename to x-pack/plugins/siem/public/common/components/matrix_histogram/index.tsx index ba3cb4f62af8..b2a9f915005f 100644 --- a/x-pack/plugins/siem/public/components/matrix_histogram/index.tsx +++ b/x-pack/plugins/siem/public/common/components/matrix_histogram/index.tsx @@ -27,18 +27,20 @@ import { } from './types'; import { InspectButtonContainer } from '../inspect'; -import { State, inputsSelectors, hostsModel, networkModel } from '../../store'; +import { State, inputsSelectors } from '../../store'; +import { hostsModel } from '../../../hosts/store'; +import { networkModel } from '../../../network/store'; import { MatrixHistogramMappingTypes, GetTitle, GetSubTitle, } from '../../components/matrix_histogram/types'; -import { SetQuery } from '../../pages/hosts/navigation/types'; +import { SetQuery } from '../../../hosts/pages/navigation/types'; import { QueryTemplateProps } from '../../containers/query_template'; import { setAbsoluteRangeDatePicker } from '../../store/inputs/actions'; import { InputsModelId } from '../../store/inputs/constants'; -import { HistogramType } from '../../graphql/types'; +import { HistogramType } from '../../../graphql/types'; export interface OwnProps extends QueryTemplateProps { defaultStackByOption: MatrixHistogramOption; @@ -112,11 +114,11 @@ export const MatrixHistogramComponent: React.FC { diff --git a/x-pack/plugins/siem/public/components/matrix_histogram/utils.ts b/x-pack/plugins/siem/public/common/components/matrix_histogram/utils.ts similarity index 97% rename from x-pack/plugins/siem/public/components/matrix_histogram/utils.ts rename to x-pack/plugins/siem/public/common/components/matrix_histogram/utils.ts index d31eb1da15ea..45e9c54b2eff 100644 --- a/x-pack/plugins/siem/public/components/matrix_histogram/utils.ts +++ b/x-pack/plugins/siem/public/common/components/matrix_histogram/utils.ts @@ -8,7 +8,7 @@ import { get, groupBy, map, toPairs } from 'lodash/fp'; import { UpdateDateRange, ChartSeriesData } from '../charts/common'; import { MatrixHistogramMappingTypes, BarchartConfigs } from './types'; -import { MatrixOverTimeHistogramData } from '../../graphql/types'; +import { MatrixOverTimeHistogramData } from '../../../graphql/types'; import { histogramDateTimeFormatter } from '../utils'; interface GetBarchartConfigsProps { diff --git a/x-pack/plugins/siem/public/components/ml/__snapshots__/entity_draggable.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml/__snapshots__/entity_draggable.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml/__snapshots__/entity_draggable.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml/__snapshots__/entity_draggable.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/anomaly_table_provider.tsx b/x-pack/plugins/siem/public/common/components/ml/anomaly/anomaly_table_provider.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/anomaly/anomaly_table_provider.tsx rename to x-pack/plugins/siem/public/common/components/ml/anomaly/anomaly_table_provider.tsx diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/get_interval_from_anomalies.test.ts b/x-pack/plugins/siem/public/common/components/ml/anomaly/get_interval_from_anomalies.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/anomaly/get_interval_from_anomalies.test.ts rename to x-pack/plugins/siem/public/common/components/ml/anomaly/get_interval_from_anomalies.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/get_interval_from_anomalies.ts b/x-pack/plugins/siem/public/common/components/ml/anomaly/get_interval_from_anomalies.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/anomaly/get_interval_from_anomalies.ts rename to x-pack/plugins/siem/public/common/components/ml/anomaly/get_interval_from_anomalies.ts diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/translations.ts b/x-pack/plugins/siem/public/common/components/ml/anomaly/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/anomaly/translations.ts rename to x-pack/plugins/siem/public/common/components/ml/anomaly/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.test.ts b/x-pack/plugins/siem/public/common/components/ml/anomaly/use_anomalies_table_data.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.test.ts rename to x-pack/plugins/siem/public/common/components/ml/anomaly/use_anomalies_table_data.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts b/x-pack/plugins/siem/public/common/components/ml/anomaly/use_anomalies_table_data.ts similarity index 95% rename from x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts rename to x-pack/plugins/siem/public/common/components/ml/anomaly/use_anomalies_table_data.ts index 67efda67a20a..51300d914500 100644 --- a/x-pack/plugins/siem/public/components/ml/anomaly/use_anomalies_table_data.ts +++ b/x-pack/plugins/siem/public/common/components/ml/anomaly/use_anomalies_table_data.ts @@ -6,10 +6,10 @@ import { useState, useEffect } from 'react'; -import { DEFAULT_ANOMALY_SCORE } from '../../../../common/constants'; +import { DEFAULT_ANOMALY_SCORE } from '../../../../../common/constants'; import { anomaliesTableData } from '../api/anomalies_table_data'; import { InfluencerInput, Anomalies, CriteriaFields } from '../types'; -import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import { useSiemJobs } from '../../ml_popover/hooks/use_siem_jobs'; import { useMlCapabilities } from '../../ml_popover/hooks/use_ml_capabilities'; import { useStateToaster, errorToToaster } from '../../toasters'; diff --git a/x-pack/plugins/siem/public/components/ml/api/anomalies_table_data.ts b/x-pack/plugins/siem/public/common/components/ml/api/anomalies_table_data.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/api/anomalies_table_data.ts rename to x-pack/plugins/siem/public/common/components/ml/api/anomalies_table_data.ts diff --git a/x-pack/plugins/siem/public/components/ml/api/errors.ts b/x-pack/plugins/siem/public/common/components/ml/api/errors.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/api/errors.ts rename to x-pack/plugins/siem/public/common/components/ml/api/errors.ts diff --git a/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts b/x-pack/plugins/siem/public/common/components/ml/api/get_ml_capabilities.ts similarity index 92% rename from x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts rename to x-pack/plugins/siem/public/common/components/ml/api/get_ml_capabilities.ts index e6a792e779b0..32f6f888ab8d 100644 --- a/x-pack/plugins/siem/public/components/ml/api/get_ml_capabilities.ts +++ b/x-pack/plugins/siem/public/common/components/ml/api/get_ml_capabilities.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { MlCapabilitiesResponse } from '../../../../../ml/public'; +import { MlCapabilitiesResponse } from '../../../../../../ml/public'; import { KibanaServices } from '../../../lib/kibana'; import { InfluencerInput } from '../types'; diff --git a/x-pack/plugins/siem/public/components/ml/api/throw_if_not_ok.test.ts b/x-pack/plugins/siem/public/common/components/ml/api/throw_if_not_ok.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/api/throw_if_not_ok.test.ts rename to x-pack/plugins/siem/public/common/components/ml/api/throw_if_not_ok.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/api/throw_if_not_ok.ts b/x-pack/plugins/siem/public/common/components/ml/api/throw_if_not_ok.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/api/throw_if_not_ok.ts rename to x-pack/plugins/siem/public/common/components/ml/api/throw_if_not_ok.ts diff --git a/x-pack/plugins/siem/public/components/ml/api/translations.ts b/x-pack/plugins/siem/public/common/components/ml/api/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/api/translations.ts rename to x-pack/plugins/siem/public/common/components/ml/api/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/add_entities_to_kql.test.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/add_entities_to_kql.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/add_entities_to_kql.test.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/add_entities_to_kql.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/add_entities_to_kql.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/add_entities_to_kql.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/add_entities_to_kql.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/add_entities_to_kql.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/entity_helpers.test.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/entity_helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/entity_helpers.test.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/entity_helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/entity_helpers.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/entity_helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/entity_helpers.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/entity_helpers.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/ml_host_conditional_container.tsx b/x-pack/plugins/siem/public/common/components/ml/conditional_links/ml_host_conditional_container.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/ml/conditional_links/ml_host_conditional_container.tsx rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/ml_host_conditional_container.tsx index b7c544273ae9..6ca723c50c68 100644 --- a/x-pack/plugins/siem/public/components/ml/conditional_links/ml_host_conditional_container.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/conditional_links/ml_host_conditional_container.tsx @@ -11,10 +11,10 @@ import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; import { addEntitiesToKql } from './add_entities_to_kql'; import { replaceKQLParts } from './replace_kql_parts'; import { emptyEntity, multipleEntities, getMultipleEntities } from './entity_helpers'; -import { SiemPageName } from '../../../pages/home/types'; -import { HostsTableType } from '../../../store/hosts/model'; +import { SiemPageName } from '../../../../app/types'; +import { HostsTableType } from '../../../../hosts/store/model'; -import { url as urlUtils } from '../../../../../../../src/plugins/kibana_utils/public'; +import { url as urlUtils } from '../../../../../../../../src/plugins/kibana_utils/public'; interface QueryStringType { '?_g': string; diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/ml_network_conditional_container.tsx b/x-pack/plugins/siem/public/common/components/ml/conditional_links/ml_network_conditional_container.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/ml/conditional_links/ml_network_conditional_container.tsx rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/ml_network_conditional_container.tsx index 54773e3ab6dd..05049cd9b4ea 100644 --- a/x-pack/plugins/siem/public/components/ml/conditional_links/ml_network_conditional_container.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/conditional_links/ml_network_conditional_container.tsx @@ -11,9 +11,9 @@ import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; import { addEntitiesToKql } from './add_entities_to_kql'; import { replaceKQLParts } from './replace_kql_parts'; import { emptyEntity, getMultipleEntities, multipleEntities } from './entity_helpers'; -import { SiemPageName } from '../../../pages/home/types'; +import { SiemPageName } from '../../../../app/types'; -import { url as urlUtils } from '../../../../../../../src/plugins/kibana_utils/public'; +import { url as urlUtils } from '../../../../../../../../src/plugins/kibana_utils/public'; interface QueryStringType { '?_g': string; diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/remove_kql_variables.test.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/remove_kql_variables.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/remove_kql_variables.test.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/remove_kql_variables.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/remove_kql_variables.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/remove_kql_variables.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/remove_kql_variables.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/remove_kql_variables.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_commas_with_or.test.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_commas_with_or.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_commas_with_or.test.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_commas_with_or.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_commas_with_or.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_commas_with_or.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_commas_with_or.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_commas_with_or.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_parts.test.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_parts.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_parts.test.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_parts.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_parts.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_parts.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/replace_kql_parts.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/replace_kql_parts.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/rison_helpers.test.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/rison_helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/rison_helpers.test.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/rison_helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/conditional_links/rison_helpers.ts b/x-pack/plugins/siem/public/common/components/ml/conditional_links/rison_helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/conditional_links/rison_helpers.ts rename to x-pack/plugins/siem/public/common/components/ml/conditional_links/rison_helpers.ts diff --git a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_host_type.test.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_host_type.test.ts similarity index 94% rename from x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_host_type.test.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_host_type.test.ts index d8e951adabbc..215df22f4a25 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_host_type.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_host_type.test.ts @@ -5,7 +5,7 @@ */ import { getCriteriaFromHostType } from './get_criteria_from_host_type'; -import { HostsType } from '../../../store/hosts/model'; +import { HostsType } from '../../../../hosts/store/model'; describe('get_criteria_from_host_type', () => { test('returns host names from criteria if the host type is details', () => { diff --git a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_host_type.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_host_type.ts similarity index 90% rename from x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_host_type.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_host_type.ts index 2667e3a089f4..5988f0d1001b 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_host_type.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_host_type.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostsType } from '../../../store/hosts/model'; +import { HostsType } from '../../../../hosts/store/model'; import { CriteriaFields } from '../types'; export const getCriteriaFromHostType = ( diff --git a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_network_type.test.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_network_type.test.ts similarity index 92% rename from x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_network_type.test.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_network_type.test.ts index fe1cd77a6119..07bdee140a0c 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_network_type.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_network_type.test.ts @@ -5,8 +5,8 @@ */ import { getCriteriaFromNetworkType } from './get_criteria_from_network_type'; -import { NetworkType } from '../../../store/network/model'; -import { FlowTarget } from '../../../graphql/types'; +import { NetworkType } from '../../../../network/store/model'; +import { FlowTarget } from '../../../../graphql/types'; describe('get_criteria_from_network_type', () => { test('returns network names from criteria if the network type is details and it is source', () => { diff --git a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_network_type.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_network_type.ts similarity index 86% rename from x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_network_type.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_network_type.ts index 75c7e580f93c..d717edea97cc 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/get_criteria_from_network_type.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/get_criteria_from_network_type.ts @@ -5,8 +5,8 @@ */ import { CriteriaFields } from '../types'; -import { NetworkType } from '../../../store/network/model'; -import { FlowTarget } from '../../../graphql/types'; +import { NetworkType } from '../../../../network/store/model'; +import { FlowTarget } from '../../../../graphql/types'; export const getCriteriaFromNetworkType = ( type: NetworkType, diff --git a/x-pack/plugins/siem/public/components/ml/criteria/host_to_criteria.test.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/host_to_criteria.test.ts similarity index 95% rename from x-pack/plugins/siem/public/components/ml/criteria/host_to_criteria.test.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/host_to_criteria.test.ts index 8cc672ab4321..bdd107145516 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/host_to_criteria.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/host_to_criteria.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostItem } from '../../../graphql/types'; +import { HostItem } from '../../../../graphql/types'; import { CriteriaFields } from '../types'; import { hostToCriteria } from './host_to_criteria'; diff --git a/x-pack/plugins/siem/public/components/ml/criteria/host_to_criteria.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/host_to_criteria.ts similarity index 91% rename from x-pack/plugins/siem/public/components/ml/criteria/host_to_criteria.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/host_to_criteria.ts index aeb5fa264682..f708bd43b8c9 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/host_to_criteria.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/host_to_criteria.ts @@ -5,7 +5,7 @@ */ import { CriteriaFields } from '../types'; -import { HostItem } from '../../../graphql/types'; +import { HostItem } from '../../../../graphql/types'; export const hostToCriteria = (hostItem: HostItem): CriteriaFields[] => { if (hostItem.host != null && hostItem.host.name != null) { diff --git a/x-pack/plugins/siem/public/components/ml/criteria/network_to_criteria.test.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/network_to_criteria.test.ts similarity index 95% rename from x-pack/plugins/siem/public/components/ml/criteria/network_to_criteria.test.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/network_to_criteria.test.ts index d6abb4a42e80..6c0d2fc60a62 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/network_to_criteria.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/network_to_criteria.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { FlowTarget } from '../../../graphql/types'; +import { FlowTarget } from '../../../../graphql/types'; import { CriteriaFields } from '../types'; import { networkToCriteria } from './network_to_criteria'; diff --git a/x-pack/plugins/siem/public/components/ml/criteria/network_to_criteria.ts b/x-pack/plugins/siem/public/common/components/ml/criteria/network_to_criteria.ts similarity index 91% rename from x-pack/plugins/siem/public/components/ml/criteria/network_to_criteria.ts rename to x-pack/plugins/siem/public/common/components/ml/criteria/network_to_criteria.ts index a859931d6e22..de2cc35007e8 100644 --- a/x-pack/plugins/siem/public/components/ml/criteria/network_to_criteria.ts +++ b/x-pack/plugins/siem/public/common/components/ml/criteria/network_to_criteria.ts @@ -5,7 +5,7 @@ */ import { CriteriaFields } from '../types'; -import { FlowTarget } from '../../../graphql/types'; +import { FlowTarget } from '../../../../graphql/types'; export const networkToCriteria = (ip: string, flowTarget: FlowTarget): CriteriaFields[] => { if (flowTarget === FlowTarget.source) { diff --git a/x-pack/plugins/siem/public/components/ml/entity_draggable.test.tsx b/x-pack/plugins/siem/public/common/components/ml/entity_draggable.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/entity_draggable.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/entity_draggable.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml/entity_draggable.tsx b/x-pack/plugins/siem/public/common/components/ml/entity_draggable.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/ml/entity_draggable.tsx rename to x-pack/plugins/siem/public/common/components/ml/entity_draggable.tsx index b0636b08a563..9024aec17400 100644 --- a/x-pack/plugins/siem/public/components/ml/entity_draggable.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/entity_draggable.tsx @@ -6,8 +6,8 @@ import React from 'react'; import { DraggableWrapper, DragEffects } from '../drag_and_drop/draggable_wrapper'; -import { IS_OPERATOR } from '../timeline/data_providers/data_provider'; -import { Provider } from '../timeline/data_providers/provider'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; import { escapeDataProviderId } from '../drag_and_drop/helpers'; interface Props { diff --git a/x-pack/plugins/siem/public/components/ml/get_entries.test.ts b/x-pack/plugins/siem/public/common/components/ml/get_entries.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/get_entries.test.ts rename to x-pack/plugins/siem/public/common/components/ml/get_entries.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/get_entries.ts b/x-pack/plugins/siem/public/common/components/ml/get_entries.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/get_entries.ts rename to x-pack/plugins/siem/public/common/components/ml/get_entries.ts diff --git a/x-pack/plugins/siem/public/components/ml/influencers/__snapshots__/create_influencers.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml/influencers/__snapshots__/create_influencers.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/__snapshots__/create_influencers.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml/influencers/__snapshots__/create_influencers.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml/influencers/create_influencers.test.tsx b/x-pack/plugins/siem/public/common/components/ml/influencers/create_influencers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/create_influencers.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/influencers/create_influencers.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml/influencers/create_influencers.tsx b/x-pack/plugins/siem/public/common/components/ml/influencers/create_influencers.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/create_influencers.tsx rename to x-pack/plugins/siem/public/common/components/ml/influencers/create_influencers.tsx diff --git a/x-pack/plugins/siem/public/components/ml/influencers/get_host_name_from_influencers.test.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/get_host_name_from_influencers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/get_host_name_from_influencers.test.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/get_host_name_from_influencers.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/influencers/get_host_name_from_influencers.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/get_host_name_from_influencers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/get_host_name_from_influencers.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/get_host_name_from_influencers.ts diff --git a/x-pack/plugins/siem/public/components/ml/influencers/get_network_from_influencers.test.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/get_network_from_influencers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/get_network_from_influencers.test.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/get_network_from_influencers.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/influencers/get_network_from_influencers.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/get_network_from_influencers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/get_network_from_influencers.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/get_network_from_influencers.ts diff --git a/x-pack/plugins/siem/public/components/ml/influencers/host_to_influencers.test.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/host_to_influencers.test.ts similarity index 95% rename from x-pack/plugins/siem/public/components/ml/influencers/host_to_influencers.test.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/host_to_influencers.test.ts index 47a1fd52e947..8e67168b6acd 100644 --- a/x-pack/plugins/siem/public/components/ml/influencers/host_to_influencers.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/influencers/host_to_influencers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostItem } from '../../../graphql/types'; +import { HostItem } from '../../../../graphql/types'; import { InfluencerInput } from '../types'; import { hostToInfluencers } from './host_to_influencers'; diff --git a/x-pack/plugins/siem/public/components/ml/influencers/host_to_influencers.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/host_to_influencers.ts similarity index 92% rename from x-pack/plugins/siem/public/components/ml/influencers/host_to_influencers.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/host_to_influencers.ts index 69d1b6e26ac7..ae7698a1bac8 100644 --- a/x-pack/plugins/siem/public/components/ml/influencers/host_to_influencers.ts +++ b/x-pack/plugins/siem/public/common/components/ml/influencers/host_to_influencers.ts @@ -5,7 +5,7 @@ */ import { InfluencerInput } from '../types'; -import { HostItem } from '../../../graphql/types'; +import { HostItem } from '../../../../graphql/types'; export const hostToInfluencers = (hostItem: HostItem): InfluencerInput[] | null => { if (hostItem.host != null && hostItem.host.name != null) { diff --git a/x-pack/plugins/siem/public/components/ml/influencers/network_to_influencers.test.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/network_to_influencers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/network_to_influencers.test.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/network_to_influencers.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/influencers/network_to_influencers.ts b/x-pack/plugins/siem/public/common/components/ml/influencers/network_to_influencers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/influencers/network_to_influencers.ts rename to x-pack/plugins/siem/public/common/components/ml/influencers/network_to_influencers.ts diff --git a/x-pack/plugins/siem/public/components/ml/links/create_explorer_link.test.ts b/x-pack/plugins/siem/public/common/components/ml/links/create_explorer_link.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/links/create_explorer_link.test.ts rename to x-pack/plugins/siem/public/common/components/ml/links/create_explorer_link.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/links/create_explorer_link.ts b/x-pack/plugins/siem/public/common/components/ml/links/create_explorer_link.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/links/create_explorer_link.ts rename to x-pack/plugins/siem/public/common/components/ml/links/create_explorer_link.ts diff --git a/x-pack/plugins/siem/public/components/ml/links/create_series_link.test.ts b/x-pack/plugins/siem/public/common/components/ml/links/create_series_link.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/links/create_series_link.test.ts rename to x-pack/plugins/siem/public/common/components/ml/links/create_series_link.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/links/create_series_link.ts b/x-pack/plugins/siem/public/common/components/ml/links/create_series_link.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/links/create_series_link.ts rename to x-pack/plugins/siem/public/common/components/ml/links/create_series_link.ts diff --git a/x-pack/plugins/siem/public/components/ml/mock.ts b/x-pack/plugins/siem/public/common/components/ml/mock.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/mock.ts rename to x-pack/plugins/siem/public/common/components/ml/mock.ts diff --git a/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx b/x-pack/plugins/siem/public/common/components/ml/permissions/ml_capabilities_provider.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx rename to x-pack/plugins/siem/public/common/components/ml/permissions/ml_capabilities_provider.tsx index 9326c53b6064..1d5c1b36e22a 100644 --- a/x-pack/plugins/siem/public/components/ml/permissions/ml_capabilities_provider.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/permissions/ml_capabilities_provider.tsx @@ -6,8 +6,8 @@ import React, { useState, useEffect } from 'react'; -import { MlCapabilitiesResponse } from '../../../../../ml/public'; -import { emptyMlCapabilities } from '../../../../common/machine_learning/empty_ml_capabilities'; +import { MlCapabilitiesResponse } from '../../../../../../ml/public'; +import { emptyMlCapabilities } from '../../../../../common/machine_learning/empty_ml_capabilities'; import { getMlCapabilities } from '../api/get_ml_capabilities'; import { errorToToaster, useStateToaster } from '../../toasters'; diff --git a/x-pack/plugins/siem/public/components/ml/permissions/translations.ts b/x-pack/plugins/siem/public/common/components/ml/permissions/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/permissions/translations.ts rename to x-pack/plugins/siem/public/common/components/ml/permissions/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/__snapshots__/anomaly_score.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/anomaly_score.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/__snapshots__/anomaly_score.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/anomaly_score.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml/score/__snapshots__/anomaly_scores.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/anomaly_scores.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/__snapshots__/anomaly_scores.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/anomaly_scores.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml/score/__snapshots__/create_descriptions_list.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/create_descriptions_list.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/__snapshots__/create_descriptions_list.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/create_descriptions_list.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml/score/__snapshots__/draggable_score.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/draggable_score.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/__snapshots__/draggable_score.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml/score/__snapshots__/draggable_score.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml/score/anomaly_score.test.tsx b/x-pack/plugins/siem/public/common/components/ml/score/anomaly_score.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/anomaly_score.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/anomaly_score.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/anomaly_score.tsx b/x-pack/plugins/siem/public/common/components/ml/score/anomaly_score.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/anomaly_score.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/anomaly_score.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/anomaly_scores.test.tsx b/x-pack/plugins/siem/public/common/components/ml/score/anomaly_scores.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/anomaly_scores.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/anomaly_scores.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/anomaly_scores.tsx b/x-pack/plugins/siem/public/common/components/ml/score/anomaly_scores.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/anomaly_scores.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/anomaly_scores.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/create_description_list.tsx b/x-pack/plugins/siem/public/common/components/ml/score/create_description_list.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/ml/score/create_description_list.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/create_description_list.tsx index e7615bf3b89b..0651bc587486 100644 --- a/x-pack/plugins/siem/public/components/ml/score/create_description_list.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/score/create_description_list.tsx @@ -8,7 +8,7 @@ import { EuiText, EuiSpacer, EuiFlexGroup, EuiFlexItem, EuiLink } from '@elastic import React from 'react'; import styled from 'styled-components'; -import { DescriptionList } from '../../../../common/utility_types'; +import { DescriptionList } from '../../../../../common/utility_types'; import { Anomaly, NarrowDateRange } from '../types'; import { getScoreString } from './score_health'; import { PreferenceFormattedDate } from '../../formatted_date'; diff --git a/x-pack/plugins/siem/public/components/ml/score/create_descriptions_list.test.tsx b/x-pack/plugins/siem/public/common/components/ml/score/create_descriptions_list.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/create_descriptions_list.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/create_descriptions_list.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/create_entities_from_score.test.ts b/x-pack/plugins/siem/public/common/components/ml/score/create_entities_from_score.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/create_entities_from_score.test.ts rename to x-pack/plugins/siem/public/common/components/ml/score/create_entities_from_score.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/create_entities_from_score.ts b/x-pack/plugins/siem/public/common/components/ml/score/create_entities_from_score.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/create_entities_from_score.ts rename to x-pack/plugins/siem/public/common/components/ml/score/create_entities_from_score.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/draggable_score.test.tsx b/x-pack/plugins/siem/public/common/components/ml/score/draggable_score.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/draggable_score.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/draggable_score.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/draggable_score.tsx b/x-pack/plugins/siem/public/common/components/ml/score/draggable_score.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/ml/score/draggable_score.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/draggable_score.tsx index 732eaf4bc5e7..c849476f0c3d 100644 --- a/x-pack/plugins/siem/public/components/ml/score/draggable_score.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/score/draggable_score.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { DraggableWrapper, DragEffects } from '../../drag_and_drop/draggable_wrapper'; import { Anomaly } from '../types'; -import { IS_OPERATOR } from '../../timeline/data_providers/data_provider'; -import { Provider } from '../../timeline/data_providers/provider'; +import { IS_OPERATOR } from '../../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../../timelines/components/timeline/data_providers/provider'; import { Spacer } from '../../page'; import { getScoreString } from './score_health'; diff --git a/x-pack/plugins/siem/public/components/ml/score/get_score_string.test.ts b/x-pack/plugins/siem/public/common/components/ml/score/get_score_string.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/get_score_string.test.ts rename to x-pack/plugins/siem/public/common/components/ml/score/get_score_string.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/get_top_severity.test.ts b/x-pack/plugins/siem/public/common/components/ml/score/get_top_severity.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/get_top_severity.test.ts rename to x-pack/plugins/siem/public/common/components/ml/score/get_top_severity.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/get_top_severity.ts b/x-pack/plugins/siem/public/common/components/ml/score/get_top_severity.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/get_top_severity.ts rename to x-pack/plugins/siem/public/common/components/ml/score/get_top_severity.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/score_health.tsx b/x-pack/plugins/siem/public/common/components/ml/score/score_health.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/score_health.tsx rename to x-pack/plugins/siem/public/common/components/ml/score/score_health.tsx diff --git a/x-pack/plugins/siem/public/components/ml/score/score_interval_to_datetime.test.ts b/x-pack/plugins/siem/public/common/components/ml/score/score_interval_to_datetime.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/score_interval_to_datetime.test.ts rename to x-pack/plugins/siem/public/common/components/ml/score/score_interval_to_datetime.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/score_interval_to_datetime.ts b/x-pack/plugins/siem/public/common/components/ml/score/score_interval_to_datetime.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/score_interval_to_datetime.ts rename to x-pack/plugins/siem/public/common/components/ml/score/score_interval_to_datetime.ts diff --git a/x-pack/plugins/siem/public/components/ml/score/translations.ts b/x-pack/plugins/siem/public/common/components/ml/score/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/score/translations.ts rename to x-pack/plugins/siem/public/common/components/ml/score/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/anomalies_host_table.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/anomalies_host_table.tsx index 3272042732df..d6e343265b6e 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/anomalies_host_table.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/tables/anomalies_host_table.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { useAnomaliesTableData } from '../anomaly/use_anomalies_table_data'; import { HeaderSection } from '../../header_section'; -import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import * as i18n from './translations'; import { getAnomaliesHostTableColumnsCurated } from './get_anomalies_host_table_columns'; import { convertAnomaliesToHosts } from './convert_anomalies_to_hosts'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/anomalies_network_table.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/anomalies_network_table.tsx index cc3b1196f843..c7a49202bf23 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/anomalies_network_table.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/tables/anomalies_network_table.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { useAnomaliesTableData } from '../anomaly/use_anomalies_table_data'; import { HeaderSection } from '../../header_section'; -import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import * as i18n from './translations'; import { convertAnomaliesToNetwork } from './convert_anomalies_to_network'; import { Loader } from '../../loader'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/basic_table.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/basic_table.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/basic_table.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/basic_table.tsx diff --git a/x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_hosts.test.ts b/x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_hosts.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_hosts.test.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_hosts.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_hosts.ts b/x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_hosts.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_hosts.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_hosts.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_network.test.ts b/x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_network.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_network.test.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_network.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_network.ts b/x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_network.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/convert_anomalies_to_network.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/convert_anomalies_to_network.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/create_compound_key.test.ts b/x-pack/plugins/siem/public/common/components/ml/tables/create_compound_key.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/create_compound_key.test.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/create_compound_key.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/create_compound_key.ts b/x-pack/plugins/siem/public/common/components/ml/tables/create_compound_key.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/create_compound_key.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/create_compound_key.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_host_table_columns.test.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_host_table_columns.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/ml/tables/get_anomalies_host_table_columns.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_host_table_columns.test.tsx index 80980756d213..ae9133f23c0b 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_host_table_columns.test.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_host_table_columns.test.tsx @@ -5,7 +5,7 @@ */ import { getAnomaliesHostTableColumnsCurated } from './get_anomalies_host_table_columns'; -import { HostsType } from '../../../store/hosts/model'; +import { HostsType } from '../../../../hosts/store/model'; import * as i18n from './translations'; import { AnomaliesByHost, Anomaly } from '../types'; import { Columns } from '../../paginated_table'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_host_table_columns.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_host_table_columns.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/ml/tables/get_anomalies_host_table_columns.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_host_table_columns.tsx index 4e6484c23613..4697eb1fbf86 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_host_table_columns.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_host_table_columns.tsx @@ -19,7 +19,7 @@ import * as i18n from './translations'; import { getEntries } from '../get_entries'; import { DraggableScore } from '../score/draggable_score'; import { createExplorerLink } from '../links/create_explorer_link'; -import { HostsType } from '../../../store/hosts/model'; +import { HostsType } from '../../../../hosts/store/model'; import { escapeDataProviderId } from '../../drag_and_drop/helpers'; import { FormattedRelativePreferenceDate } from '../../formatted_date'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_network_table_columns.test.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_network_table_columns.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/ml/tables/get_anomalies_network_table_columns.test.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_network_table_columns.test.tsx index 658444bfeda5..37cb99b33c79 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_network_table_columns.test.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_network_table_columns.test.tsx @@ -5,7 +5,7 @@ */ import { getAnomaliesNetworkTableColumnsCurated } from './get_anomalies_network_table_columns'; -import { NetworkType } from '../../../store/network/model'; +import { NetworkType } from '../../../../network/store/model'; import * as i18n from './translations'; import { AnomaliesByNetwork, Anomaly } from '../types'; import { Columns } from '../../paginated_table'; diff --git a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_network_table_columns.tsx b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_network_table_columns.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/ml/tables/get_anomalies_network_table_columns.tsx rename to x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_network_table_columns.tsx index f6a493f80eb7..f09a4d0779ac 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/get_anomalies_network_table_columns.tsx +++ b/x-pack/plugins/siem/public/common/components/ml/tables/get_anomalies_network_table_columns.tsx @@ -21,9 +21,9 @@ import { getEntries } from '../get_entries'; import { DraggableScore } from '../score/draggable_score'; import { createExplorerLink } from '../links/create_explorer_link'; import { FormattedRelativePreferenceDate } from '../../formatted_date'; -import { NetworkType } from '../../../store/network/model'; +import { NetworkType } from '../../../../network/store/model'; import { escapeDataProviderId } from '../../drag_and_drop/helpers'; -import { FlowTarget } from '../../../graphql/types'; +import { FlowTarget } from '../../../../graphql/types'; export const getAnomaliesNetworkTableColumns = ( startDate: number, diff --git a/x-pack/plugins/siem/public/components/ml/tables/host_equality.test.ts b/x-pack/plugins/siem/public/common/components/ml/tables/host_equality.test.ts similarity index 98% rename from x-pack/plugins/siem/public/components/ml/tables/host_equality.test.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/host_equality.test.ts index c5054d40f94a..89b87f95e515 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/host_equality.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/tables/host_equality.test.ts @@ -6,7 +6,7 @@ import { hostEquality } from './host_equality'; import { AnomaliesHostTableProps } from '../types'; -import { HostsType } from '../../../store/hosts/model'; +import { HostsType } from '../../../../hosts/store/model'; describe('host_equality', () => { test('it returns true if start and end date are equal', () => { diff --git a/x-pack/plugins/siem/public/components/ml/tables/host_equality.ts b/x-pack/plugins/siem/public/common/components/ml/tables/host_equality.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/host_equality.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/host_equality.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/network_equality.test.ts b/x-pack/plugins/siem/public/common/components/ml/tables/network_equality.test.ts similarity index 97% rename from x-pack/plugins/siem/public/components/ml/tables/network_equality.test.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/network_equality.test.ts index cb053d1a43d2..8b3e30c32903 100644 --- a/x-pack/plugins/siem/public/components/ml/tables/network_equality.test.ts +++ b/x-pack/plugins/siem/public/common/components/ml/tables/network_equality.test.ts @@ -6,8 +6,8 @@ import { networkEquality } from './network_equality'; import { AnomaliesNetworkTableProps } from '../types'; -import { NetworkType } from '../../../store/network/model'; -import { FlowTarget } from '../../../graphql/types'; +import { NetworkType } from '../../../../network/store/model'; +import { FlowTarget } from '../../../../graphql/types'; describe('network_equality', () => { test('it returns true if start and end date are equal', () => { diff --git a/x-pack/plugins/siem/public/components/ml/tables/network_equality.ts b/x-pack/plugins/siem/public/common/components/ml/tables/network_equality.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/network_equality.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/network_equality.ts diff --git a/x-pack/plugins/siem/public/components/ml/tables/translations.ts b/x-pack/plugins/siem/public/common/components/ml/tables/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/tables/translations.ts rename to x-pack/plugins/siem/public/common/components/ml/tables/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml/types.test.ts b/x-pack/plugins/siem/public/common/components/ml/types.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml/types.test.ts rename to x-pack/plugins/siem/public/common/components/ml/types.test.ts diff --git a/x-pack/plugins/siem/public/components/ml/types.ts b/x-pack/plugins/siem/public/common/components/ml/types.ts similarity index 91% rename from x-pack/plugins/siem/public/components/ml/types.ts rename to x-pack/plugins/siem/public/common/components/ml/types.ts index f70c7d3eb034..13bceaa473a8 100644 --- a/x-pack/plugins/siem/public/components/ml/types.ts +++ b/x-pack/plugins/siem/public/common/components/ml/types.ts @@ -4,11 +4,11 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Influencer } from '../../../../ml/public'; +import { Influencer } from '../../../../../ml/public'; -import { HostsType } from '../../store/hosts/model'; -import { NetworkType } from '../../store/network/model'; -import { FlowTarget } from '../../graphql/types'; +import { HostsType } from '../../../hosts/store/model'; +import { NetworkType } from '../../../network/store/model'; +import { FlowTarget } from '../../../graphql/types'; export interface Source { job_id: string; diff --git a/x-pack/plugins/siem/public/components/ml_popover/__mocks__/api.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/__mocks__/api.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/__mocks__/api.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/__mocks__/api.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/__snapshots__/popover_description.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/__snapshots__/popover_description.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/__snapshots__/popover_description.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/__snapshots__/popover_description.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/__snapshots__/upgrade_contents.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/__snapshots__/upgrade_contents.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/__snapshots__/upgrade_contents.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/__snapshots__/upgrade_contents.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/api.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/api.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/api.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/api.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/helpers.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/helpers.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/helpers.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/helpers.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/helpers.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/translations.ts b/x-pack/plugins/siem/public/common/components/ml_popover/hooks/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/hooks/translations.ts rename to x-pack/plugins/siem/public/common/components/ml_popover/hooks/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_ml_capabilities.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_ml_capabilities.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/hooks/use_ml_capabilities.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_ml_capabilities.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs.tsx index 98e74208b3dc..a84d88782926 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs.tsx +++ b/x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs.tsx @@ -6,10 +6,10 @@ import { useEffect, useState } from 'react'; -import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; import { checkRecognizer, getJobsSummary, getModules } from '../api'; import { SiemJob } from '../types'; -import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; +import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; import { errorToToaster, useStateToaster } from '../../toasters'; import { useUiSetting$ } from '../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs_helpers.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/hooks/use_siem_jobs_helpers.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/hooks/use_siem_jobs_helpers.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/__snapshots__/job_switch.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/__snapshots__/job_switch.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/__snapshots__/job_switch.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/__snapshots__/job_switch.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/__snapshots__/jobs_table.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/__snapshots__/jobs_table.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/__snapshots__/jobs_table.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/__snapshots__/jobs_table.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/__snapshots__/showing_count.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/__snapshots__/showing_count.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/__snapshots__/showing_count.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/__snapshots__/showing_count.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/__snapshots__/groups_filter_popover.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/__snapshots__/groups_filter_popover.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/__snapshots__/groups_filter_popover.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/__snapshots__/groups_filter_popover.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/__snapshots__/jobs_table_filters.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/groups_filter_popover.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/groups_filter_popover.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/groups_filter_popover.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx index 551ed5f08bd7..8cb35fc68918 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx +++ b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/jobs_table_filters.tsx @@ -14,7 +14,7 @@ import { // @ts-ignore no-exported-member EuiSearchBar, } from '@elastic/eui'; -import { EuiSearchBarQuery } from '../../../open_timeline/types'; +import { EuiSearchBarQuery } from '../../../../../timelines/components/open_timeline/types'; import * as i18n from './translations'; import { JobsFilters, SiemJob } from '../../types'; import { GroupsFilterPopover } from './groups_filter_popover'; diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/toggle_selected_group.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/toggle_selected_group.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/toggle_selected_group.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/toggle_selected_group.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/toggle_selected_group.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/toggle_selected_group.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/toggle_selected_group.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/toggle_selected_group.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/translations.ts b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/filters/translations.ts rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/filters/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/job_switch.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/job_switch.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/job_switch.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/job_switch.tsx index 7de2f0fbfbc5..732f5cc062bf 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/job_switch.tsx +++ b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/job_switch.tsx @@ -11,7 +11,7 @@ import { isJobLoading, isJobFailed, isJobStarted, -} from '../../../../common/machine_learning/helpers'; +} from '../../../../../common/machine_learning/helpers'; import { SiemJob } from '../types'; const StaticSwitch = styled(EuiSwitch)` diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/jobs_table.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/jobs_table.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/jobs_table.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/jobs_table.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/jobs_table.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/jobs_table.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/jobs_table.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/jobs_table.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/showing_count.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/showing_count.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/showing_count.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/showing_count.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/showing_count.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/showing_count.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/showing_count.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/showing_count.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/jobs_table/translations.ts b/x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/jobs_table/translations.ts rename to x-pack/plugins/siem/public/common/components/ml_popover/jobs_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_modules.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/ml_modules.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/ml_modules.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/ml_modules.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/ml_popover.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/ml_popover.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/ml_popover.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/ml_popover.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/ml_popover.tsx index e7f7770ee87f..292b5286e9f3 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/ml_popover.tsx +++ b/x-pack/plugins/siem/public/common/components/ml_popover/ml_popover.tsx @@ -12,7 +12,7 @@ import styled from 'styled-components'; import { useKibana } from '../../lib/kibana'; import { METRIC_TYPE, TELEMETRY_EVENT, track } from '../../lib/telemetry'; -import { hasMlAdminPermissions } from '../../../common/machine_learning/has_ml_admin_permissions'; +import { hasMlAdminPermissions } from '../../../../common/machine_learning/has_ml_admin_permissions'; import { errorToToaster, useStateToaster, ActionToaster } from '../toasters'; import { setupMlJob, startDatafeeds, stopDatafeeds } from './api'; import { filterJobs } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/ml_popover/popover_description.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/popover_description.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/popover_description.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/popover_description.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/popover_description.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/popover_description.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/popover_description.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/popover_description.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/translations.ts b/x-pack/plugins/siem/public/common/components/ml_popover/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/translations.ts rename to x-pack/plugins/siem/public/common/components/ml_popover/translations.ts diff --git a/x-pack/plugins/siem/public/components/ml_popover/types.ts b/x-pack/plugins/siem/public/common/components/ml_popover/types.ts similarity index 98% rename from x-pack/plugins/siem/public/components/ml_popover/types.ts rename to x-pack/plugins/siem/public/common/components/ml_popover/types.ts index 005f93650a8e..f39daa0b9a7f 100644 --- a/x-pack/plugins/siem/public/components/ml_popover/types.ts +++ b/x-pack/plugins/siem/public/common/components/ml_popover/types.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AuditMessageBase } from '../../../../ml/public'; +import { AuditMessageBase } from '../../../../../ml/public'; import { MlError } from '../ml/types'; export interface Group { diff --git a/x-pack/plugins/siem/public/components/ml_popover/upgrade_contents.test.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/upgrade_contents.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/upgrade_contents.test.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/upgrade_contents.test.tsx diff --git a/x-pack/plugins/siem/public/components/ml_popover/upgrade_contents.tsx b/x-pack/plugins/siem/public/common/components/ml_popover/upgrade_contents.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/ml_popover/upgrade_contents.tsx rename to x-pack/plugins/siem/public/common/components/ml_popover/upgrade_contents.tsx diff --git a/x-pack/plugins/siem/public/components/navigation/breadcrumbs/index.test.ts b/x-pack/plugins/siem/public/common/components/navigation/breadcrumbs/index.test.ts similarity index 98% rename from x-pack/plugins/siem/public/components/navigation/breadcrumbs/index.test.ts rename to x-pack/plugins/siem/public/common/components/navigation/breadcrumbs/index.test.ts index 2acae92c390d..9ec2542c52db 100644 --- a/x-pack/plugins/siem/public/components/navigation/breadcrumbs/index.test.ts +++ b/x-pack/plugins/siem/public/common/components/navigation/breadcrumbs/index.test.ts @@ -7,10 +7,10 @@ import '../../../mock/match_media'; import { encodeIpv6 } from '../../../lib/helpers'; import { getBreadcrumbsForRoute, setBreadcrumbs } from '.'; -import { HostsTableType } from '../../../store/hosts/model'; +import { HostsTableType } from '../../../../hosts/store/model'; import { RouteSpyState, SiemRouteType } from '../../../utils/route/types'; import { TabNavigationProps } from '../tab_navigation/types'; -import { NetworkRouteType } from '../../../pages/network/navigation/types'; +import { NetworkRouteType } from '../../../../network/pages/navigation/types'; const setBreadcrumbsMock = jest.fn(); const chromeMock = { diff --git a/x-pack/plugins/siem/public/components/navigation/breadcrumbs/index.ts b/x-pack/plugins/siem/public/common/components/navigation/breadcrumbs/index.ts similarity index 91% rename from x-pack/plugins/siem/public/components/navigation/breadcrumbs/index.ts rename to x-pack/plugins/siem/public/common/components/navigation/breadcrumbs/index.ts index 8abc099ee7f6..16ae1b1e096c 100644 --- a/x-pack/plugins/siem/public/components/navigation/breadcrumbs/index.ts +++ b/x-pack/plugins/siem/public/common/components/navigation/breadcrumbs/index.ts @@ -6,15 +6,16 @@ import { getOr, omit } from 'lodash/fp'; -import { ChromeBreadcrumb } from '../../../../../../../src/core/public'; -import { APP_NAME } from '../../../../common/constants'; -import { StartServices } from '../../../plugin'; -import { getBreadcrumbs as getHostDetailsBreadcrumbs } from '../../../pages/hosts/details/utils'; -import { getBreadcrumbs as getIPDetailsBreadcrumbs } from '../../../pages/network/ip_details'; -import { getBreadcrumbs as getCaseDetailsBreadcrumbs } from '../../../pages/case/utils'; -import { getBreadcrumbs as getDetectionRulesBreadcrumbs } from '../../../pages/detection_engine/rules/utils'; -import { getBreadcrumbs as getTimelinesBreadcrumbs } from '../../../pages/timelines'; -import { SiemPageName } from '../../../pages/home/types'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { ChromeBreadcrumb } from '../../../../../../../../src/core/public'; +import { APP_NAME } from '../../../../../common/constants'; +import { StartServices } from '../../../../plugin'; +import { getBreadcrumbs as getHostDetailsBreadcrumbs } from '../../../../hosts/pages/details/utils'; +import { getBreadcrumbs as getIPDetailsBreadcrumbs } from '../../../../network/pages/ip_details'; +import { getBreadcrumbs as getCaseDetailsBreadcrumbs } from '../../../../cases/pages/utils'; +import { getBreadcrumbs as getDetectionRulesBreadcrumbs } from '../../../../alerts/pages/detection_engine/rules/utils'; +import { getBreadcrumbs as getTimelinesBreadcrumbs } from '../../../../timelines/pages'; +import { SiemPageName } from '../../../../app/types'; import { RouteSpyState, HostRouteSpyState, diff --git a/x-pack/plugins/siem/public/components/navigation/helpers.ts b/x-pack/plugins/siem/public/common/components/navigation/helpers.ts similarity index 93% rename from x-pack/plugins/siem/public/components/navigation/helpers.ts rename to x-pack/plugins/siem/public/common/components/navigation/helpers.ts index 291cb90098f7..8f5a3ac63fa1 100644 --- a/x-pack/plugins/siem/public/components/navigation/helpers.ts +++ b/x-pack/plugins/siem/public/common/components/navigation/helpers.ts @@ -8,7 +8,7 @@ import { isEmpty } from 'lodash/fp'; import { Location } from 'history'; import { UrlInputsModel } from '../../store/inputs/model'; -import { TimelineUrl } from '../../store/timeline/model'; +import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { CONSTANTS } from '../url_state/constants'; import { URL_STATE_KEYS, KeyUrlState, UrlState } from '../url_state/types'; import { @@ -16,7 +16,7 @@ import { replaceStateKeyInQueryString, getQueryStringFromLocation, } from '../url_state/helpers'; -import { Query, Filter } from '../../../../../../src/plugins/data/public'; +import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { SearchNavTab } from './types'; diff --git a/x-pack/plugins/siem/public/components/navigation/index.test.tsx b/x-pack/plugins/siem/public/common/components/navigation/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/navigation/index.test.tsx rename to x-pack/plugins/siem/public/common/components/navigation/index.test.tsx index d8b62029138c..ff3f9ba0694a 100644 --- a/x-pack/plugins/siem/public/components/navigation/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/navigation/index.test.tsx @@ -10,8 +10,8 @@ import React from 'react'; import { CONSTANTS } from '../url_state/constants'; import { SiemNavigationComponent } from './'; import { setBreadcrumbs } from './breadcrumbs'; -import { navTabs } from '../../pages/home/home_navigations'; -import { HostsTableType } from '../../store/hosts/model'; +import { navTabs } from '../../../app/home/home_navigations'; +import { HostsTableType } from '../../../hosts/store/model'; import { RouteSpyState } from '../../utils/route/types'; import { SiemNavigationProps, SiemNavigationComponentProps } from './types'; diff --git a/x-pack/plugins/siem/public/components/navigation/index.tsx b/x-pack/plugins/siem/public/common/components/navigation/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/navigation/index.tsx rename to x-pack/plugins/siem/public/common/components/navigation/index.tsx diff --git a/x-pack/plugins/siem/public/components/navigation/tab_navigation/index.test.tsx b/x-pack/plugins/siem/public/common/components/navigation/tab_navigation/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/navigation/tab_navigation/index.test.tsx rename to x-pack/plugins/siem/public/common/components/navigation/tab_navigation/index.test.tsx index 99ded06cfdcc..b9572caece94 100644 --- a/x-pack/plugins/siem/public/components/navigation/tab_navigation/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/navigation/tab_navigation/index.test.tsx @@ -7,10 +7,10 @@ import { mount } from 'enzyme'; import React from 'react'; -import { navTabs } from '../../../pages/home/home_navigations'; -import { SiemPageName } from '../../../pages/home/types'; -import { navTabsHostDetails } from '../../../pages/hosts/details/nav_tabs'; -import { HostsTableType } from '../../../store/hosts/model'; +import { navTabs } from '../../../../app/home/home_navigations'; +import { SiemPageName } from '../../../../app/types'; +import { navTabsHostDetails } from '../../../../hosts/pages/details/nav_tabs'; +import { HostsTableType } from '../../../../hosts/store/model'; import { RouteSpyState } from '../../../utils/route/types'; import { CONSTANTS } from '../../url_state/constants'; import { TabNavigationComponent } from './'; diff --git a/x-pack/plugins/siem/public/components/navigation/tab_navigation/index.tsx b/x-pack/plugins/siem/public/common/components/navigation/tab_navigation/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/navigation/tab_navigation/index.tsx rename to x-pack/plugins/siem/public/common/components/navigation/tab_navigation/index.tsx diff --git a/x-pack/plugins/siem/public/components/navigation/tab_navigation/types.ts b/x-pack/plugins/siem/public/common/components/navigation/tab_navigation/types.ts similarity index 80% rename from x-pack/plugins/siem/public/components/navigation/tab_navigation/types.ts rename to x-pack/plugins/siem/public/common/components/navigation/tab_navigation/types.ts index 2e2dea09f8c3..a283691cfe0d 100644 --- a/x-pack/plugins/siem/public/components/navigation/tab_navigation/types.ts +++ b/x-pack/plugins/siem/public/common/components/navigation/tab_navigation/types.ts @@ -6,9 +6,9 @@ import { UrlInputsModel } from '../../../store/inputs/model'; import { CONSTANTS } from '../../url_state/constants'; -import { HostsTableType } from '../../../store/hosts/model'; -import { TimelineUrl } from '../../../store/timeline/model'; -import { Filter, Query } from '../../../../../../../src/plugins/data/public'; +import { HostsTableType } from '../../../../hosts/store/model'; +import { TimelineUrl } from '../../../../timelines/store/timeline/model'; +import { Filter, Query } from '../../../../../../../../src/plugins/data/public'; import { SiemNavigationProps } from '../types'; diff --git a/x-pack/plugins/siem/public/components/navigation/types.ts b/x-pack/plugins/siem/public/common/components/navigation/types.ts similarity index 83% rename from x-pack/plugins/siem/public/components/navigation/types.ts rename to x-pack/plugins/siem/public/common/components/navigation/types.ts index e8a286593806..f0256813c29e 100644 --- a/x-pack/plugins/siem/public/components/navigation/types.ts +++ b/x-pack/plugins/siem/public/common/components/navigation/types.ts @@ -4,10 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Filter, Query } from '../../../../../../src/plugins/data/public'; -import { HostsTableType } from '../../store/hosts/model'; +import { Filter, Query } from '../../../../../../../src/plugins/data/public'; +import { HostsTableType } from '../../../hosts/store/model'; import { UrlInputsModel } from '../../store/inputs/model'; -import { TimelineUrl } from '../../store/timeline/model'; +import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { CONSTANTS, UrlStateType } from '../url_state/constants'; export interface SiemNavigationProps { diff --git a/x-pack/plugins/siem/public/components/navigation/use_get_url_search.tsx b/x-pack/plugins/siem/public/common/components/navigation/use_get_url_search.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/navigation/use_get_url_search.tsx rename to x-pack/plugins/siem/public/common/components/navigation/use_get_url_search.tsx diff --git a/x-pack/plugins/siem/public/components/news_feed/helpers.test.ts b/x-pack/plugins/siem/public/common/components/news_feed/helpers.test.ts similarity index 99% rename from x-pack/plugins/siem/public/components/news_feed/helpers.test.ts rename to x-pack/plugins/siem/public/common/components/news_feed/helpers.test.ts index 96bd9b08bf8b..cdd04b50a6d5 100644 --- a/x-pack/plugins/siem/public/components/news_feed/helpers.test.ts +++ b/x-pack/plugins/siem/public/common/components/news_feed/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NEWS_FEED_URL_SETTING_DEFAULT } from '../../../common/constants'; +import { NEWS_FEED_URL_SETTING_DEFAULT } from '../../../../common/constants'; import { KibanaServices } from '../../lib/kibana'; import { rawNewsApiResponse } from '../../mock/news'; import { rawNewsJSON } from '../../mock/raw_news'; diff --git a/x-pack/plugins/siem/public/components/news_feed/helpers.ts b/x-pack/plugins/siem/public/common/components/news_feed/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/helpers.ts rename to x-pack/plugins/siem/public/common/components/news_feed/helpers.ts diff --git a/x-pack/plugins/siem/public/components/news_feed/index.tsx b/x-pack/plugins/siem/public/common/components/news_feed/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/index.tsx rename to x-pack/plugins/siem/public/common/components/news_feed/index.tsx diff --git a/x-pack/plugins/siem/public/components/news_feed/news_feed.tsx b/x-pack/plugins/siem/public/common/components/news_feed/news_feed.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/news_feed/news_feed.tsx rename to x-pack/plugins/siem/public/common/components/news_feed/news_feed.tsx index cd356212b440..523273d1caf2 100644 --- a/x-pack/plugins/siem/public/components/news_feed/news_feed.tsx +++ b/x-pack/plugins/siem/public/common/components/news_feed/news_feed.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { LoadingPlaceholders } from '../page/overview/loading_placeholders'; -import { NEWS_FEED_TITLE } from '../../pages/overview/translations'; +import { LoadingPlaceholders } from '../../../overview/components/loading_placeholders'; +import { NEWS_FEED_TITLE } from '../../../overview/pages/translations'; import { SidebarHeader } from '../sidebar_header'; import { NoNews } from './no_news'; diff --git a/x-pack/plugins/siem/public/components/news_feed/news_link/index.tsx b/x-pack/plugins/siem/public/common/components/news_feed/news_link/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/news_link/index.tsx rename to x-pack/plugins/siem/public/common/components/news_feed/news_link/index.tsx diff --git a/x-pack/plugins/siem/public/components/news_feed/no_news/index.tsx b/x-pack/plugins/siem/public/common/components/news_feed/no_news/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/no_news/index.tsx rename to x-pack/plugins/siem/public/common/components/news_feed/no_news/index.tsx diff --git a/x-pack/plugins/siem/public/components/news_feed/post/index.tsx b/x-pack/plugins/siem/public/common/components/news_feed/post/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/post/index.tsx rename to x-pack/plugins/siem/public/common/components/news_feed/post/index.tsx diff --git a/x-pack/plugins/siem/public/components/news_feed/translations.ts b/x-pack/plugins/siem/public/common/components/news_feed/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/translations.ts rename to x-pack/plugins/siem/public/common/components/news_feed/translations.ts diff --git a/x-pack/plugins/siem/public/components/news_feed/types.ts b/x-pack/plugins/siem/public/common/components/news_feed/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/news_feed/types.ts rename to x-pack/plugins/siem/public/common/components/news_feed/types.ts diff --git a/x-pack/plugins/siem/public/components/page/index.tsx b/x-pack/plugins/siem/public/common/components/page/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page/index.tsx rename to x-pack/plugins/siem/public/common/components/page/index.tsx diff --git a/x-pack/plugins/siem/public/components/page/manage_query.tsx b/x-pack/plugins/siem/public/common/components/page/manage_query.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/page/manage_query.tsx rename to x-pack/plugins/siem/public/common/components/page/manage_query.tsx index 3b723c66f5af..9e78f704b0f0 100644 --- a/x-pack/plugins/siem/public/components/page/manage_query.tsx +++ b/x-pack/plugins/siem/public/common/components/page/manage_query.tsx @@ -9,7 +9,7 @@ import { omit } from 'lodash/fp'; import React from 'react'; import { inputsModel } from '../../store'; -import { SetQuery } from '../../pages/hosts/navigation/types'; +import { SetQuery } from '../../../hosts/pages/navigation/types'; interface OwnProps { deleteQuery?: ({ id }: { id: string }) => void; diff --git a/x-pack/plugins/siem/public/components/page/translations.ts b/x-pack/plugins/siem/public/common/components/page/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/translations.ts rename to x-pack/plugins/siem/public/common/components/page/translations.ts diff --git a/x-pack/plugins/siem/public/components/page_route/index.tsx b/x-pack/plugins/siem/public/common/components/page_route/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page_route/index.tsx rename to x-pack/plugins/siem/public/common/components/page_route/index.tsx diff --git a/x-pack/plugins/siem/public/components/page_route/pageroute.test.tsx b/x-pack/plugins/siem/public/common/components/page_route/pageroute.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page_route/pageroute.test.tsx rename to x-pack/plugins/siem/public/common/components/page_route/pageroute.test.tsx diff --git a/x-pack/plugins/siem/public/components/page_route/pageroute.tsx b/x-pack/plugins/siem/public/common/components/page_route/pageroute.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page_route/pageroute.tsx rename to x-pack/plugins/siem/public/common/components/page_route/pageroute.tsx diff --git a/x-pack/plugins/siem/public/components/paginated_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/paginated_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/paginated_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/paginated_table/helpers.test.ts b/x-pack/plugins/siem/public/common/components/paginated_table/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/paginated_table/helpers.test.ts rename to x-pack/plugins/siem/public/common/components/paginated_table/helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/paginated_table/helpers.ts b/x-pack/plugins/siem/public/common/components/paginated_table/helpers.ts similarity index 89% rename from x-pack/plugins/siem/public/components/paginated_table/helpers.ts rename to x-pack/plugins/siem/public/common/components/paginated_table/helpers.ts index c63b8699e79e..8fde81adc922 100644 --- a/x-pack/plugins/siem/public/components/paginated_table/helpers.ts +++ b/x-pack/plugins/siem/public/common/components/paginated_table/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { PaginationInputPaginated } from '../../graphql/types'; +import { PaginationInputPaginated } from '../../../graphql/types'; export const generateTablePaginationOptions = ( activePage: number, diff --git a/x-pack/plugins/siem/public/components/paginated_table/index.mock.tsx b/x-pack/plugins/siem/public/common/components/paginated_table/index.mock.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/paginated_table/index.mock.tsx rename to x-pack/plugins/siem/public/common/components/paginated_table/index.mock.tsx diff --git a/x-pack/plugins/siem/public/components/paginated_table/index.test.tsx b/x-pack/plugins/siem/public/common/components/paginated_table/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/paginated_table/index.test.tsx rename to x-pack/plugins/siem/public/common/components/paginated_table/index.test.tsx index 94dac6607ce2..108ae19b5a2b 100644 --- a/x-pack/plugins/siem/public/components/paginated_table/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/paginated_table/index.test.tsx @@ -7,8 +7,8 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../common/constants'; -import { Direction } from '../../graphql/types'; +import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../common/constants'; +import { Direction } from '../../../graphql/types'; import { BasicTableProps, PaginatedTable } from './index'; import { getHostsColumns, mockData, rowItems, sortedHosts } from './index.mock'; diff --git a/x-pack/plugins/siem/public/components/paginated_table/index.tsx b/x-pack/plugins/siem/public/common/components/paginated_table/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/paginated_table/index.tsx rename to x-pack/plugins/siem/public/common/components/paginated_table/index.tsx index a815ecd10051..3b3130af77cf 100644 --- a/x-pack/plugins/siem/public/components/paginated_table/index.tsx +++ b/x-pack/plugins/siem/public/common/components/paginated_table/index.tsx @@ -22,22 +22,22 @@ import { noop } from 'lodash/fp'; import React, { FC, memo, useState, useEffect, ComponentType } from 'react'; import styled from 'styled-components'; -import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../common/constants'; -import { AuthTableColumns } from '../page/hosts/authentications_table'; -import { HostsTableColumns } from '../page/hosts/hosts_table'; -import { NetworkDnsColumns } from '../page/network/network_dns_table/columns'; -import { NetworkHttpColumns } from '../page/network/network_http_table/columns'; +import { DEFAULT_MAX_TABLE_QUERY_SIZE } from '../../../../common/constants'; +import { AuthTableColumns } from '../../../hosts/components/authentications_table'; +import { HostsTableColumns } from '../../../hosts/components/hosts_table'; +import { NetworkDnsColumns } from '../../../network/components/network_dns_table/columns'; +import { NetworkHttpColumns } from '../../../network/components/network_http_table/columns'; import { NetworkTopNFlowColumns, NetworkTopNFlowColumnsIpDetails, -} from '../page/network/network_top_n_flow_table/columns'; +} from '../../../network/components/network_top_n_flow_table/columns'; import { NetworkTopCountriesColumns, NetworkTopCountriesColumnsIpDetails, -} from '../page/network/network_top_countries_table/columns'; -import { TlsColumns } from '../page/network/tls_table/columns'; -import { UncommonProcessTableColumns } from '../page/hosts/uncommon_process_table'; -import { UsersColumns } from '../page/network/users_table/columns'; +} from '../../../network/components/network_top_countries_table/columns'; +import { TlsColumns } from '../../../network/components/tls_table/columns'; +import { UncommonProcessTableColumns } from '../../../hosts/components/uncommon_process_table'; +import { UsersColumns } from '../../../network/components/users_table/columns'; import { HeaderSection } from '../header_section'; import { Loader } from '../loader'; import { useStateToaster } from '../toasters'; diff --git a/x-pack/plugins/siem/public/components/paginated_table/translations.ts b/x-pack/plugins/siem/public/common/components/paginated_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/paginated_table/translations.ts rename to x-pack/plugins/siem/public/common/components/paginated_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/panel/index.test.tsx b/x-pack/plugins/siem/public/common/components/panel/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/panel/index.test.tsx rename to x-pack/plugins/siem/public/common/components/panel/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/panel/index.tsx b/x-pack/plugins/siem/public/common/components/panel/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/panel/index.tsx rename to x-pack/plugins/siem/public/common/components/panel/index.tsx diff --git a/x-pack/plugins/siem/public/components/progress_inline/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/progress_inline/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/progress_inline/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/progress_inline/index.test.tsx b/x-pack/plugins/siem/public/common/components/progress_inline/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/progress_inline/index.test.tsx rename to x-pack/plugins/siem/public/common/components/progress_inline/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/progress_inline/index.tsx b/x-pack/plugins/siem/public/common/components/progress_inline/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/progress_inline/index.tsx rename to x-pack/plugins/siem/public/common/components/progress_inline/index.tsx diff --git a/x-pack/plugins/siem/public/components/query_bar/index.test.tsx b/x-pack/plugins/siem/public/common/components/query_bar/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/query_bar/index.test.tsx rename to x-pack/plugins/siem/public/common/components/query_bar/index.test.tsx index e27669b2b15b..74c07640b832 100644 --- a/x-pack/plugins/siem/public/components/query_bar/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/query_bar/index.test.tsx @@ -7,10 +7,10 @@ import { mount } from 'enzyme'; import React from 'react'; -import { DEFAULT_FROM, DEFAULT_TO } from '../../../common/constants'; +import { DEFAULT_FROM, DEFAULT_TO } from '../../../../common/constants'; import { TestProviders, mockIndexPattern } from '../../mock'; import { createKibanaCoreStartMock } from '../../mock/kibana_core'; -import { FilterManager, SearchBar } from '../../../../../../src/plugins/data/public'; +import { FilterManager, SearchBar } from '../../../../../../../src/plugins/data/public'; import { QueryBar, QueryBarComponentProps } from '.'; import { createKibanaContextProviderMock } from '../../mock/kibana_react'; diff --git a/x-pack/plugins/siem/public/components/query_bar/index.tsx b/x-pack/plugins/siem/public/common/components/query_bar/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/query_bar/index.tsx rename to x-pack/plugins/siem/public/common/components/query_bar/index.tsx index 1ad7bc16b901..557d389aefee 100644 --- a/x-pack/plugins/siem/public/components/query_bar/index.tsx +++ b/x-pack/plugins/siem/public/common/components/query_bar/index.tsx @@ -17,8 +17,8 @@ import { SavedQuery, SearchBar, SavedQueryTimeFilter, -} from '../../../../../../src/plugins/data/public'; -import { Storage } from '../../../../../../src/plugins/kibana_utils/public'; +} from '../../../../../../../src/plugins/data/public'; +import { Storage } from '../../../../../../../src/plugins/kibana_utils/public'; export interface QueryBarComponentProps { dataTestSubj?: string; diff --git a/x-pack/plugins/siem/public/components/scroll_to_top/index.test.tsx b/x-pack/plugins/siem/public/common/components/scroll_to_top/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/scroll_to_top/index.test.tsx rename to x-pack/plugins/siem/public/common/components/scroll_to_top/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/scroll_to_top/index.tsx b/x-pack/plugins/siem/public/common/components/scroll_to_top/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/scroll_to_top/index.tsx rename to x-pack/plugins/siem/public/common/components/scroll_to_top/index.tsx diff --git a/x-pack/plugins/siem/public/components/search_bar/index.tsx b/x-pack/plugins/siem/public/common/components/search_bar/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/search_bar/index.tsx rename to x-pack/plugins/siem/public/common/components/search_bar/index.tsx index 4dd1b114ccff..995955cff54f 100644 --- a/x-pack/plugins/siem/public/components/search_bar/index.tsx +++ b/x-pack/plugins/siem/public/common/components/search_bar/index.tsx @@ -38,7 +38,9 @@ import { startSelector, toStrSelector, } from './selectors'; -import { timelineActions, hostsActions, networkActions } from '../../store/actions'; +import { hostsActions } from '../../../hosts/store'; +import { networkActions } from '../../../network/store'; +import { timelineActions } from '../../../timelines/store/timeline'; import { useKibana } from '../../lib/kibana'; interface SiemSearchBarProps { diff --git a/x-pack/plugins/siem/public/components/search_bar/selectors.ts b/x-pack/plugins/siem/public/common/components/search_bar/selectors.ts similarity index 91% rename from x-pack/plugins/siem/public/components/search_bar/selectors.ts rename to x-pack/plugins/siem/public/common/components/search_bar/selectors.ts index 4e700a46ca0e..793737a1ad75 100644 --- a/x-pack/plugins/siem/public/components/search_bar/selectors.ts +++ b/x-pack/plugins/siem/public/common/components/search_bar/selectors.ts @@ -6,7 +6,7 @@ import { createSelector } from 'reselect'; import { InputsRange } from '../../store/inputs/model'; -import { Query, SavedQuery } from '../../../../../../src/plugins/data/public'; +import { Query, SavedQuery } from '../../../../../../../src/plugins/data/public'; export { endSelector, diff --git a/x-pack/plugins/siem/public/components/selectable_text/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/selectable_text/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/selectable_text/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/selectable_text/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/selectable_text/index.test.tsx b/x-pack/plugins/siem/public/common/components/selectable_text/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/selectable_text/index.test.tsx rename to x-pack/plugins/siem/public/common/components/selectable_text/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/selectable_text/index.tsx b/x-pack/plugins/siem/public/common/components/selectable_text/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/selectable_text/index.tsx rename to x-pack/plugins/siem/public/common/components/selectable_text/index.tsx diff --git a/x-pack/plugins/siem/public/components/sidebar_header/index.tsx b/x-pack/plugins/siem/public/common/components/sidebar_header/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/sidebar_header/index.tsx rename to x-pack/plugins/siem/public/common/components/sidebar_header/index.tsx diff --git a/x-pack/plugins/siem/public/components/stat_items/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/stat_items/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/stat_items/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/stat_items/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/stat_items/index.test.tsx b/x-pack/plugins/siem/public/common/components/stat_items/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/stat_items/index.test.tsx rename to x-pack/plugins/siem/public/common/components/stat_items/index.test.tsx index 95ef747bc429..e0da50abf6b5 100644 --- a/x-pack/plugins/siem/public/components/stat_items/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/stat_items/index.test.tsx @@ -23,17 +23,17 @@ import { import { BarChart } from '../charts/barchart'; import { AreaChart } from '../charts/areachart'; import { EuiHorizontalRule } from '@elastic/eui'; -import { fieldTitleChartMapping } from '../page/network/kpi_network'; +import { fieldTitleChartMapping } from '../../../network/components/kpi_network'; import { mockData, mockEnableChartsData, mockNoChartMappings, mockNarrowDateRange, -} from '../page/network/kpi_network/mock'; -import { mockGlobalState, apolloClientObservable } from '../../mock'; +} from '../../../network/components/kpi_network/mock'; +import { mockGlobalState, apolloClientObservable, SUB_PLUGINS_REDUCER } from '../../mock'; import { State, createStore } from '../../store'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { KpiNetworkData, KpiHostsData } from '../../graphql/types'; +import { KpiNetworkData, KpiHostsData } from '../../../graphql/types'; const from = new Date('2019-06-15T06:00:00.000Z').valueOf(); const to = new Date('2019-06-18T06:00:00.000Z').valueOf(); @@ -49,7 +49,7 @@ jest.mock('../charts/barchart', () => { describe('Stat Items Component', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); const state: State = mockGlobalState; - const store = createStore(state, apolloClientObservable); + const store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); describe.each([ [ diff --git a/x-pack/plugins/siem/public/components/stat_items/index.tsx b/x-pack/plugins/siem/public/common/components/stat_items/index.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/stat_items/index.tsx rename to x-pack/plugins/siem/public/common/components/stat_items/index.tsx index 3ebcba0a85a4..b2543f70e940 100644 --- a/x-pack/plugins/siem/public/components/stat_items/index.tsx +++ b/x-pack/plugins/siem/public/common/components/stat_items/index.tsx @@ -18,7 +18,7 @@ import { get, getOr } from 'lodash/fp'; import React, { useState, useEffect } from 'react'; import styled from 'styled-components'; -import { KpiHostsData, KpiNetworkData } from '../../graphql/types'; +import { KpiHostsData, KpiNetworkData } from '../../../graphql/types'; import { AreaChart } from '../charts/areachart'; import { BarChart } from '../charts/barchart'; import { ChartSeriesData, ChartData, ChartSeriesConfigs, UpdateDateRange } from '../charts/common'; diff --git a/x-pack/plugins/siem/public/components/subtitle/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/subtitle/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/subtitle/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/subtitle/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/subtitle/index.test.tsx b/x-pack/plugins/siem/public/common/components/subtitle/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/subtitle/index.test.tsx rename to x-pack/plugins/siem/public/common/components/subtitle/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/subtitle/index.tsx b/x-pack/plugins/siem/public/common/components/subtitle/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/subtitle/index.tsx rename to x-pack/plugins/siem/public/common/components/subtitle/index.tsx diff --git a/x-pack/plugins/siem/public/components/super_date_picker/index.test.tsx b/x-pack/plugins/siem/public/common/components/super_date_picker/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/super_date_picker/index.test.tsx rename to x-pack/plugins/siem/public/common/components/super_date_picker/index.test.tsx index b6b515ceeffa..ba4848923b2a 100644 --- a/x-pack/plugins/siem/public/components/super_date_picker/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/super_date_picker/index.test.tsx @@ -8,9 +8,9 @@ import { mount } from 'enzyme'; import React from 'react'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { DEFAULT_TIMEPICKER_QUICK_RANGES } from '../../../common/constants'; +import { DEFAULT_TIMEPICKER_QUICK_RANGES } from '../../../../common/constants'; import { useUiSetting$ } from '../../lib/kibana'; -import { apolloClientObservable, mockGlobalState } from '../../mock'; +import { apolloClientObservable, mockGlobalState, SUB_PLUGINS_REDUCER } from '../../mock'; import { createUseUiSetting$Mock } from '../../mock/kibana_react'; import { createStore, State } from '../../store'; @@ -75,11 +75,11 @@ const timepickerRanges = [ describe('SIEM Super Date Picker', () => { describe('#SuperDatePicker', () => { const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { jest.clearAllMocks(); - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); mockUseUiSetting$.mockImplementation((key, defaultValue) => { const useUiSetting$Mock = createUseUiSetting$Mock(); diff --git a/x-pack/plugins/siem/public/components/super_date_picker/index.tsx b/x-pack/plugins/siem/public/common/components/super_date_picker/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/super_date_picker/index.tsx rename to x-pack/plugins/siem/public/common/components/super_date_picker/index.tsx index ad38a7d61bcb..d1936ac61e26 100644 --- a/x-pack/plugins/siem/public/components/super_date_picker/index.tsx +++ b/x-pack/plugins/siem/public/common/components/super_date_picker/index.tsx @@ -17,10 +17,11 @@ import React, { useState, useCallback } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; -import { DEFAULT_TIMEPICKER_QUICK_RANGES } from '../../../common/constants'; +import { DEFAULT_TIMEPICKER_QUICK_RANGES } from '../../../../common/constants'; +import { timelineActions } from '../../../timelines/store/timeline'; import { useUiSetting$ } from '../../lib/kibana'; import { inputsModel, State } from '../../store'; -import { inputsActions, timelineActions } from '../../store/actions'; +import { inputsActions } from '../../store/actions'; import { InputsModelId } from '../../store/inputs/constants'; import { policySelector, diff --git a/x-pack/plugins/siem/public/components/super_date_picker/selectors.test.ts b/x-pack/plugins/siem/public/common/components/super_date_picker/selectors.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/super_date_picker/selectors.test.ts rename to x-pack/plugins/siem/public/common/components/super_date_picker/selectors.test.ts diff --git a/x-pack/plugins/siem/public/components/super_date_picker/selectors.ts b/x-pack/plugins/siem/public/common/components/super_date_picker/selectors.ts similarity index 100% rename from x-pack/plugins/siem/public/components/super_date_picker/selectors.ts rename to x-pack/plugins/siem/public/common/components/super_date_picker/selectors.ts diff --git a/x-pack/plugins/siem/public/components/tables/__snapshots__/helpers.test.tsx.snap b/x-pack/plugins/siem/public/common/components/tables/__snapshots__/helpers.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/tables/__snapshots__/helpers.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/tables/__snapshots__/helpers.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/tables/helpers.test.tsx b/x-pack/plugins/siem/public/common/components/tables/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/tables/helpers.test.tsx rename to x-pack/plugins/siem/public/common/components/tables/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/tables/helpers.tsx b/x-pack/plugins/siem/public/common/components/tables/helpers.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/tables/helpers.tsx rename to x-pack/plugins/siem/public/common/components/tables/helpers.tsx index f4f7375c26d1..c9d90504c36d 100644 --- a/x-pack/plugins/siem/public/components/tables/helpers.tsx +++ b/x-pack/plugins/siem/public/common/components/tables/helpers.tsx @@ -13,8 +13,8 @@ import { DragEffects, DraggableWrapper } from '../drag_and_drop/draggable_wrappe import { escapeDataProviderId } from '../drag_and_drop/helpers'; import { defaultToEmptyTag, getEmptyTagValue } from '../empty_value'; import { MoreRowItems, Spacer } from '../page'; -import { IS_OPERATOR } from '../timeline/data_providers/data_provider'; -import { Provider } from '../timeline/data_providers/provider'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; const Subtext = styled.div` font-size: ${props => props.theme.eui.euiFontSizeXS}; diff --git a/x-pack/plugins/siem/public/components/toasters/__snapshots__/modal_all_errors.test.tsx.snap b/x-pack/plugins/siem/public/common/components/toasters/__snapshots__/modal_all_errors.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/__snapshots__/modal_all_errors.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/toasters/__snapshots__/modal_all_errors.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/toasters/errors.ts b/x-pack/plugins/siem/public/common/components/toasters/errors.ts similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/errors.ts rename to x-pack/plugins/siem/public/common/components/toasters/errors.ts diff --git a/x-pack/plugins/siem/public/components/toasters/index.test.tsx b/x-pack/plugins/siem/public/common/components/toasters/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/index.test.tsx rename to x-pack/plugins/siem/public/common/components/toasters/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/toasters/index.tsx b/x-pack/plugins/siem/public/common/components/toasters/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/index.tsx rename to x-pack/plugins/siem/public/common/components/toasters/index.tsx diff --git a/x-pack/plugins/siem/public/components/toasters/modal_all_errors.test.tsx b/x-pack/plugins/siem/public/common/components/toasters/modal_all_errors.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/modal_all_errors.test.tsx rename to x-pack/plugins/siem/public/common/components/toasters/modal_all_errors.test.tsx diff --git a/x-pack/plugins/siem/public/components/toasters/modal_all_errors.tsx b/x-pack/plugins/siem/public/common/components/toasters/modal_all_errors.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/modal_all_errors.tsx rename to x-pack/plugins/siem/public/common/components/toasters/modal_all_errors.tsx diff --git a/x-pack/plugins/siem/public/components/toasters/translations.ts b/x-pack/plugins/siem/public/common/components/toasters/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/translations.ts rename to x-pack/plugins/siem/public/common/components/toasters/translations.ts diff --git a/x-pack/plugins/siem/public/components/toasters/utils.test.ts b/x-pack/plugins/siem/public/common/components/toasters/utils.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/utils.test.ts rename to x-pack/plugins/siem/public/common/components/toasters/utils.test.ts diff --git a/x-pack/plugins/siem/public/components/toasters/utils.ts b/x-pack/plugins/siem/public/common/components/toasters/utils.ts similarity index 100% rename from x-pack/plugins/siem/public/components/toasters/utils.ts rename to x-pack/plugins/siem/public/common/components/toasters/utils.ts diff --git a/x-pack/plugins/siem/public/components/top_n/helpers.test.tsx b/x-pack/plugins/siem/public/common/components/top_n/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/top_n/helpers.test.tsx rename to x-pack/plugins/siem/public/common/components/top_n/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/top_n/helpers.ts b/x-pack/plugins/siem/public/common/components/top_n/helpers.ts similarity index 96% rename from x-pack/plugins/siem/public/components/top_n/helpers.ts rename to x-pack/plugins/siem/public/common/components/top_n/helpers.ts index 8d9ae48d29b6..a4226cc58530 100644 --- a/x-pack/plugins/siem/public/components/top_n/helpers.ts +++ b/x-pack/plugins/siem/public/common/components/top_n/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { EventType } from '../../store/timeline/model'; +import { EventType } from '../../../timelines/store/timeline/model'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/top_n/index.test.tsx b/x-pack/plugins/siem/public/common/components/top_n/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/top_n/index.test.tsx rename to x-pack/plugins/siem/public/common/components/top_n/index.test.tsx index 9325dcf499b2..24d1939d9319 100644 --- a/x-pack/plugins/siem/public/components/top_n/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/top_n/index.test.tsx @@ -8,11 +8,19 @@ import { mount, ReactWrapper } from 'enzyme'; import React from 'react'; import { mockBrowserFields } from '../../containers/source/mock'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../mock'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../mock'; import { createKibanaCoreStartMock } from '../../mock/kibana_core'; -import { FilterManager } from '../../../../../../src/plugins/data/public'; +import { FilterManager } from '../../../../../../../src/plugins/data/public'; import { createStore, State } from '../../store'; -import { TimelineContext, TimelineTypeContext } from '../timeline/timeline_context'; +import { + TimelineContext, + TimelineTypeContext, +} from '../../../timelines/components/timeline/timeline_context'; import { Props } from './top_n'; import { ACTIVE_TIMELINE_REDUX_ID, StatefulTopN } from '.'; @@ -132,7 +140,7 @@ const state: State = { }, }, }; -const store = createStore(state, apolloClientObservable); +const store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); describe('StatefulTopN', () => { // Suppress warnings about "react-beautiful-dnd" diff --git a/x-pack/plugins/siem/public/components/top_n/index.tsx b/x-pack/plugins/siem/public/common/components/top_n/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/top_n/index.tsx rename to x-pack/plugins/siem/public/common/components/top_n/index.tsx index 9863df42f101..a71b27e0bd9c 100644 --- a/x-pack/plugins/siem/public/components/top_n/index.tsx +++ b/x-pack/plugins/siem/public/common/components/top_n/index.tsx @@ -10,13 +10,14 @@ import { connect, ConnectedProps } from 'react-redux'; import { GlobalTime } from '../../containers/global_time'; import { BrowserFields, WithSource } from '../../containers/source'; import { useKibana } from '../../lib/kibana'; -import { esQuery, Filter, Query } from '../../../../../../src/plugins/data/public'; -import { inputsModel, inputsSelectors, State, timelineSelectors } from '../../store'; +import { esQuery, Filter, Query } from '../../../../../../../src/plugins/data/public'; +import { inputsModel, inputsSelectors, State } from '../../store'; import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../store/inputs/actions'; -import { timelineDefaults } from '../../store/timeline/defaults'; -import { TimelineModel } from '../../store/timeline/model'; -import { combineQueries } from '../timeline/helpers'; -import { useTimelineTypeContext } from '../timeline/timeline_context'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; +import { timelineSelectors } from '../../../timelines/store/timeline'; +import { TimelineModel } from '../../../timelines/store/timeline/model'; +import { combineQueries } from '../../../timelines/components/timeline/helpers'; +import { useTimelineTypeContext } from '../../../timelines/components/timeline/timeline_context'; import { getOptions } from './helpers'; import { TopN } from './top_n'; diff --git a/x-pack/plugins/siem/public/components/top_n/top_n.test.tsx b/x-pack/plugins/siem/public/common/components/top_n/top_n.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/top_n/top_n.test.tsx rename to x-pack/plugins/siem/public/common/components/top_n/top_n.test.tsx diff --git a/x-pack/plugins/siem/public/components/top_n/top_n.tsx b/x-pack/plugins/siem/public/common/components/top_n/top_n.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/top_n/top_n.tsx rename to x-pack/plugins/siem/public/common/components/top_n/top_n.tsx index d8dc63ef92ec..0ccb7e1e72f1 100644 --- a/x-pack/plugins/siem/public/components/top_n/top_n.tsx +++ b/x-pack/plugins/siem/public/common/components/top_n/top_n.tsx @@ -9,12 +9,12 @@ import React, { useCallback, useMemo, useState } from 'react'; import styled from 'styled-components'; import { ActionCreator } from 'typescript-fsa'; -import { EventsByDataset } from '../../pages/overview/events_by_dataset'; -import { SignalsByCategory } from '../../pages/overview/signals_by_category'; -import { Filter, IIndexPattern, Query } from '../../../../../../src/plugins/data/public'; +import { EventsByDataset } from '../../../overview/components/events_by_dataset'; +import { SignalsByCategory } from '../../../overview/components/signals_by_category'; +import { Filter, IIndexPattern, Query } from '../../../../../../../src/plugins/data/public'; import { inputsModel } from '../../store'; import { InputsModelId } from '../../store/inputs/constants'; -import { EventType } from '../../store/timeline/model'; +import { EventType } from '../../../timelines/store/timeline/model'; import { TopNOption } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/top_n/translations.ts b/x-pack/plugins/siem/public/common/components/top_n/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/top_n/translations.ts rename to x-pack/plugins/siem/public/common/components/top_n/translations.ts diff --git a/x-pack/plugins/siem/public/components/truncatable_text/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/truncatable_text/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/truncatable_text/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/truncatable_text/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/truncatable_text/index.test.tsx b/x-pack/plugins/siem/public/common/components/truncatable_text/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/truncatable_text/index.test.tsx rename to x-pack/plugins/siem/public/common/components/truncatable_text/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/truncatable_text/index.tsx b/x-pack/plugins/siem/public/common/components/truncatable_text/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/truncatable_text/index.tsx rename to x-pack/plugins/siem/public/common/components/truncatable_text/index.tsx diff --git a/x-pack/plugins/siem/public/components/url_state/constants.ts b/x-pack/plugins/siem/public/common/components/url_state/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/components/url_state/constants.ts rename to x-pack/plugins/siem/public/common/components/url_state/constants.ts diff --git a/x-pack/plugins/siem/public/components/url_state/helpers.test.ts b/x-pack/plugins/siem/public/common/components/url_state/helpers.test.ts similarity index 91% rename from x-pack/plugins/siem/public/components/url_state/helpers.test.ts rename to x-pack/plugins/siem/public/common/components/url_state/helpers.test.ts index c6c18d4c25a7..410bd62e3a70 100644 --- a/x-pack/plugins/siem/public/components/url_state/helpers.test.ts +++ b/x-pack/plugins/siem/public/common/components/url_state/helpers.test.ts @@ -3,9 +3,9 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { navTabs } from '../../pages/home/home_navigations'; +import { navTabs } from '../../../app/home/home_navigations'; import { getTitle } from './helpers'; -import { HostsType } from '../../store/hosts/model'; +import { HostsType } from '../../../hosts/store/model'; describe('Helpers Url_State', () => { describe('getTitle', () => { diff --git a/x-pack/plugins/siem/public/components/url_state/helpers.ts b/x-pack/plugins/siem/public/common/components/url_state/helpers.ts similarity index 95% rename from x-pack/plugins/siem/public/components/url_state/helpers.ts rename to x-pack/plugins/siem/public/common/components/url_state/helpers.ts index 62196b90e5e6..8f13e4dd0cdc 100644 --- a/x-pack/plugins/siem/public/components/url_state/helpers.ts +++ b/x-pack/plugins/siem/public/common/components/url_state/helpers.ts @@ -9,13 +9,14 @@ import { parse, stringify } from 'query-string'; import { decode, encode } from 'rison-node'; import * as H from 'history'; -import { Query, Filter } from '../../../../../../src/plugins/data/public'; -import { url } from '../../../../../../src/plugins/kibana_utils/public'; +import { Query, Filter } from '../../../../../../../src/plugins/data/public'; +import { url } from '../../../../../../../src/plugins/kibana_utils/public'; -import { SiemPageName } from '../../pages/home/types'; -import { inputsSelectors, State, timelineSelectors } from '../../store'; +import { SiemPageName } from '../../../app/types'; +import { inputsSelectors, State } from '../../store'; import { UrlInputsModel } from '../../store/inputs/model'; -import { TimelineUrl } from '../../store/timeline/model'; +import { TimelineUrl } from '../../../timelines/store/timeline/model'; +import { timelineSelectors } from '../../../timelines/store/timeline'; import { formatDate } from '../super_date_picker'; import { NavTab } from '../navigation/types'; import { CONSTANTS, UrlStateType } from './constants'; diff --git a/x-pack/plugins/siem/public/components/url_state/index.test.tsx b/x-pack/plugins/siem/public/common/components/url_state/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/url_state/index.test.tsx rename to x-pack/plugins/siem/public/common/components/url_state/index.test.tsx index 4d2a71715389..b901bc2b820c 100644 --- a/x-pack/plugins/siem/public/components/url_state/index.test.tsx +++ b/x-pack/plugins/siem/public/common/components/url_state/index.test.tsx @@ -8,7 +8,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { HookWrapper } from '../../mock'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; import { RouteSpyState } from '../../utils/route/types'; import { CONSTANTS } from './constants'; import { diff --git a/x-pack/plugins/siem/public/components/url_state/index.tsx b/x-pack/plugins/siem/public/common/components/url_state/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/url_state/index.tsx rename to x-pack/plugins/siem/public/common/components/url_state/index.tsx index 294e41a1faa7..f90e9cf62801 100644 --- a/x-pack/plugins/siem/public/components/url_state/index.tsx +++ b/x-pack/plugins/siem/public/common/components/url_state/index.tsx @@ -9,13 +9,13 @@ import { compose, Dispatch } from 'redux'; import { connect } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { timelineActions } from '../../store/actions'; +import { timelineActions } from '../../../timelines/store/timeline'; import { RouteSpyState } from '../../utils/route/types'; import { useRouteSpy } from '../../utils/route/use_route_spy'; import { UrlStateContainerPropTypes, UrlStateProps } from './types'; import { useUrlStateHooks } from './use_url_state'; -import { dispatchUpdateTimeline } from '../open_timeline/helpers'; +import { dispatchUpdateTimeline } from '../../../timelines/components/open_timeline/helpers'; import { dispatchSetInitialStateFromUrl } from './initialize_redux_by_url'; import { makeMapStateToProps } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/url_state/index_mocked.test.tsx b/x-pack/plugins/siem/public/common/components/url_state/index_mocked.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/url_state/index_mocked.test.tsx rename to x-pack/plugins/siem/public/common/components/url_state/index_mocked.test.tsx index 4adc17b32e18..122f7f6fed57 100644 --- a/x-pack/plugins/siem/public/components/url_state/index_mocked.test.tsx +++ b/x-pack/plugins/siem/public/common/components/url_state/index_mocked.test.tsx @@ -8,7 +8,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { HookWrapper } from '../../mock/hook_wrapper'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; import { CONSTANTS } from './constants'; import { getFilterQuery, getMockPropsObj, mockHistory, testCases } from './test_dependencies'; diff --git a/x-pack/plugins/siem/public/components/url_state/initialize_redux_by_url.tsx b/x-pack/plugins/siem/public/common/components/url_state/initialize_redux_by_url.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/url_state/initialize_redux_by_url.tsx rename to x-pack/plugins/siem/public/common/components/url_state/initialize_redux_by_url.tsx index 54a196d1b816..441424faa48d 100644 --- a/x-pack/plugins/siem/public/components/url_state/initialize_redux_by_url.tsx +++ b/x-pack/plugins/siem/public/common/components/url_state/initialize_redux_by_url.tsx @@ -7,7 +7,7 @@ import { get, isEmpty } from 'lodash/fp'; import { Dispatch } from 'redux'; -import { Query, Filter } from '../../../../../../src/plugins/data/public'; +import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { inputsActions } from '../../store/actions'; import { InputsModelId, TimeRangeKinds } from '../../store/inputs/constants'; import { @@ -16,12 +16,12 @@ import { AbsoluteTimeRange, RelativeTimeRange, } from '../../store/inputs/model'; -import { TimelineUrl } from '../../store/timeline/model'; +import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { CONSTANTS } from './constants'; import { decodeRisonUrlState } from './helpers'; import { normalizeTimeRange } from './normalize_time_range'; import { DispatchSetInitialStateFromUrl, SetInitialStateFromUrl } from './types'; -import { queryTimelineById } from '../open_timeline/helpers'; +import { queryTimelineById } from '../../../timelines/components/open_timeline/helpers'; export const dispatchSetInitialStateFromUrl = ( dispatch: Dispatch diff --git a/x-pack/plugins/siem/public/components/url_state/normalize_time_range.test.ts b/x-pack/plugins/siem/public/common/components/url_state/normalize_time_range.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/url_state/normalize_time_range.test.ts rename to x-pack/plugins/siem/public/common/components/url_state/normalize_time_range.test.ts diff --git a/x-pack/plugins/siem/public/components/url_state/normalize_time_range.ts b/x-pack/plugins/siem/public/common/components/url_state/normalize_time_range.ts similarity index 100% rename from x-pack/plugins/siem/public/components/url_state/normalize_time_range.ts rename to x-pack/plugins/siem/public/common/components/url_state/normalize_time_range.ts diff --git a/x-pack/plugins/siem/public/components/url_state/test_dependencies.ts b/x-pack/plugins/siem/public/common/components/url_state/test_dependencies.ts similarity index 95% rename from x-pack/plugins/siem/public/components/url_state/test_dependencies.ts rename to x-pack/plugins/siem/public/common/components/url_state/test_dependencies.ts index 974bee53bc2b..de6a00bfadb8 100644 --- a/x-pack/plugins/siem/public/components/url_state/test_dependencies.ts +++ b/x-pack/plugins/siem/public/common/components/url_state/test_dependencies.ts @@ -5,17 +5,18 @@ */ import { ActionCreator } from 'typescript-fsa'; -import { DispatchUpdateTimeline } from '../open_timeline/types'; -import { navTabs } from '../../pages/home/home_navigations'; -import { SiemPageName } from '../../pages/home/types'; -import { hostsModel, networkModel } from '../../store'; +import { DispatchUpdateTimeline } from '../../../timelines/components/open_timeline/types'; +import { navTabs } from '../../../app/home/home_navigations'; +import { SiemPageName } from '../../../app/types'; import { inputsActions } from '../../store/actions'; -import { HostsTableType } from '../../store/hosts/model'; import { CONSTANTS } from './constants'; import { dispatchSetInitialStateFromUrl } from './initialize_redux_by_url'; import { UrlStateContainerPropTypes, LocationTypes } from './types'; -import { Query } from '../../../../../../src/plugins/data/public'; +import { Query } from '../../../../../../../src/plugins/data/public'; +import { networkModel } from '../../../network/store'; +import { hostsModel } from '../../../hosts/store'; +import { HostsTableType } from '../../../hosts/store/model'; type Action = 'PUSH' | 'POP' | 'REPLACE'; const pop: Action = 'POP'; diff --git a/x-pack/plugins/siem/public/components/url_state/types.ts b/x-pack/plugins/siem/public/common/components/url_state/types.ts similarity index 96% rename from x-pack/plugins/siem/public/components/url_state/types.ts rename to x-pack/plugins/siem/public/common/components/url_state/types.ts index 9d8a4a8e6a90..56578d84e12e 100644 --- a/x-pack/plugins/siem/public/components/url_state/types.ts +++ b/x-pack/plugins/siem/public/common/components/url_state/types.ts @@ -16,9 +16,9 @@ import { } from 'src/plugins/data/public'; import { UrlInputsModel } from '../../store/inputs/model'; -import { TimelineUrl } from '../../store/timeline/model'; +import { TimelineUrl } from '../../../timelines/store/timeline/model'; import { RouteSpyState } from '../../utils/route/types'; -import { DispatchUpdateTimeline } from '../open_timeline/types'; +import { DispatchUpdateTimeline } from '../../../timelines/components/open_timeline/types'; import { NavTab } from '../navigation/types'; import { CONSTANTS, UrlStateType } from './constants'; diff --git a/x-pack/plugins/siem/public/components/url_state/use_url_state.tsx b/x-pack/plugins/siem/public/common/components/url_state/use_url_state.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/url_state/use_url_state.tsx rename to x-pack/plugins/siem/public/common/components/url_state/use_url_state.tsx index a7704e0e8697..b3436a7da829 100644 --- a/x-pack/plugins/siem/public/components/url_state/use_url_state.tsx +++ b/x-pack/plugins/siem/public/common/components/url_state/use_url_state.tsx @@ -27,7 +27,7 @@ import { ALL_URL_STATE_KEYS, UrlStateToRedux, } from './types'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; function usePrevious(value: PreviousLocationUrlState) { const ref = useRef(value); diff --git a/x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar.test.tsx.snap b/x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_action.test.tsx.snap b/x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_action.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_action.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_action.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_group.test.tsx.snap b/x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_group.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_group.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_group.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_section.test.tsx.snap b/x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_section.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_section.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_section.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_text.test.tsx.snap b/x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_text.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/__snapshots__/utility_bar_text.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/utility_bar/__snapshots__/utility_bar_text.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/utility_bar/index.ts b/x-pack/plugins/siem/public/common/components/utility_bar/index.ts similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/index.ts rename to x-pack/plugins/siem/public/common/components/utility_bar/index.ts diff --git a/x-pack/plugins/siem/public/components/utility_bar/styles.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/styles.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/styles.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/styles.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar.test.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar.test.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar.test.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_action.test.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_action.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_action.test.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_action.test.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_action.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_action.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_action.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_action.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_group.test.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_group.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_group.test.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_group.test.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_group.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_group.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_group.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_group.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_section.test.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_section.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_section.test.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_section.test.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_section.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_section.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_section.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_section.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_text.test.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_text.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_text.test.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_text.test.tsx diff --git a/x-pack/plugins/siem/public/components/utility_bar/utility_bar_text.tsx b/x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_text.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/utility_bar/utility_bar_text.tsx rename to x-pack/plugins/siem/public/common/components/utility_bar/utility_bar_text.tsx diff --git a/x-pack/plugins/siem/public/components/utils.ts b/x-pack/plugins/siem/public/common/components/utils.ts similarity index 100% rename from x-pack/plugins/siem/public/components/utils.ts rename to x-pack/plugins/siem/public/common/components/utils.ts diff --git a/x-pack/plugins/siem/public/components/with_hover_actions/index.tsx b/x-pack/plugins/siem/public/common/components/with_hover_actions/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/with_hover_actions/index.tsx rename to x-pack/plugins/siem/public/common/components/with_hover_actions/index.tsx diff --git a/x-pack/plugins/siem/public/components/wrapper_page/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/common/components/wrapper_page/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/wrapper_page/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/common/components/wrapper_page/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/wrapper_page/index.test.tsx b/x-pack/plugins/siem/public/common/components/wrapper_page/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/wrapper_page/index.test.tsx rename to x-pack/plugins/siem/public/common/components/wrapper_page/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/wrapper_page/index.tsx b/x-pack/plugins/siem/public/common/components/wrapper_page/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/wrapper_page/index.tsx rename to x-pack/plugins/siem/public/common/components/wrapper_page/index.tsx diff --git a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts similarity index 94% rename from x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts rename to x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts index f63349d3e573..c3d470df11be 100644 --- a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts +++ b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/histogram_configs.ts @@ -8,7 +8,7 @@ import { MatrixHistogramOption, MatrixHisrogramConfigs, } from '../../../components/matrix_histogram/types'; -import { HistogramType } from '../../../graphql/types'; +import { HistogramType } from '../../../../graphql/types'; export const anomaliesStackByOptions: MatrixHistogramOption[] = [ { diff --git a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/index.tsx b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/index.tsx rename to x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx index 2bbb4cde92b1..a5574bd2a57c 100644 --- a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/index.tsx +++ b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/index.tsx @@ -6,7 +6,7 @@ import React, { useEffect } from 'react'; -import { DEFAULT_ANOMALY_SCORE } from '../../../../common/constants'; +import { DEFAULT_ANOMALY_SCORE } from '../../../../../common/constants'; import { AnomaliesQueryTabBodyProps } from './types'; import { getAnomaliesFilterQuery } from './utils'; import { useSiemJobs } from '../../../components/ml_popover/hooks/use_siem_jobs'; diff --git a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/translations.ts b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/translations.ts rename to x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/translations.ts diff --git a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/types.ts b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/types.ts similarity index 78% rename from x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/types.ts rename to x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/types.ts index f6cae81e3c6c..ecf4c3590a42 100644 --- a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/types.ts +++ b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/types.ts @@ -4,13 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESTermQuery } from '../../../../common/typed_json'; +import { ESTermQuery } from '../../../../../common/typed_json'; import { NarrowDateRange } from '../../../components/ml/types'; import { UpdateDateRange } from '../../../components/charts/common'; -import { SetQuery } from '../../../pages/hosts/navigation/types'; -import { FlowTarget } from '../../../graphql/types'; -import { HostsType } from '../../../store/hosts/model'; -import { NetworkType } from '../../../store/network/model'; +import { SetQuery } from '../../../../hosts/pages/navigation/types'; +import { FlowTarget } from '../../../../graphql/types'; +import { HostsType } from '../../../../hosts/store/model'; +import { NetworkType } from '../../../../network/store//model'; import { AnomaliesHostTable } from '../../../components/ml/tables/anomalies_host_table'; import { AnomaliesNetworkTable } from '../../../components/ml/tables/anomalies_network_table'; diff --git a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/utils.ts b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts similarity index 93% rename from x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/utils.ts rename to x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts index 790a797b2fea..e815db68ebcd 100644 --- a/x-pack/plugins/siem/public/containers/anomalies/anomalies_query_tab_body/utils.ts +++ b/x-pack/plugins/siem/public/common/containers/anomalies/anomalies_query_tab_body/utils.ts @@ -6,10 +6,10 @@ import deepmerge from 'deepmerge'; -import { ESTermQuery } from '../../../../common/typed_json'; +import { ESTermQuery } from '../../../../../common/typed_json'; import { createFilter } from '../../helpers'; import { SiemJob } from '../../../components/ml_popover/types'; -import { FlowTarget } from '../../../graphql/types'; +import { FlowTarget } from '../../../../graphql/types'; export const getAnomaliesFilterQuery = ( filterQuery: string | ESTermQuery | undefined, diff --git a/x-pack/plugins/siem/public/containers/errors/index.test.tsx b/x-pack/plugins/siem/public/common/containers/errors/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/errors/index.test.tsx rename to x-pack/plugins/siem/public/common/containers/errors/index.test.tsx diff --git a/x-pack/plugins/siem/public/containers/errors/index.tsx b/x-pack/plugins/siem/public/common/containers/errors/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/errors/index.tsx rename to x-pack/plugins/siem/public/common/containers/errors/index.tsx diff --git a/x-pack/plugins/siem/public/containers/errors/translations.ts b/x-pack/plugins/siem/public/common/containers/errors/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/errors/translations.ts rename to x-pack/plugins/siem/public/common/containers/errors/translations.ts diff --git a/x-pack/plugins/siem/public/containers/events/last_event_time/index.ts b/x-pack/plugins/siem/public/common/containers/events/last_event_time/index.ts similarity index 93% rename from x-pack/plugins/siem/public/containers/events/last_event_time/index.ts rename to x-pack/plugins/siem/public/common/containers/events/last_event_time/index.ts index 9cae503d3094..17b2cb746e92 100644 --- a/x-pack/plugins/siem/public/containers/events/last_event_time/index.ts +++ b/x-pack/plugins/siem/public/common/containers/events/last_event_time/index.ts @@ -7,8 +7,12 @@ import { get } from 'lodash/fp'; import React, { useEffect, useState } from 'react'; -import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; -import { GetLastEventTimeQuery, LastEventIndexKey, LastTimeDetails } from '../../../graphql/types'; +import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; +import { + GetLastEventTimeQuery, + LastEventIndexKey, + LastTimeDetails, +} from '../../../../graphql/types'; import { inputsModel } from '../../../store'; import { QueryTemplateProps } from '../../query_template'; import { useUiSetting$ } from '../../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/containers/events/last_event_time/last_event_time.gql_query.ts b/x-pack/plugins/siem/public/common/containers/events/last_event_time/last_event_time.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/events/last_event_time/last_event_time.gql_query.ts rename to x-pack/plugins/siem/public/common/containers/events/last_event_time/last_event_time.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/events/last_event_time/mock.ts b/x-pack/plugins/siem/public/common/containers/events/last_event_time/mock.ts similarity index 93% rename from x-pack/plugins/siem/public/containers/events/last_event_time/mock.ts rename to x-pack/plugins/siem/public/common/containers/events/last_event_time/mock.ts index 43f55dfcf277..938473f92782 100644 --- a/x-pack/plugins/siem/public/containers/events/last_event_time/mock.ts +++ b/x-pack/plugins/siem/public/common/containers/events/last_event_time/mock.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DEFAULT_INDEX_PATTERN } from '../../../../common/constants'; -import { GetLastEventTimeQuery, LastEventIndexKey } from '../../../graphql/types'; +import { DEFAULT_INDEX_PATTERN } from '../../../../../common/constants'; +import { GetLastEventTimeQuery, LastEventIndexKey } from '../../../../graphql/types'; import { LastEventTimeGqlQuery } from './last_event_time.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/global_time/index.tsx b/x-pack/plugins/siem/public/common/containers/global_time/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/global_time/index.tsx rename to x-pack/plugins/siem/public/common/containers/global_time/index.tsx diff --git a/x-pack/plugins/siem/public/containers/helpers.test.ts b/x-pack/plugins/siem/public/common/containers/helpers.test.ts similarity index 94% rename from x-pack/plugins/siem/public/containers/helpers.test.ts rename to x-pack/plugins/siem/public/common/containers/helpers.test.ts index 5d378d79acc7..360ba28a746b 100644 --- a/x-pack/plugins/siem/public/containers/helpers.test.ts +++ b/x-pack/plugins/siem/public/common/containers/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ESQuery } from '../../common/typed_json'; +import { ESQuery } from '../../../common/typed_json'; import { createFilter } from './helpers'; diff --git a/x-pack/plugins/siem/public/containers/helpers.ts b/x-pack/plugins/siem/public/common/containers/helpers.ts similarity index 91% rename from x-pack/plugins/siem/public/containers/helpers.ts rename to x-pack/plugins/siem/public/common/containers/helpers.ts index 5f66e3f4b88d..39fd1987218f 100644 --- a/x-pack/plugins/siem/public/containers/helpers.ts +++ b/x-pack/plugins/siem/public/common/containers/helpers.ts @@ -7,7 +7,7 @@ import { FetchPolicy } from 'apollo-client'; import { isString } from 'lodash/fp'; -import { ESQuery } from '../../common/typed_json'; +import { ESQuery } from '../../../common/typed_json'; export const createFilter = (filterQuery: ESQuery | string | undefined) => isString(filterQuery) ? filterQuery : JSON.stringify(filterQuery); diff --git a/x-pack/plugins/siem/public/containers/kuery_autocompletion/index.tsx b/x-pack/plugins/siem/public/common/containers/kuery_autocompletion/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/kuery_autocompletion/index.tsx rename to x-pack/plugins/siem/public/common/containers/kuery_autocompletion/index.tsx index 6120538a01e7..af4eb1ff7a5e 100644 --- a/x-pack/plugins/siem/public/containers/kuery_autocompletion/index.tsx +++ b/x-pack/plugins/siem/public/common/containers/kuery_autocompletion/index.tsx @@ -5,7 +5,7 @@ */ import React, { useState } from 'react'; -import { QuerySuggestion, IIndexPattern } from '../../../../../../src/plugins/data/public'; +import { QuerySuggestion, IIndexPattern } from '../../../../../../../src/plugins/data/public'; import { useKibana } from '../../lib/kibana'; type RendererResult = React.ReactElement | null; diff --git a/x-pack/plugins/siem/public/containers/matrix_histogram/index.gql_query.ts b/x-pack/plugins/siem/public/common/containers/matrix_histogram/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/matrix_histogram/index.gql_query.ts rename to x-pack/plugins/siem/public/common/containers/matrix_histogram/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/matrix_histogram/index.test.tsx b/x-pack/plugins/siem/public/common/containers/matrix_histogram/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/containers/matrix_histogram/index.test.tsx rename to x-pack/plugins/siem/public/common/containers/matrix_histogram/index.test.tsx index 80899a061e7c..cb988d7ebf19 100644 --- a/x-pack/plugins/siem/public/containers/matrix_histogram/index.test.tsx +++ b/x-pack/plugins/siem/public/common/containers/matrix_histogram/index.test.tsx @@ -9,7 +9,7 @@ import { mount } from 'enzyme'; import React from 'react'; import { useApolloClient } from '../../utils/apollo_context'; import { errorToToaster } from '../../components/toasters'; -import { MatrixOverTimeHistogramData, HistogramType } from '../../graphql/types'; +import { MatrixOverTimeHistogramData, HistogramType } from '../../../graphql/types'; import { InspectQuery, Refetch } from '../../store/inputs/model'; const mockQuery = jest.fn().mockResolvedValue({ diff --git a/x-pack/plugins/siem/public/containers/matrix_histogram/index.ts b/x-pack/plugins/siem/public/common/containers/matrix_histogram/index.ts similarity index 97% rename from x-pack/plugins/siem/public/containers/matrix_histogram/index.ts rename to x-pack/plugins/siem/public/common/containers/matrix_histogram/index.ts index 18bb611191bb..649ca526c210 100644 --- a/x-pack/plugins/siem/public/containers/matrix_histogram/index.ts +++ b/x-pack/plugins/siem/public/common/containers/matrix_histogram/index.ts @@ -7,7 +7,7 @@ import { isEmpty } from 'lodash/fp'; import { useEffect, useMemo, useState, useRef } from 'react'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { MatrixHistogramQueryProps } from '../../components/matrix_histogram/types'; import { errorToToaster, useStateToaster } from '../../components/toasters'; import { useUiSetting$ } from '../../lib/kibana'; @@ -15,7 +15,7 @@ import { createFilter } from '../helpers'; import { useApolloClient } from '../../utils/apollo_context'; import { inputsModel } from '../../store'; import { MatrixHistogramGqlQuery } from './index.gql_query'; -import { GetMatrixHistogramQuery, MatrixOverTimeHistogramData } from '../../graphql/types'; +import { GetMatrixHistogramQuery, MatrixOverTimeHistogramData } from '../../../graphql/types'; export const useQuery = ({ endDate, diff --git a/x-pack/plugins/siem/public/containers/query_template.tsx b/x-pack/plugins/siem/public/common/containers/query_template.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/query_template.tsx rename to x-pack/plugins/siem/public/common/containers/query_template.tsx index dfb452c24b86..fdc95c1dadfe 100644 --- a/x-pack/plugins/siem/public/containers/query_template.tsx +++ b/x-pack/plugins/siem/public/common/containers/query_template.tsx @@ -8,7 +8,7 @@ import { ApolloQueryResult } from 'apollo-client'; import React from 'react'; import { FetchMoreOptions, FetchMoreQueryOptions, OperationVariables } from 'react-apollo'; -import { ESQuery } from '../../common/typed_json'; +import { ESQuery } from '../../../common/typed_json'; export interface QueryTemplateProps { id?: string; diff --git a/x-pack/plugins/siem/public/containers/query_template_paginated.tsx b/x-pack/plugins/siem/public/common/containers/query_template_paginated.tsx similarity index 98% rename from x-pack/plugins/siem/public/containers/query_template_paginated.tsx rename to x-pack/plugins/siem/public/common/containers/query_template_paginated.tsx index db618f216d83..446e1125b280 100644 --- a/x-pack/plugins/siem/public/containers/query_template_paginated.tsx +++ b/x-pack/plugins/siem/public/common/containers/query_template_paginated.tsx @@ -10,7 +10,7 @@ import React from 'react'; import { FetchMoreOptions, FetchMoreQueryOptions, OperationVariables } from 'react-apollo'; import deepEqual from 'fast-deep-equal'; -import { ESQuery } from '../../common/typed_json'; +import { ESQuery } from '../../../common/typed_json'; import { inputsModel } from '../store/model'; import { generateTablePaginationOptions } from '../components/paginated_table/helpers'; diff --git a/x-pack/plugins/siem/public/containers/source/index.gql_query.ts b/x-pack/plugins/siem/public/common/containers/source/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/source/index.gql_query.ts rename to x-pack/plugins/siem/public/common/containers/source/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/source/index.test.tsx b/x-pack/plugins/siem/public/common/containers/source/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/source/index.test.tsx rename to x-pack/plugins/siem/public/common/containers/source/index.test.tsx diff --git a/x-pack/plugins/siem/public/containers/source/index.tsx b/x-pack/plugins/siem/public/common/containers/source/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/source/index.tsx rename to x-pack/plugins/siem/public/common/containers/source/index.tsx index e9359fdb1958..8c33c556c676 100644 --- a/x-pack/plugins/siem/public/containers/source/index.tsx +++ b/x-pack/plugins/siem/public/common/containers/source/index.tsx @@ -11,10 +11,10 @@ import React, { useEffect, useMemo, useState } from 'react'; import memoizeOne from 'memoize-one'; import { IIndexPattern } from 'src/plugins/data/public'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { useUiSetting$ } from '../../lib/kibana'; -import { IndexField, SourceQuery } from '../../graphql/types'; +import { IndexField, SourceQuery } from '../../../graphql/types'; import { sourceQuery } from './index.gql_query'; import { useApolloClient } from '../../utils/apollo_context'; diff --git a/x-pack/plugins/siem/public/containers/source/mock.ts b/x-pack/plugins/siem/public/common/containers/source/mock.ts similarity index 99% rename from x-pack/plugins/siem/public/containers/source/mock.ts rename to x-pack/plugins/siem/public/common/containers/source/mock.ts index 092aad9e7400..55e8b6ac02b1 100644 --- a/x-pack/plugins/siem/public/containers/source/mock.ts +++ b/x-pack/plugins/siem/public/common/containers/source/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DEFAULT_INDEX_PATTERN } from '../../../common/constants'; +import { DEFAULT_INDEX_PATTERN } from '../../../../common/constants'; import { BrowserFields } from '.'; import { sourceQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/hooks/api/__mock__/api.tsx b/x-pack/plugins/siem/public/common/hooks/api/__mock__/api.tsx similarity index 100% rename from x-pack/plugins/siem/public/hooks/api/__mock__/api.tsx rename to x-pack/plugins/siem/public/common/hooks/api/__mock__/api.tsx diff --git a/x-pack/plugins/siem/public/hooks/api/api.tsx b/x-pack/plugins/siem/public/common/hooks/api/api.tsx similarity index 94% rename from x-pack/plugins/siem/public/hooks/api/api.tsx rename to x-pack/plugins/siem/public/common/hooks/api/api.tsx index 8120e3819d9a..12863bffcf51 100644 --- a/x-pack/plugins/siem/public/hooks/api/api.tsx +++ b/x-pack/plugins/siem/public/common/hooks/api/api.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { StartServices } from '../../plugin'; +import { StartServices } from '../../../plugin'; import { IndexPatternSavedObject, IndexPatternSavedObjectAttributes } from '../types'; /** diff --git a/x-pack/plugins/siem/public/hooks/api/helpers.test.tsx b/x-pack/plugins/siem/public/common/hooks/api/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/hooks/api/helpers.test.tsx rename to x-pack/plugins/siem/public/common/hooks/api/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/hooks/api/helpers.tsx b/x-pack/plugins/siem/public/common/hooks/api/helpers.tsx similarity index 100% rename from x-pack/plugins/siem/public/hooks/api/helpers.tsx rename to x-pack/plugins/siem/public/common/hooks/api/helpers.tsx diff --git a/x-pack/plugins/siem/public/hooks/translations.ts b/x-pack/plugins/siem/public/common/hooks/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/hooks/translations.ts rename to x-pack/plugins/siem/public/common/hooks/translations.ts diff --git a/x-pack/plugins/siem/public/hooks/types.ts b/x-pack/plugins/siem/public/common/hooks/types.ts similarity index 80% rename from x-pack/plugins/siem/public/hooks/types.ts rename to x-pack/plugins/siem/public/common/hooks/types.ts index 6527904964d0..36b626b0ba9f 100644 --- a/x-pack/plugins/siem/public/hooks/types.ts +++ b/x-pack/plugins/siem/public/common/hooks/types.ts @@ -4,7 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { SimpleSavedObject } from '../../../../../src/core/public'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { SimpleSavedObject } from '../../../../../../src/core/public'; // eslint-disable-next-line @typescript-eslint/consistent-type-definitions export type IndexPatternSavedObjectAttributes = { title: string }; diff --git a/x-pack/plugins/siem/public/hooks/use_add_to_timeline.tsx b/x-pack/plugins/siem/public/common/hooks/use_add_to_timeline.tsx similarity index 95% rename from x-pack/plugins/siem/public/hooks/use_add_to_timeline.tsx rename to x-pack/plugins/siem/public/common/hooks/use_add_to_timeline.tsx index be0ddb153457..9d3c1efbe345 100644 --- a/x-pack/plugins/siem/public/hooks/use_add_to_timeline.tsx +++ b/x-pack/plugins/siem/public/common/hooks/use_add_to_timeline.tsx @@ -9,8 +9,8 @@ import { useCallback } from 'react'; import { DraggableId, FluidDragActions, Position, SensorAPI } from 'react-beautiful-dnd'; import { IS_DRAGGING_CLASS_NAME } from '../components/drag_and_drop/helpers'; -import { HIGHLIGHTED_DROP_TARGET_CLASS_NAME } from '../components/timeline/data_providers/empty'; -import { EMPTY_PROVIDERS_GROUP_CLASS_NAME } from '../components/timeline/data_providers/providers'; +import { HIGHLIGHTED_DROP_TARGET_CLASS_NAME } from '../../timelines/components/timeline/data_providers/empty'; +import { EMPTY_PROVIDERS_GROUP_CLASS_NAME } from '../../timelines/components/timeline/data_providers/providers'; let _sensorApiSingleton: SensorAPI; diff --git a/x-pack/plugins/siem/public/hooks/use_index_patterns.tsx b/x-pack/plugins/siem/public/common/hooks/use_index_patterns.tsx similarity index 100% rename from x-pack/plugins/siem/public/hooks/use_index_patterns.tsx rename to x-pack/plugins/siem/public/common/hooks/use_index_patterns.tsx diff --git a/x-pack/plugins/siem/public/hooks/use_providers_portal.tsx b/x-pack/plugins/siem/public/common/hooks/use_providers_portal.tsx similarity index 100% rename from x-pack/plugins/siem/public/hooks/use_providers_portal.tsx rename to x-pack/plugins/siem/public/common/hooks/use_providers_portal.tsx diff --git a/x-pack/plugins/siem/public/lib/clipboard/clipboard.tsx b/x-pack/plugins/siem/public/common/lib/clipboard/clipboard.tsx similarity index 100% rename from x-pack/plugins/siem/public/lib/clipboard/clipboard.tsx rename to x-pack/plugins/siem/public/common/lib/clipboard/clipboard.tsx diff --git a/x-pack/plugins/siem/public/lib/clipboard/translations.ts b/x-pack/plugins/siem/public/common/lib/clipboard/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/clipboard/translations.ts rename to x-pack/plugins/siem/public/common/lib/clipboard/translations.ts diff --git a/x-pack/plugins/siem/public/lib/clipboard/with_copy_to_clipboard.tsx b/x-pack/plugins/siem/public/common/lib/clipboard/with_copy_to_clipboard.tsx similarity index 100% rename from x-pack/plugins/siem/public/lib/clipboard/with_copy_to_clipboard.tsx rename to x-pack/plugins/siem/public/common/lib/clipboard/with_copy_to_clipboard.tsx diff --git a/x-pack/plugins/siem/public/lib/compose/helpers.test.ts b/x-pack/plugins/siem/public/common/lib/compose/helpers.test.ts similarity index 94% rename from x-pack/plugins/siem/public/lib/compose/helpers.test.ts rename to x-pack/plugins/siem/public/common/lib/compose/helpers.test.ts index af4521b4f6e2..4a3d734d0a6d 100644 --- a/x-pack/plugins/siem/public/lib/compose/helpers.test.ts +++ b/x-pack/plugins/siem/public/common/lib/compose/helpers.test.ts @@ -9,7 +9,7 @@ import { errorLink, reTryOneTimeOnErrorLink } from '../../containers/errors'; import { getLinks } from './helpers'; import { withClientState } from 'apollo-link-state'; import * as apolloLinkHttp from 'apollo-link-http'; -import introspectionQueryResultData from '../../graphql/introspection.json'; +import introspectionQueryResultData from '../../../graphql/introspection.json'; jest.mock('apollo-cache-inmemory'); jest.mock('apollo-link-http'); diff --git a/x-pack/plugins/siem/public/lib/compose/helpers.ts b/x-pack/plugins/siem/public/common/lib/compose/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/compose/helpers.ts rename to x-pack/plugins/siem/public/common/lib/compose/helpers.ts diff --git a/x-pack/plugins/siem/public/lib/compose/kibana_compose.tsx b/x-pack/plugins/siem/public/common/lib/compose/kibana_compose.tsx similarity index 83% rename from x-pack/plugins/siem/public/lib/compose/kibana_compose.tsx rename to x-pack/plugins/siem/public/common/lib/compose/kibana_compose.tsx index fb30c9a5411e..f7c7c6531848 100644 --- a/x-pack/plugins/siem/public/lib/compose/kibana_compose.tsx +++ b/x-pack/plugins/siem/public/common/lib/compose/kibana_compose.tsx @@ -8,8 +8,9 @@ import { InMemoryCache, IntrospectionFragmentMatcher } from 'apollo-cache-inmemo import ApolloClient from 'apollo-client'; import { ApolloLink } from 'apollo-link'; -import { CoreStart } from '../../../../../../src/core/public'; -import introspectionQueryResultData from '../../graphql/introspection.json'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { CoreStart } from '../../../../../../../src/core/public'; +import introspectionQueryResultData from '../../../graphql/introspection.json'; import { AppFrontendLibs } from '../lib'; import { getLinks } from './helpers'; diff --git a/x-pack/plugins/siem/public/lib/connectors/components/connector_flyout/index.tsx b/x-pack/plugins/siem/public/common/lib/connectors/components/connector_flyout/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/lib/connectors/components/connector_flyout/index.tsx rename to x-pack/plugins/siem/public/common/lib/connectors/components/connector_flyout/index.tsx index 10b1e75c6ea8..246a7cced37e 100644 --- a/x-pack/plugins/siem/public/lib/connectors/components/connector_flyout/index.tsx +++ b/x-pack/plugins/siem/public/common/lib/connectors/components/connector_flyout/index.tsx @@ -10,10 +10,10 @@ import { EuiFieldText, EuiFlexGroup, EuiFlexItem, EuiFormRow, EuiSpacer } from ' import { isEmpty, get } from 'lodash/fp'; // eslint-disable-next-line @kbn/eslint/no-restricted-paths -import { ActionConnectorFieldsProps } from '../../../../../../triggers_actions_ui/public/types'; -import { FieldMapping } from '../../../../pages/case/components/configure_cases/field_mapping'; +import { ActionConnectorFieldsProps } from '../../../../../../../triggers_actions_ui/public/types'; +import { FieldMapping } from '../../../../../cases/components/configure_cases/field_mapping'; -import { CasesConfigurationMapping } from '../../../../containers/case/configure/types'; +import { CasesConfigurationMapping } from '../../../../../cases/containers/configure/types'; import * as i18n from '../../translations'; import { ActionConnector, ConnectorFlyoutHOCProps } from '../../types'; diff --git a/x-pack/plugins/siem/public/lib/connectors/config.ts b/x-pack/plugins/siem/public/common/lib/connectors/config.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/config.ts rename to x-pack/plugins/siem/public/common/lib/connectors/config.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/index.ts b/x-pack/plugins/siem/public/common/lib/connectors/index.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/index.ts rename to x-pack/plugins/siem/public/common/lib/connectors/index.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/jira/config.ts b/x-pack/plugins/siem/public/common/lib/connectors/jira/config.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/jira/config.ts rename to x-pack/plugins/siem/public/common/lib/connectors/jira/config.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/jira/flyout.tsx b/x-pack/plugins/siem/public/common/lib/connectors/jira/flyout.tsx similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/jira/flyout.tsx rename to x-pack/plugins/siem/public/common/lib/connectors/jira/flyout.tsx diff --git a/x-pack/plugins/siem/public/lib/connectors/jira/index.tsx b/x-pack/plugins/siem/public/common/lib/connectors/jira/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/lib/connectors/jira/index.tsx rename to x-pack/plugins/siem/public/common/lib/connectors/jira/index.tsx index 049ccb7cf17b..f7e293d9ad2f 100644 --- a/x-pack/plugins/siem/public/lib/connectors/jira/index.tsx +++ b/x-pack/plugins/siem/public/common/lib/connectors/jira/index.tsx @@ -8,7 +8,7 @@ import { lazy } from 'react'; import { ValidationResult, // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../triggers_actions_ui/public/types'; +} from '../../../../../../triggers_actions_ui/public/types'; import { connector } from './config'; import { createActionType } from '../utils'; diff --git a/x-pack/plugins/siem/public/lib/connectors/jira/logo.svg b/x-pack/plugins/siem/public/common/lib/connectors/jira/logo.svg similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/jira/logo.svg rename to x-pack/plugins/siem/public/common/lib/connectors/jira/logo.svg diff --git a/x-pack/plugins/siem/public/lib/connectors/jira/translations.ts b/x-pack/plugins/siem/public/common/lib/connectors/jira/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/jira/translations.ts rename to x-pack/plugins/siem/public/common/lib/connectors/jira/translations.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/jira/types.ts b/x-pack/plugins/siem/public/common/lib/connectors/jira/types.ts similarity index 78% rename from x-pack/plugins/siem/public/lib/connectors/jira/types.ts rename to x-pack/plugins/siem/public/common/lib/connectors/jira/types.ts index d6b8a6cadcb9..fafb4a0d41fb 100644 --- a/x-pack/plugins/siem/public/lib/connectors/jira/types.ts +++ b/x-pack/plugins/siem/public/common/lib/connectors/jira/types.ts @@ -10,9 +10,9 @@ import { JiraPublicConfigurationType, JiraSecretConfigurationType, -} from '../../../../../actions/server/builtin_action_types/jira/types'; +} from '../../../../../../actions/server/builtin_action_types/jira/types'; -export { JiraFieldsType } from '../../../../../case/common/api/connectors'; +export { JiraFieldsType } from '../../../../../../case/common/api/connectors'; export * from '../types'; diff --git a/x-pack/plugins/siem/public/lib/connectors/servicenow/config.ts b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/config.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/servicenow/config.ts rename to x-pack/plugins/siem/public/common/lib/connectors/servicenow/config.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/servicenow/flyout.tsx b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/flyout.tsx similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/servicenow/flyout.tsx rename to x-pack/plugins/siem/public/common/lib/connectors/servicenow/flyout.tsx diff --git a/x-pack/plugins/siem/public/lib/connectors/servicenow/index.tsx b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/lib/connectors/servicenow/index.tsx rename to x-pack/plugins/siem/public/common/lib/connectors/servicenow/index.tsx index 0a239648271d..c9c5298365e8 100644 --- a/x-pack/plugins/siem/public/lib/connectors/servicenow/index.tsx +++ b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/index.tsx @@ -8,7 +8,7 @@ import { lazy } from 'react'; import { ValidationResult, // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../../triggers_actions_ui/public/types'; +} from '../../../../../../triggers_actions_ui/public/types'; import { connector } from './config'; import { createActionType } from '../utils'; import logo from './logo.svg'; diff --git a/x-pack/plugins/siem/public/lib/connectors/servicenow/logo.svg b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/logo.svg similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/servicenow/logo.svg rename to x-pack/plugins/siem/public/common/lib/connectors/servicenow/logo.svg diff --git a/x-pack/plugins/siem/public/lib/connectors/servicenow/translations.ts b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/servicenow/translations.ts rename to x-pack/plugins/siem/public/common/lib/connectors/servicenow/translations.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/servicenow/types.ts b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/types.ts similarity index 78% rename from x-pack/plugins/siem/public/lib/connectors/servicenow/types.ts rename to x-pack/plugins/siem/public/common/lib/connectors/servicenow/types.ts index 43da5624a497..b4a80e28c8d1 100644 --- a/x-pack/plugins/siem/public/lib/connectors/servicenow/types.ts +++ b/x-pack/plugins/siem/public/common/lib/connectors/servicenow/types.ts @@ -10,9 +10,9 @@ import { ServiceNowPublicConfigurationType, ServiceNowSecretConfigurationType, -} from '../../../../../actions/server/builtin_action_types/servicenow/types'; +} from '../../../../../../actions/server/builtin_action_types/servicenow/types'; -export { ServiceNowFieldsType } from '../../../../../case/common/api/connectors'; +export { ServiceNowFieldsType } from '../../../../../../case/common/api/connectors'; export * from '../types'; diff --git a/x-pack/plugins/siem/public/lib/connectors/translations.ts b/x-pack/plugins/siem/public/common/lib/connectors/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/translations.ts rename to x-pack/plugins/siem/public/common/lib/connectors/translations.ts diff --git a/x-pack/plugins/siem/public/lib/connectors/types.ts b/x-pack/plugins/siem/public/common/lib/connectors/types.ts similarity index 82% rename from x-pack/plugins/siem/public/lib/connectors/types.ts rename to x-pack/plugins/siem/public/common/lib/connectors/types.ts index 3d3692c9806e..1d688ad9b1d6 100644 --- a/x-pack/plugins/siem/public/lib/connectors/types.ts +++ b/x-pack/plugins/siem/public/common/lib/connectors/types.ts @@ -7,13 +7,16 @@ /* eslint-disable no-restricted-imports */ /* eslint-disable @kbn/eslint/no-restricted-paths */ -import { ActionType } from '../../../../triggers_actions_ui/public'; -import { IErrorObject } from '../../../../triggers_actions_ui/public/types'; -import { ExternalIncidentServiceConfiguration } from '../../../../actions/server/builtin_action_types/case/types'; +import { ActionType } from '../../../../../triggers_actions_ui/public'; +import { IErrorObject } from '../../../../../triggers_actions_ui/public/types'; +import { ExternalIncidentServiceConfiguration } from '../../../../../actions/server/builtin_action_types/case/types'; -import { ActionType as ThirdPartySupportedActions, CaseField } from '../../../../case/common/api'; +import { + ActionType as ThirdPartySupportedActions, + CaseField, +} from '../../../../../case/common/api'; -export { ThirdPartyField as AllThirdPartyFields } from '../../../../case/common/api'; +export { ThirdPartyField as AllThirdPartyFields } from '../../../../../case/common/api'; export interface ThirdPartyField { label: string; diff --git a/x-pack/plugins/siem/public/lib/connectors/utils.ts b/x-pack/plugins/siem/public/common/lib/connectors/utils.ts similarity index 93% rename from x-pack/plugins/siem/public/lib/connectors/utils.ts rename to x-pack/plugins/siem/public/common/lib/connectors/utils.ts index cc1608a05e2c..b9c90a593b20 100644 --- a/x-pack/plugins/siem/public/lib/connectors/utils.ts +++ b/x-pack/plugins/siem/public/common/lib/connectors/utils.ts @@ -8,7 +8,7 @@ import { ActionTypeModel, ValidationResult, // eslint-disable-next-line @kbn/eslint/no-restricted-paths -} from '../../../../triggers_actions_ui/public/types'; +} from '../../../../../triggers_actions_ui/public/types'; import { ActionConnector, @@ -20,7 +20,7 @@ import { import { isUrlInvalid } from './validators'; import * as i18n from './translations'; -import { CasesConfigurationMapping } from '../../containers/case/configure/types'; +import { CasesConfigurationMapping } from '../../../cases/containers/configure/types'; export const createActionType = ({ id, diff --git a/x-pack/plugins/siem/public/lib/connectors/validators.ts b/x-pack/plugins/siem/public/common/lib/connectors/validators.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/connectors/validators.ts rename to x-pack/plugins/siem/public/common/lib/connectors/validators.ts diff --git a/x-pack/plugins/siem/public/lib/helpers/index.test.tsx b/x-pack/plugins/siem/public/common/lib/helpers/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/lib/helpers/index.test.tsx rename to x-pack/plugins/siem/public/common/lib/helpers/index.test.tsx diff --git a/x-pack/plugins/siem/public/lib/helpers/index.tsx b/x-pack/plugins/siem/public/common/lib/helpers/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/lib/helpers/index.tsx rename to x-pack/plugins/siem/public/common/lib/helpers/index.tsx diff --git a/x-pack/plugins/siem/public/lib/helpers/scheduler.ts b/x-pack/plugins/siem/public/common/lib/helpers/scheduler.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/helpers/scheduler.ts rename to x-pack/plugins/siem/public/common/lib/helpers/scheduler.ts diff --git a/x-pack/plugins/siem/public/lib/history/index.ts b/x-pack/plugins/siem/public/common/lib/history/index.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/history/index.ts rename to x-pack/plugins/siem/public/common/lib/history/index.ts diff --git a/x-pack/plugins/siem/public/lib/keury/index.test.ts b/x-pack/plugins/siem/public/common/lib/keury/index.test.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/keury/index.test.ts rename to x-pack/plugins/siem/public/common/lib/keury/index.test.ts diff --git a/x-pack/plugins/siem/public/lib/keury/index.ts b/x-pack/plugins/siem/public/common/lib/keury/index.ts similarity index 95% rename from x-pack/plugins/siem/public/lib/keury/index.ts rename to x-pack/plugins/siem/public/common/lib/keury/index.ts index 810baa89cd60..53f845de48fb 100644 --- a/x-pack/plugins/siem/public/lib/keury/index.ts +++ b/x-pack/plugins/siem/public/common/lib/keury/index.ts @@ -12,9 +12,9 @@ import { esQuery, esKuery, IIndexPattern, -} from '../../../../../../src/plugins/data/public'; +} from '../../../../../../../src/plugins/data/public'; -import { JsonObject } from '../../../../../../src/plugins/kibana_utils/public'; +import { JsonObject } from '../../../../../../../src/plugins/kibana_utils/public'; import { KueryFilterQuery } from '../../store'; diff --git a/x-pack/plugins/siem/public/lib/kibana/__mocks__/index.ts b/x-pack/plugins/siem/public/common/lib/kibana/__mocks__/index.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/kibana/__mocks__/index.ts rename to x-pack/plugins/siem/public/common/lib/kibana/__mocks__/index.ts diff --git a/x-pack/plugins/siem/public/lib/kibana/hooks.ts b/x-pack/plugins/siem/public/common/lib/kibana/hooks.ts similarity index 95% rename from x-pack/plugins/siem/public/lib/kibana/hooks.ts rename to x-pack/plugins/siem/public/common/lib/kibana/hooks.ts index d62701fe5944..ebdefa66b0ef 100644 --- a/x-pack/plugins/siem/public/lib/kibana/hooks.ts +++ b/x-pack/plugins/siem/public/common/lib/kibana/hooks.ts @@ -8,11 +8,11 @@ import moment from 'moment-timezone'; import { useCallback, useEffect, useState } from 'react'; import { i18n } from '@kbn/i18n'; -import { DEFAULT_DATE_FORMAT, DEFAULT_DATE_FORMAT_TZ } from '../../../common/constants'; +import { DEFAULT_DATE_FORMAT, DEFAULT_DATE_FORMAT_TZ } from '../../../../common/constants'; import { useUiSetting, useKibana } from './kibana_react'; import { errorToToaster, useStateToaster } from '../../components/toasters'; -import { AuthenticatedUser } from '../../../../security/common/model'; -import { convertToCamelCase } from '../../containers/case/utils'; +import { AuthenticatedUser } from '../../../../../security/common/model'; +import { convertToCamelCase } from '../../../cases/containers/utils'; export const useDateFormat = (): string => useUiSetting(DEFAULT_DATE_FORMAT); diff --git a/x-pack/plugins/siem/public/lib/kibana/index.ts b/x-pack/plugins/siem/public/common/lib/kibana/index.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/kibana/index.ts rename to x-pack/plugins/siem/public/common/lib/kibana/index.ts diff --git a/x-pack/plugins/siem/public/lib/kibana/kibana_react.ts b/x-pack/plugins/siem/public/common/lib/kibana/kibana_react.ts similarity index 86% rename from x-pack/plugins/siem/public/lib/kibana/kibana_react.ts rename to x-pack/plugins/siem/public/common/lib/kibana/kibana_react.ts index 88be8d25e584..42738c6bbe7d 100644 --- a/x-pack/plugins/siem/public/lib/kibana/kibana_react.ts +++ b/x-pack/plugins/siem/public/common/lib/kibana/kibana_react.ts @@ -11,8 +11,8 @@ import { useUiSetting, useUiSetting$, withKibana, -} from '../../../../../../src/plugins/kibana_react/public'; -import { StartServices } from '../../plugin'; +} from '../../../../../../../src/plugins/kibana_react/public'; +import { StartServices } from '../../../plugin'; export type KibanaContext = KibanaReactContextValue; export interface WithKibanaProps { diff --git a/x-pack/plugins/siem/public/lib/kibana/services.ts b/x-pack/plugins/siem/public/common/lib/kibana/services.ts similarity index 89% rename from x-pack/plugins/siem/public/lib/kibana/services.ts rename to x-pack/plugins/siem/public/common/lib/kibana/services.ts index 4ab3e102f56a..8a8138691ba1 100644 --- a/x-pack/plugins/siem/public/lib/kibana/services.ts +++ b/x-pack/plugins/siem/public/common/lib/kibana/services.ts @@ -4,7 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { CoreStart } from '../../../../../../src/core/public'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { CoreStart } from '../../../../../../../src/core/public'; type GlobalServices = Pick; diff --git a/x-pack/plugins/siem/public/lib/lib.ts b/x-pack/plugins/siem/public/common/lib/lib.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/lib.ts rename to x-pack/plugins/siem/public/common/lib/lib.ts diff --git a/x-pack/plugins/siem/public/lib/note/index.ts b/x-pack/plugins/siem/public/common/lib/note/index.ts similarity index 100% rename from x-pack/plugins/siem/public/lib/note/index.ts rename to x-pack/plugins/siem/public/common/lib/note/index.ts diff --git a/x-pack/plugins/siem/public/lib/telemetry/index.ts b/x-pack/plugins/siem/public/common/lib/telemetry/index.ts similarity index 96% rename from x-pack/plugins/siem/public/lib/telemetry/index.ts rename to x-pack/plugins/siem/public/common/lib/telemetry/index.ts index 37d181e9b8ad..0ed524c2ae54 100644 --- a/x-pack/plugins/siem/public/lib/telemetry/index.ts +++ b/x-pack/plugins/siem/public/common/lib/telemetry/index.ts @@ -6,7 +6,7 @@ import { METRIC_TYPE, UiStatsMetricType } from '@kbn/analytics'; -import { SetupPlugins } from '../../plugin'; +import { SetupPlugins } from '../../../plugin'; export { telemetryMiddleware } from './middleware'; export { METRIC_TYPE }; diff --git a/x-pack/plugins/siem/public/lib/telemetry/middleware.ts b/x-pack/plugins/siem/public/common/lib/telemetry/middleware.ts similarity index 91% rename from x-pack/plugins/siem/public/lib/telemetry/middleware.ts rename to x-pack/plugins/siem/public/common/lib/telemetry/middleware.ts index ca889e20e695..87acdddf87ed 100644 --- a/x-pack/plugins/siem/public/lib/telemetry/middleware.ts +++ b/x-pack/plugins/siem/public/common/lib/telemetry/middleware.ts @@ -7,7 +7,7 @@ import { Action, Dispatch, MiddlewareAPI } from 'redux'; import { track, METRIC_TYPE, TELEMETRY_EVENT } from './'; -import * as timelineActions from '../../store/timeline/actions'; +import * as timelineActions from '../../../timelines/store/timeline/actions'; export const telemetryMiddleware = (api: MiddlewareAPI) => (next: Dispatch) => (action: Action) => { if (timelineActions.endTimelineSaving.match(action)) { diff --git a/x-pack/plugins/siem/public/lib/theme/use_eui_theme.tsx b/x-pack/plugins/siem/public/common/lib/theme/use_eui_theme.tsx similarity index 89% rename from x-pack/plugins/siem/public/lib/theme/use_eui_theme.tsx rename to x-pack/plugins/siem/public/common/lib/theme/use_eui_theme.tsx index 1696001203bc..23dae0d019f3 100644 --- a/x-pack/plugins/siem/public/lib/theme/use_eui_theme.tsx +++ b/x-pack/plugins/siem/public/common/lib/theme/use_eui_theme.tsx @@ -7,7 +7,7 @@ import darkTheme from '@elastic/eui/dist/eui_theme_dark.json'; import lightTheme from '@elastic/eui/dist/eui_theme_light.json'; -import { DEFAULT_DARK_MODE } from '../../../common/constants'; +import { DEFAULT_DARK_MODE } from '../../../../common/constants'; import { useUiSetting$ } from '../kibana'; export const useEuiTheme = () => { diff --git a/x-pack/plugins/siem/public/mock/global_state.ts b/x-pack/plugins/siem/public/common/mock/global_state.ts similarity index 95% rename from x-pack/plugins/siem/public/mock/global_state.ts rename to x-pack/plugins/siem/public/common/mock/global_state.ts index d0223b7834db..e215aa7403ec 100644 --- a/x-pack/plugins/siem/public/mock/global_state.ts +++ b/x-pack/plugins/siem/public/common/mock/global_state.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DEFAULT_TIMELINE_WIDTH } from '../components/timeline/body/constants'; +import { DEFAULT_TIMELINE_WIDTH } from '../../timelines/components/timeline/body/constants'; import { Direction, FlowTarget, @@ -13,8 +13,8 @@ import { NetworkTopTablesFields, TlsFields, UsersFields, -} from '../graphql/types'; -import { networkModel, State } from '../store'; +} from '../../graphql/types'; +import { State } from '../store'; import { defaultHeaders } from './header'; import { @@ -22,8 +22,9 @@ import { DEFAULT_TO, DEFAULT_INTERVAL_TYPE, DEFAULT_INTERVAL_VALUE, -} from '../../common/constants'; -import { TimelineType } from '../../common/types/timeline'; +} from '../../../common/constants'; +import { networkModel } from '../../network/store'; +import { TimelineType } from '../../../common/types/timeline'; export const mockGlobalState: State = { app: { diff --git a/x-pack/plugins/siem/public/mock/header.ts b/x-pack/plugins/siem/public/common/mock/header.ts similarity index 94% rename from x-pack/plugins/siem/public/mock/header.ts rename to x-pack/plugins/siem/public/common/mock/header.ts index 61af5a5f098b..51636e1efb25 100644 --- a/x-pack/plugins/siem/public/mock/header.ts +++ b/x-pack/plugins/siem/public/common/mock/header.ts @@ -3,12 +3,12 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { ColumnHeaderOptions } from '../store/timeline/model'; -import { defaultColumnHeaderType } from '../components/timeline/body/column_headers/default_headers'; +import { ColumnHeaderOptions } from '../../timelines/store/timeline/model'; +import { defaultColumnHeaderType } from '../../timelines/components/timeline/body/column_headers/default_headers'; import { DEFAULT_COLUMN_MIN_WIDTH, DEFAULT_DATE_COLUMN_MIN_WIDTH, -} from '../components/timeline/body/constants'; +} from '../../timelines/components/timeline/body/constants'; export const defaultHeaders: ColumnHeaderOptions[] = [ { diff --git a/x-pack/plugins/siem/public/mock/hook_wrapper.tsx b/x-pack/plugins/siem/public/common/mock/hook_wrapper.tsx similarity index 100% rename from x-pack/plugins/siem/public/mock/hook_wrapper.tsx rename to x-pack/plugins/siem/public/common/mock/hook_wrapper.tsx diff --git a/x-pack/plugins/siem/public/mock/index.ts b/x-pack/plugins/siem/public/common/mock/index.ts similarity index 100% rename from x-pack/plugins/siem/public/mock/index.ts rename to x-pack/plugins/siem/public/common/mock/index.ts diff --git a/x-pack/plugins/siem/public/mock/index_pattern.ts b/x-pack/plugins/siem/public/common/mock/index_pattern.ts similarity index 100% rename from x-pack/plugins/siem/public/mock/index_pattern.ts rename to x-pack/plugins/siem/public/common/mock/index_pattern.ts diff --git a/x-pack/plugins/siem/public/mock/kibana_core.ts b/x-pack/plugins/siem/public/common/mock/kibana_core.ts similarity index 66% rename from x-pack/plugins/siem/public/mock/kibana_core.ts rename to x-pack/plugins/siem/public/common/mock/kibana_core.ts index b175ddbf5106..e82c37e3a5b6 100644 --- a/x-pack/plugins/siem/public/mock/kibana_core.ts +++ b/x-pack/plugins/siem/public/common/mock/kibana_core.ts @@ -4,8 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { coreMock } from '../../../../../src/core/public/mocks'; -import { dataPluginMock } from '../../../../../src/plugins/data/public/mocks'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths +import { coreMock } from '../../../../../../src/core/public/mocks'; +import { dataPluginMock } from '../../../../../../src/plugins/data/public/mocks'; export const createKibanaCoreStartMock = () => coreMock.createStart(); export const createKibanaPluginsStartMock = () => ({ diff --git a/x-pack/plugins/siem/public/mock/kibana_react.ts b/x-pack/plugins/siem/public/common/mock/kibana_react.ts similarity index 95% rename from x-pack/plugins/siem/public/mock/kibana_react.ts rename to x-pack/plugins/siem/public/common/mock/kibana_react.ts index cebba3e237f9..0c51d39257a9 100644 --- a/x-pack/plugins/siem/public/mock/kibana_react.ts +++ b/x-pack/plugins/siem/public/common/mock/kibana_react.ts @@ -7,7 +7,7 @@ /* eslint-disable react/display-name */ import React from 'react'; -import { KibanaContextProvider } from '../../../../../src/plugins/kibana_react/public'; +import { KibanaContextProvider } from '../../../../../../src/plugins/kibana_react/public'; import { DEFAULT_SIEM_TIME_RANGE, @@ -24,7 +24,7 @@ import { DEFAULT_INTERVAL_VALUE, DEFAULT_BYTES_FORMAT, DEFAULT_INDEX_PATTERN, -} from '../../common/constants'; +} from '../../../common/constants'; import { createKibanaCoreStartMock, createKibanaPluginsStartMock } from './kibana_core'; // eslint-disable-next-line @typescript-eslint/no-explicit-any diff --git a/x-pack/plugins/siem/public/mock/match_media.ts b/x-pack/plugins/siem/public/common/mock/match_media.ts similarity index 100% rename from x-pack/plugins/siem/public/mock/match_media.ts rename to x-pack/plugins/siem/public/common/mock/match_media.ts diff --git a/x-pack/plugins/siem/public/mock/mock_detail_item.ts b/x-pack/plugins/siem/public/common/mock/mock_detail_item.ts similarity index 98% rename from x-pack/plugins/siem/public/mock/mock_detail_item.ts rename to x-pack/plugins/siem/public/common/mock/mock_detail_item.ts index c25428649d56..2395010a0ba2 100644 --- a/x-pack/plugins/siem/public/mock/mock_detail_item.ts +++ b/x-pack/plugins/siem/public/common/mock/mock_detail_item.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DetailItem } from '../graphql/types'; +import { DetailItem } from '../../graphql/types'; export const mockDetailItemDataId = 'Y-6TfmcB0WOhS6qyMv3s'; diff --git a/x-pack/plugins/siem/public/mock/mock_ecs.ts b/x-pack/plugins/siem/public/common/mock/mock_ecs.ts similarity index 99% rename from x-pack/plugins/siem/public/mock/mock_ecs.ts rename to x-pack/plugins/siem/public/common/mock/mock_ecs.ts index 59e26039e6bf..7fbbabb29da1 100644 --- a/x-pack/plugins/siem/public/mock/mock_ecs.ts +++ b/x-pack/plugins/siem/public/common/mock/mock_ecs.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Ecs } from '../graphql/types'; +import { Ecs } from '../../graphql/types'; export const mockEcsData: Ecs[] = [ { diff --git a/x-pack/plugins/siem/public/mock/mock_endgame_ecs_data.ts b/x-pack/plugins/siem/public/common/mock/mock_endgame_ecs_data.ts similarity index 99% rename from x-pack/plugins/siem/public/mock/mock_endgame_ecs_data.ts rename to x-pack/plugins/siem/public/common/mock/mock_endgame_ecs_data.ts index e6eee3d1c1cb..9b2cd14499db 100644 --- a/x-pack/plugins/siem/public/mock/mock_endgame_ecs_data.ts +++ b/x-pack/plugins/siem/public/common/mock/mock_endgame_ecs_data.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Ecs } from '../graphql/types'; +import { Ecs } from '../../graphql/types'; export const mockEndgameDnsRequest: Ecs = { _id: 'S8jPcG0BOpWiDweSou3g', diff --git a/x-pack/plugins/siem/public/mock/mock_timeline_data.ts b/x-pack/plugins/siem/public/common/mock/mock_timeline_data.ts similarity index 99% rename from x-pack/plugins/siem/public/mock/mock_timeline_data.ts rename to x-pack/plugins/siem/public/common/mock/mock_timeline_data.ts index b300053d5f22..7503062300d2 100644 --- a/x-pack/plugins/siem/public/mock/mock_timeline_data.ts +++ b/x-pack/plugins/siem/public/common/mock/mock_timeline_data.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Ecs, TimelineItem } from '../graphql/types'; +import { Ecs, TimelineItem } from '../../graphql/types'; export const mockTimelineData: TimelineItem[] = [ { diff --git a/x-pack/plugins/siem/public/mock/netflow.ts b/x-pack/plugins/siem/public/common/mock/netflow.ts similarity index 92% rename from x-pack/plugins/siem/public/mock/netflow.ts rename to x-pack/plugins/siem/public/common/mock/netflow.ts index 333188cca4b7..4dad79453337 100644 --- a/x-pack/plugins/siem/public/mock/netflow.ts +++ b/x-pack/plugins/siem/public/common/mock/netflow.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ONE_MILLISECOND_AS_NANOSECONDS } from '../components/formatted_duration/helpers'; -import { Ecs } from '../graphql/types'; +import { ONE_MILLISECOND_AS_NANOSECONDS } from '../../timelines/components/formatted_duration/helpers'; +import { Ecs } from '../../graphql/types'; /** Returns mock data for testing the Netflow component */ export const getMockNetflowData = (): Ecs => ({ diff --git a/x-pack/plugins/siem/public/mock/news.ts b/x-pack/plugins/siem/public/common/mock/news.ts similarity index 100% rename from x-pack/plugins/siem/public/mock/news.ts rename to x-pack/plugins/siem/public/common/mock/news.ts diff --git a/x-pack/plugins/siem/public/mock/raw_news.ts b/x-pack/plugins/siem/public/common/mock/raw_news.ts similarity index 100% rename from x-pack/plugins/siem/public/mock/raw_news.ts rename to x-pack/plugins/siem/public/common/mock/raw_news.ts diff --git a/x-pack/plugins/siem/public/mock/test_providers.tsx b/x-pack/plugins/siem/public/common/mock/test_providers.tsx similarity index 92% rename from x-pack/plugins/siem/public/mock/test_providers.tsx rename to x-pack/plugins/siem/public/common/mock/test_providers.tsx index 59e3874c6d0a..679e0bdc14cd 100644 --- a/x-pack/plugins/siem/public/mock/test_providers.tsx +++ b/x-pack/plugins/siem/public/common/mock/test_providers.tsx @@ -20,7 +20,8 @@ import { ThemeProvider } from 'styled-components'; import { createStore, State } from '../store'; import { mockGlobalState } from './global_state'; import { createKibanaContextProviderMock } from './kibana_react'; -import { FieldHook, useForm } from '../shared_imports'; +import { FieldHook, useForm } from '../../shared_imports'; +import { SUB_PLUGINS_REDUCER } from './utils'; const state: State = mockGlobalState; @@ -62,7 +63,7 @@ const MockKibanaContextProvider = createKibanaContextProviderMock(); /** A utility for wrapping children in the providers required to run most tests */ const TestProvidersComponent: React.FC = ({ children, - store = createStore(state, apolloClientObservable), + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable), onDragEnd = jest.fn(), }) => ( @@ -82,7 +83,7 @@ export const TestProviders = React.memo(TestProvidersComponent); const TestProviderWithoutDragAndDropComponent: React.FC = ({ children, - store = createStore(state, apolloClientObservable), + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable), }) => ( {children} diff --git a/x-pack/plugins/siem/public/mock/timeline_results.ts b/x-pack/plugins/siem/public/common/mock/timeline_results.ts similarity index 99% rename from x-pack/plugins/siem/public/mock/timeline_results.ts rename to x-pack/plugins/siem/public/common/mock/timeline_results.ts index 1af0f533a7ca..b1a9b65874ed 100644 --- a/x-pack/plugins/siem/public/mock/timeline_results.ts +++ b/x-pack/plugins/siem/public/common/mock/timeline_results.ts @@ -3,16 +3,16 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { FilterStateStore } from '../../../../../src/plugins/data/common/es_query/filters/meta_filter'; +import { FilterStateStore } from '../../../../../../src/plugins/data/common/es_query/filters/meta_filter'; -import { TimelineType } from '../../common/types/timeline'; +import { TimelineType } from '../../../common/types/timeline'; -import { OpenTimelineResult } from '../components/open_timeline/types'; -import { GetAllTimeline, SortFieldTimeline, TimelineResult, Direction } from '../graphql/types'; -import { allTimelinesQuery } from '../containers/timeline/all/index.gql_query'; -import { CreateTimelineProps } from '../pages/detection_engine/components/signals/types'; -import { TimelineModel } from '../store/timeline/model'; -import { timelineDefaults } from '../store/timeline/defaults'; +import { OpenTimelineResult } from '../../timelines/components/open_timeline/types'; +import { GetAllTimeline, SortFieldTimeline, TimelineResult, Direction } from '../../graphql/types'; +import { allTimelinesQuery } from '../../timelines/containers/all/index.gql_query'; +import { CreateTimelineProps } from '../../alerts/components/signals/types'; +import { TimelineModel } from '../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../timelines/store/timeline/defaults'; export interface MockedProvidedQuery { request: { query: GetAllTimeline.Query; diff --git a/x-pack/plugins/siem/public/mock/utils.ts b/x-pack/plugins/siem/public/common/mock/utils.ts similarity index 57% rename from x-pack/plugins/siem/public/mock/utils.ts rename to x-pack/plugins/siem/public/common/mock/utils.ts index 6a372f163a64..2b54bf83c0a9 100644 --- a/x-pack/plugins/siem/public/mock/utils.ts +++ b/x-pack/plugins/siem/public/common/mock/utils.ts @@ -4,9 +4,19 @@ * you may not use this file except in compliance with the Elastic License. */ +import { hostsReducer } from '../../hosts/store'; +import { networkReducer } from '../../network/store'; +import { timelineReducer } from '../../timelines/store/timeline/reducer'; + interface Global extends NodeJS.Global { // eslint-disable-next-line @typescript-eslint/no-explicit-any window?: any; } export const globalNode: Global = global; + +export const SUB_PLUGINS_REDUCER = { + hosts: hostsReducer, + network: networkReducer, + timeline: timelineReducer, +}; diff --git a/x-pack/plugins/siem/public/store/actions.ts b/x-pack/plugins/siem/public/common/store/actions.ts similarity index 74% rename from x-pack/plugins/siem/public/store/actions.ts rename to x-pack/plugins/siem/public/common/store/actions.ts index 12da695d2966..8a6c292c4893 100644 --- a/x-pack/plugins/siem/public/store/actions.ts +++ b/x-pack/plugins/siem/public/common/store/actions.ts @@ -6,7 +6,4 @@ export { appActions } from './app'; export { dragAndDropActions } from './drag_and_drop'; -export { hostsActions } from './hosts'; export { inputsActions } from './inputs'; -export { networkActions } from './network'; -export { timelineActions } from './timeline'; diff --git a/x-pack/plugins/siem/public/store/app/actions.ts b/x-pack/plugins/siem/public/common/store/app/actions.ts similarity index 100% rename from x-pack/plugins/siem/public/store/app/actions.ts rename to x-pack/plugins/siem/public/common/store/app/actions.ts diff --git a/x-pack/plugins/siem/public/store/app/index.ts b/x-pack/plugins/siem/public/common/store/app/index.ts similarity index 100% rename from x-pack/plugins/siem/public/store/app/index.ts rename to x-pack/plugins/siem/public/common/store/app/index.ts diff --git a/x-pack/plugins/siem/public/store/app/model.ts b/x-pack/plugins/siem/public/common/store/app/model.ts similarity index 100% rename from x-pack/plugins/siem/public/store/app/model.ts rename to x-pack/plugins/siem/public/common/store/app/model.ts diff --git a/x-pack/plugins/siem/public/store/app/reducer.ts b/x-pack/plugins/siem/public/common/store/app/reducer.ts similarity index 100% rename from x-pack/plugins/siem/public/store/app/reducer.ts rename to x-pack/plugins/siem/public/common/store/app/reducer.ts diff --git a/x-pack/plugins/siem/public/store/app/selectors.ts b/x-pack/plugins/siem/public/common/store/app/selectors.ts similarity index 100% rename from x-pack/plugins/siem/public/store/app/selectors.ts rename to x-pack/plugins/siem/public/common/store/app/selectors.ts diff --git a/x-pack/plugins/siem/public/store/constants.ts b/x-pack/plugins/siem/public/common/store/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/store/constants.ts rename to x-pack/plugins/siem/public/common/store/constants.ts diff --git a/x-pack/plugins/siem/public/store/drag_and_drop/actions.ts b/x-pack/plugins/siem/public/common/store/drag_and_drop/actions.ts similarity index 86% rename from x-pack/plugins/siem/public/store/drag_and_drop/actions.ts rename to x-pack/plugins/siem/public/common/store/drag_and_drop/actions.ts index 5d3cdc5a126f..82b544641adc 100644 --- a/x-pack/plugins/siem/public/store/drag_and_drop/actions.ts +++ b/x-pack/plugins/siem/public/common/store/drag_and_drop/actions.ts @@ -6,7 +6,7 @@ import actionCreatorFactory from 'typescript-fsa'; -import { DataProvider } from '../../components/timeline/data_providers/data_provider'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; const actionCreator = actionCreatorFactory('x-pack/siem/local/drag_and_drop'); diff --git a/x-pack/plugins/siem/public/store/drag_and_drop/index.ts b/x-pack/plugins/siem/public/common/store/drag_and_drop/index.ts similarity index 100% rename from x-pack/plugins/siem/public/store/drag_and_drop/index.ts rename to x-pack/plugins/siem/public/common/store/drag_and_drop/index.ts diff --git a/x-pack/plugins/siem/public/store/drag_and_drop/model.ts b/x-pack/plugins/siem/public/common/store/drag_and_drop/model.ts similarity index 79% rename from x-pack/plugins/siem/public/store/drag_and_drop/model.ts rename to x-pack/plugins/siem/public/common/store/drag_and_drop/model.ts index 6b6491b32a1d..e62bf05c042f 100644 --- a/x-pack/plugins/siem/public/store/drag_and_drop/model.ts +++ b/x-pack/plugins/siem/public/common/store/drag_and_drop/model.ts @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { DataProvider } from '../../components/timeline/data_providers/data_provider'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; export interface IdToDataProvider { [id: string]: DataProvider; diff --git a/x-pack/plugins/siem/public/store/drag_and_drop/reducer.test.ts b/x-pack/plugins/siem/public/common/store/drag_and_drop/reducer.test.ts similarity index 85% rename from x-pack/plugins/siem/public/store/drag_and_drop/reducer.test.ts rename to x-pack/plugins/siem/public/common/store/drag_and_drop/reducer.test.ts index e779b990b590..d89f7beb208d 100644 --- a/x-pack/plugins/siem/public/store/drag_and_drop/reducer.test.ts +++ b/x-pack/plugins/siem/public/common/store/drag_and_drop/reducer.test.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DataProvider } from '../../components/timeline/data_providers/data_provider'; -import { mockDataProviders } from '../../components/timeline/data_providers/mock/mock_data_providers'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { mockDataProviders } from '../../../timelines/components/timeline/data_providers/mock/mock_data_providers'; import { IdToDataProvider } from './model'; import { registerProviderHandler, unRegisterProviderHandler } from './reducer'; diff --git a/x-pack/plugins/siem/public/store/drag_and_drop/reducer.ts b/x-pack/plugins/siem/public/common/store/drag_and_drop/reducer.ts similarity index 93% rename from x-pack/plugins/siem/public/store/drag_and_drop/reducer.ts rename to x-pack/plugins/siem/public/common/store/drag_and_drop/reducer.ts index d5d49f3a0a1b..d402da136a59 100644 --- a/x-pack/plugins/siem/public/store/drag_and_drop/reducer.ts +++ b/x-pack/plugins/siem/public/common/store/drag_and_drop/reducer.ts @@ -7,7 +7,7 @@ import { omit } from 'lodash/fp'; import { reducerWithInitialState } from 'typescript-fsa-reducers'; -import { DataProvider } from '../../components/timeline/data_providers/data_provider'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; import { registerProvider, unRegisterProvider } from './actions'; import { DragAndDropModel, IdToDataProvider } from './model'; diff --git a/x-pack/plugins/siem/public/store/drag_and_drop/selectors.ts b/x-pack/plugins/siem/public/common/store/drag_and_drop/selectors.ts similarity index 100% rename from x-pack/plugins/siem/public/store/drag_and_drop/selectors.ts rename to x-pack/plugins/siem/public/common/store/drag_and_drop/selectors.ts diff --git a/x-pack/plugins/siem/public/store/epic.ts b/x-pack/plugins/siem/public/common/store/epic.ts similarity index 59% rename from x-pack/plugins/siem/public/store/epic.ts rename to x-pack/plugins/siem/public/common/store/epic.ts index 336960588f48..b9e8e7d88c20 100644 --- a/x-pack/plugins/siem/public/store/epic.ts +++ b/x-pack/plugins/siem/public/common/store/epic.ts @@ -5,10 +5,10 @@ */ import { combineEpics } from 'redux-observable'; -import { createTimelineEpic } from './timeline/epic'; -import { createTimelineFavoriteEpic } from './timeline/epic_favorite'; -import { createTimelineNoteEpic } from './timeline/epic_note'; -import { createTimelinePinnedEventEpic } from './timeline/epic_pinned_event'; +import { createTimelineEpic } from '../../timelines/store/timeline/epic'; +import { createTimelineFavoriteEpic } from '../../timelines/store/timeline/epic_favorite'; +import { createTimelineNoteEpic } from '../../timelines/store/timeline/epic_note'; +import { createTimelinePinnedEventEpic } from '../../timelines/store/timeline/epic_pinned_event'; export const createRootEpic = () => combineEpics( diff --git a/x-pack/plugins/siem/public/store/index.ts b/x-pack/plugins/siem/public/common/store/index.ts similarity index 100% rename from x-pack/plugins/siem/public/store/index.ts rename to x-pack/plugins/siem/public/common/store/index.ts diff --git a/x-pack/plugins/siem/public/store/inputs/actions.ts b/x-pack/plugins/siem/public/common/store/inputs/actions.ts similarity index 96% rename from x-pack/plugins/siem/public/store/inputs/actions.ts rename to x-pack/plugins/siem/public/common/store/inputs/actions.ts index 04cdf5246de2..5b26957843f0 100644 --- a/x-pack/plugins/siem/public/store/inputs/actions.ts +++ b/x-pack/plugins/siem/public/common/store/inputs/actions.ts @@ -8,7 +8,7 @@ import actionCreatorFactory from 'typescript-fsa'; import { InspectQuery, Refetch, RefetchKql } from './model'; import { InputsModelId } from './constants'; -import { Filter, SavedQuery } from '../../../../../../src/plugins/data/public'; +import { Filter, SavedQuery } from '../../../../../../../src/plugins/data/public'; const actionCreator = actionCreatorFactory('x-pack/siem/local/inputs'); diff --git a/x-pack/plugins/siem/public/store/inputs/constants.ts b/x-pack/plugins/siem/public/common/store/inputs/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/store/inputs/constants.ts rename to x-pack/plugins/siem/public/common/store/inputs/constants.ts diff --git a/x-pack/plugins/siem/public/store/inputs/helpers.test.ts b/x-pack/plugins/siem/public/common/store/inputs/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/store/inputs/helpers.test.ts rename to x-pack/plugins/siem/public/common/store/inputs/helpers.test.ts diff --git a/x-pack/plugins/siem/public/store/inputs/helpers.ts b/x-pack/plugins/siem/public/common/store/inputs/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/store/inputs/helpers.ts rename to x-pack/plugins/siem/public/common/store/inputs/helpers.ts diff --git a/x-pack/plugins/siem/public/store/inputs/index.ts b/x-pack/plugins/siem/public/common/store/inputs/index.ts similarity index 100% rename from x-pack/plugins/siem/public/store/inputs/index.ts rename to x-pack/plugins/siem/public/common/store/inputs/index.ts diff --git a/x-pack/plugins/siem/public/store/inputs/model.ts b/x-pack/plugins/siem/public/common/store/inputs/model.ts similarity index 96% rename from x-pack/plugins/siem/public/store/inputs/model.ts rename to x-pack/plugins/siem/public/common/store/inputs/model.ts index 3e6be6ce859e..e851caf523eb 100644 --- a/x-pack/plugins/siem/public/store/inputs/model.ts +++ b/x-pack/plugins/siem/public/common/store/inputs/model.ts @@ -7,7 +7,7 @@ import { Dispatch } from 'redux'; import { InputsModelId } from './constants'; import { CONSTANTS } from '../../components/url_state/constants'; -import { Query, Filter, SavedQuery } from '../../../../../../src/plugins/data/public'; +import { Query, Filter, SavedQuery } from '../../../../../../../src/plugins/data/public'; export interface AbsoluteTimeRange { kind: 'absolute'; diff --git a/x-pack/plugins/siem/public/store/inputs/reducer.ts b/x-pack/plugins/siem/public/common/store/inputs/reducer.ts similarity index 100% rename from x-pack/plugins/siem/public/store/inputs/reducer.ts rename to x-pack/plugins/siem/public/common/store/inputs/reducer.ts diff --git a/x-pack/plugins/siem/public/store/inputs/selectors.ts b/x-pack/plugins/siem/public/common/store/inputs/selectors.ts similarity index 100% rename from x-pack/plugins/siem/public/store/inputs/selectors.ts rename to x-pack/plugins/siem/public/common/store/inputs/selectors.ts diff --git a/x-pack/plugins/siem/public/store/model.ts b/x-pack/plugins/siem/public/common/store/model.ts similarity index 83% rename from x-pack/plugins/siem/public/store/model.ts rename to x-pack/plugins/siem/public/common/store/model.ts index 686dc096e61b..0032a95cce32 100644 --- a/x-pack/plugins/siem/public/store/model.ts +++ b/x-pack/plugins/siem/public/common/store/model.ts @@ -6,7 +6,5 @@ export { appModel } from './app'; export { dragAndDropModel } from './drag_and_drop'; -export { hostsModel } from './hosts'; export { inputsModel } from './inputs'; -export { networkModel } from './network'; export * from './types'; diff --git a/x-pack/plugins/siem/public/common/store/reducer.ts b/x-pack/plugins/siem/public/common/store/reducer.ts new file mode 100644 index 000000000000..da1dcd3ea9e7 --- /dev/null +++ b/x-pack/plugins/siem/public/common/store/reducer.ts @@ -0,0 +1,46 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { combineReducers } from 'redux'; + +import { appReducer, AppState, initialAppState } from './app'; +import { dragAndDropReducer, DragAndDropState, initialDragAndDropState } from './drag_and_drop'; +import { createInitialInputsState, initialInputsState, inputsReducer, InputsState } from './inputs'; + +import { HostsPluginState, HostsPluginReducer } from '../../hosts/store'; +import { NetworkPluginState, NetworkPluginReducer } from '../../network/store'; +import { TimelinePluginState, TimelinePluginReducer } from '../../timelines/store/timeline'; + +export interface State extends HostsPluginState, NetworkPluginState, TimelinePluginState { + app: AppState; + dragAndDrop: DragAndDropState; + inputs: InputsState; +} + +export const initialState: Pick = { + app: initialAppState, + dragAndDrop: initialDragAndDropState, + inputs: initialInputsState, +}; + +type SubPluginsInitState = HostsPluginState & NetworkPluginState & TimelinePluginState; +export type SubPluginsInitReducer = HostsPluginReducer & + NetworkPluginReducer & + TimelinePluginReducer; + +export const createInitialState = (pluginsInitState: SubPluginsInitState): State => ({ + ...initialState, + ...pluginsInitState, + inputs: createInitialInputsState(), +}); + +export const createReducer = (pluginsReducer: SubPluginsInitReducer) => + combineReducers({ + app: appReducer, + dragAndDrop: dragAndDropReducer, + inputs: inputsReducer, + ...pluginsReducer, + }); diff --git a/x-pack/plugins/siem/public/store/selectors.ts b/x-pack/plugins/siem/public/common/store/selectors.ts similarity index 73% rename from x-pack/plugins/siem/public/store/selectors.ts rename to x-pack/plugins/siem/public/common/store/selectors.ts index b188f95ad27c..b938bae39b63 100644 --- a/x-pack/plugins/siem/public/store/selectors.ts +++ b/x-pack/plugins/siem/public/common/store/selectors.ts @@ -6,7 +6,4 @@ export { appSelectors } from './app'; export { dragAndDropSelectors } from './drag_and_drop'; -export { hostsSelectors } from './hosts'; export { inputsSelectors } from './inputs'; -export { networkSelectors } from './network'; -export { timelineSelectors } from './timeline'; diff --git a/x-pack/plugins/siem/public/store/store.ts b/x-pack/plugins/siem/public/common/store/store.ts similarity index 87% rename from x-pack/plugins/siem/public/store/store.ts rename to x-pack/plugins/siem/public/common/store/store.ts index 2af0f87b4494..ea7cb417fb24 100644 --- a/x-pack/plugins/siem/public/store/store.ts +++ b/x-pack/plugins/siem/public/common/store/store.ts @@ -9,13 +9,13 @@ import { Action, applyMiddleware, compose, createStore as createReduxStore, Stor import { createEpicMiddleware } from 'redux-observable'; import { Observable } from 'rxjs'; -import { AppApolloClient } from '../lib/lib'; import { telemetryMiddleware } from '../lib/telemetry'; import { appSelectors } from './app'; -import { timelineSelectors } from './timeline'; +import { timelineSelectors } from '../../timelines/store/timeline'; import { inputsSelectors } from './inputs'; -import { State, initialState, reducer } from './reducer'; +import { State, SubPluginsInitReducer, createReducer } from './reducer'; import { createRootEpic } from './epic'; +import { AppApolloClient } from '../lib/lib'; type ComposeType = typeof compose; declare global { @@ -24,8 +24,10 @@ declare global { } } let store: Store | null = null; +export { SubPluginsInitReducer }; export const createStore = ( - state: State = initialState, + state: State, + pluginsReducer: SubPluginsInitReducer, apolloClient: Observable ): Store => { const composeEnhancers = window.__REDUX_DEVTOOLS_EXTENSION_COMPOSE__ || compose; @@ -45,7 +47,7 @@ export const createStore = ( ); store = createReduxStore( - reducer, + createReducer(pluginsReducer), state, composeEnhancers(applyMiddleware(epicMiddleware, telemetryMiddleware)) ); diff --git a/x-pack/plugins/siem/public/store/types.ts b/x-pack/plugins/siem/public/common/store/types.ts similarity index 100% rename from x-pack/plugins/siem/public/store/types.ts rename to x-pack/plugins/siem/public/common/store/types.ts diff --git a/x-pack/plugins/siem/public/pages/common/translations.ts b/x-pack/plugins/siem/public/common/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/common/translations.ts rename to x-pack/plugins/siem/public/common/translations.ts diff --git a/x-pack/plugins/siem/public/utils/api/index.ts b/x-pack/plugins/siem/public/common/utils/api/index.ts similarity index 100% rename from x-pack/plugins/siem/public/utils/api/index.ts rename to x-pack/plugins/siem/public/common/utils/api/index.ts diff --git a/x-pack/plugins/siem/public/utils/apollo_context.ts b/x-pack/plugins/siem/public/common/utils/apollo_context.ts similarity index 100% rename from x-pack/plugins/siem/public/utils/apollo_context.ts rename to x-pack/plugins/siem/public/common/utils/apollo_context.ts diff --git a/x-pack/plugins/siem/public/utils/default_date_settings.test.ts b/x-pack/plugins/siem/public/common/utils/default_date_settings.test.ts similarity index 99% rename from x-pack/plugins/siem/public/utils/default_date_settings.test.ts rename to x-pack/plugins/siem/public/common/utils/default_date_settings.test.ts index 9dc179ba7a6e..3ae3ef2326ea 100644 --- a/x-pack/plugins/siem/public/utils/default_date_settings.test.ts +++ b/x-pack/plugins/siem/public/common/utils/default_date_settings.test.ts @@ -21,7 +21,7 @@ import { DEFAULT_INTERVAL_PAUSE, DEFAULT_INTERVAL_VALUE, DEFAULT_INTERVAL_TYPE, -} from '../../common/constants'; +} from '../../../common/constants'; import { KibanaServices } from '../lib/kibana'; import { Policy } from '../store/inputs/model'; @@ -30,7 +30,7 @@ import { Policy } from '../store/inputs/model'; // we have to repeat ourselves once const DEFAULT_FROM_DATE = '1983-05-31T13:03:54.234Z'; const DEFAULT_TO_DATE = '1990-05-31T13:03:54.234Z'; -jest.mock('../../common/constants', () => ({ +jest.mock('../../../common/constants', () => ({ DEFAULT_FROM: '1983-05-31T13:03:54.234Z', DEFAULT_TO: '1990-05-31T13:03:54.234Z', DEFAULT_INTERVAL_PAUSE: true, diff --git a/x-pack/plugins/siem/public/utils/default_date_settings.ts b/x-pack/plugins/siem/public/common/utils/default_date_settings.ts similarity index 98% rename from x-pack/plugins/siem/public/utils/default_date_settings.ts rename to x-pack/plugins/siem/public/common/utils/default_date_settings.ts index c4869a4851ae..3523a02ea44f 100644 --- a/x-pack/plugins/siem/public/utils/default_date_settings.ts +++ b/x-pack/plugins/siem/public/common/utils/default_date_settings.ts @@ -15,7 +15,7 @@ import { DEFAULT_TO, DEFAULT_INTERVAL_TYPE, DEFAULT_INTERVAL_VALUE, -} from '../../common/constants'; +} from '../../../common/constants'; import { KibanaServices } from '../lib/kibana'; import { Policy } from '../store/inputs/model'; diff --git a/x-pack/plugins/siem/public/utils/kql/use_update_kql.test.tsx b/x-pack/plugins/siem/public/common/utils/kql/use_update_kql.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/utils/kql/use_update_kql.test.tsx rename to x-pack/plugins/siem/public/common/utils/kql/use_update_kql.test.tsx index b70a5432e47f..9b1a397deb17 100644 --- a/x-pack/plugins/siem/public/utils/kql/use_update_kql.test.tsx +++ b/x-pack/plugins/siem/public/common/utils/kql/use_update_kql.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { applyKqlFilterQuery as dispatchApplyTimelineFilterQuery } from '../../store/timeline/actions'; +import { applyKqlFilterQuery as dispatchApplyTimelineFilterQuery } from '../../../timelines/store/timeline/actions'; import { mockIndexPattern } from '../../mock/index_pattern'; import { useUpdateKql } from './use_update_kql'; @@ -14,7 +14,7 @@ mockDispatch.mockImplementation(fn => fn); const applyTimelineKqlMock: jest.Mock = (dispatchApplyTimelineFilterQuery as unknown) as jest.Mock; -jest.mock('../../store/timeline/actions', () => ({ +jest.mock('../../../timelines/store/timeline/actions', () => ({ applyKqlFilterQuery: jest.fn(), })); diff --git a/x-pack/plugins/siem/public/utils/kql/use_update_kql.tsx b/x-pack/plugins/siem/public/common/utils/kql/use_update_kql.tsx similarity index 96% rename from x-pack/plugins/siem/public/utils/kql/use_update_kql.tsx rename to x-pack/plugins/siem/public/common/utils/kql/use_update_kql.tsx index af993588f7e0..d1f5b40086ce 100644 --- a/x-pack/plugins/siem/public/utils/kql/use_update_kql.tsx +++ b/x-pack/plugins/siem/public/common/utils/kql/use_update_kql.tsx @@ -9,7 +9,7 @@ import { IIndexPattern } from 'src/plugins/data/public'; import deepEqual from 'fast-deep-equal'; import { KueryFilterQuery } from '../../store'; -import { applyKqlFilterQuery as dispatchApplyTimelineFilterQuery } from '../../store/timeline/actions'; +import { applyKqlFilterQuery as dispatchApplyTimelineFilterQuery } from '../../../timelines/store/timeline/actions'; import { convertKueryToElasticSearchQuery } from '../../lib/keury'; import { RefetchKql } from '../../store/inputs/model'; diff --git a/x-pack/plugins/siem/public/utils/logo_endpoint/64_color.svg b/x-pack/plugins/siem/public/common/utils/logo_endpoint/64_color.svg similarity index 100% rename from x-pack/plugins/siem/public/utils/logo_endpoint/64_color.svg rename to x-pack/plugins/siem/public/common/utils/logo_endpoint/64_color.svg diff --git a/x-pack/plugins/siem/public/utils/route/helpers.ts b/x-pack/plugins/siem/public/common/utils/route/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/utils/route/helpers.ts rename to x-pack/plugins/siem/public/common/utils/route/helpers.ts diff --git a/x-pack/plugins/siem/public/utils/route/index.test.tsx b/x-pack/plugins/siem/public/common/utils/route/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/utils/route/index.test.tsx rename to x-pack/plugins/siem/public/common/utils/route/index.test.tsx index e777d281ed51..95e40b0f6630 100644 --- a/x-pack/plugins/siem/public/utils/route/index.test.tsx +++ b/x-pack/plugins/siem/public/common/utils/route/index.test.tsx @@ -7,7 +7,7 @@ import { mount } from 'enzyme'; import React from 'react'; -import { HostsTableType } from '../../store/hosts/model'; +import { HostsTableType } from '../../../hosts/store/model'; import { RouteSpyState } from './types'; import { ManageRoutesSpy } from './manage_spy_routes'; import { SpyRouteComponent } from './spy_routes'; diff --git a/x-pack/plugins/siem/public/utils/route/manage_spy_routes.tsx b/x-pack/plugins/siem/public/common/utils/route/manage_spy_routes.tsx similarity index 100% rename from x-pack/plugins/siem/public/utils/route/manage_spy_routes.tsx rename to x-pack/plugins/siem/public/common/utils/route/manage_spy_routes.tsx diff --git a/x-pack/plugins/siem/public/utils/route/spy_routes.tsx b/x-pack/plugins/siem/public/common/utils/route/spy_routes.tsx similarity index 100% rename from x-pack/plugins/siem/public/utils/route/spy_routes.tsx rename to x-pack/plugins/siem/public/common/utils/route/spy_routes.tsx diff --git a/x-pack/plugins/siem/public/utils/route/types.ts b/x-pack/plugins/siem/public/common/utils/route/types.ts similarity index 86% rename from x-pack/plugins/siem/public/utils/route/types.ts rename to x-pack/plugins/siem/public/common/utils/route/types.ts index 17b312a427c4..912da545a66a 100644 --- a/x-pack/plugins/siem/public/utils/route/types.ts +++ b/x-pack/plugins/siem/public/common/utils/route/types.ts @@ -8,11 +8,11 @@ import * as H from 'history'; import React from 'react'; import { RouteComponentProps } from 'react-router-dom'; -import { TimelineType } from '../../../common/types/timeline'; +import { TimelineType } from '../../../../common/types/timeline'; -import { HostsTableType } from '../../store/hosts/model'; -import { NetworkRouteType } from '../../pages/network/navigation/types'; -import { FlowTarget } from '../../graphql/types'; +import { HostsTableType } from '../../../hosts/store/model'; +import { NetworkRouteType } from '../../../network/pages/navigation/types'; +import { FlowTarget } from '../../../graphql/types'; export type SiemRouteType = HostsTableType | NetworkRouteType | TimelineType; export interface RouteSpyState { diff --git a/x-pack/plugins/siem/public/utils/route/use_route_spy.tsx b/x-pack/plugins/siem/public/common/utils/route/use_route_spy.tsx similarity index 100% rename from x-pack/plugins/siem/public/utils/route/use_route_spy.tsx rename to x-pack/plugins/siem/public/common/utils/route/use_route_spy.tsx diff --git a/x-pack/plugins/siem/public/utils/saved_query_services/index.tsx b/x-pack/plugins/siem/public/common/utils/saved_query_services/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/utils/saved_query_services/index.tsx rename to x-pack/plugins/siem/public/common/utils/saved_query_services/index.tsx index 335398177f0f..a8ee10ba2b80 100644 --- a/x-pack/plugins/siem/public/utils/saved_query_services/index.tsx +++ b/x-pack/plugins/siem/public/common/utils/saved_query_services/index.tsx @@ -8,7 +8,7 @@ import { useState, useEffect } from 'react'; import { SavedQueryService, createSavedQueryService, -} from '../../../../../../src/plugins/data/public'; +} from '../../../../../../../src/plugins/data/public'; import { useKibana } from '../../lib/kibana'; diff --git a/x-pack/plugins/siem/public/utils/timeline/use_show_timeline.tsx b/x-pack/plugins/siem/public/common/utils/timeline/use_show_timeline.tsx similarity index 94% rename from x-pack/plugins/siem/public/utils/timeline/use_show_timeline.tsx rename to x-pack/plugins/siem/public/common/utils/timeline/use_show_timeline.tsx index e969330b809f..78f22a86c189 100644 --- a/x-pack/plugins/siem/public/utils/timeline/use_show_timeline.tsx +++ b/x-pack/plugins/siem/public/common/utils/timeline/use_show_timeline.tsx @@ -7,7 +7,7 @@ import { useLocation } from 'react-router-dom'; import { useState, useEffect } from 'react'; -import { SiemPageName } from '../../pages/home/types'; +import { SiemPageName } from '../../../app/types'; const hideTimelineForRoutes = [`/${SiemPageName.case}/configure`]; diff --git a/x-pack/plugins/siem/public/utils/use_mount_appended.ts b/x-pack/plugins/siem/public/common/utils/use_mount_appended.ts similarity index 100% rename from x-pack/plugins/siem/public/utils/use_mount_appended.ts rename to x-pack/plugins/siem/public/common/utils/use_mount_appended.ts diff --git a/x-pack/plugins/siem/public/utils/validators/index.ts b/x-pack/plugins/siem/public/common/utils/validators/index.ts similarity index 100% rename from x-pack/plugins/siem/public/utils/validators/index.ts rename to x-pack/plugins/siem/public/common/utils/validators/index.ts diff --git a/x-pack/plugins/siem/public/components/page/network/index.tsx b/x-pack/plugins/siem/public/components/page/network/index.tsx deleted file mode 100644 index 1f502635a8de..000000000000 --- a/x-pack/plugins/siem/public/components/page/network/index.tsx +++ /dev/null @@ -1,12 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -export { IpOverview } from './ip_overview'; -export { KpiNetworkComponent } from './kpi_network'; -export { NetworkDnsTable } from './network_dns_table'; -export { NetworkTopCountriesTable } from './network_top_countries_table'; -export { NetworkTopNFlowTable } from './network_top_n_flow_table'; -export { NetworkHttpTable } from './network_http_table'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/hosts/components/authentications_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/authentications_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/hosts/components/authentications_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/index.test.tsx b/x-pack/plugins/siem/public/hosts/components/authentications_table/index.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/page/hosts/authentications_table/index.test.tsx rename to x-pack/plugins/siem/public/hosts/components/authentications_table/index.test.tsx index d7c25e97b383..2c39db2ab734 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/index.test.tsx +++ b/x-pack/plugins/siem/public/hosts/components/authentications_table/index.test.tsx @@ -9,9 +9,9 @@ import { getOr } from 'lodash/fp'; import React from 'react'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { apolloClientObservable, mockGlobalState } from '../../../../mock'; -import { createStore, hostsModel, State } from '../../../../store'; - +import { apolloClientObservable, mockGlobalState, SUB_PLUGINS_REDUCER } from '../../../common/mock'; +import { createStore, State } from '../../../common/store'; +import { hostsModel } from '../../store'; import { mockData } from './mock'; import * as i18n from './translations'; import { AuthenticationTable, getAuthenticationColumnsCurated } from '.'; @@ -20,10 +20,10 @@ describe('Authentication Table Component', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/index.tsx b/x-pack/plugins/siem/public/hosts/components/authentications_table/index.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/page/hosts/authentications_table/index.tsx rename to x-pack/plugins/siem/public/hosts/components/authentications_table/index.tsx index 678faff7654d..ef28f268bb73 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/index.tsx +++ b/x-pack/plugins/siem/public/hosts/components/authentications_table/index.tsx @@ -10,20 +10,23 @@ import { has } from 'lodash/fp'; import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; -import { hostsActions } from '../../../../store/hosts'; -import { AuthenticationsEdges } from '../../../../graphql/types'; -import { hostsModel, hostsSelectors, State } from '../../../../store'; -import { DragEffects, DraggableWrapper } from '../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { getEmptyTagValue } from '../../../empty_value'; -import { FormattedRelativePreferenceDate } from '../../../formatted_date'; -import { HostDetailsLink, IPDetailsLink } from '../../../links'; -import { Columns, ItemsPerRow, PaginatedTable } from '../../../paginated_table'; -import { IS_OPERATOR } from '../../../timeline/data_providers/data_provider'; -import { Provider } from '../../../timeline/data_providers/provider'; +import { hostsActions, hostsModel, hostsSelectors } from '../../store'; +import { AuthenticationsEdges } from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { + DragEffects, + DraggableWrapper, +} from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; +import { HostDetailsLink, IPDetailsLink } from '../../../common/components/links'; +import { Columns, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; import * as i18n from './translations'; -import { getRowItemDraggables } from '../../../tables/helpers'; +import { getRowItemDraggables } from '../../../common/components/tables/helpers'; const tableType = hostsModel.HostsTableType.authentications; diff --git a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/mock.ts b/x-pack/plugins/siem/public/hosts/components/authentications_table/mock.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/hosts/authentications_table/mock.ts rename to x-pack/plugins/siem/public/hosts/components/authentications_table/mock.ts index 50a1fa8eb7d7..84682fd14ac6 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/mock.ts +++ b/x-pack/plugins/siem/public/hosts/components/authentications_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { AuthenticationsData } from '../../../../graphql/types'; +import { AuthenticationsData } from '../../../graphql/types'; export const mockData: { Authentications: AuthenticationsData } = { Authentications: { diff --git a/x-pack/plugins/siem/public/components/page/hosts/authentications_table/translations.ts b/x-pack/plugins/siem/public/hosts/components/authentications_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/authentications_table/translations.ts rename to x-pack/plugins/siem/public/hosts/components/authentications_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/hosts/first_last_seen_host/index.test.tsx b/x-pack/plugins/siem/public/hosts/components/first_last_seen_host/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/page/hosts/first_last_seen_host/index.test.tsx rename to x-pack/plugins/siem/public/hosts/components/first_last_seen_host/index.test.tsx index 4a836333f331..9715c1cb5c8b 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/first_last_seen_host/index.test.tsx +++ b/x-pack/plugins/siem/public/hosts/components/first_last_seen_host/index.test.tsx @@ -9,9 +9,9 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { render, act } from '@testing-library/react'; -import { mockFirstLastSeenHostQuery } from '../../../../containers/hosts/first_last_seen/mock'; -import { wait } from '../../../../lib/helpers'; -import { TestProviders } from '../../../../mock'; +import { mockFirstLastSeenHostQuery } from '../../containers/hosts/first_last_seen/mock'; +import { wait } from '../../../common/lib/helpers'; +import { TestProviders } from '../../../common/mock'; import { FirstLastSeenHost, FirstLastSeenHostType } from '.'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/first_last_seen_host/index.tsx b/x-pack/plugins/siem/public/hosts/components/first_last_seen_host/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/page/hosts/first_last_seen_host/index.tsx rename to x-pack/plugins/siem/public/hosts/components/first_last_seen_host/index.tsx index 70dff5eda593..05e65b496fae 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/first_last_seen_host/index.tsx +++ b/x-pack/plugins/siem/public/hosts/components/first_last_seen_host/index.tsx @@ -8,9 +8,9 @@ import { EuiIcon, EuiLoadingSpinner, EuiText, EuiToolTip } from '@elastic/eui'; import React from 'react'; import { ApolloConsumer } from 'react-apollo'; -import { useFirstLastSeenHostQuery } from '../../../../containers/hosts/first_last_seen'; -import { getEmptyTagValue } from '../../../empty_value'; -import { FormattedRelativePreferenceDate } from '../../../formatted_date'; +import { useFirstLastSeenHostQuery } from '../../containers/hosts/first_last_seen'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; export enum FirstLastSeenHostType { FIRST_SEEN = 'first-seen', diff --git a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/hosts/components/hosts_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/hosts_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/hosts/components/hosts_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/columns.tsx b/x-pack/plugins/siem/public/hosts/components/hosts_table/columns.tsx similarity index 79% rename from x-pack/plugins/siem/public/components/page/hosts/hosts_table/columns.tsx rename to x-pack/plugins/siem/public/hosts/components/hosts_table/columns.tsx index 6bd82f3192f9..6b3097e1feab 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/columns.tsx +++ b/x-pack/plugins/siem/public/hosts/components/hosts_table/columns.tsx @@ -6,14 +6,20 @@ import { EuiIcon, EuiToolTip } from '@elastic/eui'; import React from 'react'; -import { DragEffects, DraggableWrapper } from '../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { getEmptyTagValue } from '../../../empty_value'; -import { HostDetailsLink } from '../../../links'; -import { FormattedRelativePreferenceDate } from '../../../formatted_date'; -import { IS_OPERATOR } from '../../../timeline/data_providers/data_provider'; -import { Provider } from '../../../timeline/data_providers/provider'; -import { AddFilterToGlobalSearchBar, createFilter } from '../../add_filter_to_global_search_bar'; +import { + DragEffects, + DraggableWrapper, +} from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { HostDetailsLink } from '../../../common/components/links'; +import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; +import { + AddFilterToGlobalSearchBar, + createFilter, +} from '../../../common/components/add_filter_to_global_search_bar'; import { HostsTableColumns } from './'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/index.test.tsx b/x-pack/plugins/siem/public/hosts/components/hosts_table/index.test.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/page/hosts/hosts_table/index.test.tsx rename to x-pack/plugins/siem/public/hosts/components/hosts_table/index.test.tsx index e561594013de..8c1429174bd7 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/index.test.tsx +++ b/x-pack/plugins/siem/public/hosts/components/hosts_table/index.test.tsx @@ -14,19 +14,21 @@ import { mockIndexPattern, mockGlobalState, TestProviders, -} from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { createStore, hostsModel, State } from '../../../../store'; -import { HostsTableType } from '../../../../store/hosts/model'; + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { hostsModel } from '../../../hosts/store'; +import { HostsTableType } from '../../../hosts/store/model'; import { HostsTable } from './index'; import { mockData } from './mock'; // Test will fail because we will to need to mock some core services to make the test work // For now let's forget about SiemSearchBar and QueryBar -jest.mock('../../../search_bar', () => ({ +jest.mock('../../../common/components/search_bar', () => ({ SiemSearchBar: () => null, })); -jest.mock('../../../query_bar', () => ({ +jest.mock('../../../common/components/query_bar', () => ({ QueryBar: () => null, })); @@ -34,11 +36,11 @@ describe('Hosts Table', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); const mount = useMountAppended(); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/index.tsx b/x-pack/plugins/siem/public/hosts/components/hosts_table/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/page/hosts/hosts_table/index.tsx rename to x-pack/plugins/siem/public/hosts/components/hosts_table/index.tsx index f09834d87e42..550ee24f6092 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/index.tsx +++ b/x-pack/plugins/siem/public/hosts/components/hosts_table/index.tsx @@ -8,7 +8,6 @@ import React, { useMemo, useCallback } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { IIndexPattern } from 'src/plugins/data/public'; -import { hostsActions } from '../../../../store/actions'; import { Direction, HostFields, @@ -17,17 +16,17 @@ import { HostsFields, HostsSortField, OsFields, -} from '../../../../graphql/types'; -import { assertUnreachable } from '../../../../lib/helpers'; -import { hostsModel, hostsSelectors, State } from '../../../../store'; +} from '../../../graphql/types'; +import { assertUnreachable } from '../../../common/lib/helpers'; +import { State } from '../../../common/store'; import { Columns, Criteria, ItemsPerRow, PaginatedTable, SortingBasicTable, -} from '../../../paginated_table'; - +} from '../../../common/components/paginated_table'; +import { hostsActions, hostsModel, hostsSelectors } from '../../store'; import { getHostsColumns } from './columns'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/mock.ts b/x-pack/plugins/siem/public/hosts/components/hosts_table/mock.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/hosts/hosts_table/mock.ts rename to x-pack/plugins/siem/public/hosts/components/hosts_table/mock.ts index b5a9c925c599..a3dd69be75cc 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/mock.ts +++ b/x-pack/plugins/siem/public/hosts/components/hosts_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostsData } from '../../../../graphql/types'; +import { HostsData } from '../../../graphql/types'; export const mockData: { Hosts: HostsData } = { Hosts: { diff --git a/x-pack/plugins/siem/public/components/page/hosts/hosts_table/translations.ts b/x-pack/plugins/siem/public/hosts/components/hosts_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/hosts_table/translations.ts rename to x-pack/plugins/siem/public/hosts/components/hosts_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/index.test.tsx b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/index.test.tsx rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/index.test.tsx index dc2340d42ebd..09e253ae5674 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/index.test.tsx +++ b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/index.test.tsx @@ -8,7 +8,7 @@ import { mockKpiHostsData, mockKpiHostDetailsData } from './mock'; import React from 'react'; import { shallow, ShallowWrapper } from 'enzyme'; import { KpiHostsComponentBase } from '.'; -import * as statItems from '../../../stat_items'; +import * as statItems from '../../../common/components/stat_items'; import { kpiHostsMapping } from './kpi_hosts_mapping'; import { kpiHostDetailsMapping } from './kpi_host_details_mapping'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/index.tsx b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/index.tsx rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/index.tsx index 65d592482184..ba70df7d361d 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/index.tsx +++ b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/index.tsx @@ -8,11 +8,15 @@ import { EuiFlexGroup, EuiFlexItem, EuiLoadingSpinner } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { KpiHostsData, KpiHostDetailsData } from '../../../../graphql/types'; -import { StatItemsComponent, StatItemsProps, useKpiMatrixStatus } from '../../../stat_items'; +import { KpiHostsData, KpiHostDetailsData } from '../../../graphql/types'; +import { + StatItemsComponent, + StatItemsProps, + useKpiMatrixStatus, +} from '../../../common/components/stat_items'; import { kpiHostsMapping } from './kpi_hosts_mapping'; import { kpiHostDetailsMapping } from './kpi_host_details_mapping'; -import { UpdateDateRange } from '../../../charts/common'; +import { UpdateDateRange } from '../../../common/components/charts/common'; const kpiWidgetHeight = 247; diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/kpi_host_details_mapping.ts b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/kpi_host_details_mapping.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/kpi_host_details_mapping.ts rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/kpi_host_details_mapping.ts index 59f8e55c4610..b3e98b70c4cb 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/kpi_host_details_mapping.ts +++ b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/kpi_host_details_mapping.ts @@ -5,7 +5,7 @@ */ import * as i18n from './translations'; -import { StatItems } from '../../../stat_items'; +import { StatItems } from '../../../common/components/stat_items'; import { KpiHostsChartColors } from './types'; export const kpiHostDetailsMapping: Readonly = [ diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/kpi_hosts_mapping.ts b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/kpi_hosts_mapping.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/kpi_hosts_mapping.ts rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/kpi_hosts_mapping.ts index e2d6348d0584..78a9fd5b84d1 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/kpi_hosts_mapping.ts +++ b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/kpi_hosts_mapping.ts @@ -5,8 +5,8 @@ */ import * as i18n from './translations'; -import { StatItems } from '../../../stat_items'; import { KpiHostsChartColors } from './types'; +import { StatItems } from '../../../common/components/stat_items'; export const kpiHostsMapping: Readonly = [ { diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/mock.tsx b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/mock.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/mock.tsx rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/mock.tsx diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/translations.ts b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/translations.ts rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/types.ts b/x-pack/plugins/siem/public/hosts/components/kpi_hosts/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/kpi_hosts/types.ts rename to x-pack/plugins/siem/public/hosts/components/kpi_hosts/types.ts diff --git a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/hosts/components/uncommon_process_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/index.test.tsx b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/index.test.tsx rename to x-pack/plugins/siem/public/hosts/components/uncommon_process_table/index.test.tsx index 76fc2a0c389c..1fcb9b5ef621 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/index.test.tsx +++ b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/index.test.tsx @@ -8,14 +8,14 @@ import { shallow } from 'enzyme'; import { getOr } from 'lodash/fp'; import React from 'react'; -import { TestProviders } from '../../../../mock'; -import { hostsModel } from '../../../../store'; -import { getEmptyValue } from '../../../empty_value'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../common/mock'; +import { hostsModel } from '../../store'; +import { getEmptyValue } from '../../../common/components/empty_value'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { getArgs, UncommonProcessTable, getUncommonColumnsCurated } from '.'; import { mockData } from './mock'; -import { HostsType } from '../../../../store/hosts/model'; +import { HostsType } from '../../store/model'; import * as i18n from './translations'; describe('Uncommon Process Table Component', () => { diff --git a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/index.tsx b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/index.tsx rename to x-pack/plugins/siem/public/hosts/components/uncommon_process_table/index.tsx index 2e59afcba4ac..a34cfe3327a9 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/index.tsx +++ b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/index.tsx @@ -9,16 +9,16 @@ import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; -import { hostsActions } from '../../../../store/actions'; -import { UncommonProcessesEdges, UncommonProcessItem } from '../../../../graphql/types'; -import { hostsModel, hostsSelectors, State } from '../../../../store'; -import { defaultToEmptyTag, getEmptyValue } from '../../../empty_value'; -import { HostDetailsLink } from '../../../links'; -import { Columns, ItemsPerRow, PaginatedTable } from '../../../paginated_table'; +import { UncommonProcessesEdges, UncommonProcessItem } from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { hostsActions, hostsModel, hostsSelectors } from '../../store'; +import { defaultToEmptyTag, getEmptyValue } from '../../../common/components/empty_value'; +import { HostDetailsLink } from '../../../common/components/links'; +import { Columns, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; import * as i18n from './translations'; -import { getRowItemDraggables } from '../../../tables/helpers'; -import { HostsType } from '../../../../store/hosts/model'; +import { getRowItemDraggables } from '../../../common/components/tables/helpers'; +import { HostsType } from '../../store/model'; const tableType = hostsModel.HostsTableType.uncommonProcesses; interface OwnProps { data: UncommonProcessesEdges[]; diff --git a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/mock.ts b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/mock.ts similarity index 97% rename from x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/mock.ts rename to x-pack/plugins/siem/public/hosts/components/uncommon_process_table/mock.ts index bcd76706e303..52b835278634 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/mock.ts +++ b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { UncommonProcessesData } from '../../../../graphql/types'; +import { UncommonProcessesData } from '../../../graphql/types'; export const mockData: { UncommonProcess: UncommonProcessesData } = { UncommonProcess: { diff --git a/x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/translations.ts b/x-pack/plugins/siem/public/hosts/components/uncommon_process_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/uncommon_process_table/translations.ts rename to x-pack/plugins/siem/public/hosts/components/uncommon_process_table/translations.ts diff --git a/x-pack/plugins/siem/public/containers/authentications/index.gql_query.ts b/x-pack/plugins/siem/public/hosts/containers/authentications/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/authentications/index.gql_query.ts rename to x-pack/plugins/siem/public/hosts/containers/authentications/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/authentications/index.tsx b/x-pack/plugins/siem/public/hosts/containers/authentications/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/containers/authentications/index.tsx rename to x-pack/plugins/siem/public/hosts/containers/authentications/index.tsx index 6d4a88c45a76..bfada0583f8e 100644 --- a/x-pack/plugins/siem/public/containers/authentications/index.tsx +++ b/x-pack/plugins/siem/public/hosts/containers/authentications/index.tsx @@ -10,18 +10,21 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { AuthenticationsEdges, GetAuthenticationsQuery, PageInfoPaginated, -} from '../../graphql/types'; -import { hostsModel, hostsSelectors, inputsModel, State, inputsSelectors } from '../../store'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; - +} from '../../../graphql/types'; +import { inputsModel, State, inputsSelectors } from '../../../common/store'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; +import { hostsModel, hostsSelectors } from '../../store'; import { authenticationsQuery } from './index.gql_query'; const ID = 'authenticationQuery'; diff --git a/x-pack/plugins/siem/public/containers/hosts/first_last_seen/first_last_seen.gql_query.ts b/x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/first_last_seen.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/hosts/first_last_seen/first_last_seen.gql_query.ts rename to x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/first_last_seen.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/hosts/first_last_seen/index.ts b/x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/index.ts similarity index 87% rename from x-pack/plugins/siem/public/containers/hosts/first_last_seen/index.ts rename to x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/index.ts index a460fa8999b5..54e9147be17c 100644 --- a/x-pack/plugins/siem/public/containers/hosts/first_last_seen/index.ts +++ b/x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/index.ts @@ -8,11 +8,11 @@ import ApolloClient from 'apollo-client'; import { get } from 'lodash/fp'; import React, { useEffect, useState } from 'react'; -import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; -import { useUiSetting$ } from '../../../lib/kibana'; -import { GetHostFirstLastSeenQuery } from '../../../graphql/types'; -import { inputsModel } from '../../../store'; -import { QueryTemplateProps } from '../../query_template'; +import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; +import { useUiSetting$ } from '../../../../common/lib/kibana'; +import { GetHostFirstLastSeenQuery } from '../../../../graphql/types'; +import { inputsModel } from '../../../../common/store'; +import { QueryTemplateProps } from '../../../../common/containers/query_template'; import { HostFirstLastSeenGqlQuery } from './first_last_seen.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/hosts/first_last_seen/mock.ts b/x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/mock.ts similarity index 89% rename from x-pack/plugins/siem/public/containers/hosts/first_last_seen/mock.ts rename to x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/mock.ts index f59df84dacc1..51e484ffbd85 100644 --- a/x-pack/plugins/siem/public/containers/hosts/first_last_seen/mock.ts +++ b/x-pack/plugins/siem/public/hosts/containers/hosts/first_last_seen/mock.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DEFAULT_INDEX_PATTERN } from '../../../../common/constants'; -import { GetHostFirstLastSeenQuery } from '../../../graphql/types'; +import { DEFAULT_INDEX_PATTERN } from '../../../../../common/constants'; +import { GetHostFirstLastSeenQuery } from '../../../../graphql/types'; import { HostFirstLastSeenGqlQuery } from './first_last_seen.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/hosts/hosts_table.gql_query.ts b/x-pack/plugins/siem/public/hosts/containers/hosts/hosts_table.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/hosts/hosts_table.gql_query.ts rename to x-pack/plugins/siem/public/hosts/containers/hosts/hosts_table.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/hosts/index.tsx b/x-pack/plugins/siem/public/hosts/containers/hosts/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/containers/hosts/index.tsx rename to x-pack/plugins/siem/public/hosts/containers/hosts/index.tsx index 733c2224d840..70f21b6f23cc 100644 --- a/x-pack/plugins/siem/public/containers/hosts/index.tsx +++ b/x-pack/plugins/siem/public/hosts/containers/hosts/index.tsx @@ -11,21 +11,24 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { Direction, GetHostsTableQuery, HostsEdges, HostsFields, PageInfoPaginated, -} from '../../graphql/types'; -import { hostsModel, hostsSelectors, inputsModel, State, inputsSelectors } from '../../store'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; - +} from '../../../graphql/types'; +import { inputsModel, State, inputsSelectors } from '../../../common/store'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { hostsModel, hostsSelectors } from '../../store'; import { HostsTableQuery } from './hosts_table.gql_query'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; const ID = 'hostsQuery'; diff --git a/x-pack/plugins/siem/public/containers/hosts/overview/host_overview.gql_query.ts b/x-pack/plugins/siem/public/hosts/containers/hosts/overview/host_overview.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/hosts/overview/host_overview.gql_query.ts rename to x-pack/plugins/siem/public/hosts/containers/hosts/overview/host_overview.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/hosts/overview/index.tsx b/x-pack/plugins/siem/public/hosts/containers/hosts/overview/index.tsx similarity index 85% rename from x-pack/plugins/siem/public/containers/hosts/overview/index.tsx rename to x-pack/plugins/siem/public/hosts/containers/hosts/overview/index.tsx index 5057e872b531..5267fff3a26d 100644 --- a/x-pack/plugins/siem/public/containers/hosts/overview/index.tsx +++ b/x-pack/plugins/siem/public/hosts/containers/hosts/overview/index.tsx @@ -10,14 +10,14 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; -import { inputsModel, inputsSelectors, State } from '../../../store'; -import { getDefaultFetchPolicy } from '../../helpers'; -import { QueryTemplate, QueryTemplateProps } from '../../query_template'; -import { withKibana, WithKibanaProps } from '../../../lib/kibana'; +import { DEFAULT_INDEX_KEY } from '../../../../../common/constants'; +import { inputsModel, inputsSelectors, State } from '../../../../common/store'; +import { getDefaultFetchPolicy } from '../../../../common/containers/helpers'; +import { QueryTemplate, QueryTemplateProps } from '../../../../common/containers/query_template'; +import { withKibana, WithKibanaProps } from '../../../../common/lib/kibana'; import { HostOverviewQuery } from './host_overview.gql_query'; -import { GetHostOverviewQuery, HostItem } from '../../../graphql/types'; +import { GetHostOverviewQuery, HostItem } from '../../../../graphql/types'; const ID = 'hostOverviewQuery'; diff --git a/x-pack/plugins/siem/public/containers/kpi_host_details/index.gql_query.tsx b/x-pack/plugins/siem/public/hosts/containers/kpi_host_details/index.gql_query.tsx similarity index 100% rename from x-pack/plugins/siem/public/containers/kpi_host_details/index.gql_query.tsx rename to x-pack/plugins/siem/public/hosts/containers/kpi_host_details/index.gql_query.tsx diff --git a/x-pack/plugins/siem/public/containers/kpi_host_details/index.tsx b/x-pack/plugins/siem/public/hosts/containers/kpi_host_details/index.tsx similarity index 86% rename from x-pack/plugins/siem/public/containers/kpi_host_details/index.tsx rename to x-pack/plugins/siem/public/hosts/containers/kpi_host_details/index.tsx index de9d54b1a185..1551e7d70671 100644 --- a/x-pack/plugins/siem/public/containers/kpi_host_details/index.tsx +++ b/x-pack/plugins/siem/public/hosts/containers/kpi_host_details/index.tsx @@ -9,12 +9,12 @@ import React from 'react'; import { Query } from 'react-apollo'; import { connect, ConnectedProps } from 'react-redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { KpiHostDetailsData, GetKpiHostDetailsQuery } from '../../graphql/types'; -import { inputsModel, inputsSelectors, State } from '../../store'; -import { useUiSetting } from '../../lib/kibana'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplateProps } from '../query_template'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { KpiHostDetailsData, GetKpiHostDetailsQuery } from '../../../graphql/types'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { useUiSetting } from '../../../common/lib/kibana'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { QueryTemplateProps } from '../../../common/containers/query_template'; import { kpiHostDetailsQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/kpi_hosts/index.gql_query.ts b/x-pack/plugins/siem/public/hosts/containers/kpi_hosts/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/kpi_hosts/index.gql_query.ts rename to x-pack/plugins/siem/public/hosts/containers/kpi_hosts/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/kpi_hosts/index.tsx b/x-pack/plugins/siem/public/hosts/containers/kpi_hosts/index.tsx similarity index 83% rename from x-pack/plugins/siem/public/containers/kpi_hosts/index.tsx rename to x-pack/plugins/siem/public/hosts/containers/kpi_hosts/index.tsx index 5be2423e8a16..1a6df58f0459 100644 --- a/x-pack/plugins/siem/public/containers/kpi_hosts/index.tsx +++ b/x-pack/plugins/siem/public/hosts/containers/kpi_hosts/index.tsx @@ -9,12 +9,12 @@ import React from 'react'; import { Query } from 'react-apollo'; import { connect, ConnectedProps } from 'react-redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { GetKpiHostsQuery, KpiHostsData } from '../../graphql/types'; -import { inputsModel, inputsSelectors, State } from '../../store'; -import { useUiSetting } from '../../lib/kibana'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplateProps } from '../query_template'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { GetKpiHostsQuery, KpiHostsData } from '../../../graphql/types'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { useUiSetting } from '../../../common/lib/kibana'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { QueryTemplateProps } from '../../../common/containers/query_template'; import { kpiHostsQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/uncommon_processes/index.gql_query.ts b/x-pack/plugins/siem/public/hosts/containers/uncommon_processes/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/uncommon_processes/index.gql_query.ts rename to x-pack/plugins/siem/public/hosts/containers/uncommon_processes/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/uncommon_processes/index.tsx b/x-pack/plugins/siem/public/hosts/containers/uncommon_processes/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/containers/uncommon_processes/index.tsx rename to x-pack/plugins/siem/public/hosts/containers/uncommon_processes/index.tsx index 0a2ce67d9be8..f8e5b1bed73c 100644 --- a/x-pack/plugins/siem/public/containers/uncommon_processes/index.tsx +++ b/x-pack/plugins/siem/public/hosts/containers/uncommon_processes/index.tsx @@ -10,18 +10,21 @@ import { Query } from 'react-apollo'; import { connect, ConnectedProps } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { GetUncommonProcessesQuery, PageInfoPaginated, UncommonProcessesEdges, -} from '../../graphql/types'; -import { hostsModel, hostsSelectors, inputsModel, State, inputsSelectors } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; - +} from '../../../graphql/types'; +import { inputsModel, State, inputsSelectors } from '../../../common/store'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; +import { hostsModel, hostsSelectors } from '../../store'; import { uncommonProcessesQuery } from './index.gql_query'; const ID = 'uncommonProcessesQuery'; diff --git a/x-pack/plugins/siem/public/hosts/index.ts b/x-pack/plugins/siem/public/hosts/index.ts new file mode 100644 index 000000000000..6f27428e71c2 --- /dev/null +++ b/x-pack/plugins/siem/public/hosts/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SecuritySubPluginWithStore } from '../app/types'; +import { getHostsRoutes } from './routes'; +import { initialHostsState, hostsReducer, HostsState } from './store'; + +export class Hosts { + public setup() {} + + public start(): SecuritySubPluginWithStore<'hosts', HostsState> { + return { + routes: getHostsRoutes(), + store: { + initialState: { hosts: initialHostsState }, + reducer: { hosts: hostsReducer }, + }, + }; + } +} diff --git a/x-pack/plugins/siem/public/pages/hosts/details/details_tabs.test.tsx b/x-pack/plugins/siem/public/hosts/pages/details/details_tabs.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/hosts/details/details_tabs.test.tsx rename to x-pack/plugins/siem/public/hosts/pages/details/details_tabs.test.tsx index 81c1b317d459..fa76dc93375e 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/details_tabs.test.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/details/details_tabs.test.tsx @@ -9,16 +9,16 @@ import { IIndexPattern } from 'src/plugins/data/public'; import { MemoryRouter } from 'react-router-dom'; import useResizeObserver from 'use-resize-observer/polyfilled'; -import { mockIndexPattern } from '../../../mock/index_pattern'; -import { TestProviders } from '../../../mock/test_providers'; +import { mockIndexPattern } from '../../../common/mock/index_pattern'; +import { TestProviders } from '../../../common/mock/test_providers'; import { HostDetailsTabs } from './details_tabs'; import { HostDetailsTabsProps, SetAbsoluteRangeDatePicker } from './types'; import { hostDetailsPagePath } from '../types'; import { type } from './utils'; -import { useMountAppended } from '../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { getHostDetailsPageFilters } from './helpers'; -jest.mock('../../../containers/source', () => ({ +jest.mock('../../../common/containers/source', () => ({ indicesExistOrDataTemporarilyUnavailable: () => true, WithSource: ({ children, @@ -29,10 +29,10 @@ jest.mock('../../../containers/source', () => ({ // Test will fail because we will to need to mock some core services to make the test work // For now let's forget about SiemSearchBar and QueryBar -jest.mock('../../../components/search_bar', () => ({ +jest.mock('../../../common/components/search_bar', () => ({ SiemSearchBar: () => null, })); -jest.mock('../../../components/query_bar', () => ({ +jest.mock('../../../common/components/query_bar', () => ({ QueryBar: () => null, })); diff --git a/x-pack/plugins/siem/public/pages/hosts/details/details_tabs.tsx b/x-pack/plugins/siem/public/hosts/pages/details/details_tabs.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/hosts/details/details_tabs.tsx rename to x-pack/plugins/siem/public/hosts/pages/details/details_tabs.tsx index d6c0211901ff..505d0f37ca03 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/details_tabs.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/details/details_tabs.tsx @@ -7,12 +7,12 @@ import React, { useCallback } from 'react'; import { Route, Switch } from 'react-router-dom'; -import { UpdateDateRange } from '../../../components/charts/common'; -import { scoreIntervalToDateTime } from '../../../components/ml/score/score_interval_to_datetime'; -import { Anomaly } from '../../../components/ml/types'; -import { HostsTableType } from '../../../store/hosts/model'; -import { AnomaliesQueryTabBody } from '../../../containers/anomalies/anomalies_query_tab_body'; -import { AnomaliesHostTable } from '../../../components/ml/tables/anomalies_host_table'; +import { UpdateDateRange } from '../../../common/components/charts/common'; +import { scoreIntervalToDateTime } from '../../../common/components/ml/score/score_interval_to_datetime'; +import { Anomaly } from '../../../common/components/ml/types'; +import { HostsTableType } from '../../store/model'; +import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body'; +import { AnomaliesHostTable } from '../../../common/components/ml/tables/anomalies_host_table'; import { HostDetailsTabsProps } from './types'; import { type } from './utils'; diff --git a/x-pack/plugins/siem/public/pages/hosts/details/helpers.test.ts b/x-pack/plugins/siem/public/hosts/pages/details/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/hosts/details/helpers.test.ts rename to x-pack/plugins/siem/public/hosts/pages/details/helpers.test.ts diff --git a/x-pack/plugins/siem/public/pages/hosts/details/helpers.ts b/x-pack/plugins/siem/public/hosts/pages/details/helpers.ts similarity index 95% rename from x-pack/plugins/siem/public/pages/hosts/details/helpers.ts rename to x-pack/plugins/siem/public/hosts/pages/details/helpers.ts index 6da76f2fb5ca..9ec0084d708a 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/helpers.ts +++ b/x-pack/plugins/siem/public/hosts/pages/details/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { escapeQueryValue } from '../../../lib/keury'; +import { escapeQueryValue } from '../../../common/lib/keury'; import { Filter } from '../../../../../../../src/plugins/data/public'; /** Returns the kqlQueryExpression for the `Events` widget on the `Host Details` page */ diff --git a/x-pack/plugins/siem/public/pages/hosts/details/index.tsx b/x-pack/plugins/siem/public/hosts/pages/details/index.tsx similarity index 81% rename from x-pack/plugins/siem/public/pages/hosts/details/index.tsx rename to x-pack/plugins/siem/public/hosts/pages/details/index.tsx index afed0fab0ade..a5fabf4d515f 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/index.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/details/index.tsx @@ -9,31 +9,34 @@ import React, { useEffect, useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { StickyContainer } from 'react-sticky'; -import { UpdateDateRange } from '../../../components/charts/common'; -import { FiltersGlobal } from '../../../components/filters_global'; -import { HeaderPage } from '../../../components/header_page'; -import { LastEventTime } from '../../../components/last_event_time'; -import { AnomalyTableProvider } from '../../../components/ml/anomaly/anomaly_table_provider'; -import { hostToCriteria } from '../../../components/ml/criteria/host_to_criteria'; +import { UpdateDateRange } from '../../../common/components/charts/common'; +import { FiltersGlobal } from '../../../common/components/filters_global'; +import { HeaderPage } from '../../../common/components/header_page'; +import { LastEventTime } from '../../../common/components/last_event_time'; +import { AnomalyTableProvider } from '../../../common/components/ml/anomaly/anomaly_table_provider'; +import { hostToCriteria } from '../../../common/components/ml/criteria/host_to_criteria'; import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; -import { useMlCapabilities } from '../../../components/ml_popover/hooks/use_ml_capabilities'; -import { scoreIntervalToDateTime } from '../../../components/ml/score/score_interval_to_datetime'; -import { SiemNavigation } from '../../../components/navigation'; -import { KpiHostsComponent } from '../../../components/page/hosts'; -import { HostOverview } from '../../../components/page/hosts/host_overview'; -import { manageQuery } from '../../../components/page/manage_query'; -import { SiemSearchBar } from '../../../components/search_bar'; -import { WrapperPage } from '../../../components/wrapper_page'; -import { HostOverviewByNameQuery } from '../../../containers/hosts/overview'; -import { KpiHostDetailsQuery } from '../../../containers/kpi_host_details'; -import { indicesExistOrDataTemporarilyUnavailable, WithSource } from '../../../containers/source'; +import { useMlCapabilities } from '../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { scoreIntervalToDateTime } from '../../../common/components/ml/score/score_interval_to_datetime'; +import { SiemNavigation } from '../../../common/components/navigation'; +import { KpiHostsComponent } from '../../components/kpi_hosts'; +import { HostOverview } from '../../../overview/components/host_overview'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { SiemSearchBar } from '../../../common/components/search_bar'; +import { WrapperPage } from '../../../common/components/wrapper_page'; +import { HostOverviewByNameQuery } from '../../containers/hosts/overview'; +import { KpiHostDetailsQuery } from '../../containers/kpi_host_details'; +import { + indicesExistOrDataTemporarilyUnavailable, + WithSource, +} from '../../../common/containers/source'; import { LastEventIndexKey } from '../../../graphql/types'; -import { useKibana } from '../../../lib/kibana'; -import { convertToBuildEsQuery } from '../../../lib/keury'; -import { inputsSelectors, State } from '../../../store'; -import { setHostDetailsTablesActivePageToZero as dispatchHostDetailsTablesActivePageToZero } from '../../../store/hosts/actions'; -import { setAbsoluteRangeDatePicker as dispatchAbsoluteRangeDatePicker } from '../../../store/inputs/actions'; -import { SpyRoute } from '../../../utils/route/spy_routes'; +import { useKibana } from '../../../common/lib/kibana'; +import { convertToBuildEsQuery } from '../../../common/lib/keury'; +import { inputsSelectors, State } from '../../../common/store'; +import { setHostDetailsTablesActivePageToZero as dispatchHostDetailsTablesActivePageToZero } from '../../store/actions'; +import { setAbsoluteRangeDatePicker as dispatchAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; +import { SpyRoute } from '../../../common/utils/route/spy_routes'; import { esQuery, Filter } from '../../../../../../../src/plugins/data/public'; import { HostsEmptyPage } from '../hosts_empty_page'; diff --git a/x-pack/plugins/siem/public/pages/hosts/details/nav_tabs.test.tsx b/x-pack/plugins/siem/public/hosts/pages/details/nav_tabs.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/hosts/details/nav_tabs.test.tsx rename to x-pack/plugins/siem/public/hosts/pages/details/nav_tabs.test.tsx index 6710edb7b20f..0dd31dc9abce 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/nav_tabs.test.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/details/nav_tabs.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostsTableType } from '../../../store/hosts/model'; +import { HostsTableType } from '../../store/model'; import { navTabsHostDetails } from './nav_tabs'; describe('navTabsHostDetails', () => { diff --git a/x-pack/plugins/siem/public/pages/hosts/details/nav_tabs.tsx b/x-pack/plugins/siem/public/hosts/pages/details/nav_tabs.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/hosts/details/nav_tabs.tsx rename to x-pack/plugins/siem/public/hosts/pages/details/nav_tabs.tsx index f828dc250f0d..4d04d16580a6 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/nav_tabs.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/details/nav_tabs.tsx @@ -5,10 +5,10 @@ */ import { omit } from 'lodash/fp'; -import * as i18n from './../translations'; +import * as i18n from '../translations'; import { HostDetailsNavTab } from './types'; -import { HostsTableType } from '../../../store/hosts/model'; -import { SiemPageName } from '../../home/types'; +import { HostsTableType } from '../../store/model'; +import { SiemPageName } from '../../../app/types'; const getTabsOnHostDetailsUrl = (hostName: string, tabName: HostsTableType) => `#/${SiemPageName.hosts}/${hostName}/${tabName}`; diff --git a/x-pack/plugins/siem/public/pages/hosts/details/types.ts b/x-pack/plugins/siem/public/hosts/pages/details/types.ts similarity index 85% rename from x-pack/plugins/siem/public/pages/hosts/details/types.ts rename to x-pack/plugins/siem/public/hosts/pages/details/types.ts index 03c8646bae14..f145abed2d8f 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/types.ts +++ b/x-pack/plugins/siem/public/hosts/pages/details/types.ts @@ -6,13 +6,13 @@ import { ActionCreator } from 'typescript-fsa'; import { Query, IIndexPattern, Filter } from 'src/plugins/data/public'; -import { InputsModelId } from '../../../store/inputs/constants'; -import { HostComponentProps } from '../../../components/link_to/redirect_to_hosts'; -import { HostsTableType } from '../../../store/hosts/model'; +import { InputsModelId } from '../../../common/store/inputs/constants'; +import { HostComponentProps } from '../../../common/components/link_to/redirect_to_hosts'; +import { HostsTableType } from '../../store/model'; import { HostsQueryProps } from '../types'; -import { NavTab } from '../../../components/navigation/types'; +import { NavTab } from '../../../common/components/navigation/types'; import { KeyHostsNavTabWithoutMlPermission } from '../navigation/types'; -import { hostsModel } from '../../../store'; +import { hostsModel } from '../../store'; interface HostDetailsComponentReduxProps { query: Query; diff --git a/x-pack/plugins/siem/public/pages/hosts/details/utils.ts b/x-pack/plugins/siem/public/hosts/pages/details/utils.ts similarity index 83% rename from x-pack/plugins/siem/public/pages/hosts/details/utils.ts rename to x-pack/plugins/siem/public/hosts/pages/details/utils.ts index af4ba8eb091e..d45cb3368b4e 100644 --- a/x-pack/plugins/siem/public/pages/hosts/details/utils.ts +++ b/x-pack/plugins/siem/public/hosts/pages/details/utils.ts @@ -6,13 +6,17 @@ import { get, isEmpty } from 'lodash/fp'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths import { ChromeBreadcrumb } from '../../../../../../../src/core/public'; -import { hostsModel } from '../../../store'; -import { HostsTableType } from '../../../store/hosts/model'; -import { getHostsUrl, getHostDetailsUrl } from '../../../components/link_to/redirect_to_hosts'; +import { hostsModel } from '../../store'; +import { HostsTableType } from '../../store/model'; +import { + getHostsUrl, + getHostDetailsUrl, +} from '../../../common/components/link_to/redirect_to_hosts'; import * as i18n from '../translations'; -import { HostRouteSpyState } from '../../../utils/route/types'; +import { HostRouteSpyState } from '../../../common/utils/route/types'; export const type = hostsModel.HostsType.details; diff --git a/x-pack/plugins/siem/public/pages/hosts/hosts.test.tsx b/x-pack/plugins/siem/public/hosts/pages/hosts.test.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/hosts/hosts.test.tsx rename to x-pack/plugins/siem/public/hosts/pages/hosts.test.tsx index 6134c1dd6911..5cb35eaa775b 100644 --- a/x-pack/plugins/siem/public/pages/hosts/hosts.test.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/hosts.test.tsx @@ -11,23 +11,28 @@ import { Router } from 'react-router-dom'; import { MockedProvider } from 'react-apollo/test-utils'; import { Filter } from '../../../../../../src/plugins/data/common/es_query'; -import '../../mock/match_media'; -import { mocksSource } from '../../containers/source/mock'; -import { wait } from '../../lib/helpers'; -import { apolloClientObservable, TestProviders, mockGlobalState } from '../../mock'; -import { SiemNavigation } from '../../components/navigation'; -import { inputsActions } from '../../store/inputs'; -import { State, createStore } from '../../store'; +import '../../common/mock/match_media'; +import { mocksSource } from '../../common/containers/source/mock'; +import { wait } from '../../common/lib/helpers'; +import { + apolloClientObservable, + TestProviders, + mockGlobalState, + SUB_PLUGINS_REDUCER, +} from '../../common/mock'; +import { SiemNavigation } from '../../common/components/navigation'; +import { inputsActions } from '../../common/store/inputs'; +import { State, createStore } from '../../common/store'; import { HostsComponentProps } from './types'; import { Hosts } from './hosts'; import { HostsTabs } from './hosts_tabs'; // Test will fail because we will to need to mock some core services to make the test work // For now let's forget about SiemSearchBar and QueryBar -jest.mock('../../components/search_bar', () => ({ +jest.mock('../../common/components/search_bar', () => ({ SiemSearchBar: () => null, })); -jest.mock('../../components/query_bar', () => ({ +jest.mock('../../common/components/query_bar', () => ({ QueryBar: () => null, })); @@ -166,7 +171,7 @@ describe('Hosts - rendering', () => { ]; localSource[0].result.data.source.status.indicesExist = true; const myState: State = mockGlobalState; - const myStore = createStore(myState, apolloClientObservable); + const myStore = createStore(myState, SUB_PLUGINS_REDUCER, apolloClientObservable); const wrapper = mount( diff --git a/x-pack/plugins/siem/public/pages/hosts/hosts.tsx b/x-pack/plugins/siem/public/hosts/pages/hosts.tsx similarity index 81% rename from x-pack/plugins/siem/public/pages/hosts/hosts.tsx rename to x-pack/plugins/siem/public/hosts/pages/hosts.tsx index 0e29d634d07a..f7583f65a4fc 100644 --- a/x-pack/plugins/siem/public/pages/hosts/hosts.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/hosts.tsx @@ -10,34 +10,38 @@ import { connect, ConnectedProps } from 'react-redux'; import { StickyContainer } from 'react-sticky'; import { useParams } from 'react-router-dom'; -import { UpdateDateRange } from '../../components/charts/common'; -import { FiltersGlobal } from '../../components/filters_global'; -import { HeaderPage } from '../../components/header_page'; -import { LastEventTime } from '../../components/last_event_time'; +import { UpdateDateRange } from '../../common/components/charts/common'; +import { FiltersGlobal } from '../../common/components/filters_global'; +import { HeaderPage } from '../../common/components/header_page'; +import { LastEventTime } from '../../common/components/last_event_time'; import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; -import { SiemNavigation } from '../../components/navigation'; -import { KpiHostsComponent } from '../../components/page/hosts'; -import { manageQuery } from '../../components/page/manage_query'; -import { SiemSearchBar } from '../../components/search_bar'; -import { WrapperPage } from '../../components/wrapper_page'; -import { KpiHostsQuery } from '../../containers/kpi_hosts'; -import { indicesExistOrDataTemporarilyUnavailable, WithSource } from '../../containers/source'; +import { SiemNavigation } from '../../common/components/navigation'; +import { KpiHostsComponent } from '../components/kpi_hosts'; +import { manageQuery } from '../../common/components/page/manage_query'; +import { SiemSearchBar } from '../../common/components/search_bar'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { KpiHostsQuery } from '../containers/kpi_hosts'; +import { + indicesExistOrDataTemporarilyUnavailable, + WithSource, +} from '../../common/containers/source'; import { LastEventIndexKey } from '../../graphql/types'; -import { useKibana } from '../../lib/kibana'; -import { convertToBuildEsQuery } from '../../lib/keury'; -import { inputsSelectors, State, hostsModel } from '../../store'; -import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../store/inputs/actions'; +import { useKibana } from '../../common/lib/kibana'; +import { convertToBuildEsQuery } from '../../common/lib/keury'; +import { inputsSelectors, State } from '../../common/store'; +import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; -import { SpyRoute } from '../../utils/route/spy_routes'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; import { esQuery } from '../../../../../../src/plugins/data/public'; -import { useMlCapabilities } from '../../components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../common/components/ml_popover/hooks/use_ml_capabilities'; import { HostsEmptyPage } from './hosts_empty_page'; import { HostsTabs } from './hosts_tabs'; import { navTabsHosts } from './nav_tabs'; import * as i18n from './translations'; import { HostsComponentProps } from './types'; import { filterHostData } from './navigation'; -import { HostsTableType } from '../../store/hosts/model'; +import { hostsModel } from '../store'; +import { HostsTableType } from '../store/model'; const KpiHostsComponentManage = manageQuery(KpiHostsComponent); diff --git a/x-pack/plugins/siem/public/pages/hosts/hosts_empty_page.tsx b/x-pack/plugins/siem/public/hosts/pages/hosts_empty_page.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/hosts/hosts_empty_page.tsx rename to x-pack/plugins/siem/public/hosts/pages/hosts_empty_page.tsx index bded0b90e187..e52fc8967803 100644 --- a/x-pack/plugins/siem/public/pages/hosts/hosts_empty_page.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/hosts_empty_page.tsx @@ -6,10 +6,9 @@ import React from 'react'; -import { EmptyPage } from '../../components/empty_page'; -import { useKibana } from '../../lib/kibana'; - -import * as i18n from '../common/translations'; +import { EmptyPage } from '../../common/components/empty_page'; +import { useKibana } from '../../common/lib/kibana'; +import * as i18n from '../../common/translations'; export const HostsEmptyPage = React.memo(() => { const { http, docLinks } = useKibana().services; diff --git a/x-pack/plugins/siem/public/pages/hosts/hosts_tabs.tsx b/x-pack/plugins/siem/public/hosts/pages/hosts_tabs.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/hosts/hosts_tabs.tsx rename to x-pack/plugins/siem/public/hosts/pages/hosts_tabs.tsx index de25deeb5b47..549c198a4352 100644 --- a/x-pack/plugins/siem/public/pages/hosts/hosts_tabs.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/hosts_tabs.tsx @@ -8,12 +8,12 @@ import React, { memo, useCallback } from 'react'; import { Route, Switch } from 'react-router-dom'; import { HostsTabsProps } from './types'; -import { scoreIntervalToDateTime } from '../../components/ml/score/score_interval_to_datetime'; -import { Anomaly } from '../../components/ml/types'; -import { HostsTableType } from '../../store/hosts/model'; -import { AnomaliesQueryTabBody } from '../../containers/anomalies/anomalies_query_tab_body'; -import { AnomaliesHostTable } from '../../components/ml/tables/anomalies_host_table'; -import { UpdateDateRange } from '../../components/charts/common'; +import { scoreIntervalToDateTime } from '../../common/components/ml/score/score_interval_to_datetime'; +import { Anomaly } from '../../common/components/ml/types'; +import { HostsTableType } from '../store/model'; +import { AnomaliesQueryTabBody } from '../../common/containers/anomalies/anomalies_query_tab_body'; +import { AnomaliesHostTable } from '../../common/components/ml/tables/anomalies_host_table'; +import { UpdateDateRange } from '../../common/components/charts/common'; import { HostsQueryTabBody, diff --git a/x-pack/plugins/siem/public/pages/hosts/index.tsx b/x-pack/plugins/siem/public/hosts/pages/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/pages/hosts/index.tsx rename to x-pack/plugins/siem/public/hosts/pages/index.tsx index 699b1441905c..336abc60e5ba 100644 --- a/x-pack/plugins/siem/public/pages/hosts/index.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/index.tsx @@ -8,10 +8,10 @@ import React from 'react'; import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; import { HostDetails } from './details'; -import { HostsTableType } from '../../store/hosts/model'; +import { HostsTableType } from '../store/model'; -import { GlobalTime } from '../../containers/global_time'; -import { SiemPageName } from '../home/types'; +import { GlobalTime } from '../../common/containers/global_time'; +import { SiemPageName } from '../../app/types'; import { Hosts } from './hosts'; import { hostsPagePath, hostDetailsPagePath } from './types'; diff --git a/x-pack/plugins/siem/public/pages/hosts/nav_tabs.test.tsx b/x-pack/plugins/siem/public/hosts/pages/nav_tabs.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/hosts/nav_tabs.test.tsx rename to x-pack/plugins/siem/public/hosts/pages/nav_tabs.test.tsx index a42e83c835c6..745c454e13f5 100644 --- a/x-pack/plugins/siem/public/pages/hosts/nav_tabs.test.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/nav_tabs.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostsTableType } from '../../store/hosts/model'; +import { HostsTableType } from '../store/model'; import { navTabsHosts } from './nav_tabs'; describe('navTabsHosts', () => { diff --git a/x-pack/plugins/siem/public/pages/hosts/nav_tabs.tsx b/x-pack/plugins/siem/public/hosts/pages/nav_tabs.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/hosts/nav_tabs.tsx rename to x-pack/plugins/siem/public/hosts/pages/nav_tabs.tsx index 4109feff099e..9bab3f7efe74 100644 --- a/x-pack/plugins/siem/public/pages/hosts/nav_tabs.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/nav_tabs.tsx @@ -6,9 +6,9 @@ import { omit } from 'lodash/fp'; import * as i18n from './translations'; -import { HostsTableType } from '../../store/hosts/model'; +import { HostsTableType } from '../store/model'; import { HostsNavTab } from './navigation/types'; -import { SiemPageName } from '../home/types'; +import { SiemPageName } from '../../app/types'; const getTabsOnHostsUrl = (tabName: HostsTableType) => `#/${SiemPageName.hosts}/${tabName}`; diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/alerts_query_tab_body.tsx b/x-pack/plugins/siem/public/hosts/pages/navigation/alerts_query_tab_body.tsx similarity index 95% rename from x-pack/plugins/siem/public/pages/hosts/navigation/alerts_query_tab_body.tsx rename to x-pack/plugins/siem/public/hosts/pages/navigation/alerts_query_tab_body.tsx index ec33834b1bf7..a0d8df6b8751 100644 --- a/x-pack/plugins/siem/public/pages/hosts/navigation/alerts_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/navigation/alerts_query_tab_body.tsx @@ -7,7 +7,7 @@ import React, { useMemo } from 'react'; import { Filter } from '../../../../../../../src/plugins/data/public'; -import { AlertsView } from '../../../components/alerts_viewer'; +import { AlertsView } from '../../../common/components/alerts_viewer'; import { AlertsComponentQueryProps } from './types'; export const filterHostData: Filter[] = [ diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/authentications_query_tab_body.tsx b/x-pack/plugins/siem/public/hosts/pages/navigation/authentications_query_tab_body.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/hosts/navigation/authentications_query_tab_body.tsx rename to x-pack/plugins/siem/public/hosts/pages/navigation/authentications_query_tab_body.tsx index 5a6759fd0722..ae7c0205acf5 100644 --- a/x-pack/plugins/siem/public/pages/hosts/navigation/authentications_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/navigation/authentications_query_tab_body.tsx @@ -6,18 +6,18 @@ import { getOr } from 'lodash/fp'; import React, { useEffect } from 'react'; -import { AuthenticationTable } from '../../../components/page/hosts/authentications_table'; -import { manageQuery } from '../../../components/page/manage_query'; -import { AuthenticationsQuery } from '../../../containers/authentications'; +import { AuthenticationTable } from '../../components/authentications_table'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { AuthenticationsQuery } from '../../containers/authentications'; import { HostsComponentsQueryProps } from './types'; -import { hostsModel } from '../../../store/hosts'; +import { hostsModel } from '../../store'; import { MatrixHistogramOption, MatrixHistogramMappingTypes, MatrixHisrogramConfigs, -} from '../../../components/matrix_histogram/types'; -import { MatrixHistogramContainer } from '../../../components/matrix_histogram'; -import { KpiHostsChartColors } from '../../../components/page/hosts/kpi_hosts/types'; +} from '../../../common/components/matrix_histogram/types'; +import { MatrixHistogramContainer } from '../../../common/components/matrix_histogram'; +import { KpiHostsChartColors } from '../../components/kpi_hosts/types'; import * as i18n from '../translations'; import { HistogramType } from '../../../graphql/types'; diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/events_query_tab_body.tsx b/x-pack/plugins/siem/public/hosts/pages/navigation/events_query_tab_body.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/hosts/navigation/events_query_tab_body.tsx rename to x-pack/plugins/siem/public/hosts/pages/navigation/events_query_tab_body.tsx index cb2c19c642bc..6d2183a3a38d 100644 --- a/x-pack/plugins/siem/public/pages/hosts/navigation/events_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/navigation/events_query_tab_body.tsx @@ -5,15 +5,15 @@ */ import React, { useEffect } from 'react'; -import { StatefulEventsViewer } from '../../../components/events_viewer'; +import { StatefulEventsViewer } from '../../../common/components/events_viewer'; import { HostsComponentsQueryProps } from './types'; -import { hostsModel } from '../../../store/hosts'; -import { eventsDefaultModel } from '../../../components/events_viewer/default_model'; +import { hostsModel } from '../../store'; +import { eventsDefaultModel } from '../../../common/components/events_viewer/default_model'; import { MatrixHistogramOption, MatrixHisrogramConfigs, -} from '../../../components/matrix_histogram/types'; -import { MatrixHistogramContainer } from '../../../components/matrix_histogram'; +} from '../../../common/components/matrix_histogram/types'; +import { MatrixHistogramContainer } from '../../../common/components/matrix_histogram'; import * as i18n from '../translations'; import { HistogramType } from '../../../graphql/types'; diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/hosts_query_tab_body.tsx b/x-pack/plugins/siem/public/hosts/pages/navigation/hosts_query_tab_body.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/hosts/navigation/hosts_query_tab_body.tsx rename to x-pack/plugins/siem/public/hosts/pages/navigation/hosts_query_tab_body.tsx index 6c301d692d0e..95be25a6c4fe 100644 --- a/x-pack/plugins/siem/public/pages/hosts/navigation/hosts_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/navigation/hosts_query_tab_body.tsx @@ -6,10 +6,10 @@ import { getOr } from 'lodash/fp'; import React from 'react'; -import { HostsQuery } from '../../../containers/hosts'; +import { HostsQuery } from '../../containers/hosts'; import { HostsComponentsQueryProps } from './types'; -import { HostsTable } from '../../../components/page/hosts'; -import { manageQuery } from '../../../components/page/manage_query'; +import { HostsTable } from '../../components/hosts_table'; +import { manageQuery } from '../../../common/components/page/manage_query'; const HostsTableManage = manageQuery(HostsTable); diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/index.ts b/x-pack/plugins/siem/public/hosts/pages/navigation/index.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/hosts/navigation/index.ts rename to x-pack/plugins/siem/public/hosts/pages/navigation/index.ts diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/types.ts b/x-pack/plugins/siem/public/hosts/pages/navigation/types.ts similarity index 81% rename from x-pack/plugins/siem/public/pages/hosts/navigation/types.ts rename to x-pack/plugins/siem/public/hosts/pages/navigation/types.ts index 20d4d4e463a7..76f56fe1718a 100644 --- a/x-pack/plugins/siem/public/pages/hosts/navigation/types.ts +++ b/x-pack/plugins/siem/public/hosts/pages/navigation/types.ts @@ -6,12 +6,12 @@ import { ESTermQuery } from '../../../../common/typed_json'; import { Filter, IIndexPattern } from '../../../../../../../src/plugins/data/public'; -import { NarrowDateRange } from '../../../components/ml/types'; -import { InspectQuery, Refetch } from '../../../store/inputs/model'; +import { NarrowDateRange } from '../../../common/components/ml/types'; +import { InspectQuery, Refetch } from '../../../common/store/inputs/model'; -import { HostsTableType, HostsType } from '../../../store/hosts/model'; -import { NavTab } from '../../../components/navigation/types'; -import { UpdateDateRange } from '../../../components/charts/common'; +import { HostsTableType, HostsType } from '../../store/model'; +import { NavTab } from '../../../common/components/navigation/types'; +import { UpdateDateRange } from '../../../common/components/charts/common'; export type KeyHostsNavTabWithoutMlPermission = HostsTableType.hosts & HostsTableType.authentications & diff --git a/x-pack/plugins/siem/public/pages/hosts/navigation/uncommon_process_query_tab_body.tsx b/x-pack/plugins/siem/public/hosts/pages/navigation/uncommon_process_query_tab_body.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/hosts/navigation/uncommon_process_query_tab_body.tsx rename to x-pack/plugins/siem/public/hosts/pages/navigation/uncommon_process_query_tab_body.tsx index 141e2e5a6368..f1691dbaa04b 100644 --- a/x-pack/plugins/siem/public/pages/hosts/navigation/uncommon_process_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/hosts/pages/navigation/uncommon_process_query_tab_body.tsx @@ -6,10 +6,10 @@ import { getOr } from 'lodash/fp'; import React from 'react'; -import { UncommonProcessesQuery } from '../../../containers/uncommon_processes'; +import { UncommonProcessesQuery } from '../../containers/uncommon_processes'; import { HostsComponentsQueryProps } from './types'; -import { UncommonProcessTable } from '../../../components/page/hosts'; -import { manageQuery } from '../../../components/page/manage_query'; +import { UncommonProcessTable } from '../../components/uncommon_process_table'; +import { manageQuery } from '../../../common/components/page/manage_query'; const UncommonProcessTableManage = manageQuery(UncommonProcessTable); diff --git a/x-pack/plugins/siem/public/pages/hosts/translations.ts b/x-pack/plugins/siem/public/hosts/pages/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/hosts/translations.ts rename to x-pack/plugins/siem/public/hosts/pages/translations.ts diff --git a/x-pack/plugins/siem/public/pages/hosts/types.ts b/x-pack/plugins/siem/public/hosts/pages/types.ts similarity index 79% rename from x-pack/plugins/siem/public/pages/hosts/types.ts rename to x-pack/plugins/siem/public/hosts/pages/types.ts index 408450aebebb..229349f390ec 100644 --- a/x-pack/plugins/siem/public/pages/hosts/types.ts +++ b/x-pack/plugins/siem/public/hosts/pages/types.ts @@ -7,10 +7,10 @@ import { IIndexPattern } from 'src/plugins/data/public'; import { ActionCreator } from 'typescript-fsa'; -import { SiemPageName } from '../home/types'; -import { hostsModel } from '../../store'; -import { GlobalTimeArgs } from '../../containers/global_time'; -import { InputsModelId } from '../../store/inputs/constants'; +import { SiemPageName } from '../../app/types'; +import { hostsModel } from '../store'; +import { GlobalTimeArgs } from '../../common/containers/global_time'; +import { InputsModelId } from '../../common/store/inputs/constants'; export const hostsPagePath = `/:pageName(${SiemPageName.hosts})`; export const hostDetailsPagePath = `${hostsPagePath}/:detailName`; diff --git a/x-pack/plugins/siem/public/hosts/routes.tsx b/x-pack/plugins/siem/public/hosts/routes.tsx new file mode 100644 index 000000000000..93585fa0f839 --- /dev/null +++ b/x-pack/plugins/siem/public/hosts/routes.tsx @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { Route } from 'react-router-dom'; + +import { HostsContainer } from './pages'; +import { SiemPageName } from '../app/types'; + +export const getHostsRoutes = () => [ + } + />, +]; diff --git a/x-pack/plugins/siem/public/store/hosts/actions.ts b/x-pack/plugins/siem/public/hosts/store/actions.ts similarity index 100% rename from x-pack/plugins/siem/public/store/hosts/actions.ts rename to x-pack/plugins/siem/public/hosts/store/actions.ts diff --git a/x-pack/plugins/siem/public/store/hosts/helpers.test.ts b/x-pack/plugins/siem/public/hosts/store/helpers.test.ts similarity index 97% rename from x-pack/plugins/siem/public/store/hosts/helpers.test.ts rename to x-pack/plugins/siem/public/hosts/store/helpers.test.ts index a4eddb31b3e3..4894e6d4c8c5 100644 --- a/x-pack/plugins/siem/public/store/hosts/helpers.test.ts +++ b/x-pack/plugins/siem/public/hosts/store/helpers.test.ts @@ -5,7 +5,7 @@ */ import { Direction, HostsFields } from '../../graphql/types'; -import { DEFAULT_TABLE_LIMIT } from '../constants'; +import { DEFAULT_TABLE_LIMIT } from '../../common/store/constants'; import { HostsModel, HostsTableType, HostsType } from './model'; import { setHostsQueriesActivePageToZero } from './helpers'; diff --git a/x-pack/plugins/siem/public/store/hosts/helpers.ts b/x-pack/plugins/siem/public/hosts/store/helpers.ts similarity index 96% rename from x-pack/plugins/siem/public/store/hosts/helpers.ts rename to x-pack/plugins/siem/public/hosts/store/helpers.ts index f6b5596b382f..771c3b1061b6 100644 --- a/x-pack/plugins/siem/public/store/hosts/helpers.ts +++ b/x-pack/plugins/siem/public/hosts/store/helpers.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { DEFAULT_TABLE_ACTIVE_PAGE } from '../constants'; +import { DEFAULT_TABLE_ACTIVE_PAGE } from '../../common/store/constants'; import { HostsModel, HostsTableType, Queries, HostsType } from './model'; diff --git a/x-pack/plugins/siem/public/store/hosts/index.ts b/x-pack/plugins/siem/public/hosts/store/index.ts similarity index 68% rename from x-pack/plugins/siem/public/store/hosts/index.ts rename to x-pack/plugins/siem/public/hosts/store/index.ts index 93bdde791a7a..89ad4a7602fe 100644 --- a/x-pack/plugins/siem/public/store/hosts/index.ts +++ b/x-pack/plugins/siem/public/hosts/store/index.ts @@ -4,9 +4,18 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Reducer, AnyAction } from 'redux'; import * as hostsActions from './actions'; import * as hostsModel from './model'; import * as hostsSelectors from './selectors'; export { hostsActions, hostsModel, hostsSelectors }; export * from './reducer'; + +export interface HostsPluginState { + hosts: hostsModel.HostsModel; +} + +export interface HostsPluginReducer { + hosts: Reducer; +} diff --git a/x-pack/plugins/siem/public/store/hosts/model.ts b/x-pack/plugins/siem/public/hosts/store/model.ts similarity index 100% rename from x-pack/plugins/siem/public/store/hosts/model.ts rename to x-pack/plugins/siem/public/hosts/store/model.ts diff --git a/x-pack/plugins/siem/public/store/hosts/reducer.ts b/x-pack/plugins/siem/public/hosts/store/reducer.ts similarity index 99% rename from x-pack/plugins/siem/public/store/hosts/reducer.ts rename to x-pack/plugins/siem/public/hosts/store/reducer.ts index 53fe9a3ea6a2..59277f64650e 100644 --- a/x-pack/plugins/siem/public/store/hosts/reducer.ts +++ b/x-pack/plugins/siem/public/hosts/store/reducer.ts @@ -7,7 +7,7 @@ import { reducerWithInitialState } from 'typescript-fsa-reducers'; import { Direction, HostsFields } from '../../graphql/types'; -import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from '../constants'; +import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from '../../common/store/constants'; import { setHostDetailsTablesActivePageToZero, diff --git a/x-pack/plugins/siem/public/store/hosts/selectors.ts b/x-pack/plugins/siem/public/hosts/store/selectors.ts similarity index 95% rename from x-pack/plugins/siem/public/store/hosts/selectors.ts rename to x-pack/plugins/siem/public/hosts/store/selectors.ts index e50968db31f6..96cae534bb35 100644 --- a/x-pack/plugins/siem/public/store/hosts/selectors.ts +++ b/x-pack/plugins/siem/public/hosts/store/selectors.ts @@ -7,7 +7,7 @@ import { get } from 'lodash/fp'; import { createSelector } from 'reselect'; -import { State } from '../reducer'; +import { State } from '../../common/store/reducer'; import { GenericHostsModel, HostsType, HostsTableType } from './model'; diff --git a/x-pack/plugins/siem/public/components/arrows/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/arrows/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/arrows/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/arrows/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/arrows/helpers.test.ts b/x-pack/plugins/siem/public/network/components/arrows/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/arrows/helpers.test.ts rename to x-pack/plugins/siem/public/network/components/arrows/helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/arrows/helpers.ts b/x-pack/plugins/siem/public/network/components/arrows/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/arrows/helpers.ts rename to x-pack/plugins/siem/public/network/components/arrows/helpers.ts diff --git a/x-pack/plugins/siem/public/components/arrows/index.test.tsx b/x-pack/plugins/siem/public/network/components/arrows/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/arrows/index.test.tsx rename to x-pack/plugins/siem/public/network/components/arrows/index.test.tsx index 5404a1ac4384..e5fa1131c7c4 100644 --- a/x-pack/plugins/siem/public/components/arrows/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/arrows/index.test.tsx @@ -7,7 +7,7 @@ import { mount } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../mock'; +import { TestProviders } from '../../../common/mock'; import { ArrowBody, ArrowHead } from '.'; diff --git a/x-pack/plugins/siem/public/components/arrows/index.tsx b/x-pack/plugins/siem/public/network/components/arrows/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/arrows/index.tsx rename to x-pack/plugins/siem/public/network/components/arrows/index.tsx diff --git a/x-pack/plugins/siem/public/components/direction/direction.test.tsx b/x-pack/plugins/siem/public/network/components/direction/direction.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/direction/direction.test.tsx rename to x-pack/plugins/siem/public/network/components/direction/direction.test.tsx diff --git a/x-pack/plugins/siem/public/components/direction/index.tsx b/x-pack/plugins/siem/public/network/components/direction/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/direction/index.tsx rename to x-pack/plugins/siem/public/network/components/direction/index.tsx index ad1e63dbd7e6..c8e8f009339c 100644 --- a/x-pack/plugins/siem/public/components/direction/index.tsx +++ b/x-pack/plugins/siem/public/network/components/direction/index.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { NetworkDirectionEcs } from '../../graphql/types'; -import { DraggableBadge } from '../draggables'; +import { NetworkDirectionEcs } from '../../../graphql/types'; +import { DraggableBadge } from '../../../common/components/draggables'; import { NETWORK_DIRECTION_FIELD_NAME } from '../source_destination/field_names'; export const INBOUND = 'inbound'; diff --git a/x-pack/plugins/siem/public/components/embeddables/__mocks__/mock.ts b/x-pack/plugins/siem/public/network/components/embeddables/__mocks__/mock.ts similarity index 99% rename from x-pack/plugins/siem/public/components/embeddables/__mocks__/mock.ts rename to x-pack/plugins/siem/public/network/components/embeddables/__mocks__/mock.ts index 19ad0d452feb..bc1de567b60a 100644 --- a/x-pack/plugins/siem/public/components/embeddables/__mocks__/mock.ts +++ b/x-pack/plugins/siem/public/network/components/embeddables/__mocks__/mock.ts @@ -5,7 +5,7 @@ */ import { IndexPatternMapping } from '../types'; -import { IndexPatternSavedObject } from '../../../hooks/types'; +import { IndexPatternSavedObject } from '../../../../common/hooks/types'; export const mockIndexPatternIds: IndexPatternMapping[] = [ { title: 'filebeat-*', id: '8c7323ac-97ad-4b53-ac0a-40f8f691a918' }, diff --git a/x-pack/plugins/siem/public/components/embeddables/__snapshots__/embeddable.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/embeddable.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/__snapshots__/embeddable.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/embeddable.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/__snapshots__/embeddable_header.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/embeddable_header.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/__snapshots__/embeddable_header.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/embeddable_header.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/__snapshots__/embedded_map.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/embedded_map.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/__snapshots__/embedded_map.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/embedded_map.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/__snapshots__/index_patterns_missing_prompt.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/index_patterns_missing_prompt.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/__snapshots__/index_patterns_missing_prompt.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/__snapshots__/index_patterns_missing_prompt.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/embeddable.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embeddable.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/embeddable.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embeddable.test.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/embeddable.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embeddable.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/embeddable.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embeddable.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/embeddable_header.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embeddable_header.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/embeddables/embeddable_header.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embeddable_header.test.tsx index 3b8e137618ab..ecbff02353fe 100644 --- a/x-pack/plugins/siem/public/components/embeddables/embeddable_header.test.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/embeddable_header.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../mock'; +import { TestProviders } from '../../../common/mock'; import { EmbeddableHeader } from './embeddable_header'; describe('EmbeddableHeader', () => { diff --git a/x-pack/plugins/siem/public/components/embeddables/embeddable_header.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embeddable_header.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/embeddable_header.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embeddable_header.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/embedded_map.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/embeddables/embedded_map.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embedded_map.test.tsx index a807b4d6a838..33eadad9aa77 100644 --- a/x-pack/plugins/siem/public/components/embeddables/embedded_map.test.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map.test.tsx @@ -7,15 +7,15 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { useIndexPatterns } from '../../hooks/use_index_patterns'; +import { useIndexPatterns } from '../../../common/hooks/use_index_patterns'; import { EmbeddedMapComponent } from './embedded_map'; import { SetQuery } from './types'; const mockUseIndexPatterns = useIndexPatterns as jest.Mock; -jest.mock('../../hooks/use_index_patterns'); +jest.mock('../../../common/hooks/use_index_patterns'); mockUseIndexPatterns.mockImplementation(() => [true, []]); -jest.mock('../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); describe('EmbeddedMapComponent', () => { let setQuery: SetQuery; diff --git a/x-pack/plugins/siem/public/components/embeddables/embedded_map.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/embeddables/embedded_map.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embedded_map.tsx index d2dd3e542934..2e9e13839d76 100644 --- a/x-pack/plugins/siem/public/components/embeddables/embedded_map.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map.tsx @@ -9,12 +9,15 @@ import React, { useEffect, useState } from 'react'; import { createPortalNode, InPortal } from 'react-reverse-portal'; import styled, { css } from 'styled-components'; -import { EmbeddablePanel, ErrorEmbeddable } from '../../../../../../src/plugins/embeddable/public'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { getIndexPatternTitleIdMapping } from '../../hooks/api/helpers'; -import { useIndexPatterns } from '../../hooks/use_index_patterns'; -import { Loader } from '../loader'; -import { displayErrorToast, useStateToaster } from '../toasters'; +import { + EmbeddablePanel, + ErrorEmbeddable, +} from '../../../../../../../src/plugins/embeddable/public'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { getIndexPatternTitleIdMapping } from '../../../common/hooks/api/helpers'; +import { useIndexPatterns } from '../../../common/hooks/use_index_patterns'; +import { Loader } from '../../../common/components/loader'; +import { displayErrorToast, useStateToaster } from '../../../common/components/toasters'; import { Embeddable } from './embeddable'; import { EmbeddableHeader } from './embeddable_header'; import { createEmbeddable, findMatchingIndexPatterns } from './embedded_map_helpers'; @@ -22,10 +25,10 @@ import { IndexPatternsMissingPrompt } from './index_patterns_missing_prompt'; import { MapToolTip } from './map_tool_tip/map_tool_tip'; import * as i18n from './translations'; import { SetQuery } from './types'; -import { MapEmbeddable } from '../../../../../legacy/plugins/maps/public'; -import { Query, Filter } from '../../../../../../src/plugins/data/public'; -import { useKibana, useUiSetting$ } from '../../lib/kibana'; -import { getSavedObjectFinder } from '../../../../../../src/plugins/saved_objects/public'; +import { MapEmbeddable } from '../../../../../../legacy/plugins/maps/public'; +import { Query, Filter } from '../../../../../../../src/plugins/data/public'; +import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; +import { getSavedObjectFinder } from '../../../../../../../src/plugins/saved_objects/public'; interface EmbeddableMapProps { maintainRatio?: boolean; diff --git a/x-pack/plugins/siem/public/components/embeddables/embedded_map_helpers.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map_helpers.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/embeddables/embedded_map_helpers.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embedded_map_helpers.test.tsx index aaae43d9684a..d42ac919e9af 100644 --- a/x-pack/plugins/siem/public/components/embeddables/embedded_map_helpers.test.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map_helpers.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { embeddablePluginMock } from '../../../../../../src/plugins/embeddable/public/mocks'; +import { embeddablePluginMock } from '../../../../../../../src/plugins/embeddable/public/mocks'; import { createEmbeddable, findMatchingIndexPatterns } from './embedded_map_helpers'; import { createPortalNode } from 'react-reverse-portal'; import { diff --git a/x-pack/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map_helpers.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/embedded_map_helpers.tsx index dd7e1cd6ea9b..37da8abc029b 100644 --- a/x-pack/plugins/siem/public/components/embeddables/embedded_map_helpers.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/embedded_map_helpers.tsx @@ -10,22 +10,22 @@ import { OutPortal, PortalNode } from 'react-reverse-portal'; import minimatch from 'minimatch'; import { IndexPatternMapping, SetQuery } from './types'; import { getLayerList } from './map_config'; -import { MAP_SAVED_OBJECT_TYPE } from '../../../../maps/public'; +import { MAP_SAVED_OBJECT_TYPE } from '../../../../../maps/public'; import { MapEmbeddable, RenderTooltipContentParams, MapEmbeddableInput, -} from '../../../../../legacy/plugins/maps/public'; +} from '../../../../../../legacy/plugins/maps/public'; import * as i18n from './translations'; -import { Query, Filter } from '../../../../../../src/plugins/data/public'; +import { Query, Filter } from '../../../../../../../src/plugins/data/public'; import { EmbeddableStart, isErrorEmbeddable, EmbeddableOutput, ViewMode, ErrorEmbeddable, -} from '../../../../../../src/plugins/embeddable/public'; -import { IndexPatternSavedObject } from '../../hooks/types'; +} from '../../../../../../../src/plugins/embeddable/public'; +import { IndexPatternSavedObject } from '../../../common/hooks/types'; /** * Creates MapEmbeddable with provided initial configuration diff --git a/x-pack/plugins/siem/public/components/embeddables/index_patterns_missing_prompt.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/index_patterns_missing_prompt.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/embeddables/index_patterns_missing_prompt.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/index_patterns_missing_prompt.test.tsx index 4f617644a1fe..af31cf64df84 100644 --- a/x-pack/plugins/siem/public/components/embeddables/index_patterns_missing_prompt.test.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/index_patterns_missing_prompt.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { IndexPatternsMissingPromptComponent } from './index_patterns_missing_prompt'; -jest.mock('../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); describe('IndexPatternsMissingPrompt', () => { test('renders correctly against snapshot', () => { diff --git a/x-pack/plugins/siem/public/components/embeddables/index_patterns_missing_prompt.tsx b/x-pack/plugins/siem/public/network/components/embeddables/index_patterns_missing_prompt.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/embeddables/index_patterns_missing_prompt.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/index_patterns_missing_prompt.tsx index abd33505b67b..aeed6fb2fe20 100644 --- a/x-pack/plugins/siem/public/components/embeddables/index_patterns_missing_prompt.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/index_patterns_missing_prompt.tsx @@ -8,7 +8,7 @@ import { EuiButton, EuiCode, EuiEmptyPrompt } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; -import { useKibana, useBasePath } from '../../lib/kibana'; +import { useKibana, useBasePath } from '../../../common/lib/kibana'; import * as i18n from './translations'; export const IndexPatternsMissingPromptComponent = () => { diff --git a/x-pack/plugins/siem/public/components/embeddables/map_config.test.ts b/x-pack/plugins/siem/public/network/components/embeddables/map_config.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_config.test.ts rename to x-pack/plugins/siem/public/network/components/embeddables/map_config.test.ts diff --git a/x-pack/plugins/siem/public/components/embeddables/map_config.ts b/x-pack/plugins/siem/public/network/components/embeddables/map_config.ts similarity index 99% rename from x-pack/plugins/siem/public/components/embeddables/map_config.ts rename to x-pack/plugins/siem/public/network/components/embeddables/map_config.ts index 0d1cd515820c..88bc6e699498 100644 --- a/x-pack/plugins/siem/public/components/embeddables/map_config.ts +++ b/x-pack/plugins/siem/public/network/components/embeddables/map_config.ts @@ -13,7 +13,7 @@ import { LayerMappingDetails, } from './types'; import * as i18n from './translations'; -import { SOURCE_TYPES } from '../../../../maps/common/constants'; +import { SOURCE_TYPES } from '../../../../../maps/common/constants'; const euiVisColorPalette = euiPaletteColorBlind(); // Update field mappings to modify what fields will be returned to map tooltip diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/line_tool_tip_content.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/line_tool_tip_content.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/line_tool_tip_content.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/line_tool_tip_content.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/map_tool_tip.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/map_tool_tip.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/map_tool_tip.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/map_tool_tip.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/point_tool_tip_content.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/point_tool_tip_content.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/point_tool_tip_content.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/point_tool_tip_content.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/tooltip_footer.test.tsx.snap b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/tooltip_footer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/__snapshots__/tooltip_footer.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/__snapshots__/tooltip_footer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/line_tool_tip_content.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/line_tool_tip_content.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/line_tool_tip_content.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/line_tool_tip_content.test.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/line_tool_tip_content.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/line_tool_tip_content.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/line_tool_tip_content.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/line_tool_tip_content.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/map_tool_tip.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/map_tool_tip.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/map_tool_tip.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/map_tool_tip.test.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/map_tool_tip.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/map_tool_tip.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/map_tool_tip.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/map_tool_tip.tsx index fc55e3437dc2..0f38c350986b 100644 --- a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/map_tool_tip.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/map_tool_tip.tsx @@ -15,7 +15,7 @@ import { FeatureGeometry, FeatureProperty, MapToolTipProps } from '../types'; import { ToolTipFooter } from './tooltip_footer'; import { LineToolTipContent } from './line_tool_tip_content'; import { PointToolTipContent } from './point_tool_tip_content'; -import { Loader } from '../../loader'; +import { Loader } from '../../../../common/components/loader'; import * as i18n from '../translations'; export const MapToolTipComponent = ({ diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx index c90af16b0d99..d5a7c51ccdeb 100644 --- a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/point_tool_tip_content.test.tsx @@ -8,11 +8,11 @@ import { shallow } from 'enzyme'; import React from 'react'; import { FeatureProperty } from '../types'; import { getRenderedFieldValue, PointToolTipContentComponent } from './point_tool_tip_content'; -import { TestProviders } from '../../../mock'; -import { getEmptyStringTag } from '../../empty_value'; -import { HostDetailsLink, IPDetailsLink } from '../../links'; -import { useMountAppended } from '../../../utils/use_mount_appended'; -import { FlowTarget } from '../../../graphql/types'; +import { TestProviders } from '../../../../common/mock'; +import { getEmptyStringTag } from '../../../../common/components/empty_value'; +import { HostDetailsLink, IPDetailsLink } from '../../../../common/components/links'; +import { useMountAppended } from '../../../../common/utils/use_mount_appended'; +import { FlowTarget } from '../../../../graphql/types'; describe('PointToolTipContent', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/point_tool_tip_content.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/point_tool_tip_content.tsx similarity index 81% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/point_tool_tip_content.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/point_tool_tip_content.tsx index c635061ca7b7..c691407f6166 100644 --- a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/point_tool_tip_content.tsx +++ b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/point_tool_tip_content.tsx @@ -9,13 +9,16 @@ import { sourceDestinationFieldMappings } from '../map_config'; import { AddFilterToGlobalSearchBar, createFilter, -} from '../../page/add_filter_to_global_search_bar'; -import { getEmptyTagValue, getOrEmptyTagFromValue } from '../../empty_value'; -import { DescriptionListStyled } from '../../page'; +} from '../../../../common/components/add_filter_to_global_search_bar'; +import { + getEmptyTagValue, + getOrEmptyTagFromValue, +} from '../../../../common/components/empty_value'; +import { DescriptionListStyled } from '../../../../common/components/page'; import { FeatureProperty } from '../types'; -import { HostDetailsLink, IPDetailsLink } from '../../links'; -import { DefaultFieldRenderer } from '../../field_renderers/field_renderers'; -import { FlowTarget } from '../../../graphql/types'; +import { HostDetailsLink, IPDetailsLink } from '../../../../common/components/links'; +import { DefaultFieldRenderer } from '../../../../timelines/components/field_renderers/field_renderers'; +import { FlowTarget } from '../../../../graphql/types'; interface PointToolTipContentProps { contextId: string; diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/tooltip_footer.test.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/tooltip_footer.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/tooltip_footer.test.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/tooltip_footer.test.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/map_tool_tip/tooltip_footer.tsx b/x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/tooltip_footer.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/map_tool_tip/tooltip_footer.tsx rename to x-pack/plugins/siem/public/network/components/embeddables/map_tool_tip/tooltip_footer.tsx diff --git a/x-pack/plugins/siem/public/components/embeddables/translations.ts b/x-pack/plugins/siem/public/network/components/embeddables/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/embeddables/translations.ts rename to x-pack/plugins/siem/public/network/components/embeddables/translations.ts diff --git a/x-pack/plugins/siem/public/components/embeddables/types.ts b/x-pack/plugins/siem/public/network/components/embeddables/types.ts similarity index 88% rename from x-pack/plugins/siem/public/components/embeddables/types.ts rename to x-pack/plugins/siem/public/network/components/embeddables/types.ts index d8e20c7f47b4..e111c2728ba7 100644 --- a/x-pack/plugins/siem/public/components/embeddables/types.ts +++ b/x-pack/plugins/siem/public/network/components/embeddables/types.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { RenderTooltipContentParams } from '../../../../../legacy/plugins/maps/public'; -import { inputsModel } from '../../store/inputs'; +import { RenderTooltipContentParams } from '../../../../../../legacy/plugins/maps/public'; +import { inputsModel } from '../../../common/store/inputs'; export interface IndexPatternMapping { title: string; diff --git a/x-pack/plugins/siem/public/components/flow_controls/__snapshots__/flow_direction_select.test.tsx.snap b/x-pack/plugins/siem/public/network/components/flow_controls/__snapshots__/flow_direction_select.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/flow_controls/__snapshots__/flow_direction_select.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/flow_controls/__snapshots__/flow_direction_select.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap b/x-pack/plugins/siem/public/network/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/flow_controls/__snapshots__/flow_target_select.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/flow_controls/flow_direction_select.test.tsx b/x-pack/plugins/siem/public/network/components/flow_controls/flow_direction_select.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/flow_controls/flow_direction_select.test.tsx rename to x-pack/plugins/siem/public/network/components/flow_controls/flow_direction_select.test.tsx index f984b534c188..0a35b28db8ce 100644 --- a/x-pack/plugins/siem/public/components/flow_controls/flow_direction_select.test.tsx +++ b/x-pack/plugins/siem/public/network/components/flow_controls/flow_direction_select.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { FlowDirection } from '../../graphql/types'; +import { FlowDirection } from '../../../graphql/types'; import { FlowDirectionSelect } from './flow_direction_select'; diff --git a/x-pack/plugins/siem/public/components/flow_controls/flow_direction_select.tsx b/x-pack/plugins/siem/public/network/components/flow_controls/flow_direction_select.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/flow_controls/flow_direction_select.tsx rename to x-pack/plugins/siem/public/network/components/flow_controls/flow_direction_select.tsx index 2b826164063b..d3698a772300 100644 --- a/x-pack/plugins/siem/public/components/flow_controls/flow_direction_select.tsx +++ b/x-pack/plugins/siem/public/network/components/flow_controls/flow_direction_select.tsx @@ -7,7 +7,7 @@ import { EuiFilterButton, EuiFilterGroup } from '@elastic/eui'; import React from 'react'; -import { FlowDirection } from '../../graphql/types'; +import { FlowDirection } from '../../../graphql/types'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/flow_controls/flow_target_select.test.tsx b/x-pack/plugins/siem/public/network/components/flow_controls/flow_target_select.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/flow_controls/flow_target_select.test.tsx rename to x-pack/plugins/siem/public/network/components/flow_controls/flow_target_select.test.tsx index 67006d8a7a12..d033ffc09a82 100644 --- a/x-pack/plugins/siem/public/components/flow_controls/flow_target_select.test.tsx +++ b/x-pack/plugins/siem/public/network/components/flow_controls/flow_target_select.test.tsx @@ -8,7 +8,7 @@ import { mount, shallow } from 'enzyme'; import { clone } from 'lodash/fp'; import React from 'react'; -import { FlowDirection, FlowTarget } from '../../graphql/types'; +import { FlowDirection, FlowTarget } from '../../../graphql/types'; import { FlowTargetSelect } from './flow_target_select'; diff --git a/x-pack/plugins/siem/public/components/flow_controls/flow_target_select.tsx b/x-pack/plugins/siem/public/network/components/flow_controls/flow_target_select.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/flow_controls/flow_target_select.tsx rename to x-pack/plugins/siem/public/network/components/flow_controls/flow_target_select.tsx index 15d1c6636383..6d6dcfd33b87 100644 --- a/x-pack/plugins/siem/public/components/flow_controls/flow_target_select.tsx +++ b/x-pack/plugins/siem/public/network/components/flow_controls/flow_target_select.tsx @@ -7,7 +7,7 @@ import { EuiSuperSelect } from '@elastic/eui'; import React from 'react'; -import { FlowDirection, FlowTarget } from '../../graphql/types'; +import { FlowDirection, FlowTarget } from '../../../graphql/types'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/flow_controls/translations.ts b/x-pack/plugins/siem/public/network/components/flow_controls/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/flow_controls/translations.ts rename to x-pack/plugins/siem/public/network/components/flow_controls/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/flow_target_select_connected/index.test.tsx b/x-pack/plugins/siem/public/network/components/flow_target_select_connected/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/page/network/flow_target_select_connected/index.test.tsx rename to x-pack/plugins/siem/public/network/components/flow_target_select_connected/index.test.tsx index e71be5a51e50..edf9e69eeed5 100644 --- a/x-pack/plugins/siem/public/components/page/network/flow_target_select_connected/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/flow_target_select_connected/index.test.tsx @@ -8,9 +8,9 @@ import { mount } from 'enzyme'; import React from 'react'; import { MemoryRouter } from 'react-router-dom'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { FlowTargetSelectConnectedComponent } from './index'; -import { FlowTarget } from '../../../../graphql/types'; +import { FlowTarget } from '../../../graphql/types'; describe('Flow Target Select Connected', () => { test('renders correctly against snapshot flowTarget source', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/flow_target_select_connected/index.tsx b/x-pack/plugins/siem/public/network/components/flow_target_select_connected/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/page/network/flow_target_select_connected/index.tsx rename to x-pack/plugins/siem/public/network/components/flow_target_select_connected/index.tsx index 2651c31e0a2c..3ce623cfc97b 100644 --- a/x-pack/plugins/siem/public/components/page/network/flow_target_select_connected/index.tsx +++ b/x-pack/plugins/siem/public/network/components/flow_target_select_connected/index.tsx @@ -10,11 +10,11 @@ import React, { useCallback } from 'react'; import { useHistory, useLocation } from 'react-router-dom'; import styled from 'styled-components'; -import { FlowDirection, FlowTarget } from '../../../../graphql/types'; +import { FlowDirection, FlowTarget } from '../../../graphql/types'; import * as i18nIp from '../ip_overview/translations'; -import { FlowTargetSelect } from '../../../flow_controls/flow_target_select'; -import { IpOverviewId } from '../../../field_renderers/field_renderers'; +import { FlowTargetSelect } from '../flow_controls/flow_target_select'; +import { IpOverviewId } from '../../../timelines/components/field_renderers/field_renderers'; const SelectTypeItem = styled(EuiFlexItem)` min-width: 180px; diff --git a/x-pack/plugins/siem/public/components/ip/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/ip/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/ip/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/ip/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/ip/index.test.tsx b/x-pack/plugins/siem/public/network/components/ip/index.test.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/ip/index.test.tsx rename to x-pack/plugins/siem/public/network/components/ip/index.test.tsx index 209fc63c7355..78ba0bb530c9 100644 --- a/x-pack/plugins/siem/public/components/ip/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/ip/index.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../mock/test_providers'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { TestProviders } from '../../../common/mock/test_providers'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { Ip } from '.'; diff --git a/x-pack/plugins/siem/public/components/ip/index.tsx b/x-pack/plugins/siem/public/network/components/ip/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/ip/index.tsx rename to x-pack/plugins/siem/public/network/components/ip/index.tsx index 49237c3bb1bb..21e2dd3ebc04 100644 --- a/x-pack/plugins/siem/public/components/ip/index.tsx +++ b/x-pack/plugins/siem/public/network/components/ip/index.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { FormattedFieldValue } from '../timeline/body/renderers/formatted_field'; +import { FormattedFieldValue } from '../../../timelines/components/timeline/body/renderers/formatted_field'; export const SOURCE_IP_FIELD_NAME = 'source.ip'; export const DESTINATION_IP_FIELD_NAME = 'destination.ip'; diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/ip_overview/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/ip_overview/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/ip_overview/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.test.tsx b/x-pack/plugins/siem/public/network/components/ip_overview/index.test.tsx similarity index 71% rename from x-pack/plugins/siem/public/components/page/network/ip_overview/index.test.tsx rename to x-pack/plugins/siem/public/network/components/ip_overview/index.test.tsx index 3038d7f41c63..bce811c58e43 100644 --- a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/ip_overview/index.test.tsx @@ -8,22 +8,28 @@ import { shallow } from 'enzyme'; import React from 'react'; import { ActionCreator } from 'typescript-fsa'; -import { FlowTarget } from '../../../../graphql/types'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; -import { createStore, networkModel, State } from '../../../../store'; +import { FlowTarget } from '../../../graphql/types'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { createStore, State } from '../../../common/store'; +import { networkModel } from '../../store'; import { IpOverview } from './index'; import { mockData } from './mock'; -import { mockAnomalies } from '../../../ml/mock'; -import { NarrowDateRange } from '../../../ml/types'; +import { mockAnomalies } from '../../../common/components/ml/mock'; +import { NarrowDateRange } from '../../../common/components/ml/types'; describe('IP Overview Component', () => { const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx b/x-pack/plugins/siem/public/network/components/ip_overview/index.tsx similarity index 80% rename from x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx rename to x-pack/plugins/siem/public/network/components/ip_overview/index.tsx index 456deaac0fb1..56f6d27dc28c 100644 --- a/x-pack/plugins/siem/public/components/page/network/ip_overview/index.tsx +++ b/x-pack/plugins/siem/public/network/components/ip_overview/index.tsx @@ -9,12 +9,12 @@ import darkTheme from '@elastic/eui/dist/eui_theme_dark.json'; import lightTheme from '@elastic/eui/dist/eui_theme_light.json'; import React from 'react'; -import { DEFAULT_DARK_MODE } from '../../../../../common/constants'; -import { DescriptionList } from '../../../../../common/utility_types'; -import { useUiSetting$ } from '../../../../lib/kibana'; -import { FlowTarget, IpOverviewData, Overview } from '../../../../graphql/types'; -import { networkModel } from '../../../../store'; -import { getEmptyTagValue } from '../../../empty_value'; +import { DEFAULT_DARK_MODE } from '../../../../common/constants'; +import { DescriptionList } from '../../../../common/utility_types'; +import { useUiSetting$ } from '../../../common/lib/kibana'; +import { FlowTarget, IpOverviewData, Overview } from '../../../graphql/types'; +import { networkModel } from '../../store'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; import { autonomousSystemRenderer, @@ -24,15 +24,15 @@ import { locationRenderer, reputationRenderer, whoisRenderer, -} from '../../../field_renderers/field_renderers'; +} from '../../../timelines/components/field_renderers/field_renderers'; import * as i18n from './translations'; -import { DescriptionListStyled, OverviewWrapper } from '../../index'; -import { Loader } from '../../../loader'; -import { Anomalies, NarrowDateRange } from '../../../ml/types'; -import { AnomalyScores } from '../../../ml/score/anomaly_scores'; -import { useMlCapabilities } from '../../../ml_popover/hooks/use_ml_capabilities'; -import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; -import { InspectButton, InspectButtonContainer } from '../../../inspect'; +import { DescriptionListStyled, OverviewWrapper } from '../../../common/components/page'; +import { Loader } from '../../../common/components/loader'; +import { Anomalies, NarrowDateRange } from '../../../common/components/ml/types'; +import { AnomalyScores } from '../../../common/components/ml/score/anomaly_scores'; +import { useMlCapabilities } from '../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; +import { InspectButton, InspectButtonContainer } from '../../../common/components/inspect'; interface OwnProps { data: IpOverviewData; diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/mock.ts b/x-pack/plugins/siem/public/network/components/ip_overview/mock.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/network/ip_overview/mock.ts rename to x-pack/plugins/siem/public/network/components/ip_overview/mock.ts index aaacdae70aef..aa86fb177b02 100644 --- a/x-pack/plugins/siem/public/components/page/network/ip_overview/mock.ts +++ b/x-pack/plugins/siem/public/network/components/ip_overview/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { IpOverviewData } from '../../../../graphql/types'; +import { IpOverviewData } from '../../../graphql/types'; export const mockData: Readonly> = { complete: { diff --git a/x-pack/plugins/siem/public/components/page/network/ip_overview/translations.ts b/x-pack/plugins/siem/public/network/components/ip_overview/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/ip_overview/translations.ts rename to x-pack/plugins/siem/public/network/components/ip_overview/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/kpi_network/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/kpi_network/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/kpi_network/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/kpi_network/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/kpi_network/index.test.tsx b/x-pack/plugins/siem/public/network/components/kpi_network/index.test.tsx similarity index 84% rename from x-pack/plugins/siem/public/components/page/network/kpi_network/index.test.tsx rename to x-pack/plugins/siem/public/network/components/kpi_network/index.test.tsx index 48d3b25f59e4..70c952b11074 100644 --- a/x-pack/plugins/siem/public/components/page/network/kpi_network/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/kpi_network/index.test.tsx @@ -8,9 +8,8 @@ import { shallow } from 'enzyme'; import React from 'react'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { apolloClientObservable, mockGlobalState } from '../../../../mock'; -import { createStore, State } from '../../../../store'; - +import { apolloClientObservable, mockGlobalState, SUB_PLUGINS_REDUCER } from '../../../common/mock'; +import { createStore, State } from '../../../common/store'; import { KpiNetworkComponent } from '.'; import { mockData } from './mock'; @@ -20,10 +19,10 @@ describe('KpiNetwork Component', () => { const to = new Date('2019-06-18T06:00:00.000Z').valueOf(); const narrowDateRange = jest.fn(); - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/kpi_network/index.tsx b/x-pack/plugins/siem/public/network/components/kpi_network/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/page/network/kpi_network/index.tsx rename to x-pack/plugins/siem/public/network/components/kpi_network/index.tsx index e81c65fbc6af..ac7381160515 100644 --- a/x-pack/plugins/siem/public/components/page/network/kpi_network/index.tsx +++ b/x-pack/plugins/siem/public/network/components/kpi_network/index.tsx @@ -21,11 +21,11 @@ import { StatItemsProps, useKpiMatrixStatus, StatItems, -} from '../../../../components/stat_items'; -import { KpiNetworkData } from '../../../../graphql/types'; +} from '../../../common/components/stat_items'; +import { KpiNetworkData } from '../../../graphql/types'; import * as i18n from './translations'; -import { UpdateDateRange } from '../../../charts/common'; +import { UpdateDateRange } from '../../../common/components/charts/common'; const kipsPerRow = 2; const kpiWidgetHeight = 228; diff --git a/x-pack/plugins/siem/public/components/page/network/kpi_network/mock.ts b/x-pack/plugins/siem/public/network/components/kpi_network/mock.ts similarity index 97% rename from x-pack/plugins/siem/public/components/page/network/kpi_network/mock.ts rename to x-pack/plugins/siem/public/network/components/kpi_network/mock.ts index 4edaf76bb482..a8b04ff29f4b 100644 --- a/x-pack/plugins/siem/public/components/page/network/kpi_network/mock.ts +++ b/x-pack/plugins/siem/public/network/components/kpi_network/mock.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { KpiNetworkData } from '../../../../graphql/types'; -import { StatItems } from '../../../stat_items'; +import { KpiNetworkData } from '../../../graphql/types'; +import { StatItems } from '../../../common/components/stat_items'; export const mockNarrowDateRange = jest.fn(); diff --git a/x-pack/plugins/siem/public/components/page/network/kpi_network/translations.ts b/x-pack/plugins/siem/public/network/components/kpi_network/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/kpi_network/translations.ts rename to x-pack/plugins/siem/public/network/components/kpi_network/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/network_dns_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/network_dns_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/__snapshots__/is_ptr_included.test.tsx.snap b/x-pack/plugins/siem/public/network/components/network_dns_table/__snapshots__/is_ptr_included.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/__snapshots__/is_ptr_included.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/network_dns_table/__snapshots__/is_ptr_included.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/columns.tsx b/x-pack/plugins/siem/public/network/components/network_dns_table/columns.tsx similarity index 81% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/columns.tsx rename to x-pack/plugins/siem/public/network/components/network_dns_table/columns.tsx index 83a902d7bbde..dbc09daaf0ab 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_dns_table/columns.tsx +++ b/x-pack/plugins/siem/public/network/components/network_dns_table/columns.tsx @@ -7,14 +7,17 @@ import numeral from '@elastic/numeral'; import React from 'react'; -import { NetworkDnsFields, NetworkDnsItem } from '../../../../graphql/types'; -import { DragEffects, DraggableWrapper } from '../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { defaultToEmptyTag, getEmptyTagValue } from '../../../empty_value'; -import { Columns } from '../../../paginated_table'; -import { IS_OPERATOR } from '../../../timeline/data_providers/data_provider'; -import { PreferenceFormattedBytes } from '../../../formatted_bytes'; -import { Provider } from '../../../timeline/data_providers/provider'; +import { NetworkDnsFields, NetworkDnsItem } from '../../../graphql/types'; +import { + DragEffects, + DraggableWrapper, +} from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { defaultToEmptyTag, getEmptyTagValue } from '../../../common/components/empty_value'; +import { Columns } from '../../../common/components/paginated_table'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { PreferenceFormattedBytes } from '../../../common/components/formatted_bytes'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; import * as i18n from './translations'; export type NetworkDnsColumns = [ diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/index.test.tsx b/x-pack/plugins/siem/public/network/components/network_dns_table/index.test.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/index.test.tsx rename to x-pack/plugins/siem/public/network/components/network_dns_table/index.test.tsx index e425057dd0f7..f2d8ce6cb6c4 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_dns_table/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/network_dns_table/index.test.tsx @@ -10,9 +10,15 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; -import { createStore, networkModel, State } from '../../../../store'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { State, createStore } from '../../../common/store'; +import { networkModel } from '../../store'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { NetworkDnsTable } from '.'; import { mockData } from './mock'; @@ -20,11 +26,11 @@ import { mockData } from './mock'; describe('NetworkTopNFlow Table Component', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); const mount = useMountAppended(); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/index.tsx b/x-pack/plugins/siem/public/network/components/network_dns_table/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/index.tsx rename to x-pack/plugins/siem/public/network/components/network_dns_table/index.tsx index c1dd96c5c96f..fc763298f08f 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_dns_table/index.tsx +++ b/x-pack/plugins/siem/public/network/components/network_dns_table/index.tsx @@ -8,15 +8,15 @@ import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { networkActions } from '../../../../store/actions'; +import { networkActions, networkModel, networkSelectors } from '../../store'; import { Direction, NetworkDnsEdges, NetworkDnsFields, NetworkDnsSortField, -} from '../../../../graphql/types'; -import { networkModel, networkSelectors, State } from '../../../../store'; -import { Criteria, ItemsPerRow, PaginatedTable } from '../../../paginated_table'; +} from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { Criteria, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; import { getNetworkDnsColumns } from './columns'; import { IsPtrIncluded } from './is_ptr_included'; diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/is_ptr_included.test.tsx b/x-pack/plugins/siem/public/network/components/network_dns_table/is_ptr_included.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/is_ptr_included.test.tsx rename to x-pack/plugins/siem/public/network/components/network_dns_table/is_ptr_included.test.tsx index 31a1b1667087..36dca6981a7a 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_dns_table/is_ptr_included.test.tsx +++ b/x-pack/plugins/siem/public/network/components/network_dns_table/is_ptr_included.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { FlowDirection } from '../../../../graphql/types'; +import { FlowDirection } from '../../../graphql/types'; import { IsPtrIncluded } from './is_ptr_included'; diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/is_ptr_included.tsx b/x-pack/plugins/siem/public/network/components/network_dns_table/is_ptr_included.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/is_ptr_included.tsx rename to x-pack/plugins/siem/public/network/components/network_dns_table/is_ptr_included.tsx diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/mock.ts b/x-pack/plugins/siem/public/network/components/network_dns_table/mock.ts similarity index 98% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/mock.ts rename to x-pack/plugins/siem/public/network/components/network_dns_table/mock.ts index 281125edb9dc..d094256fa402 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_dns_table/mock.ts +++ b/x-pack/plugins/siem/public/network/components/network_dns_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NetworkDnsData } from '../../../../graphql/types'; +import { NetworkDnsData } from '../../../graphql/types'; export const mockData: { NetworkDns: NetworkDnsData } = { NetworkDns: { diff --git a/x-pack/plugins/siem/public/components/page/network/network_dns_table/translations.ts b/x-pack/plugins/siem/public/network/components/network_dns_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_dns_table/translations.ts rename to x-pack/plugins/siem/public/network/components/network_dns_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/network_http_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/network_http_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_http_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/network_http_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/network_http_table/columns.tsx b/x-pack/plugins/siem/public/network/components/network_http_table/columns.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/page/network/network_http_table/columns.tsx rename to x-pack/plugins/siem/public/network/components/network_http_table/columns.tsx index bffc7235b680..4642fdd2f2c9 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_http_table/columns.tsx +++ b/x-pack/plugins/siem/public/network/components/network_http_table/columns.tsx @@ -8,14 +8,17 @@ import React from 'react'; import numeral from '@elastic/numeral'; -import { NetworkHttpEdges, NetworkHttpFields, NetworkHttpItem } from '../../../../graphql/types'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { getEmptyTagValue } from '../../../empty_value'; -import { IPDetailsLink } from '../../../links'; -import { Columns } from '../../../paginated_table'; +import { NetworkHttpEdges, NetworkHttpFields, NetworkHttpItem } from '../../../graphql/types'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { IPDetailsLink } from '../../../common/components/links'; +import { Columns } from '../../../common/components/paginated_table'; import * as i18n from './translations'; -import { getRowItemDraggable, getRowItemDraggables } from '../../../tables/helpers'; +import { + getRowItemDraggable, + getRowItemDraggables, +} from '../../../common/components/tables/helpers'; export type NetworkHttpColumns = [ Columns, Columns, diff --git a/x-pack/plugins/siem/public/components/page/network/network_http_table/index.test.tsx b/x-pack/plugins/siem/public/network/components/network_http_table/index.test.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/page/network/network_http_table/index.test.tsx rename to x-pack/plugins/siem/public/network/components/network_http_table/index.test.tsx index c4596ada5c74..3c4e1559e9f7 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_http_table/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/network_http_table/index.test.tsx @@ -10,9 +10,15 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { createStore, networkModel, State } from '../../../../store'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { networkModel } from '../../store'; import { NetworkHttpTable } from '.'; import { mockData } from './mock'; @@ -21,11 +27,11 @@ describe('NetworkHttp Table Component', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); const mount = useMountAppended(); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/network_http_table/index.tsx b/x-pack/plugins/siem/public/network/components/network_http_table/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/page/network/network_http_table/index.tsx rename to x-pack/plugins/siem/public/network/components/network_http_table/index.tsx index 6a8b1308f1d3..cab7106584e0 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_http_table/index.tsx +++ b/x-pack/plugins/siem/public/network/components/network_http_table/index.tsx @@ -7,10 +7,10 @@ import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; -import { networkActions } from '../../../../store/actions'; -import { Direction, NetworkHttpEdges, NetworkHttpFields } from '../../../../graphql/types'; -import { networkModel, networkSelectors, State } from '../../../../store'; -import { Criteria, ItemsPerRow, PaginatedTable } from '../../../paginated_table'; +import { networkActions, networkModel, networkSelectors } from '../../store'; +import { Direction, NetworkHttpEdges, NetworkHttpFields } from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { Criteria, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; import { getNetworkHttpColumns } from './columns'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/network/network_http_table/mock.ts b/x-pack/plugins/siem/public/network/components/network_http_table/mock.ts similarity index 97% rename from x-pack/plugins/siem/public/components/page/network/network_http_table/mock.ts rename to x-pack/plugins/siem/public/network/components/network_http_table/mock.ts index ed9b00ba8e49..f82f911d601f 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_http_table/mock.ts +++ b/x-pack/plugins/siem/public/network/components/network_http_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NetworkHttpData } from '../../../../graphql/types'; +import { NetworkHttpData } from '../../../graphql/types'; export const mockData: { NetworkHttp: NetworkHttpData } = { NetworkHttp: { diff --git a/x-pack/plugins/siem/public/components/page/network/network_http_table/translations.ts b/x-pack/plugins/siem/public/network/components/network_http_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_http_table/translations.ts rename to x-pack/plugins/siem/public/network/components/network_http_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/network_top_countries_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_top_countries_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/network_top_countries_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/columns.tsx b/x-pack/plugins/siem/public/network/components/network_top_countries_table/columns.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/page/network/network_top_countries_table/columns.tsx rename to x-pack/plugins/siem/public/network/components/network_top_countries_table/columns.tsx index ae2723e00650..60d691f48deb 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/columns.tsx +++ b/x-pack/plugins/siem/public/network/components/network_top_countries_table/columns.tsx @@ -9,21 +9,24 @@ import numeral from '@elastic/numeral'; import React from 'react'; import { IIndexPattern } from 'src/plugins/data/public'; -import { CountryFlagAndName } from '../../../source_destination/country_flag'; +import { CountryFlagAndName } from '../source_destination/country_flag'; import { FlowTargetSourceDest, NetworkTopCountriesEdges, TopNetworkTablesEcsField, -} from '../../../../graphql/types'; -import { networkModel } from '../../../../store'; -import { DragEffects, DraggableWrapper } from '../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { getEmptyTagValue } from '../../../empty_value'; -import { Columns } from '../../../paginated_table'; -import { IS_OPERATOR } from '../../../timeline/data_providers/data_provider'; -import { Provider } from '../../../timeline/data_providers/provider'; +} from '../../../graphql/types'; +import { networkModel } from '../../store'; +import { + DragEffects, + DraggableWrapper, +} from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { Columns } from '../../../common/components/paginated_table'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; import * as i18n from './translations'; -import { PreferenceFormattedBytes } from '../../../formatted_bytes'; +import { PreferenceFormattedBytes } from '../../../common/components/formatted_bytes'; export type NetworkTopCountriesColumns = [ Columns, diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/index.test.tsx b/x-pack/plugins/siem/public/network/components/network_top_countries_table/index.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/page/network/network_top_countries_table/index.test.tsx rename to x-pack/plugins/siem/public/network/components/network_top_countries_table/index.test.tsx index 764e440a5a4b..a449ed8dfa9c 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/network_top_countries_table/index.test.tsx @@ -10,15 +10,17 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { FlowTargetSourceDest } from '../../../../graphql/types'; +import { FlowTargetSourceDest } from '../../../graphql/types'; import { apolloClientObservable, mockGlobalState, mockIndexPattern, TestProviders, -} from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { createStore, networkModel, State } from '../../../../store'; + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { networkModel } from '../../store'; import { NetworkTopCountriesTable } from '.'; import { mockData } from './mock'; @@ -28,10 +30,10 @@ describe('NetworkTopCountries Table Component', () => { const state: State = mockGlobalState; const mount = useMountAppended(); - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/index.tsx b/x-pack/plugins/siem/public/network/components/network_top_countries_table/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/page/network/network_top_countries_table/index.tsx rename to x-pack/plugins/siem/public/network/components/network_top_countries_table/index.tsx index 30f7d5ad8239..c2a280d30d10 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/index.tsx +++ b/x-pack/plugins/siem/public/network/components/network_top_countries_table/index.tsx @@ -10,16 +10,17 @@ import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; import { IIndexPattern } from 'src/plugins/data/public'; -import { networkActions } from '../../../../store/actions'; +import { networkActions, networkModel, networkSelectors } from '../../store'; import { Direction, FlowTargetSourceDest, NetworkTopCountriesEdges, NetworkTopTablesFields, NetworkTopTablesSortField, -} from '../../../../graphql/types'; -import { networkModel, networkSelectors, State } from '../../../../store'; -import { Criteria, ItemsPerRow, PaginatedTable } from '../../../paginated_table'; +} from '../../../graphql/types'; +import { State } from '../../../common/store'; + +import { Criteria, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; import { getCountriesColumnsCurated } from './columns'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/mock.ts b/x-pack/plugins/siem/public/network/components/network_top_countries_table/mock.ts similarity index 94% rename from x-pack/plugins/siem/public/components/page/network/network_top_countries_table/mock.ts rename to x-pack/plugins/siem/public/network/components/network_top_countries_table/mock.ts index 42b933c7fba6..cee775c93d66 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/mock.ts +++ b/x-pack/plugins/siem/public/network/components/network_top_countries_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NetworkTopCountriesData } from '../../../../graphql/types'; +import { NetworkTopCountriesData } from '../../../graphql/types'; export const mockData: { NetworkTopCountries: NetworkTopCountriesData } = { NetworkTopCountries: { diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_countries_table/translations.ts b/x-pack/plugins/siem/public/network/components/network_top_countries_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_top_countries_table/translations.ts rename to x-pack/plugins/siem/public/network/components/network_top_countries_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/network_top_n_flow_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/columns.tsx b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/columns.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/columns.tsx rename to x-pack/plugins/siem/public/network/components/network_top_n_flow_table/columns.tsx index 3ed377c7ba4b..64626c450b9e 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/columns.tsx +++ b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/columns.tsx @@ -8,24 +8,30 @@ import { get } from 'lodash/fp'; import numeral from '@elastic/numeral'; import React from 'react'; -import { CountryFlag } from '../../../source_destination/country_flag'; +import { CountryFlag } from '../source_destination/country_flag'; import { AutonomousSystemItem, FlowTargetSourceDest, NetworkTopNFlowEdges, TopNetworkTablesEcsField, -} from '../../../../graphql/types'; -import { networkModel } from '../../../../store'; -import { DragEffects, DraggableWrapper } from '../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { getEmptyTagValue } from '../../../empty_value'; -import { IPDetailsLink } from '../../../links'; -import { Columns } from '../../../paginated_table'; -import { IS_OPERATOR } from '../../../timeline/data_providers/data_provider'; -import { Provider } from '../../../timeline/data_providers/provider'; +} from '../../../graphql/types'; +import { networkModel } from '../../store'; +import { + DragEffects, + DraggableWrapper, +} from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { IPDetailsLink } from '../../../common/components/links'; +import { Columns } from '../../../common/components/paginated_table'; +import { IS_OPERATOR } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; import * as i18n from './translations'; -import { getRowItemDraggable, getRowItemDraggables } from '../../../tables/helpers'; -import { PreferenceFormattedBytes } from '../../../formatted_bytes'; +import { + getRowItemDraggable, + getRowItemDraggables, +} from '../../../common/components/tables/helpers'; +import { PreferenceFormattedBytes } from '../../../common/components/formatted_bytes'; export type NetworkTopNFlowColumns = [ Columns, diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/index.test.tsx b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/index.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/index.test.tsx rename to x-pack/plugins/siem/public/network/components/network_top_n_flow_table/index.test.tsx index 78e8b15005f4..58a7ef744ade 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/index.test.tsx @@ -10,11 +10,16 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { FlowTargetSourceDest } from '../../../../graphql/types'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { createStore, networkModel, State } from '../../../../store'; - +import { FlowTargetSourceDest } from '../../../graphql/types'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { networkModel } from '../../store'; import { NetworkTopNFlowTable } from '.'; import { mockData } from './mock'; @@ -22,11 +27,11 @@ describe('NetworkTopNFlow Table Component', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); const mount = useMountAppended(); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/index.tsx b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/index.tsx rename to x-pack/plugins/siem/public/network/components/network_top_n_flow_table/index.tsx index 8e49db04a546..617dd9d08a9d 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/index.tsx +++ b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/index.tsx @@ -8,17 +8,16 @@ import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { networkActions } from '../../../../store/actions'; import { Direction, FlowTargetSourceDest, NetworkTopNFlowEdges, NetworkTopTablesFields, NetworkTopTablesSortField, -} from '../../../../graphql/types'; -import { networkModel, networkSelectors, State } from '../../../../store'; -import { Criteria, ItemsPerRow, PaginatedTable } from '../../../paginated_table'; - +} from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { Criteria, ItemsPerRow, PaginatedTable } from '../../../common/components/paginated_table'; +import { networkActions, networkModel, networkSelectors } from '../../store'; import { getNFlowColumnsCurated } from './columns'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/mock.ts b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/mock.ts similarity index 99% rename from x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/mock.ts rename to x-pack/plugins/siem/public/network/components/network_top_n_flow_table/mock.ts index 9ef63bf6d316..bd21d78ba77c 100644 --- a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/mock.ts +++ b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { NetworkTopNFlowData, FlowTargetSourceDest } from '../../../../graphql/types'; +import { NetworkTopNFlowData, FlowTargetSourceDest } from '../../../graphql/types'; export const mockData: { NetworkTopNFlow: NetworkTopNFlowData } = { NetworkTopNFlow: { diff --git a/x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/translations.ts b/x-pack/plugins/siem/public/network/components/network_top_n_flow_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/network_top_n_flow_table/translations.ts rename to x-pack/plugins/siem/public/network/components/network_top_n_flow_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/port/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/port/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/port/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/port/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/port/index.test.tsx b/x-pack/plugins/siem/public/network/components/port/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/port/index.test.tsx rename to x-pack/plugins/siem/public/network/components/port/index.test.tsx index 6ab587f266a8..1f78f1d96cda 100644 --- a/x-pack/plugins/siem/public/components/port/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/port/index.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../mock/test_providers'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { TestProviders } from '../../../common/mock/test_providers'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { Port } from '.'; diff --git a/x-pack/plugins/siem/public/components/port/index.tsx b/x-pack/plugins/siem/public/network/components/port/index.tsx similarity index 80% rename from x-pack/plugins/siem/public/components/port/index.tsx rename to x-pack/plugins/siem/public/network/components/port/index.tsx index bd6289547d0d..6f54f11ccfbe 100644 --- a/x-pack/plugins/siem/public/components/port/index.tsx +++ b/x-pack/plugins/siem/public/network/components/port/index.tsx @@ -6,10 +6,10 @@ import React from 'react'; -import { DefaultDraggable } from '../draggables'; -import { getEmptyValue } from '../empty_value'; -import { ExternalLinkIcon } from '../external_link_icon'; -import { PortOrServiceNameLink } from '../links'; +import { DefaultDraggable } from '../../../common/components/draggables'; +import { getEmptyValue } from '../../../common/components/empty_value'; +import { ExternalLinkIcon } from '../../../common/components/external_link_icon'; +import { PortOrServiceNameLink } from '../../../common/components/links'; export const CLIENT_PORT_FIELD_NAME = 'client.port'; export const DESTINATION_PORT_FIELD_NAME = 'destination.port'; diff --git a/x-pack/plugins/siem/public/components/source_destination/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/source_destination/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/source_destination/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/source_destination/country_flag.tsx b/x-pack/plugins/siem/public/network/components/source_destination/country_flag.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/country_flag.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/country_flag.tsx diff --git a/x-pack/plugins/siem/public/components/source_destination/field_names.ts b/x-pack/plugins/siem/public/network/components/source_destination/field_names.ts similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/field_names.ts rename to x-pack/plugins/siem/public/network/components/source_destination/field_names.ts diff --git a/x-pack/plugins/siem/public/components/source_destination/geo_fields.tsx b/x-pack/plugins/siem/public/network/components/source_destination/geo_fields.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/source_destination/geo_fields.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/geo_fields.tsx index baeca10ee0fa..3618ee40dc8d 100644 --- a/x-pack/plugins/siem/public/components/source_destination/geo_fields.tsx +++ b/x-pack/plugins/siem/public/network/components/source_destination/geo_fields.tsx @@ -9,7 +9,7 @@ import { get, uniq } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { DefaultDraggable } from '../draggables'; +import { DefaultDraggable } from '../../../common/components/draggables'; import { CountryFlag } from './country_flag'; import { GeoFieldsProps, SourceDestinationType } from './types'; diff --git a/x-pack/plugins/siem/public/components/source_destination/index.test.tsx b/x-pack/plugins/siem/public/network/components/source_destination/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/source_destination/index.test.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/index.test.tsx index 3dee668d66a7..96545813bbba 100644 --- a/x-pack/plugins/siem/public/components/source_destination/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/source_destination/index.test.tsx @@ -9,11 +9,11 @@ import { shallow } from 'enzyme'; import { get } from 'lodash/fp'; import React from 'react'; -import { asArrayIfExists } from '../../lib/helpers'; -import { getMockNetflowData } from '../../mock'; -import { TestProviders } from '../../mock/test_providers'; -import { ID_FIELD_NAME } from '../event_details/event_id'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { asArrayIfExists } from '../../../common/lib/helpers'; +import { getMockNetflowData } from '../../../common/mock'; +import { TestProviders } from '../../../common/mock/test_providers'; +import { ID_FIELD_NAME } from '../../../common/components/event_details/event_id'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../ip'; import { DESTINATION_PORT_FIELD_NAME, SOURCE_PORT_FIELD_NAME } from '../port'; import { @@ -22,7 +22,7 @@ import { SOURCE_BYTES_FIELD_NAME, SOURCE_PACKETS_FIELD_NAME, } from '../source_destination/source_destination_arrows'; -import * as i18n from '../timeline/body/renderers/translations'; +import * as i18n from '../../../timelines/components/timeline/body/renderers/translations'; import { SourceDestination } from '.'; import { diff --git a/x-pack/plugins/siem/public/components/source_destination/index.tsx b/x-pack/plugins/siem/public/network/components/source_destination/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/index.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/index.tsx diff --git a/x-pack/plugins/siem/public/components/source_destination/ip_with_port.tsx b/x-pack/plugins/siem/public/network/components/source_destination/ip_with_port.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/ip_with_port.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/ip_with_port.tsx diff --git a/x-pack/plugins/siem/public/components/source_destination/label.tsx b/x-pack/plugins/siem/public/network/components/source_destination/label.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/label.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/label.tsx diff --git a/x-pack/plugins/siem/public/components/source_destination/network.tsx b/x-pack/plugins/siem/public/network/components/source_destination/network.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/source_destination/network.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/network.tsx index a0b86b3e9a13..cb1f72bca02c 100644 --- a/x-pack/plugins/siem/public/components/source_destination/network.tsx +++ b/x-pack/plugins/siem/public/network/components/source_destination/network.tsx @@ -10,7 +10,7 @@ import React from 'react'; import styled from 'styled-components'; import { DirectionBadge } from '../direction'; -import { DefaultDraggable, DraggableBadge } from '../draggables'; +import { DefaultDraggable, DraggableBadge } from '../../../common/components/draggables'; import * as i18n from './translations'; import { @@ -20,7 +20,7 @@ import { NETWORK_PROTOCOL_FIELD_NAME, NETWORK_TRANSPORT_FIELD_NAME, } from './field_names'; -import { PreferenceFormattedBytes } from '../formatted_bytes'; +import { PreferenceFormattedBytes } from '../../../common/components/formatted_bytes'; const EuiFlexItemMarginRight = styled(EuiFlexItem)` margin-right: 3px; diff --git a/x-pack/plugins/siem/public/components/source_destination/source_destination_arrows.tsx b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_arrows.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/source_destination/source_destination_arrows.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/source_destination_arrows.tsx index 005ebc14dcdc..95cc76a349c1 100644 --- a/x-pack/plugins/siem/public/components/source_destination/source_destination_arrows.tsx +++ b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_arrows.tsx @@ -16,8 +16,8 @@ import { getPercent, hasOneValue, } from '../arrows/helpers'; -import { DefaultDraggable } from '../draggables'; -import { PreferenceFormattedBytes } from '../formatted_bytes'; +import { DefaultDraggable } from '../../../common/components/draggables'; +import { PreferenceFormattedBytes } from '../../../common/components/formatted_bytes'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/source_destination/source_destination_ip.test.tsx b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_ip.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/source_destination/source_destination_ip.test.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/source_destination_ip.test.tsx index 60ab59c3796f..18459352f89f 100644 --- a/x-pack/plugins/siem/public/components/source_destination/source_destination_ip.test.tsx +++ b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_ip.test.tsx @@ -7,14 +7,14 @@ import { get } from 'lodash/fp'; import React from 'react'; -import { asArrayIfExists } from '../../lib/helpers'; -import { getMockNetflowData } from '../../mock'; -import { TestProviders } from '../../mock/test_providers'; -import { ID_FIELD_NAME } from '../event_details/event_id'; +import { asArrayIfExists } from '../../../common/lib/helpers'; +import { getMockNetflowData } from '../../../common/mock'; +import { TestProviders } from '../../../common/mock/test_providers'; +import { ID_FIELD_NAME } from '../../../common/components/event_details/event_id'; import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../ip'; import { DESTINATION_PORT_FIELD_NAME, SOURCE_PORT_FIELD_NAME } from '../port'; -import * as i18n from '../timeline/body/renderers/translations'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import * as i18n from '../../../timelines/components/timeline/body/renderers/translations'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { getPorts, diff --git a/x-pack/plugins/siem/public/components/source_destination/source_destination_ip.tsx b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_ip.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/source_destination/source_destination_ip.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/source_destination_ip.tsx index 62f01dfc020f..4a242961d91f 100644 --- a/x-pack/plugins/siem/public/components/source_destination/source_destination_ip.tsx +++ b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_ip.tsx @@ -11,7 +11,7 @@ import deepEqual from 'fast-deep-equal'; import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../ip'; import { DESTINATION_PORT_FIELD_NAME, SOURCE_PORT_FIELD_NAME, Port } from '../port'; -import * as i18n from '../timeline/body/renderers/translations'; +import * as i18n from '../../../timelines/components/timeline/body/renderers/translations'; import { GeoFields } from './geo_fields'; import { IpWithPort } from './ip_with_port'; diff --git a/x-pack/plugins/siem/public/components/source_destination/source_destination_with_arrows.tsx b/x-pack/plugins/siem/public/network/components/source_destination/source_destination_with_arrows.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/source_destination_with_arrows.tsx rename to x-pack/plugins/siem/public/network/components/source_destination/source_destination_with_arrows.tsx diff --git a/x-pack/plugins/siem/public/components/source_destination/translations.ts b/x-pack/plugins/siem/public/network/components/source_destination/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/translations.ts rename to x-pack/plugins/siem/public/network/components/source_destination/translations.ts diff --git a/x-pack/plugins/siem/public/components/source_destination/types.ts b/x-pack/plugins/siem/public/network/components/source_destination/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/source_destination/types.ts rename to x-pack/plugins/siem/public/network/components/source_destination/types.ts diff --git a/x-pack/plugins/siem/public/components/page/network/tls_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/tls_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/tls_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/tls_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/tls_table/columns.tsx b/x-pack/plugins/siem/public/network/components/tls_table/columns.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/page/network/tls_table/columns.tsx rename to x-pack/plugins/siem/public/network/components/tls_table/columns.tsx index f95475819abc..5a6317291430 100644 --- a/x-pack/plugins/siem/public/components/page/network/tls_table/columns.tsx +++ b/x-pack/plugins/siem/public/network/components/tls_table/columns.tsx @@ -8,12 +8,15 @@ import React from 'react'; import moment from 'moment'; -import { TlsNode } from '../../../../graphql/types'; -import { Columns } from '../../../paginated_table'; +import { TlsNode } from '../../../graphql/types'; +import { Columns } from '../../../common/components/paginated_table'; -import { getRowItemDraggables, getRowItemDraggable } from '../../../tables/helpers'; -import { LocalizedDateTooltip } from '../../../localized_date_tooltip'; -import { PreferenceFormattedDate } from '../../../formatted_date'; +import { + getRowItemDraggables, + getRowItemDraggable, +} from '../../../common/components/tables/helpers'; +import { LocalizedDateTooltip } from '../../../common/components/localized_date_tooltip'; +import { PreferenceFormattedDate } from '../../../common/components/formatted_date'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/network/tls_table/index.test.tsx b/x-pack/plugins/siem/public/network/components/tls_table/index.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/page/network/tls_table/index.test.tsx rename to x-pack/plugins/siem/public/network/components/tls_table/index.test.tsx index 81a472f3175e..7f2cfc8ba9ba 100644 --- a/x-pack/plugins/siem/public/components/page/network/tls_table/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/tls_table/index.test.tsx @@ -10,10 +10,15 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { createStore, networkModel, State } from '../../../../store'; - +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { networkModel } from '../../store'; import { TlsTable } from '.'; import { mockTlsData } from './mock'; @@ -21,11 +26,11 @@ describe('Tls Table Component', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); const mount = useMountAppended(); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('Rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/tls_table/index.tsx b/x-pack/plugins/siem/public/network/components/tls_table/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/page/network/tls_table/index.tsx rename to x-pack/plugins/siem/public/network/components/tls_table/index.tsx index d1512699cc70..34bde8f42eaf 100644 --- a/x-pack/plugins/siem/public/components/page/network/tls_table/index.tsx +++ b/x-pack/plugins/siem/public/network/components/tls_table/index.tsx @@ -8,10 +8,15 @@ import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { networkActions } from '../../../../store/network'; -import { TlsEdges, TlsSortField, TlsFields, Direction } from '../../../../graphql/types'; -import { networkModel, networkSelectors, State } from '../../../../store'; -import { Criteria, ItemsPerRow, PaginatedTable, SortingBasicTable } from '../../../paginated_table'; +import { networkActions, networkModel, networkSelectors } from '../../store'; +import { TlsEdges, TlsSortField, TlsFields, Direction } from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { + Criteria, + ItemsPerRow, + PaginatedTable, + SortingBasicTable, +} from '../../../common/components/paginated_table'; import { getTlsColumns } from './columns'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/network/tls_table/mock.ts b/x-pack/plugins/siem/public/network/components/tls_table/mock.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/network/tls_table/mock.ts rename to x-pack/plugins/siem/public/network/components/tls_table/mock.ts index 453bd8fc84df..a90907eb3885 100644 --- a/x-pack/plugins/siem/public/components/page/network/tls_table/mock.ts +++ b/x-pack/plugins/siem/public/network/components/tls_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { TlsData } from '../../../../graphql/types'; +import { TlsData } from '../../../graphql/types'; export const mockTlsData: TlsData = { totalCount: 2, diff --git a/x-pack/plugins/siem/public/components/page/network/tls_table/translations.ts b/x-pack/plugins/siem/public/network/components/tls_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/tls_table/translations.ts rename to x-pack/plugins/siem/public/network/components/tls_table/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/network/users_table/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/components/users_table/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/users_table/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/components/users_table/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/network/users_table/columns.tsx b/x-pack/plugins/siem/public/network/components/users_table/columns.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/page/network/users_table/columns.tsx rename to x-pack/plugins/siem/public/network/components/users_table/columns.tsx index b732ac5bfd5f..d3ad2cd707ec 100644 --- a/x-pack/plugins/siem/public/components/page/network/users_table/columns.tsx +++ b/x-pack/plugins/siem/public/network/components/users_table/columns.tsx @@ -4,12 +4,15 @@ * you may not use this file except in compliance with the Elastic License. */ -import { FlowTarget, UsersItem } from '../../../../graphql/types'; -import { defaultToEmptyTag } from '../../../empty_value'; -import { Columns } from '../../../paginated_table'; +import { FlowTarget, UsersItem } from '../../../graphql/types'; +import { defaultToEmptyTag } from '../../../common/components/empty_value'; +import { Columns } from '../../../common/components/paginated_table'; import * as i18n from './translations'; -import { getRowItemDraggables, getRowItemDraggable } from '../../../tables/helpers'; +import { + getRowItemDraggables, + getRowItemDraggable, +} from '../../../common/components/tables/helpers'; export type UsersColumns = [ Columns, diff --git a/x-pack/plugins/siem/public/components/page/network/users_table/index.test.tsx b/x-pack/plugins/siem/public/network/components/users_table/index.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/page/network/users_table/index.test.tsx rename to x-pack/plugins/siem/public/network/components/users_table/index.test.tsx index 8dc3704a089e..2597249797da 100644 --- a/x-pack/plugins/siem/public/components/page/network/users_table/index.test.tsx +++ b/x-pack/plugins/siem/public/network/components/users_table/index.test.tsx @@ -10,10 +10,16 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { FlowTarget } from '../../../../graphql/types'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { createStore, networkModel, State } from '../../../../store'; +import { FlowTarget } from '../../../graphql/types'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { networkModel } from '../../store'; import { UsersTable } from '.'; import { mockUsersData } from './mock'; @@ -22,11 +28,11 @@ describe('Users Table Component', () => { const loadPage = jest.fn(); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); const mount = useMountAppended(); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); }); describe('Rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/network/users_table/index.tsx b/x-pack/plugins/siem/public/network/components/users_table/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/page/network/users_table/index.tsx rename to x-pack/plugins/siem/public/network/components/users_table/index.tsx index b585b835f31c..5e5bac20141b 100644 --- a/x-pack/plugins/siem/public/components/page/network/users_table/index.tsx +++ b/x-pack/plugins/siem/public/network/components/users_table/index.tsx @@ -8,20 +8,25 @@ import React, { useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { networkActions } from '../../../../store/network'; +import { networkActions, networkModel, networkSelectors } from '../../store'; import { Direction, FlowTarget, UsersEdges, UsersFields, UsersSortField, -} from '../../../../graphql/types'; -import { networkModel, networkSelectors, State } from '../../../../store'; -import { Criteria, ItemsPerRow, PaginatedTable, SortingBasicTable } from '../../../paginated_table'; +} from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { + Criteria, + ItemsPerRow, + PaginatedTable, + SortingBasicTable, +} from '../../../common/components/paginated_table'; import { getUsersColumns } from './columns'; import * as i18n from './translations'; -import { assertUnreachable } from '../../../../lib/helpers'; +import { assertUnreachable } from '../../../common/lib/helpers'; const tableType = networkModel.IpDetailsTableType.users; interface OwnProps { diff --git a/x-pack/plugins/siem/public/components/page/network/users_table/mock.ts b/x-pack/plugins/siem/public/network/components/users_table/mock.ts similarity index 95% rename from x-pack/plugins/siem/public/components/page/network/users_table/mock.ts rename to x-pack/plugins/siem/public/network/components/users_table/mock.ts index 9a5de66a91a3..50bef1867aa3 100644 --- a/x-pack/plugins/siem/public/components/page/network/users_table/mock.ts +++ b/x-pack/plugins/siem/public/network/components/users_table/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { UsersData } from '../../../../graphql/types'; +import { UsersData } from '../../../graphql/types'; export const mockUsersData: UsersData = { edges: [ diff --git a/x-pack/plugins/siem/public/components/page/network/users_table/translations.ts b/x-pack/plugins/siem/public/network/components/users_table/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/network/users_table/translations.ts rename to x-pack/plugins/siem/public/network/components/users_table/translations.ts diff --git a/x-pack/plugins/siem/public/containers/ip_overview/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/ip_overview/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/ip_overview/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/ip_overview/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/ip_overview/index.tsx b/x-pack/plugins/siem/public/network/containers/ip_overview/index.tsx similarity index 82% rename from x-pack/plugins/siem/public/containers/ip_overview/index.tsx rename to x-pack/plugins/siem/public/network/containers/ip_overview/index.tsx index ade94c430c6e..551ecebf2c05 100644 --- a/x-pack/plugins/siem/public/containers/ip_overview/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/ip_overview/index.tsx @@ -9,13 +9,13 @@ import React from 'react'; import { Query } from 'react-apollo'; import { connect, ConnectedProps } from 'react-redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { GetIpOverviewQuery, IpOverviewData } from '../../graphql/types'; -import { networkModel, inputsModel, inputsSelectors, State } from '../../store'; -import { useUiSetting } from '../../lib/kibana'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplateProps } from '../query_template'; - +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { GetIpOverviewQuery, IpOverviewData } from '../../../graphql/types'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { useUiSetting } from '../../../common/lib/kibana'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { QueryTemplateProps } from '../../../common/containers/query_template'; +import { networkModel } from '../../store'; import { ipOverviewQuery } from './index.gql_query'; const ID = 'ipOverviewQuery'; diff --git a/x-pack/plugins/siem/public/containers/kpi_network/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/kpi_network/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/kpi_network/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/kpi_network/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/kpi_network/index.tsx b/x-pack/plugins/siem/public/network/containers/kpi_network/index.tsx similarity index 83% rename from x-pack/plugins/siem/public/containers/kpi_network/index.tsx rename to x-pack/plugins/siem/public/network/containers/kpi_network/index.tsx index 338cdc39b178..edba8b4c2e65 100644 --- a/x-pack/plugins/siem/public/containers/kpi_network/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/kpi_network/index.tsx @@ -9,12 +9,12 @@ import React from 'react'; import { Query } from 'react-apollo'; import { connect, ConnectedProps } from 'react-redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { GetKpiNetworkQuery, KpiNetworkData } from '../../graphql/types'; -import { inputsModel, inputsSelectors, State } from '../../store'; -import { useUiSetting } from '../../lib/kibana'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplateProps } from '../query_template'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { GetKpiNetworkQuery, KpiNetworkData } from '../../../graphql/types'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { useUiSetting } from '../../../common/lib/kibana'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { QueryTemplateProps } from '../../../common/containers/query_template'; import { kpiNetworkQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/network_dns/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/network_dns/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/network_dns/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/network_dns/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/network_dns/index.tsx b/x-pack/plugins/siem/public/network/containers/network_dns/index.tsx similarity index 85% rename from x-pack/plugins/siem/public/containers/network_dns/index.tsx rename to x-pack/plugins/siem/public/network/containers/network_dns/index.tsx index 04c8783c30a0..2bae19ce89ae 100644 --- a/x-pack/plugins/siem/public/containers/network_dns/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/network_dns/index.tsx @@ -12,25 +12,32 @@ import { compose } from 'redux'; import { DocumentNode } from 'graphql'; import { ScaleType } from '@elastic/charts'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { GetNetworkDnsQuery, NetworkDnsEdges, NetworkDnsSortField, PageInfoPaginated, MatrixOverOrdinalHistogramData, -} from '../../graphql/types'; -import { inputsModel, networkModel, networkSelectors, State, inputsSelectors } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; +} from '../../../graphql/types'; +import { inputsModel, State, inputsSelectors } from '../../../common/store'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; import { networkDnsQuery } from './index.gql_query'; -import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from '../../store/constants'; -import { MatrixHistogram } from '../../components/matrix_histogram'; -import { MatrixHistogramOption, GetSubTitle } from '../../components/matrix_histogram/types'; -import { UpdateDateRange } from '../../components/charts/common'; -import { SetQuery } from '../../pages/hosts/navigation/types'; +import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from '../../../common/store/constants'; +import { MatrixHistogram } from '../../../common/components/matrix_histogram'; +import { + MatrixHistogramOption, + GetSubTitle, +} from '../../../common/components/matrix_histogram/types'; +import { UpdateDateRange } from '../../../common/components/charts/common'; +import { SetQuery } from '../../../hosts/pages/navigation/types'; +import { networkModel, networkSelectors } from '../../store'; const ID = 'networkDnsQuery'; export const HISTOGRAM_ID = 'networkDnsHistogramQuery'; diff --git a/x-pack/plugins/siem/public/containers/network_http/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/network_http/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/network_http/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/network_http/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/network_http/index.tsx b/x-pack/plugins/siem/public/network/containers/network_http/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/containers/network_http/index.tsx rename to x-pack/plugins/siem/public/network/containers/network_http/index.tsx index bf4e64f63d55..60845d452d69 100644 --- a/x-pack/plugins/siem/public/containers/network_http/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/network_http/index.tsx @@ -10,18 +10,22 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { GetNetworkHttpQuery, NetworkHttpEdges, NetworkHttpSortField, PageInfoPaginated, -} from '../../graphql/types'; -import { inputsModel, inputsSelectors, networkModel, networkSelectors, State } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; +} from '../../../graphql/types'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; +import { networkModel, networkSelectors } from '../../store'; import { networkHttpQuery } from './index.gql_query'; const ID = 'networkHttpQuery'; diff --git a/x-pack/plugins/siem/public/containers/network_top_countries/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/network_top_countries/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/network_top_countries/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/network_top_countries/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/network_top_countries/index.tsx b/x-pack/plugins/siem/public/network/containers/network_top_countries/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/containers/network_top_countries/index.tsx rename to x-pack/plugins/siem/public/network/containers/network_top_countries/index.tsx index bd1e1a002bbc..b167cba46081 100644 --- a/x-pack/plugins/siem/public/containers/network_top_countries/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/network_top_countries/index.tsx @@ -10,20 +10,24 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { FlowTargetSourceDest, GetNetworkTopCountriesQuery, NetworkTopCountriesEdges, NetworkTopTablesSortField, PageInfoPaginated, -} from '../../graphql/types'; -import { inputsModel, inputsSelectors, networkModel, networkSelectors, State } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; +} from '../../../graphql/types'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; import { networkTopCountriesQuery } from './index.gql_query'; +import { networkModel, networkSelectors } from '../../store'; const ID = 'networkTopCountriesQuery'; diff --git a/x-pack/plugins/siem/public/containers/network_top_n_flow/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/network_top_n_flow/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/network_top_n_flow/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/network_top_n_flow/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/network_top_n_flow/index.tsx b/x-pack/plugins/siem/public/network/containers/network_top_n_flow/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/containers/network_top_n_flow/index.tsx rename to x-pack/plugins/siem/public/network/containers/network_top_n_flow/index.tsx index f0f1f8257f29..770574b0813c 100644 --- a/x-pack/plugins/siem/public/containers/network_top_n_flow/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/network_top_n_flow/index.tsx @@ -10,20 +10,24 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { FlowTargetSourceDest, GetNetworkTopNFlowQuery, NetworkTopNFlowEdges, NetworkTopTablesSortField, PageInfoPaginated, -} from '../../graphql/types'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { inputsModel, inputsSelectors, networkModel, networkSelectors, State } from '../../store'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; +} from '../../../graphql/types'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; import { networkTopNFlowQuery } from './index.gql_query'; +import { networkModel, networkSelectors } from '../../store'; const ID = 'networkTopNFlowQuery'; diff --git a/x-pack/plugins/siem/public/containers/tls/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/tls/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/tls/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/tls/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/tls/index.tsx b/x-pack/plugins/siem/public/network/containers/tls/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/containers/tls/index.tsx rename to x-pack/plugins/siem/public/network/containers/tls/index.tsx index 3738355c8846..a50f2a131b75 100644 --- a/x-pack/plugins/siem/public/containers/tls/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/tls/index.tsx @@ -10,19 +10,23 @@ import { Query } from 'react-apollo'; import { connect } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { PageInfoPaginated, TlsEdges, TlsSortField, GetTlsQuery, FlowTargetSourceDest, -} from '../../graphql/types'; -import { inputsModel, networkModel, networkSelectors, State, inputsSelectors } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; +} from '../../../graphql/types'; +import { inputsModel, State, inputsSelectors } from '../../../common/store'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; +import { networkModel, networkSelectors } from '../../store'; import { tlsQuery } from './index.gql_query'; const ID = 'tlsQuery'; diff --git a/x-pack/plugins/siem/public/containers/users/index.gql_query.ts b/x-pack/plugins/siem/public/network/containers/users/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/users/index.gql_query.ts rename to x-pack/plugins/siem/public/network/containers/users/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/users/index.tsx b/x-pack/plugins/siem/public/network/containers/users/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/containers/users/index.tsx rename to x-pack/plugins/siem/public/network/containers/users/index.tsx index 5f71449c5246..efbeb3eb0054 100644 --- a/x-pack/plugins/siem/public/containers/users/index.tsx +++ b/x-pack/plugins/siem/public/network/containers/users/index.tsx @@ -10,13 +10,17 @@ import { Query } from 'react-apollo'; import { connect, ConnectedProps } from 'react-redux'; import { compose } from 'redux'; -import { DEFAULT_INDEX_KEY } from '../../../common/constants'; -import { GetUsersQuery, FlowTarget, PageInfoPaginated, UsersEdges } from '../../graphql/types'; -import { inputsModel, networkModel, networkSelectors, State, inputsSelectors } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { createFilter, getDefaultFetchPolicy } from '../helpers'; -import { generateTablePaginationOptions } from '../../components/paginated_table/helpers'; -import { QueryTemplatePaginated, QueryTemplatePaginatedProps } from '../query_template_paginated'; +import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; +import { GetUsersQuery, FlowTarget, PageInfoPaginated, UsersEdges } from '../../../graphql/types'; +import { inputsModel, State, inputsSelectors } from '../../../common/store'; +import { withKibana, WithKibanaProps } from '../../../common/lib/kibana'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { generateTablePaginationOptions } from '../../../common/components/paginated_table/helpers'; +import { + QueryTemplatePaginated, + QueryTemplatePaginatedProps, +} from '../../../common/containers/query_template_paginated'; +import { networkModel, networkSelectors } from '../../store'; import { usersQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/network/index.ts b/x-pack/plugins/siem/public/network/index.ts new file mode 100644 index 000000000000..6590e5ee5161 --- /dev/null +++ b/x-pack/plugins/siem/public/network/index.ts @@ -0,0 +1,23 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SecuritySubPluginWithStore } from '../app/types'; +import { getNetworkRoutes } from './routes'; +import { initialNetworkState, networkReducer, NetworkState } from './store'; + +export class Network { + public setup() {} + + public start(): SecuritySubPluginWithStore<'network', NetworkState> { + return { + routes: getNetworkRoutes(), + store: { + initialState: { network: initialNetworkState }, + reducer: { network: networkReducer }, + }, + }; + } +} diff --git a/x-pack/plugins/siem/public/pages/network/index.tsx b/x-pack/plugins/siem/public/network/pages/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/pages/network/index.tsx rename to x-pack/plugins/siem/public/network/pages/index.tsx index 412e51e74059..c6f13c118c30 100644 --- a/x-pack/plugins/siem/public/pages/network/index.tsx +++ b/x-pack/plugins/siem/public/network/pages/index.tsx @@ -7,14 +7,14 @@ import React, { useMemo } from 'react'; import { Redirect, Route, Switch, RouteComponentProps } from 'react-router-dom'; -import { useMlCapabilities } from '../../components/ml_popover/hooks/use_ml_capabilities'; +import { useMlCapabilities } from '../../common/components/ml_popover/hooks/use_ml_capabilities'; import { hasMlUserPermissions } from '../../../common/machine_learning/has_ml_user_permissions'; import { FlowTarget } from '../../graphql/types'; import { IPDetails } from './ip_details'; import { Network } from './network'; -import { GlobalTime } from '../../containers/global_time'; -import { SiemPageName } from '../home/types'; +import { GlobalTime } from '../../common/containers/global_time'; +import { SiemPageName } from '../../app/types'; import { getNetworkRoutePath } from './navigation'; import { NetworkRouteType } from './navigation/types'; diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/network/pages/ip_details/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/pages/network/ip_details/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/network/pages/ip_details/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/index.test.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/index.test.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/network/ip_details/index.test.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/index.test.tsx index 02132d790796..79af38f0cf88 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/index.test.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/index.test.tsx @@ -11,15 +11,19 @@ import { Router } from 'react-router-dom'; import { MockedProvider } from 'react-apollo/test-utils'; import { ActionCreator } from 'typescript-fsa'; -import '../../../mock/match_media'; +import '../../../common/mock/match_media'; -import { mocksSource } from '../../../containers/source/mock'; +import { mocksSource } from '../../../common/containers/source/mock'; import { FlowTarget } from '../../../graphql/types'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../mock'; -import { useMountAppended } from '../../../utils/use_mount_appended'; -import { createStore, State } from '../../../store'; -import { InputsModelId } from '../../../store/inputs/constants'; - +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; +import { createStore, State } from '../../../common/store'; +import { InputsModelId } from '../../../common/store/inputs/constants'; import { IPDetailsComponent, IPDetails } from './index'; type Action = 'PUSH' | 'POP' | 'REPLACE'; @@ -29,10 +33,10 @@ type GlobalWithFetch = NodeJS.Global & { fetch: jest.Mock }; // Test will fail because we will to need to mock some core services to make the test work // For now let's forget about SiemSearchBar and QueryBar -jest.mock('../../../components/search_bar', () => ({ +jest.mock('../../../common/components/search_bar', () => ({ SiemSearchBar: () => null, })); -jest.mock('../../../components/query_bar', () => ({ +jest.mock('../../../common/components/query_bar', () => ({ QueryBar: () => null, })); @@ -114,10 +118,10 @@ describe('Ip Details', () => { }); const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); localSource = cloneDeep(mocksSource); }); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/index.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/index.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/network/ip_details/index.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/index.tsx index 350d6e34c1c0..9ae09d6c6cec 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/index.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/index.tsx @@ -9,29 +9,32 @@ import React, { useCallback, useEffect } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { StickyContainer } from 'react-sticky'; -import { FiltersGlobal } from '../../../components/filters_global'; -import { HeaderPage } from '../../../components/header_page'; -import { LastEventTime } from '../../../components/last_event_time'; -import { AnomalyTableProvider } from '../../../components/ml/anomaly/anomaly_table_provider'; -import { networkToCriteria } from '../../../components/ml/criteria/network_to_criteria'; -import { scoreIntervalToDateTime } from '../../../components/ml/score/score_interval_to_datetime'; -import { AnomaliesNetworkTable } from '../../../components/ml/tables/anomalies_network_table'; -import { manageQuery } from '../../../components/page/manage_query'; -import { FlowTargetSelectConnected } from '../../../components/page/network/flow_target_select_connected'; -import { IpOverview } from '../../../components/page/network/ip_overview'; -import { SiemSearchBar } from '../../../components/search_bar'; -import { WrapperPage } from '../../../components/wrapper_page'; -import { IpOverviewQuery } from '../../../containers/ip_overview'; -import { indicesExistOrDataTemporarilyUnavailable, WithSource } from '../../../containers/source'; +import { FiltersGlobal } from '../../../common/components/filters_global'; +import { HeaderPage } from '../../../common/components/header_page'; +import { LastEventTime } from '../../../common/components/last_event_time'; +import { AnomalyTableProvider } from '../../../common/components/ml/anomaly/anomaly_table_provider'; +import { networkToCriteria } from '../../../common/components/ml/criteria/network_to_criteria'; +import { scoreIntervalToDateTime } from '../../../common/components/ml/score/score_interval_to_datetime'; +import { AnomaliesNetworkTable } from '../../../common/components/ml/tables/anomalies_network_table'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { FlowTargetSelectConnected } from '../../components/flow_target_select_connected'; +import { IpOverview } from '../../components/ip_overview'; +import { SiemSearchBar } from '../../../common/components/search_bar'; +import { WrapperPage } from '../../../common/components/wrapper_page'; +import { IpOverviewQuery } from '../../containers/ip_overview'; +import { + indicesExistOrDataTemporarilyUnavailable, + WithSource, +} from '../../../common/containers/source'; import { FlowTargetSourceDest, LastEventIndexKey } from '../../../graphql/types'; -import { useKibana } from '../../../lib/kibana'; -import { decodeIpv6 } from '../../../lib/helpers'; -import { convertToBuildEsQuery } from '../../../lib/keury'; -import { ConditionalFlexGroup } from '../../../pages/network/navigation/conditional_flex_group'; -import { networkModel, State, inputsSelectors } from '../../../store'; -import { setAbsoluteRangeDatePicker as dispatchAbsoluteRangeDatePicker } from '../../../store/inputs/actions'; -import { setIpDetailsTablesActivePageToZero as dispatchIpDetailsTablesActivePageToZero } from '../../../store/network/actions'; -import { SpyRoute } from '../../../utils/route/spy_routes'; +import { useKibana } from '../../../common/lib/kibana'; +import { decodeIpv6 } from '../../../common/lib/helpers'; +import { convertToBuildEsQuery } from '../../../common/lib/keury'; +import { ConditionalFlexGroup } from '../../pages/navigation/conditional_flex_group'; +import { State, inputsSelectors } from '../../../common/store'; +import { setAbsoluteRangeDatePicker as dispatchAbsoluteRangeDatePicker } from '../../../common/store/inputs/actions'; +import { setIpDetailsTablesActivePageToZero as dispatchIpDetailsTablesActivePageToZero } from '../../store/actions'; +import { SpyRoute } from '../../../common/utils/route/spy_routes'; import { NetworkEmptyPage } from '../network_empty_page'; import { NetworkHttpQueryTable } from './network_http_query_table'; import { NetworkTopCountriesQueryTable } from './network_top_countries_query_table'; @@ -39,9 +42,9 @@ import { NetworkTopNFlowQueryTable } from './network_top_n_flow_query_table'; import { TlsQueryTable } from './tls_query_table'; import { IPDetailsComponentProps } from './types'; import { UsersQueryTable } from './users_query_table'; -import { AnomaliesQueryTabBody } from '../../../containers/anomalies/anomalies_query_tab_body'; +import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body'; import { esQuery } from '../../../../../../../src/plugins/data/public'; - +import { networkModel } from '../../store'; export { getBreadcrumbs } from './utils'; const IpOverviewManage = manageQuery(IpOverview); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/network_http_query_table.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/network_http_query_table.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/network/ip_details/network_http_query_table.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/network_http_query_table.tsx index d071cc67414c..551de698cfa0 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/network_http_query_table.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/network_http_query_table.tsx @@ -6,10 +6,10 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { manageQuery } from '../../../components/page/manage_query'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { OwnProps } from './types'; -import { NetworkHttpQuery } from '../../../containers/network_http'; -import { NetworkHttpTable } from '../../../components/page/network/network_http_table'; +import { NetworkHttpQuery } from '../../containers/network_http'; +import { NetworkHttpTable } from '../../components/network_http_table'; const NetworkHttpTableManage = manageQuery(NetworkHttpTable); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/network_top_countries_query_table.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/network_top_countries_query_table.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/network/ip_details/network_top_countries_query_table.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/network_top_countries_query_table.tsx index 8f3505009b9a..6bc80ef1a6aa 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/network_top_countries_query_table.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/network_top_countries_query_table.tsx @@ -6,10 +6,10 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { manageQuery } from '../../../components/page/manage_query'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { NetworkWithIndexComponentsQueryTableProps } from './types'; -import { NetworkTopCountriesQuery } from '../../../containers/network_top_countries'; -import { NetworkTopCountriesTable } from '../../../components/page/network/network_top_countries_table'; +import { NetworkTopCountriesQuery } from '../../containers/network_top_countries'; +import { NetworkTopCountriesTable } from '../../components/network_top_countries_table'; const NetworkTopCountriesTableManage = manageQuery(NetworkTopCountriesTable); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/network_top_n_flow_query_table.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/network_top_n_flow_query_table.tsx similarity index 86% rename from x-pack/plugins/siem/public/pages/network/ip_details/network_top_n_flow_query_table.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/network_top_n_flow_query_table.tsx index 06ae3160415d..158b4057a7d5 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/network_top_n_flow_query_table.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/network_top_n_flow_query_table.tsx @@ -6,9 +6,9 @@ import { getOr } from 'lodash/fp'; import React from 'react'; -import { manageQuery } from '../../../components/page/manage_query'; -import { NetworkTopNFlowTable } from '../../../components/page/network/network_top_n_flow_table'; -import { NetworkTopNFlowQuery } from '../../../containers/network_top_n_flow'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { NetworkTopNFlowTable } from '../../components/network_top_n_flow_table'; +import { NetworkTopNFlowQuery } from '../../containers/network_top_n_flow'; import { NetworkWithIndexComponentsQueryTableProps } from './types'; const NetworkTopNFlowTableManage = manageQuery(NetworkTopNFlowTable); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/tls_query_table.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/tls_query_table.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/network/ip_details/tls_query_table.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/tls_query_table.tsx index ad3ffb8cb0a5..f0c3628af78d 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/tls_query_table.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/tls_query_table.tsx @@ -6,9 +6,9 @@ import { getOr } from 'lodash/fp'; import React from 'react'; -import { manageQuery } from '../../../components/page/manage_query'; -import { TlsTable } from '../../../components/page/network/tls_table'; -import { TlsQuery } from '../../../containers/tls'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { TlsTable } from '../../components/tls_table'; +import { TlsQuery } from '../../containers/tls'; import { TlsQueryTableComponentProps } from './types'; const TlsTableManage = manageQuery(TlsTable); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/types.ts b/x-pack/plugins/siem/public/network/pages/ip_details/types.ts similarity index 86% rename from x-pack/plugins/siem/public/pages/network/ip_details/types.ts rename to x-pack/plugins/siem/public/network/pages/ip_details/types.ts index 11c41fc74515..02d83208884b 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/types.ts +++ b/x-pack/plugins/siem/public/network/pages/ip_details/types.ts @@ -7,10 +7,10 @@ import { IIndexPattern } from 'src/plugins/data/public'; import { ESTermQuery } from '../../../../common/typed_json'; -import { NetworkType } from '../../../store/network/model'; -import { InspectQuery, Refetch } from '../../../store/inputs/model'; +import { NetworkType } from '../../store/model'; +import { InspectQuery, Refetch } from '../../../common/store/inputs/model'; import { FlowTarget, FlowTargetSourceDest } from '../../../graphql/types'; -import { GlobalTimeArgs } from '../../../containers/global_time'; +import { GlobalTimeArgs } from '../../../common/containers/global_time'; export const type = NetworkType.details; diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/users_query_table.tsx b/x-pack/plugins/siem/public/network/pages/ip_details/users_query_table.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/network/ip_details/users_query_table.tsx rename to x-pack/plugins/siem/public/network/pages/ip_details/users_query_table.tsx index d2f6102e8659..4071790b4208 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/users_query_table.tsx +++ b/x-pack/plugins/siem/public/network/pages/ip_details/users_query_table.tsx @@ -6,10 +6,10 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { manageQuery } from '../../../components/page/manage_query'; -import { UsersQuery } from '../../../containers/users'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { UsersQuery } from '../../containers/users'; import { NetworkComponentsQueryProps } from './types'; -import { UsersTable } from '../../../components/page/network/users_table'; +import { UsersTable } from '../../components/users_table'; const UsersTableManage = manageQuery(UsersTable); diff --git a/x-pack/plugins/siem/public/pages/network/ip_details/utils.ts b/x-pack/plugins/siem/public/network/pages/ip_details/utils.ts similarity index 82% rename from x-pack/plugins/siem/public/pages/network/ip_details/utils.ts rename to x-pack/plugins/siem/public/network/pages/ip_details/utils.ts index 9d15d7ee250c..b1f986f20778 100644 --- a/x-pack/plugins/siem/public/pages/network/ip_details/utils.ts +++ b/x-pack/plugins/siem/public/network/pages/ip_details/utils.ts @@ -6,13 +6,17 @@ import { get, isEmpty } from 'lodash/fp'; +// eslint-disable-next-line @kbn/eslint/no-restricted-paths import { ChromeBreadcrumb } from '../../../../../../../src/core/public'; -import { decodeIpv6 } from '../../../lib/helpers'; -import { getNetworkUrl, getIPDetailsUrl } from '../../../components/link_to/redirect_to_network'; -import { networkModel } from '../../../store/network'; +import { decodeIpv6 } from '../../../common/lib/helpers'; +import { + getNetworkUrl, + getIPDetailsUrl, +} from '../../../common/components/link_to/redirect_to_network'; +import { networkModel } from '../../store'; import * as i18n from '../translations'; import { NetworkRouteType } from '../navigation/types'; -import { NetworkRouteSpyState } from '../../../utils/route/types'; +import { NetworkRouteSpyState } from '../../../common/utils/route/types'; export const type = networkModel.NetworkType.details; const TabNameMappedToI18nKey: Record = { diff --git a/x-pack/plugins/siem/public/pages/network/navigation/alerts_query_tab_body.tsx b/x-pack/plugins/siem/public/network/pages/navigation/alerts_query_tab_body.tsx similarity index 96% rename from x-pack/plugins/siem/public/pages/network/navigation/alerts_query_tab_body.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/alerts_query_tab_body.tsx index 4c4f6c06ce1e..c5f59e751ca9 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/alerts_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/alerts_query_tab_body.tsx @@ -7,7 +7,7 @@ import React from 'react'; import { Filter } from '../../../../../../../src/plugins/data/common/es_query'; -import { AlertsView } from '../../../components/alerts_viewer'; +import { AlertsView } from '../../../common/components/alerts_viewer'; import { NetworkComponentQueryProps } from './types'; export const filterNetworkData: Filter[] = [ diff --git a/x-pack/plugins/siem/public/pages/network/navigation/conditional_flex_group.tsx b/x-pack/plugins/siem/public/network/pages/navigation/conditional_flex_group.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/network/navigation/conditional_flex_group.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/conditional_flex_group.tsx diff --git a/x-pack/plugins/siem/public/pages/network/navigation/countries_query_tab_body.tsx b/x-pack/plugins/siem/public/network/pages/navigation/countries_query_tab_body.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/network/navigation/countries_query_tab_body.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/countries_query_tab_body.tsx index 6ddd3bbec3a3..0c569952458e 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/countries_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/countries_query_tab_body.tsx @@ -7,10 +7,10 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { NetworkTopCountriesTable } from '../../../components/page/network'; -import { NetworkTopCountriesQuery } from '../../../containers/network_top_countries'; -import { networkModel } from '../../../store'; -import { manageQuery } from '../../../components/page/manage_query'; +import { NetworkTopCountriesTable } from '../../components/network_top_countries_table'; +import { NetworkTopCountriesQuery } from '../../containers/network_top_countries'; +import { networkModel } from '../../store'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { IPsQueryTabBodyProps as CountriesQueryTabBodyProps } from './types'; diff --git a/x-pack/plugins/siem/public/pages/network/navigation/dns_query_tab_body.tsx b/x-pack/plugins/siem/public/network/pages/navigation/dns_query_tab_body.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/network/navigation/dns_query_tab_body.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/dns_query_tab_body.tsx index fe456afcc718..acabdd1d3608 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/dns_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/dns_query_tab_body.tsx @@ -7,19 +7,19 @@ import React, { useEffect, useCallback, useMemo } from 'react'; import { getOr } from 'lodash/fp'; -import { NetworkDnsTable } from '../../../components/page/network/network_dns_table'; -import { NetworkDnsQuery, HISTOGRAM_ID } from '../../../containers/network_dns'; -import { manageQuery } from '../../../components/page/manage_query'; +import { NetworkDnsTable } from '../../components/network_dns_table'; +import { NetworkDnsQuery, HISTOGRAM_ID } from '../../containers/network_dns'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { NetworkComponentQueryProps } from './types'; -import { networkModel } from '../../../store'; +import { networkModel } from '../../store'; import { MatrixHistogramOption, MatrixHisrogramConfigs, -} from '../../../components/matrix_histogram/types'; +} from '../../../common/components/matrix_histogram/types'; import * as i18n from '../translations'; -import { MatrixHistogramContainer } from '../../../components/matrix_histogram'; +import { MatrixHistogramContainer } from '../../../common/components/matrix_histogram'; import { HistogramType } from '../../../graphql/types'; const NetworkDnsTableManage = manageQuery(NetworkDnsTable); diff --git a/x-pack/plugins/siem/public/pages/network/navigation/http_query_tab_body.tsx b/x-pack/plugins/siem/public/network/pages/navigation/http_query_tab_body.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/network/navigation/http_query_tab_body.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/http_query_tab_body.tsx index 639a14d354ce..7e0c4025d6ca 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/http_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/http_query_tab_body.tsx @@ -7,10 +7,10 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { NetworkHttpTable } from '../../../components/page/network'; -import { NetworkHttpQuery } from '../../../containers/network_http'; -import { networkModel } from '../../../store'; -import { manageQuery } from '../../../components/page/manage_query'; +import { NetworkHttpTable } from '../../components/network_http_table'; +import { NetworkHttpQuery } from '../../containers/network_http'; +import { networkModel } from '../../store'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { HttpQueryTabBodyProps } from './types'; diff --git a/x-pack/plugins/siem/public/pages/network/navigation/index.ts b/x-pack/plugins/siem/public/network/pages/navigation/index.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/network/navigation/index.ts rename to x-pack/plugins/siem/public/network/pages/navigation/index.ts diff --git a/x-pack/plugins/siem/public/pages/network/navigation/ips_query_tab_body.tsx b/x-pack/plugins/siem/public/network/pages/navigation/ips_query_tab_body.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/network/navigation/ips_query_tab_body.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/ips_query_tab_body.tsx index c4391ba2ec90..a9f4d504847a 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/ips_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/ips_query_tab_body.tsx @@ -7,10 +7,10 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { NetworkTopNFlowTable } from '../../../components/page/network'; -import { NetworkTopNFlowQuery } from '../../../containers/network_top_n_flow'; -import { networkModel } from '../../../store'; -import { manageQuery } from '../../../components/page/manage_query'; +import { NetworkTopNFlowTable } from '../../components/network_top_n_flow_table'; +import { NetworkTopNFlowQuery } from '../../containers/network_top_n_flow'; +import { networkModel } from '../../store'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { IPsQueryTabBodyProps } from './types'; diff --git a/x-pack/plugins/siem/public/pages/network/navigation/nav_tabs.tsx b/x-pack/plugins/siem/public/network/pages/navigation/nav_tabs.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/network/navigation/nav_tabs.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/nav_tabs.tsx diff --git a/x-pack/plugins/siem/public/pages/network/navigation/network_routes.tsx b/x-pack/plugins/siem/public/network/pages/navigation/network_routes.tsx similarity index 90% rename from x-pack/plugins/siem/public/pages/network/navigation/network_routes.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/network_routes.tsx index fc8b632f87c5..08ed0d9769be 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/network_routes.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/network_routes.tsx @@ -9,20 +9,20 @@ import { Route, Switch } from 'react-router-dom'; import { EuiFlexItem, EuiSpacer } from '@elastic/eui'; import { FlowTargetSourceDest } from '../../../graphql/types'; -import { scoreIntervalToDateTime } from '../../../components/ml/score/score_interval_to_datetime'; +import { scoreIntervalToDateTime } from '../../../common/components/ml/score/score_interval_to_datetime'; import { IPsQueryTabBody } from './ips_query_tab_body'; import { CountriesQueryTabBody } from './countries_query_tab_body'; import { HttpQueryTabBody } from './http_query_tab_body'; -import { AnomaliesQueryTabBody } from '../../../containers/anomalies/anomalies_query_tab_body'; -import { AnomaliesNetworkTable } from '../../../components/ml/tables/anomalies_network_table'; +import { AnomaliesQueryTabBody } from '../../../common/containers/anomalies/anomalies_query_tab_body'; +import { AnomaliesNetworkTable } from '../../../common/components/ml/tables/anomalies_network_table'; import { DnsQueryTabBody } from './dns_query_tab_body'; import { ConditionalFlexGroup } from './conditional_flex_group'; import { NetworkRoutesProps, NetworkRouteType } from './types'; import { TlsQueryTabBody } from './tls_query_tab_body'; -import { Anomaly } from '../../../components/ml/types'; +import { Anomaly } from '../../../common/components/ml/types'; import { NetworkAlertsQueryTabBody } from './alerts_query_tab_body'; -import { UpdateDateRange } from '../../../components/charts/common'; +import { UpdateDateRange } from '../../../common/components/charts/common'; export const NetworkRoutes = React.memo( ({ diff --git a/x-pack/plugins/siem/public/pages/network/navigation/network_routes_loading.tsx b/x-pack/plugins/siem/public/network/pages/navigation/network_routes_loading.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/network/navigation/network_routes_loading.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/network_routes_loading.tsx diff --git a/x-pack/plugins/siem/public/pages/network/navigation/tls_query_tab_body.tsx b/x-pack/plugins/siem/public/network/pages/navigation/tls_query_tab_body.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/network/navigation/tls_query_tab_body.tsx rename to x-pack/plugins/siem/public/network/pages/navigation/tls_query_tab_body.tsx index 0adfec203e0a..00da5496e544 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/tls_query_tab_body.tsx +++ b/x-pack/plugins/siem/public/network/pages/navigation/tls_query_tab_body.tsx @@ -5,9 +5,9 @@ */ import React from 'react'; import { getOr } from 'lodash/fp'; -import { manageQuery } from '../../../components/page/manage_query'; -import { TlsQuery } from '../../../containers/tls'; -import { TlsTable } from '../../../components/page/network/tls_table'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { TlsQuery } from '../../../network/containers/tls'; +import { TlsTable } from '../../components/tls_table'; import { TlsQueryTabBodyProps } from './types'; const TlsTableManage = manageQuery(TlsTable); diff --git a/x-pack/plugins/siem/public/pages/network/navigation/types.ts b/x-pack/plugins/siem/public/network/pages/navigation/types.ts similarity index 89% rename from x-pack/plugins/siem/public/pages/network/navigation/types.ts rename to x-pack/plugins/siem/public/network/pages/navigation/types.ts index ee03bff99b96..0f48aad57b3a 100644 --- a/x-pack/plugins/siem/public/pages/network/navigation/types.ts +++ b/x-pack/plugins/siem/public/network/pages/navigation/types.ts @@ -7,13 +7,13 @@ import { ESTermQuery } from '../../../../common/typed_json'; import { IIndexPattern } from '../../../../../../../src/plugins/data/common'; -import { NavTab } from '../../../components/navigation/types'; +import { NavTab } from '../../../common/components/navigation/types'; import { FlowTargetSourceDest } from '../../../graphql/types'; -import { networkModel } from '../../../store'; -import { GlobalTimeArgs } from '../../../containers/global_time'; +import { networkModel } from '../../store'; +import { GlobalTimeArgs } from '../../../common/containers/global_time'; import { SetAbsoluteRangeDatePicker } from '../types'; -import { NarrowDateRange } from '../../../components/ml/types'; +import { NarrowDateRange } from '../../../common/components/ml/types'; interface QueryTabBodyProps extends Pick { skip: boolean; diff --git a/x-pack/plugins/siem/public/pages/network/navigation/utils.ts b/x-pack/plugins/siem/public/network/pages/navigation/utils.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/network/navigation/utils.ts rename to x-pack/plugins/siem/public/network/pages/navigation/utils.ts diff --git a/x-pack/plugins/siem/public/pages/network/network.test.tsx b/x-pack/plugins/siem/public/network/pages/network.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/pages/network/network.test.tsx rename to x-pack/plugins/siem/public/network/pages/network.test.tsx index 300cb83c4ce7..1a8313db92b6 100644 --- a/x-pack/plugins/siem/public/pages/network/network.test.tsx +++ b/x-pack/plugins/siem/public/network/pages/network.test.tsx @@ -10,21 +10,27 @@ import React from 'react'; import { Router } from 'react-router-dom'; import { MockedProvider } from 'react-apollo/test-utils'; -import '../../mock/match_media'; +import '../../common/mock/match_media'; import { Filter } from '../../../../../../src/plugins/data/common/es_query'; -import { mocksSource } from '../../containers/source/mock'; -import { TestProviders, mockGlobalState, apolloClientObservable } from '../../mock'; -import { State, createStore } from '../../store'; -import { inputsActions } from '../../store/inputs'; +import { mocksSource } from '../../common/containers/source/mock'; +import { + TestProviders, + mockGlobalState, + apolloClientObservable, + SUB_PLUGINS_REDUCER, +} from '../../common/mock'; +import { State, createStore } from '../../common/store'; +import { inputsActions } from '../../common/store/inputs'; + import { Network } from './network'; import { NetworkRoutes } from './navigation'; // Test will fail because we will to need to mock some core services to make the test work // For now let's forget about SiemSearchBar and QueryBar -jest.mock('../../components/search_bar', () => ({ +jest.mock('../../common/components/search_bar', () => ({ SiemSearchBar: () => null, })); -jest.mock('../../components/query_bar', () => ({ +jest.mock('../../common/components/query_bar', () => ({ QueryBar: () => null, })); @@ -149,7 +155,7 @@ describe('rendering - rendering', () => { ]; localSource[0].result.data.source.status.indicesExist = true; const myState: State = mockGlobalState; - const myStore = createStore(myState, apolloClientObservable); + const myStore = createStore(myState, SUB_PLUGINS_REDUCER, apolloClientObservable); const wrapper = mount( diff --git a/x-pack/plugins/siem/public/pages/network/network.tsx b/x-pack/plugins/siem/public/network/pages/network.tsx similarity index 83% rename from x-pack/plugins/siem/public/pages/network/network.tsx rename to x-pack/plugins/siem/public/network/pages/network.tsx index 698f51efbb45..2f7a97ed3d19 100644 --- a/x-pack/plugins/siem/public/pages/network/network.tsx +++ b/x-pack/plugins/siem/public/network/pages/network.tsx @@ -11,24 +11,28 @@ import { useParams } from 'react-router-dom'; import { StickyContainer } from 'react-sticky'; import { esQuery } from '../../../../../../src/plugins/data/public'; -import { UpdateDateRange } from '../../components/charts/common'; -import { EmbeddedMap } from '../../components/embeddables/embedded_map'; -import { FiltersGlobal } from '../../components/filters_global'; -import { HeaderPage } from '../../components/header_page'; -import { LastEventTime } from '../../components/last_event_time'; -import { SiemNavigation } from '../../components/navigation'; -import { manageQuery } from '../../components/page/manage_query'; -import { KpiNetworkComponent } from '../../components/page/network'; -import { SiemSearchBar } from '../../components/search_bar'; -import { WrapperPage } from '../../components/wrapper_page'; -import { KpiNetworkQuery } from '../../containers/kpi_network'; -import { indicesExistOrDataTemporarilyUnavailable, WithSource } from '../../containers/source'; +import { UpdateDateRange } from '../../common/components/charts/common'; +import { EmbeddedMap } from '../components/embeddables/embedded_map'; +import { FiltersGlobal } from '../../common/components/filters_global'; +import { HeaderPage } from '../../common/components/header_page'; +import { LastEventTime } from '../../common/components/last_event_time'; +import { SiemNavigation } from '../../common/components/navigation'; +import { manageQuery } from '../../common/components/page/manage_query'; +import { KpiNetworkComponent } from '..//components/kpi_network'; +import { SiemSearchBar } from '../../common/components/search_bar'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { KpiNetworkQuery } from '../../network/containers/kpi_network'; +import { + indicesExistOrDataTemporarilyUnavailable, + WithSource, +} from '../../common/containers/source'; import { LastEventIndexKey } from '../../graphql/types'; -import { useKibana } from '../../lib/kibana'; -import { convertToBuildEsQuery } from '../../lib/keury'; -import { networkModel, State, inputsSelectors } from '../../store'; -import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../store/inputs/actions'; -import { SpyRoute } from '../../utils/route/spy_routes'; +import { useKibana } from '../../common/lib/kibana'; +import { convertToBuildEsQuery } from '../../common/lib/keury'; +import { State, inputsSelectors } from '../../common/store'; +import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { networkModel } from '../store'; import { navTabsNetwork, NetworkRoutes, NetworkRoutesLoading } from './navigation'; import { filterNetworkData } from './navigation/alerts_query_tab_body'; import { NetworkEmptyPage } from './network_empty_page'; diff --git a/x-pack/plugins/siem/public/pages/network/network_empty_page.tsx b/x-pack/plugins/siem/public/network/pages/network_empty_page.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/network/network_empty_page.tsx rename to x-pack/plugins/siem/public/network/pages/network_empty_page.tsx index 22db00400bf8..0dbcddd5d287 100644 --- a/x-pack/plugins/siem/public/pages/network/network_empty_page.tsx +++ b/x-pack/plugins/siem/public/network/pages/network_empty_page.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { useKibana } from '../../lib/kibana'; -import { EmptyPage } from '../../components/empty_page'; -import * as i18n from '../common/translations'; +import { useKibana } from '../../common/lib/kibana'; +import { EmptyPage } from '../../common/components/empty_page'; +import * as i18n from '../../common/translations'; export const NetworkEmptyPage = React.memo(() => { const { http, docLinks } = useKibana().services; diff --git a/x-pack/plugins/siem/public/pages/network/translations.ts b/x-pack/plugins/siem/public/network/pages/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/network/translations.ts rename to x-pack/plugins/siem/public/network/pages/translations.ts diff --git a/x-pack/plugins/siem/public/pages/network/types.ts b/x-pack/plugins/siem/public/network/pages/types.ts similarity index 82% rename from x-pack/plugins/siem/public/pages/network/types.ts rename to x-pack/plugins/siem/public/network/pages/types.ts index 01d3fb6b48c6..e4170ee4b908 100644 --- a/x-pack/plugins/siem/public/pages/network/types.ts +++ b/x-pack/plugins/siem/public/network/pages/types.ts @@ -6,8 +6,8 @@ import { RouteComponentProps } from 'react-router-dom'; import { ActionCreator } from 'typescript-fsa'; -import { InputsModelId } from '../../store/inputs/constants'; -import { GlobalTimeArgs } from '../../containers/global_time'; +import { InputsModelId } from '../../common/store/inputs/constants'; +import { GlobalTimeArgs } from '../../common/containers/global_time'; export type SetAbsoluteRangeDatePicker = ActionCreator<{ id: InputsModelId; diff --git a/x-pack/plugins/siem/public/network/routes.tsx b/x-pack/plugins/siem/public/network/routes.tsx new file mode 100644 index 000000000000..6f3fd28ec53b --- /dev/null +++ b/x-pack/plugins/siem/public/network/routes.tsx @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { Route } from 'react-router-dom'; + +import { NetworkContainer } from './pages'; +import { SiemPageName } from '../app/types'; + +export const getNetworkRoutes = () => [ + } + />, +]; diff --git a/x-pack/plugins/siem/public/store/network/actions.ts b/x-pack/plugins/siem/public/network/store/actions.ts similarity index 95% rename from x-pack/plugins/siem/public/store/network/actions.ts rename to x-pack/plugins/siem/public/network/store/actions.ts index be7d9b1ad451..2a9766f95922 100644 --- a/x-pack/plugins/siem/public/store/network/actions.ts +++ b/x-pack/plugins/siem/public/network/store/actions.ts @@ -5,8 +5,7 @@ */ import actionCreatorFactory from 'typescript-fsa'; - -import { networkModel } from '../model'; +import { networkModel } from '.'; const actionCreator = actionCreatorFactory('x-pack/siem/local/network'); diff --git a/x-pack/plugins/siem/public/store/network/helpers.test.ts b/x-pack/plugins/siem/public/network/store/helpers.test.ts similarity index 99% rename from x-pack/plugins/siem/public/store/network/helpers.test.ts rename to x-pack/plugins/siem/public/network/store/helpers.test.ts index 933c2f05a57b..a3a2a9b7f539 100644 --- a/x-pack/plugins/siem/public/store/network/helpers.test.ts +++ b/x-pack/plugins/siem/public/network/store/helpers.test.ts @@ -12,7 +12,7 @@ import { TlsFields, UsersFields, } from '../../graphql/types'; -import { DEFAULT_TABLE_LIMIT } from '../constants'; +import { DEFAULT_TABLE_LIMIT } from '../../common/store/constants'; import { NetworkModel, NetworkTableType, IpDetailsTableType, NetworkType } from './model'; import { setNetworkQueriesActivePageToZero } from './helpers'; diff --git a/x-pack/plugins/siem/public/store/network/helpers.ts b/x-pack/plugins/siem/public/network/store/helpers.ts similarity index 97% rename from x-pack/plugins/siem/public/store/network/helpers.ts rename to x-pack/plugins/siem/public/network/store/helpers.ts index 0b3a5e65346b..938de1dedf0b 100644 --- a/x-pack/plugins/siem/public/store/network/helpers.ts +++ b/x-pack/plugins/siem/public/network/store/helpers.ts @@ -12,7 +12,7 @@ import { NetworkQueries, IpOverviewQueries, } from './model'; -import { DEFAULT_TABLE_ACTIVE_PAGE } from '../constants'; +import { DEFAULT_TABLE_ACTIVE_PAGE } from '../../common/store/constants'; export const setNetworkPageQueriesActivePageToZero = (state: NetworkModel): NetworkQueries => ({ ...state.page.queries, diff --git a/x-pack/plugins/siem/public/store/network/index.ts b/x-pack/plugins/siem/public/network/store/index.ts similarity index 64% rename from x-pack/plugins/siem/public/store/network/index.ts rename to x-pack/plugins/siem/public/network/store/index.ts index dcd32fe17ac9..85268509ae9c 100644 --- a/x-pack/plugins/siem/public/store/network/index.ts +++ b/x-pack/plugins/siem/public/network/store/index.ts @@ -4,9 +4,19 @@ * you may not use this file except in compliance with the Elastic License. */ +import { Reducer, AnyAction } from 'redux'; import * as networkActions from './actions'; import * as networkModel from './model'; import * as networkSelectors from './selectors'; +import { NetworkState } from './reducer'; export { networkActions, networkModel, networkSelectors }; export * from './reducer'; + +export interface NetworkPluginState { + network: NetworkState; +} + +export interface NetworkPluginReducer { + network: Reducer; +} diff --git a/x-pack/plugins/siem/public/store/network/model.ts b/x-pack/plugins/siem/public/network/store/model.ts similarity index 100% rename from x-pack/plugins/siem/public/store/network/model.ts rename to x-pack/plugins/siem/public/network/store/model.ts diff --git a/x-pack/plugins/siem/public/store/network/reducer.ts b/x-pack/plugins/siem/public/network/store/reducer.ts similarity index 99% rename from x-pack/plugins/siem/public/store/network/reducer.ts rename to x-pack/plugins/siem/public/network/store/reducer.ts index e6d7efc9cbb5..26458229da29 100644 --- a/x-pack/plugins/siem/public/store/network/reducer.ts +++ b/x-pack/plugins/siem/public/network/store/reducer.ts @@ -14,7 +14,7 @@ import { TlsFields, UsersFields, } from '../../graphql/types'; -import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from '../constants'; +import { DEFAULT_TABLE_ACTIVE_PAGE, DEFAULT_TABLE_LIMIT } from '../../common/store/constants'; import { setIpDetailsTablesActivePageToZero, diff --git a/x-pack/plugins/siem/public/store/network/selectors.ts b/x-pack/plugins/siem/public/network/store/selectors.ts similarity index 98% rename from x-pack/plugins/siem/public/store/network/selectors.ts rename to x-pack/plugins/siem/public/network/store/selectors.ts index 273eaf7c0ee7..0b48fa217053 100644 --- a/x-pack/plugins/siem/public/store/network/selectors.ts +++ b/x-pack/plugins/siem/public/network/store/selectors.ts @@ -8,7 +8,7 @@ import { createSelector } from 'reselect'; import { get } from 'lodash/fp'; import { FlowTargetSourceDest } from '../../graphql/types'; -import { State } from '../reducer'; +import { State } from '../../common/store/reducer'; import { initialNetworkState } from './reducer'; import { IpDetailsTableType, diff --git a/x-pack/plugins/siem/public/pages/overview/alerts_by_category/index.test.tsx b/x-pack/plugins/siem/public/overview/components/alerts_by_category/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/overview/alerts_by_category/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/alerts_by_category/index.test.tsx index bd9743bdccb4..c032b21f7329 100644 --- a/x-pack/plugins/siem/public/pages/overview/alerts_by_category/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/alerts_by_category/index.test.tsx @@ -11,15 +11,15 @@ import { mount, ReactWrapper } from 'enzyme'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { useQuery } from '../../../containers/matrix_histogram'; -import { wait } from '../../../lib/helpers'; -import { mockIndexPattern, TestProviders } from '../../../mock'; +import { useQuery } from '../../../common/containers/matrix_histogram'; +import { wait } from '../../../common/lib/helpers'; +import { mockIndexPattern, TestProviders } from '../../../common/mock'; import { AlertsByCategory } from '.'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); -jest.mock('../../../containers/matrix_histogram', () => { +jest.mock('../../../common/containers/matrix_histogram', () => { return { useQuery: jest.fn(), }; diff --git a/x-pack/plugins/siem/public/pages/overview/alerts_by_category/index.tsx b/x-pack/plugins/siem/public/overview/components/alerts_by_category/index.tsx similarity index 76% rename from x-pack/plugins/siem/public/pages/overview/alerts_by_category/index.tsx rename to x-pack/plugins/siem/public/overview/components/alerts_by_category/index.tsx index a1936cf9221f..92f55aa1aa36 100644 --- a/x-pack/plugins/siem/public/pages/overview/alerts_by_category/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/alerts_by_category/index.tsx @@ -10,28 +10,28 @@ import React, { useEffect, useMemo } from 'react'; import { Position } from '@elastic/charts'; import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; -import { SHOWING, UNIT } from '../../../components/alerts_viewer/translations'; -import { getDetectionEngineAlertUrl } from '../../../components/link_to/redirect_to_detection_engine'; -import { MatrixHistogramContainer } from '../../../components/matrix_histogram'; -import { useKibana, useUiSetting$ } from '../../../lib/kibana'; -import { convertToBuildEsQuery } from '../../../lib/keury'; +import { SHOWING, UNIT } from '../../../common/components/alerts_viewer/translations'; +import { getDetectionEngineAlertUrl } from '../../../common/components/link_to/redirect_to_detection_engine'; +import { MatrixHistogramContainer } from '../../../common/components/matrix_histogram'; +import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; +import { convertToBuildEsQuery } from '../../../common/lib/keury'; import { Filter, esQuery, IIndexPattern, Query, } from '../../../../../../../src/plugins/data/public'; -import { inputsModel } from '../../../store'; -import { HostsType } from '../../../store/hosts/model'; +import { inputsModel } from '../../../common/store'; +import { HostsType } from '../../../hosts/store/model'; -import * as i18n from '../translations'; +import * as i18n from '../../pages/translations'; import { alertsStackByOptions, histogramConfigs, -} from '../../../components/alerts_viewer/histogram_configs'; -import { MatrixHisrogramConfigs } from '../../../components/matrix_histogram/types'; -import { useGetUrlSearch } from '../../../components/navigation/use_get_url_search'; -import { navTabs } from '../../home/home_navigations'; +} from '../../../common/components/alerts_viewer/histogram_configs'; +import { MatrixHisrogramConfigs } from '../../../common/components/matrix_histogram/types'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; const ID = 'alertsByCategoryOverview'; diff --git a/x-pack/plugins/siem/public/pages/overview/event_counts/index.test.tsx b/x-pack/plugins/siem/public/overview/components/event_counts/index.test.tsx similarity index 87% rename from x-pack/plugins/siem/public/pages/overview/event_counts/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/event_counts/index.test.tsx index f5419a3ff50e..628cd2897908 100644 --- a/x-pack/plugins/siem/public/pages/overview/event_counts/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/event_counts/index.test.tsx @@ -7,9 +7,9 @@ import { mount } from 'enzyme'; import React from 'react'; -import { OverviewHostProps } from '../../../components/page/overview/overview_host'; -import { OverviewNetworkProps } from '../../../components/page/overview/overview_network'; -import { mockIndexPattern, TestProviders } from '../../../mock'; +import { OverviewHostProps } from '../overview_host'; +import { OverviewNetworkProps } from '../overview_network'; +import { mockIndexPattern, TestProviders } from '../../../common/mock'; import { EventCounts } from '.'; diff --git a/x-pack/plugins/siem/public/pages/overview/event_counts/index.tsx b/x-pack/plugins/siem/public/overview/components/event_counts/index.tsx similarity index 81% rename from x-pack/plugins/siem/public/pages/overview/event_counts/index.tsx rename to x-pack/plugins/siem/public/overview/components/event_counts/index.tsx index f242b0d84d7c..1773af86a382 100644 --- a/x-pack/plugins/siem/public/pages/overview/event_counts/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/event_counts/index.tsx @@ -8,19 +8,19 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { OverviewHost } from '../../../components/page/overview/overview_host'; -import { OverviewNetwork } from '../../../components/page/overview/overview_network'; -import { filterHostData } from '../../hosts/navigation/alerts_query_tab_body'; -import { useKibana } from '../../../lib/kibana'; -import { convertToBuildEsQuery } from '../../../lib/keury'; -import { filterNetworkData } from '../../network/navigation/alerts_query_tab_body'; +import { OverviewHost } from '../overview_host'; +import { OverviewNetwork } from '../overview_network'; +import { filterHostData } from '../../../hosts/pages/navigation/alerts_query_tab_body'; +import { useKibana } from '../../../common/lib/kibana'; +import { convertToBuildEsQuery } from '../../../common/lib/keury'; +import { filterNetworkData } from '../../../network/pages/navigation/alerts_query_tab_body'; import { Filter, esQuery, IIndexPattern, Query, } from '../../../../../../../src/plugins/data/public'; -import { inputsModel } from '../../../store'; +import { inputsModel } from '../../../common/store'; const HorizontalSpacer = styled(EuiFlexItem)` width: 24px; diff --git a/x-pack/plugins/siem/public/pages/overview/events_by_dataset/__mocks__/index.tsx b/x-pack/plugins/siem/public/overview/components/events_by_dataset/__mocks__/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/overview/events_by_dataset/__mocks__/index.tsx rename to x-pack/plugins/siem/public/overview/components/events_by_dataset/__mocks__/index.tsx diff --git a/x-pack/plugins/siem/public/pages/overview/events_by_dataset/index.tsx b/x-pack/plugins/siem/public/overview/components/events_by_dataset/index.tsx similarity index 82% rename from x-pack/plugins/siem/public/pages/overview/events_by_dataset/index.tsx rename to x-pack/plugins/siem/public/overview/components/events_by_dataset/index.tsx index 77d6da7a7efc..ebd005e7cb0b 100644 --- a/x-pack/plugins/siem/public/pages/overview/events_by_dataset/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/events_by_dataset/index.tsx @@ -11,30 +11,30 @@ import React, { useEffect, useMemo } from 'react'; import uuid from 'uuid'; import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; -import { SHOWING, UNIT } from '../../../components/events_viewer/translations'; -import { getTabsOnHostsUrl } from '../../../components/link_to/redirect_to_hosts'; -import { MatrixHistogramContainer } from '../../../components/matrix_histogram'; +import { SHOWING, UNIT } from '../../../common/components/events_viewer/translations'; +import { getTabsOnHostsUrl } from '../../../common/components/link_to/redirect_to_hosts'; +import { MatrixHistogramContainer } from '../../../common/components/matrix_histogram'; import { MatrixHisrogramConfigs, MatrixHistogramOption, -} from '../../../components/matrix_histogram/types'; -import { useGetUrlSearch } from '../../../components/navigation/use_get_url_search'; -import { navTabs } from '../../home/home_navigations'; -import { eventsStackByOptions } from '../../hosts/navigation'; -import { convertToBuildEsQuery } from '../../../lib/keury'; -import { useKibana, useUiSetting$ } from '../../../lib/kibana'; -import { histogramConfigs } from '../../../pages/hosts/navigation/events_query_tab_body'; +} from '../../../common/components/matrix_histogram/types'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; +import { eventsStackByOptions } from '../../../hosts/pages/navigation'; +import { convertToBuildEsQuery } from '../../../common/lib/keury'; +import { useKibana, useUiSetting$ } from '../../../common/lib/kibana'; +import { histogramConfigs } from '../../../hosts/pages/navigation/events_query_tab_body'; import { Filter, esQuery, IIndexPattern, Query, } from '../../../../../../../src/plugins/data/public'; -import { inputsModel } from '../../../store'; -import { HostsTableType, HostsType } from '../../../store/hosts/model'; -import { InputsModelId } from '../../../store/inputs/constants'; +import { inputsModel } from '../../../common/store'; +import { HostsTableType, HostsType } from '../../../hosts/store/model'; +import { InputsModelId } from '../../../common/store/inputs/constants'; -import * as i18n from '../translations'; +import * as i18n from '../../pages/translations'; const NO_FILTERS: Filter[] = []; const DEFAULT_QUERY: Query = { query: '', language: 'kuery' }; diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/overview/components/host_overview/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/host_overview/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/overview/components/host_overview/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.test.tsx b/x-pack/plugins/siem/public/overview/components/host_overview/index.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/page/hosts/host_overview/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/host_overview/index.test.tsx index 90cfe696610d..56c232158ac0 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/host_overview/index.test.tsx @@ -6,11 +6,11 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../common/mock'; import { HostOverview } from './index'; import { mockData } from './mock'; -import { mockAnomalies } from '../../../ml/mock'; +import { mockAnomalies } from '../../../common/components/ml/mock'; describe('Host Summary Component', () => { describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx b/x-pack/plugins/siem/public/overview/components/host_overview/index.tsx similarity index 81% rename from x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx rename to x-pack/plugins/siem/public/overview/components/host_overview/index.tsx index 223a16fec77a..4440147c35f2 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/host_overview/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/host_overview/index.tsx @@ -10,21 +10,27 @@ import lightTheme from '@elastic/eui/dist/eui_theme_light.json'; import { getOr } from 'lodash/fp'; import React from 'react'; -import { DEFAULT_DARK_MODE } from '../../../../../common/constants'; -import { DescriptionList } from '../../../../../common/utility_types'; -import { useUiSetting$ } from '../../../../lib/kibana'; -import { getEmptyTagValue } from '../../../empty_value'; -import { DefaultFieldRenderer, hostIdRenderer } from '../../../field_renderers/field_renderers'; -import { InspectButton, InspectButtonContainer } from '../../../inspect'; -import { HostItem } from '../../../../graphql/types'; -import { Loader } from '../../../loader'; -import { IPDetailsLink } from '../../../links'; -import { hasMlUserPermissions } from '../../../../../common/machine_learning/has_ml_user_permissions'; -import { useMlCapabilities } from '../../../ml_popover/hooks/use_ml_capabilities'; -import { AnomalyScores } from '../../../ml/score/anomaly_scores'; -import { Anomalies, NarrowDateRange } from '../../../ml/types'; -import { DescriptionListStyled, OverviewWrapper } from '../../index'; -import { FirstLastSeenHost, FirstLastSeenHostType } from '../first_last_seen_host'; +import { DEFAULT_DARK_MODE } from '../../../../common/constants'; +import { DescriptionList } from '../../../../common/utility_types'; +import { useUiSetting$ } from '../../../common/lib/kibana'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { + DefaultFieldRenderer, + hostIdRenderer, +} from '../../../timelines/components/field_renderers/field_renderers'; +import { InspectButton, InspectButtonContainer } from '../../../common/components/inspect'; +import { HostItem } from '../../../graphql/types'; +import { Loader } from '../../../common/components/loader'; +import { IPDetailsLink } from '../../../common/components/links'; +import { hasMlUserPermissions } from '../../../../common/machine_learning/has_ml_user_permissions'; +import { useMlCapabilities } from '../../../common/components/ml_popover/hooks/use_ml_capabilities'; +import { AnomalyScores } from '../../../common/components/ml/score/anomaly_scores'; +import { Anomalies, NarrowDateRange } from '../../../common/components/ml/types'; +import { DescriptionListStyled, OverviewWrapper } from '../../../common/components/page'; +import { + FirstLastSeenHost, + FirstLastSeenHostType, +} from '../../../hosts/components/first_last_seen_host'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/mock.ts b/x-pack/plugins/siem/public/overview/components/host_overview/mock.ts similarity index 96% rename from x-pack/plugins/siem/public/components/page/hosts/host_overview/mock.ts rename to x-pack/plugins/siem/public/overview/components/host_overview/mock.ts index d9a93272c098..c24cb20e9087 100644 --- a/x-pack/plugins/siem/public/components/page/hosts/host_overview/mock.ts +++ b/x-pack/plugins/siem/public/overview/components/host_overview/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostsData } from '../../../../graphql/types'; +import { HostsData } from '../../../graphql/types'; export const mockData: { Hosts: HostsData; DateFields: string[] } = { Hosts: { diff --git a/x-pack/plugins/siem/public/components/page/hosts/host_overview/translations.ts b/x-pack/plugins/siem/public/overview/components/host_overview/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/hosts/host_overview/translations.ts rename to x-pack/plugins/siem/public/overview/components/host_overview/translations.ts diff --git a/x-pack/plugins/siem/public/components/page/overview/loading_placeholders/index.tsx b/x-pack/plugins/siem/public/overview/components/loading_placeholders/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/page/overview/loading_placeholders/index.tsx rename to x-pack/plugins/siem/public/overview/components/loading_placeholders/index.tsx diff --git a/x-pack/plugins/siem/public/pages/overview/overview_empty/index.tsx b/x-pack/plugins/siem/public/overview/components/overview_empty/index.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/overview/overview_empty/index.tsx rename to x-pack/plugins/siem/public/overview/components/overview_empty/index.tsx index 1325826f172c..85a898820277 100644 --- a/x-pack/plugins/siem/public/pages/overview/overview_empty/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_empty/index.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import * as i18nCommon from '../../common/translations'; -import { EmptyPage } from '../../../components/empty_page'; -import { useKibana } from '../../../lib/kibana'; +import * as i18nCommon from '../../../common/translations'; +import { EmptyPage } from '../../../common/components/empty_page'; +import { useKibana } from '../../../common/lib/kibana'; const OverviewEmptyComponent: React.FC = () => { const { http, docLinks } = useKibana().services; diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_host/index.test.tsx b/x-pack/plugins/siem/public/overview/components/overview_host/index.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/page/overview/overview_host/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/overview_host/index.test.tsx index 568cf032fb01..137f5d1dc245 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_host/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_host/index.test.tsx @@ -7,17 +7,23 @@ import { cloneDeep } from 'lodash/fp'; import { mount } from 'enzyme'; import React from 'react'; +import { MockedProvider } from 'react-apollo/test-utils'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; import { OverviewHost } from '.'; -import { createStore, State } from '../../../../store'; -import { overviewHostQuery } from '../../../../containers/overview/overview_host/index.gql_query'; -import { GetOverviewHostQuery } from '../../../../graphql/types'; -import { MockedProvider } from 'react-apollo/test-utils'; -import { wait } from '../../../../lib/helpers'; +import { createStore, State } from '../../../common/store'; +import { overviewHostQuery } from '../../containers/overview_host/index.gql_query'; +import { GetOverviewHostQuery } from '../../../graphql/types'; + +import { wait } from '../../../common/lib/helpers'; -jest.mock('../../../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); const startDate = 1579553397080; const endDate = 1579639797080; @@ -86,11 +92,11 @@ const mockOpenTimelineQueryResults: MockedProvidedQuery[] = [ describe('OverviewHost', () => { const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { const myState = cloneDeep(state); - store = createStore(myState, apolloClientObservable); + store = createStore(myState, SUB_PLUGINS_REDUCER, apolloClientObservable); }); test('it renders the expected widget title', () => { diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_host/index.tsx b/x-pack/plugins/siem/public/overview/components/overview_host/index.tsx similarity index 82% rename from x-pack/plugins/siem/public/components/page/overview/overview_host/index.tsx rename to x-pack/plugins/siem/public/overview/components/overview_host/index.tsx index 52c142ceff48..111c12829319 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_host/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_host/index.tsx @@ -10,21 +10,18 @@ import numeral from '@elastic/numeral'; import { FormattedMessage } from '@kbn/i18n/react'; import React, { useMemo } from 'react'; -import { DEFAULT_NUMBER_FORMAT } from '../../../../../common/constants'; -import { ESQuery } from '../../../../../common/typed_json'; -import { - ID as OverviewHostQueryId, - OverviewHostQuery, -} from '../../../../containers/overview/overview_host'; -import { HeaderSection } from '../../../header_section'; -import { useUiSetting$ } from '../../../../lib/kibana'; -import { getHostsUrl } from '../../../link_to'; +import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; +import { ESQuery } from '../../../../common/typed_json'; +import { ID as OverviewHostQueryId, OverviewHostQuery } from '../../containers/overview_host'; +import { HeaderSection } from '../../../common/components/header_section'; +import { useUiSetting$ } from '../../../common/lib/kibana'; +import { getHostsUrl } from '../../../common/components/link_to'; import { getOverviewHostStats, OverviewHostStats } from '../overview_host_stats'; -import { manageQuery } from '../../../page/manage_query'; -import { inputsModel } from '../../../../store/inputs'; -import { InspectButtonContainer } from '../../../inspect'; -import { useGetUrlSearch } from '../../../navigation/use_get_url_search'; -import { navTabs } from '../../../../pages/home/home_navigations'; +import { manageQuery } from '../../../common/components/page/manage_query'; +import { inputsModel } from '../../../common/store/inputs'; +import { InspectButtonContainer } from '../../../common/components/inspect'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; export interface OwnProps { startDate: number; diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/overview/components/overview_host_stats/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/overview/overview_host_stats/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/overview/components/overview_host_stats/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/index.test.tsx b/x-pack/plugins/siem/public/overview/components/overview_host_stats/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/page/overview/overview_host_stats/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/overview_host_stats/index.test.tsx index 4240ea441284..fcbe0c5272da 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_host_stats/index.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { OverviewHostStats } from '.'; import { mockData } from './mock'; -import { TestProviders } from '../../../../mock/test_providers'; +import { TestProviders } from '../../../common/mock/test_providers'; describe('Overview Host Stat Data', () => { describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/index.tsx b/x-pack/plugins/siem/public/overview/components/overview_host_stats/index.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/page/overview/overview_host_stats/index.tsx rename to x-pack/plugins/siem/public/overview/components/overview_host_stats/index.tsx index 4756e4c82657..ab2e12f2110b 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_host_stats/index.tsx @@ -9,7 +9,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; import styled from 'styled-components'; -import { OverviewHostData } from '../../../../graphql/types'; +import { OverviewHostData } from '../../../graphql/types'; import { FormattedStat, StatGroup } from '../types'; import { StatValue } from '../stat_value'; diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/mock.ts b/x-pack/plugins/siem/public/overview/components/overview_host_stats/mock.ts similarity index 92% rename from x-pack/plugins/siem/public/components/page/overview/overview_host_stats/mock.ts rename to x-pack/plugins/siem/public/overview/components/overview_host_stats/mock.ts index 60e653caab8c..63b3a484c1ea 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_host_stats/mock.ts +++ b/x-pack/plugins/siem/public/overview/components/overview_host_stats/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { OverviewHostData } from '../../../../graphql/types'; +import { OverviewHostData } from '../../../graphql/types'; export const mockData: { OverviewHost: OverviewHostData } = { OverviewHost: { diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_network/index.test.tsx b/x-pack/plugins/siem/public/overview/components/overview_network/index.test.tsx similarity index 84% rename from x-pack/plugins/siem/public/components/page/overview/overview_network/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/overview_network/index.test.tsx index 151bb444cfe7..e28681a3320f 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_network/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_network/index.test.tsx @@ -7,17 +7,21 @@ import { cloneDeep } from 'lodash/fp'; import { mount } from 'enzyme'; import React from 'react'; - -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../../../mock'; +import { MockedProvider } from 'react-apollo/test-utils'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; import { OverviewNetwork } from '.'; -import { createStore, State } from '../../../../store'; -import { overviewNetworkQuery } from '../../../../containers/overview/overview_network/index.gql_query'; -import { GetOverviewHostQuery } from '../../../../graphql/types'; -import { MockedProvider } from 'react-apollo/test-utils'; -import { wait } from '../../../../lib/helpers'; +import { createStore, State } from '../../../common/store'; +import { overviewNetworkQuery } from '../../containers/overview_network/index.gql_query'; +import { GetOverviewHostQuery } from '../../../graphql/types'; +import { wait } from '../../../common/lib/helpers'; -jest.mock('../../../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); const startDate = 1579553397080; const endDate = 1579639797080; @@ -79,11 +83,11 @@ const mockOpenTimelineQueryResults: MockedProvidedQuery[] = [ describe('OverviewNetwork', () => { const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { const myState = cloneDeep(state); - store = createStore(myState, apolloClientObservable); + store = createStore(myState, SUB_PLUGINS_REDUCER, apolloClientObservable); }); test('it renders the expected widget title', () => { diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_network/index.tsx b/x-pack/plugins/siem/public/overview/components/overview_network/index.tsx similarity index 84% rename from x-pack/plugins/siem/public/components/page/overview/overview_network/index.tsx rename to x-pack/plugins/siem/public/overview/components/overview_network/index.tsx index d649a0dd9e92..cd70831fddfb 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_network/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_network/index.tsx @@ -10,21 +10,21 @@ import numeral from '@elastic/numeral'; import { FormattedMessage } from '@kbn/i18n/react'; import React, { useMemo } from 'react'; -import { DEFAULT_NUMBER_FORMAT } from '../../../../../common/constants'; -import { ESQuery } from '../../../../../common/typed_json'; -import { HeaderSection } from '../../../header_section'; -import { useUiSetting$ } from '../../../../lib/kibana'; -import { manageQuery } from '../../../page/manage_query'; +import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; +import { ESQuery } from '../../../../common/typed_json'; +import { HeaderSection } from '../../../common/components/header_section'; +import { useUiSetting$ } from '../../../common/lib/kibana'; +import { manageQuery } from '../../../common/components/page/manage_query'; import { ID as OverviewNetworkQueryId, OverviewNetworkQuery, -} from '../../../../containers/overview/overview_network'; -import { inputsModel } from '../../../../store/inputs'; +} from '../../containers/overview_network'; +import { inputsModel } from '../../../common/store/inputs'; import { getOverviewNetworkStats, OverviewNetworkStats } from '../overview_network_stats'; -import { getNetworkUrl } from '../../../link_to'; -import { InspectButtonContainer } from '../../../inspect'; -import { useGetUrlSearch } from '../../../navigation/use_get_url_search'; -import { navTabs } from '../../../../pages/home/home_navigations'; +import { getNetworkUrl } from '../../../common/components/link_to'; +import { InspectButtonContainer } from '../../../common/components/inspect'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; export interface OverviewNetworkProps { startDate: number; diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/overview/components/overview_network_stats/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/page/overview/overview_network_stats/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/overview/components/overview_network_stats/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/index.test.tsx b/x-pack/plugins/siem/public/overview/components/overview_network_stats/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/page/overview/overview_network_stats/index.test.tsx rename to x-pack/plugins/siem/public/overview/components/overview_network_stats/index.test.tsx index cf1a7d20b73e..bff6ee7d7469 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/index.test.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_network_stats/index.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { OverviewNetworkStats } from '.'; import { mockData } from './mock'; -import { TestProviders } from '../../../../mock/test_providers'; +import { TestProviders } from '../../../common/mock/test_providers'; describe('Overview Network Stat Data', () => { describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/index.tsx b/x-pack/plugins/siem/public/overview/components/overview_network_stats/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/page/overview/overview_network_stats/index.tsx rename to x-pack/plugins/siem/public/overview/components/overview_network_stats/index.tsx index ca947c29bc38..709f1ffbe5ca 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/overview_network_stats/index.tsx @@ -9,7 +9,7 @@ import { FormattedMessage } from '@kbn/i18n/react'; import React from 'react'; import styled from 'styled-components'; -import { OverviewNetworkData } from '../../../../graphql/types'; +import { OverviewNetworkData } from '../../../graphql/types'; import { FormattedStat, StatGroup } from '../types'; import { StatValue } from '../stat_value'; diff --git a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/mock.ts b/x-pack/plugins/siem/public/overview/components/overview_network_stats/mock.ts similarity index 89% rename from x-pack/plugins/siem/public/components/page/overview/overview_network_stats/mock.ts rename to x-pack/plugins/siem/public/overview/components/overview_network_stats/mock.ts index cc4c639f85de..f55d6a1577cc 100644 --- a/x-pack/plugins/siem/public/components/page/overview/overview_network_stats/mock.ts +++ b/x-pack/plugins/siem/public/overview/components/overview_network_stats/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { OverviewNetworkData } from '../../../../graphql/types'; +import { OverviewNetworkData } from '../../../graphql/types'; export const mockData: { OverviewNetwork: OverviewNetworkData } = { OverviewNetwork: { diff --git a/x-pack/plugins/siem/public/components/recent_cases/filters/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_cases/filters/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/recent_cases/filters/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_cases/filters/index.tsx diff --git a/x-pack/plugins/siem/public/components/recent_cases/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_cases/index.tsx similarity index 82% rename from x-pack/plugins/siem/public/components/recent_cases/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_cases/index.tsx index 07246c6c6ec8..03c1754f1b8d 100644 --- a/x-pack/plugins/siem/public/components/recent_cases/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_cases/index.tsx @@ -7,13 +7,12 @@ import { EuiHorizontalRule, EuiLink, EuiText } from '@elastic/eui'; import React, { useEffect, useMemo, useRef } from 'react'; -import { FilterOptions, QueryParams } from '../../containers/case/types'; -import { DEFAULT_QUERY_PARAMS, useGetCases } from '../../containers/case/use_get_cases'; -import { getCaseUrl } from '../link_to/redirect_to_case'; -import { useGetUrlSearch } from '../navigation/use_get_url_search'; -import { LoadingPlaceholders } from '../page/overview/loading_placeholders'; -import { navTabs } from '../../pages/home/home_navigations'; - +import { FilterOptions, QueryParams } from '../../../cases/containers/types'; +import { DEFAULT_QUERY_PARAMS, useGetCases } from '../../../cases/containers/use_get_cases'; +import { getCaseUrl } from '../../../common/components/link_to/redirect_to_case'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; +import { LoadingPlaceholders } from '../loading_placeholders'; import { NoCases } from './no_cases'; import { RecentCases } from './recent_cases'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/recent_cases/no_cases/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_cases/no_cases/index.tsx similarity index 76% rename from x-pack/plugins/siem/public/components/recent_cases/no_cases/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_cases/no_cases/index.tsx index 9f0361311b7b..e29223ca07e6 100644 --- a/x-pack/plugins/siem/public/components/recent_cases/no_cases/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_cases/no_cases/index.tsx @@ -7,9 +7,9 @@ import { EuiLink } from '@elastic/eui'; import React, { useMemo } from 'react'; -import { getCreateCaseUrl } from '../../link_to/redirect_to_case'; -import { useGetUrlSearch } from '../../navigation/use_get_url_search'; -import { navTabs } from '../../../pages/home/home_navigations'; +import { getCreateCaseUrl } from '../../../../common/components/link_to/redirect_to_case'; +import { useGetUrlSearch } from '../../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../../app/home/home_navigations'; import * as i18n from '../translations'; diff --git a/x-pack/plugins/siem/public/components/recent_cases/recent_cases.tsx b/x-pack/plugins/siem/public/overview/components/recent_cases/recent_cases.tsx similarity index 82% rename from x-pack/plugins/siem/public/components/recent_cases/recent_cases.tsx rename to x-pack/plugins/siem/public/overview/components/recent_cases/recent_cases.tsx index eb17c75f4111..9618ddb05716 100644 --- a/x-pack/plugins/siem/public/components/recent_cases/recent_cases.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_cases/recent_cases.tsx @@ -8,11 +8,11 @@ import { EuiFlexGroup, EuiFlexItem, EuiLink, EuiSpacer, EuiText } from '@elastic import React from 'react'; import styled from 'styled-components'; -import { Case } from '../../containers/case/types'; -import { getCaseDetailsUrl } from '../link_to/redirect_to_case'; -import { Markdown } from '../markdown'; -import { useGetUrlSearch } from '../navigation/use_get_url_search'; -import { navTabs } from '../../pages/home/home_navigations'; +import { Case } from '../../../cases/containers/types'; +import { getCaseDetailsUrl } from '../../../common/components/link_to/redirect_to_case'; +import { Markdown } from '../../../common/components/markdown'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; import { IconWithCount } from '../recent_timelines/counts'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/recent_cases/translations.ts b/x-pack/plugins/siem/public/overview/components/recent_cases/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/recent_cases/translations.ts rename to x-pack/plugins/siem/public/overview/components/recent_cases/translations.ts diff --git a/x-pack/plugins/siem/public/components/recent_cases/types.ts b/x-pack/plugins/siem/public/overview/components/recent_cases/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/recent_cases/types.ts rename to x-pack/plugins/siem/public/overview/components/recent_cases/types.ts diff --git a/x-pack/plugins/siem/public/components/recent_timelines/counts/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_timelines/counts/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/recent_timelines/counts/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_timelines/counts/index.tsx index c80530b245cf..bdb75f880064 100644 --- a/x-pack/plugins/siem/public/components/recent_timelines/counts/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_timelines/counts/index.tsx @@ -8,8 +8,11 @@ import { EuiFlexGroup, EuiFlexItem, EuiIcon, EuiText, EuiToolTip } from '@elasti import React from 'react'; import styled from 'styled-components'; -import { getPinnedEventCount, getNotesCount } from '../../open_timeline/helpers'; -import { OpenTimelineResult } from '../../open_timeline/types'; +import { + getPinnedEventCount, + getNotesCount, +} from '../../../../timelines/components/open_timeline/helpers'; +import { OpenTimelineResult } from '../../../../timelines/components/open_timeline/types'; import * as i18n from '../translations'; diff --git a/x-pack/plugins/siem/public/components/recent_timelines/filters/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_timelines/filters/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/recent_timelines/filters/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_timelines/filters/index.tsx diff --git a/x-pack/plugins/siem/public/components/recent_timelines/header/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_timelines/header/index.tsx similarity index 82% rename from x-pack/plugins/siem/public/components/recent_timelines/header/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_timelines/header/index.tsx index 89c7ae6f1eed..07144840dae1 100644 --- a/x-pack/plugins/siem/public/components/recent_timelines/header/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_timelines/header/index.tsx @@ -7,8 +7,11 @@ import { EuiText, EuiLink } from '@elastic/eui'; import React, { useCallback } from 'react'; -import { isUntitled } from '../../open_timeline/helpers'; -import { OnOpenTimeline, OpenTimelineResult } from '../../open_timeline/types'; +import { isUntitled } from '../../../../timelines/components/open_timeline/helpers'; +import { + OnOpenTimeline, + OpenTimelineResult, +} from '../../../../timelines/components/open_timeline/types'; import * as i18n from '../translations'; export const RecentTimelineHeader = React.memo<{ diff --git a/x-pack/plugins/siem/public/components/recent_timelines/index.tsx b/x-pack/plugins/siem/public/overview/components/recent_timelines/index.tsx similarity index 81% rename from x-pack/plugins/siem/public/components/recent_timelines/index.tsx rename to x-pack/plugins/siem/public/overview/components/recent_timelines/index.tsx index d3532d9fd102..75b157a282ee 100644 --- a/x-pack/plugins/siem/public/components/recent_timelines/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_timelines/index.tsx @@ -10,21 +10,23 @@ import React, { useCallback, useMemo, useEffect } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; -import { TimelineType } from '../../../common/types/timeline'; - -import { useGetAllTimeline } from '../../containers/timeline/all'; -import { SortFieldTimeline, Direction } from '../../graphql/types'; -import { queryTimelineById, dispatchUpdateTimeline } from '../open_timeline/helpers'; -import { OnOpenTimeline } from '../open_timeline/types'; -import { LoadingPlaceholders } from '../page/overview/loading_placeholders'; -import { updateIsLoading as dispatchUpdateIsLoading } from '../../store/timeline/actions'; +import { TimelineType } from '../../../../common/types/timeline'; +import { useGetAllTimeline } from '../../../timelines/containers/all'; +import { SortFieldTimeline, Direction } from '../../../graphql/types'; +import { + queryTimelineById, + dispatchUpdateTimeline, +} from '../../../timelines/components/open_timeline/helpers'; +import { OnOpenTimeline } from '../../../timelines/components/open_timeline/types'; +import { updateIsLoading as dispatchUpdateIsLoading } from '../../../timelines/store/timeline/actions'; import { RecentTimelines } from './recent_timelines'; import * as i18n from './translations'; import { FilterMode } from './types'; -import { useGetUrlSearch } from '../navigation/use_get_url_search'; -import { navTabs } from '../../pages/home/home_navigations'; -import { getTimelinesUrl } from '../link_to/redirect_to_timelines'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; +import { navTabs } from '../../../app/home/home_navigations'; +import { getTimelinesUrl } from '../../../common/components/link_to/redirect_to_timelines'; +import { LoadingPlaceholders } from '../loading_placeholders'; interface OwnProps { apolloClient: ApolloClient<{}>; diff --git a/x-pack/plugins/siem/public/components/recent_timelines/recent_timelines.tsx b/x-pack/plugins/siem/public/overview/components/recent_timelines/recent_timelines.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/recent_timelines/recent_timelines.tsx rename to x-pack/plugins/siem/public/overview/components/recent_timelines/recent_timelines.tsx index dbcd3fe721ea..ba6fcad2a03e 100644 --- a/x-pack/plugins/siem/public/components/recent_timelines/recent_timelines.tsx +++ b/x-pack/plugins/siem/public/overview/components/recent_timelines/recent_timelines.tsx @@ -15,8 +15,11 @@ import { import React from 'react'; import { RecentTimelineHeader } from './header'; -import { OnOpenTimeline, OpenTimelineResult } from '../open_timeline/types'; -import { WithHoverActions } from '../with_hover_actions'; +import { + OnOpenTimeline, + OpenTimelineResult, +} from '../../../timelines/components/open_timeline/types'; +import { WithHoverActions } from '../../../common/components/with_hover_actions'; import { RecentTimelineCounts } from './counts'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/recent_timelines/translations.ts b/x-pack/plugins/siem/public/overview/components/recent_timelines/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/recent_timelines/translations.ts rename to x-pack/plugins/siem/public/overview/components/recent_timelines/translations.ts diff --git a/x-pack/plugins/siem/public/components/recent_timelines/types.ts b/x-pack/plugins/siem/public/overview/components/recent_timelines/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/recent_timelines/types.ts rename to x-pack/plugins/siem/public/overview/components/recent_timelines/types.ts diff --git a/x-pack/plugins/siem/public/pages/overview/sidebar/index.tsx b/x-pack/plugins/siem/public/overview/components/sidebar/index.tsx similarity index 82% rename from x-pack/plugins/siem/public/pages/overview/sidebar/index.tsx rename to x-pack/plugins/siem/public/overview/components/sidebar/index.tsx index 3797eae2bb85..773750f3d0cc 100644 --- a/x-pack/plugins/siem/public/pages/overview/sidebar/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/sidebar/index.tsx @@ -6,8 +6,8 @@ import React, { useState } from 'react'; -import { FilterMode as RecentTimelinesFilterMode } from '../../../components/recent_timelines/types'; -import { FilterMode as RecentCasesFilterMode } from '../../../components/recent_cases/types'; +import { FilterMode as RecentTimelinesFilterMode } from '../recent_timelines/types'; +import { FilterMode as RecentCasesFilterMode } from '../recent_cases/types'; import { Sidebar } from './sidebar'; diff --git a/x-pack/plugins/siem/public/pages/overview/sidebar/sidebar.tsx b/x-pack/plugins/siem/public/overview/components/sidebar/sidebar.tsx similarity index 78% rename from x-pack/plugins/siem/public/pages/overview/sidebar/sidebar.tsx rename to x-pack/plugins/siem/public/overview/components/sidebar/sidebar.tsx index c972fd83cc88..81de0ed50359 100644 --- a/x-pack/plugins/siem/public/pages/overview/sidebar/sidebar.tsx +++ b/x-pack/plugins/siem/public/overview/components/sidebar/sidebar.tsx @@ -9,19 +9,19 @@ import React, { useMemo } from 'react'; import styled from 'styled-components'; import { ENABLE_NEWS_FEED_SETTING, NEWS_FEED_URL_SETTING } from '../../../../common/constants'; -import { Filters as RecentCasesFilters } from '../../../components/recent_cases/filters'; -import { Filters as RecentTimelinesFilters } from '../../../components/recent_timelines/filters'; -import { StatefulRecentCases } from '../../../components/recent_cases'; -import { StatefulRecentTimelines } from '../../../components/recent_timelines'; -import { StatefulNewsFeed } from '../../../components/news_feed'; -import { FilterMode as RecentTimelinesFilterMode } from '../../../components/recent_timelines/types'; -import { FilterMode as RecentCasesFilterMode } from '../../../components/recent_cases/types'; -import { DEFAULT_FILTER_OPTIONS } from '../../../containers/case/use_get_cases'; -import { SidebarHeader } from '../../../components/sidebar_header'; -import { useCurrentUser } from '../../../lib/kibana'; -import { useApolloClient } from '../../../utils/apollo_context'; +import { Filters as RecentCasesFilters } from '../recent_cases/filters'; +import { Filters as RecentTimelinesFilters } from '../recent_timelines/filters'; +import { StatefulRecentCases } from '../recent_cases'; +import { StatefulRecentTimelines } from '../recent_timelines'; +import { StatefulNewsFeed } from '../../../common/components/news_feed'; +import { FilterMode as RecentTimelinesFilterMode } from '../recent_timelines/types'; +import { FilterMode as RecentCasesFilterMode } from '../recent_cases/types'; +import { DEFAULT_FILTER_OPTIONS } from '../../../cases/containers/use_get_cases'; +import { SidebarHeader } from '../../../common/components/sidebar_header'; +import { useCurrentUser } from '../../../common/lib/kibana'; +import { useApolloClient } from '../../../common/utils/apollo_context'; -import * as i18n from '../translations'; +import * as i18n from '../../pages/translations'; const SidebarFlexGroup = styled(EuiFlexGroup)` width: 305px; diff --git a/x-pack/plugins/siem/public/pages/overview/signals_by_category/index.tsx b/x-pack/plugins/siem/public/overview/components/signals_by_category/index.tsx similarity index 80% rename from x-pack/plugins/siem/public/pages/overview/signals_by_category/index.tsx rename to x-pack/plugins/siem/public/overview/components/signals_by_category/index.tsx index e5863effa906..def7342ff76b 100644 --- a/x-pack/plugins/siem/public/pages/overview/signals_by_category/index.tsx +++ b/x-pack/plugins/siem/public/overview/components/signals_by_category/index.tsx @@ -6,15 +6,15 @@ import React, { useCallback } from 'react'; -import { SignalsHistogramPanel } from '../../detection_engine/components/signals_histogram_panel'; -import { signalsHistogramOptions } from '../../detection_engine/components/signals_histogram_panel/config'; -import { useSignalIndex } from '../../../containers/detection_engine/signals/use_signal_index'; -import { SetAbsoluteRangeDatePicker } from '../../network/types'; +import { SignalsHistogramPanel } from '../../../alerts/components/signals_histogram_panel'; +import { signalsHistogramOptions } from '../../../alerts/components/signals_histogram_panel/config'; +import { useSignalIndex } from '../../../alerts/containers/detection_engine/signals/use_signal_index'; +import { SetAbsoluteRangeDatePicker } from '../../../network/pages/types'; import { Filter, IIndexPattern, Query } from '../../../../../../../src/plugins/data/public'; -import { inputsModel } from '../../../store'; -import { InputsModelId } from '../../../store/inputs/constants'; -import * as i18n from '../translations'; -import { UpdateDateRange } from '../../../components/charts/common'; +import { inputsModel } from '../../../common/store'; +import { InputsModelId } from '../../../common/store/inputs/constants'; +import * as i18n from '../../pages/translations'; +import { UpdateDateRange } from '../../../common/components/charts/common'; const DEFAULT_QUERY: Query = { query: '', language: 'kuery' }; const DEFAULT_STACK_BY = 'signal.rule.threat.tactic.name'; diff --git a/x-pack/plugins/siem/public/components/page/overview/stat_value.tsx b/x-pack/plugins/siem/public/overview/components/stat_value.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/page/overview/stat_value.tsx rename to x-pack/plugins/siem/public/overview/components/stat_value.tsx index 7615001eec9d..dd50a9599e14 100644 --- a/x-pack/plugins/siem/public/components/page/overview/stat_value.tsx +++ b/x-pack/plugins/siem/public/overview/components/stat_value.tsx @@ -9,8 +9,8 @@ import numeral from '@elastic/numeral'; import React, { useEffect, useState } from 'react'; import styled from 'styled-components'; -import { DEFAULT_NUMBER_FORMAT } from '../../../../common/constants'; -import { useUiSetting$ } from '../../../lib/kibana'; +import { DEFAULT_NUMBER_FORMAT } from '../../../common/constants'; +import { useUiSetting$ } from '../../common/lib/kibana'; const ProgressContainer = styled.div` margin-left: 8px; diff --git a/x-pack/plugins/siem/public/components/page/overview/types.ts b/x-pack/plugins/siem/public/overview/components/types.ts similarity index 100% rename from x-pack/plugins/siem/public/components/page/overview/types.ts rename to x-pack/plugins/siem/public/overview/components/types.ts diff --git a/x-pack/plugins/siem/public/containers/overview/overview_host/index.gql_query.ts b/x-pack/plugins/siem/public/overview/containers/overview_host/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/overview/overview_host/index.gql_query.ts rename to x-pack/plugins/siem/public/overview/containers/overview_host/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/overview/overview_host/index.tsx b/x-pack/plugins/siem/public/overview/containers/overview_host/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/containers/overview/overview_host/index.tsx rename to x-pack/plugins/siem/public/overview/containers/overview_host/index.tsx index 2dd9ccf24d80..89761e104d70 100644 --- a/x-pack/plugins/siem/public/containers/overview/overview_host/index.tsx +++ b/x-pack/plugins/siem/public/overview/containers/overview_host/index.tsx @@ -11,11 +11,11 @@ import { connect, ConnectedProps } from 'react-redux'; import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { GetOverviewHostQuery, OverviewHostData } from '../../../graphql/types'; -import { useUiSetting } from '../../../lib/kibana'; -import { inputsModel, inputsSelectors } from '../../../store/inputs'; -import { State } from '../../../store'; -import { createFilter, getDefaultFetchPolicy } from '../../helpers'; -import { QueryTemplateProps } from '../../query_template'; +import { useUiSetting } from '../../../common/lib/kibana'; +import { inputsModel, inputsSelectors } from '../../../common/store/inputs'; +import { State } from '../../../common/store'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { QueryTemplateProps } from '../../../common/containers/query_template'; import { overviewHostQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/overview/overview_network/index.gql_query.ts b/x-pack/plugins/siem/public/overview/containers/overview_network/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/overview/overview_network/index.gql_query.ts rename to x-pack/plugins/siem/public/overview/containers/overview_network/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/overview/overview_network/index.tsx b/x-pack/plugins/siem/public/overview/containers/overview_network/index.tsx similarity index 88% rename from x-pack/plugins/siem/public/containers/overview/overview_network/index.tsx rename to x-pack/plugins/siem/public/overview/containers/overview_network/index.tsx index d0acd41c224a..86242adf3f47 100644 --- a/x-pack/plugins/siem/public/containers/overview/overview_network/index.tsx +++ b/x-pack/plugins/siem/public/overview/containers/overview_network/index.tsx @@ -11,11 +11,11 @@ import { connect, ConnectedProps } from 'react-redux'; import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { GetOverviewNetworkQuery, OverviewNetworkData } from '../../../graphql/types'; -import { useUiSetting } from '../../../lib/kibana'; -import { State } from '../../../store'; -import { inputsModel, inputsSelectors } from '../../../store/inputs'; -import { createFilter, getDefaultFetchPolicy } from '../../helpers'; -import { QueryTemplateProps } from '../../query_template'; +import { useUiSetting } from '../../../common/lib/kibana'; +import { State } from '../../../common/store'; +import { inputsModel, inputsSelectors } from '../../../common/store/inputs'; +import { createFilter, getDefaultFetchPolicy } from '../../../common/containers/helpers'; +import { QueryTemplateProps } from '../../../common/containers/query_template'; import { overviewNetworkQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/overview/index.ts b/x-pack/plugins/siem/public/overview/index.ts new file mode 100644 index 000000000000..bdf855b3851c --- /dev/null +++ b/x-pack/plugins/siem/public/overview/index.ts @@ -0,0 +1,18 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SecuritySubPlugin } from '../app/types'; +import { getOverviewRoutes } from './routes'; + +export class Overview { + public setup() {} + + public start(): SecuritySubPlugin { + return { + routes: getOverviewRoutes(), + }; + } +} diff --git a/x-pack/plugins/siem/public/pages/overview/index.tsx b/x-pack/plugins/siem/public/overview/pages/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/pages/overview/index.tsx rename to x-pack/plugins/siem/public/overview/pages/index.tsx diff --git a/x-pack/plugins/siem/public/pages/overview/overview.test.tsx b/x-pack/plugins/siem/public/overview/pages/overview.test.tsx similarity index 88% rename from x-pack/plugins/siem/public/pages/overview/overview.test.tsx rename to x-pack/plugins/siem/public/overview/pages/overview.test.tsx index c129258fa2e8..36174bdb94a3 100644 --- a/x-pack/plugins/siem/public/pages/overview/overview.test.tsx +++ b/x-pack/plugins/siem/public/overview/pages/overview.test.tsx @@ -10,19 +10,19 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { MemoryRouter } from 'react-router-dom'; -import '../../mock/match_media'; -import { TestProviders } from '../../mock'; -import { mocksSource } from '../../containers/source/mock'; +import '../../common/mock/match_media'; +import { TestProviders } from '../../common/mock'; +import { mocksSource } from '../../common/containers/source/mock'; import { Overview } from './index'; -jest.mock('../../lib/kibana'); +jest.mock('../../common/lib/kibana'); // Test will fail because we will to need to mock some core services to make the test work // For now let's forget about SiemSearchBar and QueryBar -jest.mock('../../components/search_bar', () => ({ +jest.mock('../../common/components/search_bar', () => ({ SiemSearchBar: () => null, })); -jest.mock('../../components/query_bar', () => ({ +jest.mock('../../common/components/query_bar', () => ({ QueryBar: () => null, })); diff --git a/x-pack/plugins/siem/public/pages/overview/overview.tsx b/x-pack/plugins/siem/public/overview/pages/overview.tsx similarity index 82% rename from x-pack/plugins/siem/public/pages/overview/overview.tsx rename to x-pack/plugins/siem/public/overview/pages/overview.tsx index 82f444472890..57a82f6f254f 100644 --- a/x-pack/plugins/siem/public/pages/overview/overview.tsx +++ b/x-pack/plugins/siem/public/overview/pages/overview.tsx @@ -11,20 +11,23 @@ import { StickyContainer } from 'react-sticky'; import { Query, Filter } from 'src/plugins/data/public'; import styled from 'styled-components'; -import { AlertsByCategory } from './alerts_by_category'; -import { FiltersGlobal } from '../../components/filters_global'; -import { SiemSearchBar } from '../../components/search_bar'; -import { WrapperPage } from '../../components/wrapper_page'; -import { GlobalTime } from '../../containers/global_time'; -import { WithSource, indicesExistOrDataTemporarilyUnavailable } from '../../containers/source'; -import { EventsByDataset } from './events_by_dataset'; -import { EventCounts } from './event_counts'; -import { OverviewEmpty } from './overview_empty'; -import { StatefulSidebar } from './sidebar'; -import { SignalsByCategory } from './signals_by_category'; -import { inputsSelectors, State } from '../../store'; -import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../store/inputs/actions'; -import { SpyRoute } from '../../utils/route/spy_routes'; +import { AlertsByCategory } from '../components/alerts_by_category'; +import { FiltersGlobal } from '../../common/components/filters_global'; +import { SiemSearchBar } from '../../common/components/search_bar'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { GlobalTime } from '../../common/containers/global_time'; +import { + WithSource, + indicesExistOrDataTemporarilyUnavailable, +} from '../../common/containers/source'; +import { EventsByDataset } from '../components/events_by_dataset'; +import { EventCounts } from '../components/event_counts'; +import { OverviewEmpty } from '../components/overview_empty'; +import { StatefulSidebar } from '../components/sidebar'; +import { SignalsByCategory } from '../components/signals_by_category'; +import { inputsSelectors, State } from '../../common/store'; +import { setAbsoluteRangeDatePicker as dispatchSetAbsoluteRangeDatePicker } from '../../common/store/inputs/actions'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; const DEFAULT_QUERY: Query = { query: '', language: 'kuery' }; const NO_FILTERS: Filter[] = []; diff --git a/x-pack/plugins/siem/public/pages/overview/summary.tsx b/x-pack/plugins/siem/public/overview/pages/summary.tsx similarity index 98% rename from x-pack/plugins/siem/public/pages/overview/summary.tsx rename to x-pack/plugins/siem/public/overview/pages/summary.tsx index da16cb28c617..1e08a2cdca8e 100644 --- a/x-pack/plugins/siem/public/pages/overview/summary.tsx +++ b/x-pack/plugins/siem/public/overview/pages/summary.tsx @@ -8,7 +8,7 @@ import React from 'react'; import { EuiFlexItem, EuiLink, EuiText } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; -import { useKibana } from '../../lib/kibana'; +import { useKibana } from '../../common/lib/kibana'; export const Summary = React.memo(() => { const docLinks = useKibana().services.docLinks; diff --git a/x-pack/plugins/siem/public/pages/overview/translations.ts b/x-pack/plugins/siem/public/overview/pages/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/overview/translations.ts rename to x-pack/plugins/siem/public/overview/pages/translations.ts diff --git a/x-pack/plugins/siem/public/overview/routes.tsx b/x-pack/plugins/siem/public/overview/routes.tsx new file mode 100644 index 000000000000..fc41227b27c0 --- /dev/null +++ b/x-pack/plugins/siem/public/overview/routes.tsx @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { Route } from 'react-router-dom'; + +import { Overview } from './pages'; +import { SiemPageName } from '../app/types'; + +export const getOverviewRoutes = () => [ + } />, +]; diff --git a/x-pack/plugins/siem/public/pages/home/types.ts b/x-pack/plugins/siem/public/pages/home/types.ts deleted file mode 100644 index 6445ac91d9e1..000000000000 --- a/x-pack/plugins/siem/public/pages/home/types.ts +++ /dev/null @@ -1,26 +0,0 @@ -/* - * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one - * or more contributor license agreements. Licensed under the Elastic License; - * you may not use this file except in compliance with the Elastic License. - */ - -import { NavTab } from '../../components/navigation/types'; - -export enum SiemPageName { - overview = 'overview', - hosts = 'hosts', - network = 'network', - detections = 'detections', - timelines = 'timelines', - case = 'case', -} - -export type SiemNavTabKey = - | SiemPageName.overview - | SiemPageName.hosts - | SiemPageName.network - | SiemPageName.detections - | SiemPageName.timelines - | SiemPageName.case; - -export type SiemNavTab = Record; diff --git a/x-pack/plugins/siem/public/plugin.tsx b/x-pack/plugins/siem/public/plugin.tsx index f4310e1b073a..cc46025ddc4a 100644 --- a/x-pack/plugins/siem/public/plugin.tsx +++ b/x-pack/plugins/siem/public/plugin.tsx @@ -30,9 +30,9 @@ import { } from '../../triggers_actions_ui/public'; import { SecurityPluginSetup } from '../../security/public'; import { APP_ID, APP_NAME, APP_PATH, APP_ICON } from '../common/constants'; -import { initTelemetry } from './lib/telemetry'; -import { KibanaServices } from './lib/kibana/services'; -import { serviceNowActionType, jiraActionType } from './lib/connectors'; +import { initTelemetry } from './common/lib/telemetry'; +import { KibanaServices } from './common/lib/kibana/services'; +import { serviceNowActionType, jiraActionType } from './common/lib/connectors'; export interface SetupPlugins { home: HomePublicPluginSetup; @@ -87,6 +87,53 @@ export class Plugin implements IPlugin { + const [coreStart, startPlugins] = await core.getStartServices(); + const { renderApp } = await import('./app'); + const services = { + ...coreStart, + ...startPlugins, + security: plugins.security, + } as StartServices; + + const alertsSubPlugin = new (await import('./alerts')).Alerts(); + const casesSubPlugin = new (await import('./cases')).Cases(); + const hostsSubPlugin = new (await import('./hosts')).Hosts(); + const networkSubPlugin = new (await import('./network')).Network(); + const overviewSubPlugin = new (await import('./overview')).Overview(); + const timelinesSubPlugin = new (await import('./timelines')).Timelines(); + + const alertsStart = alertsSubPlugin.start(); + const casesStart = casesSubPlugin.start(); + const hostsStart = hostsSubPlugin.start(); + const networkStart = networkSubPlugin.start(); + const overviewStart = overviewSubPlugin.start(); + const timelinesStart = timelinesSubPlugin.start(); + + return renderApp(services, params, { + routes: [ + ...alertsStart.routes, + ...casesStart.routes, + ...hostsStart.routes, + ...networkStart.routes, + ...overviewStart.routes, + ...timelinesStart.routes, + ], + store: { + initialState: { + ...hostsStart.store.initialState, + ...networkStart.store.initialState, + ...timelinesStart.store.initialState, + }, + reducer: { + ...hostsStart.store.reducer, + ...networkStart.store.reducer, + ...timelinesStart.store.reducer, + }, + }, + }); + }; + core.application.register({ id: APP_ID, title: APP_NAME, @@ -94,15 +141,7 @@ export class Plugin implements IPlugin ({ - ...initialState, - inputs: createInitialInputsState(), -}); - -export const reducer = combineReducers({ - app: appReducer, - dragAndDrop: dragAndDropReducer, - hosts: hostsReducer, - inputs: inputsReducer, - network: networkReducer, - timeline: timelineReducer, -}); diff --git a/x-pack/plugins/siem/public/components/certificate_fingerprint/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/index.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/certificate_fingerprint/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/index.test.tsx index 9cd0af062c54..16d4d3b6c7cb 100644 --- a/x-pack/plugins/siem/public/components/certificate_fingerprint/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/index.test.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { TestProviders } from '../../mock'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { TestProviders } from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { CertificateFingerprint } from '.'; diff --git a/x-pack/plugins/siem/public/components/certificate_fingerprint/index.tsx b/x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/certificate_fingerprint/index.tsx rename to x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/index.tsx index 181d92dce06f..dc3b6ea61b9c 100644 --- a/x-pack/plugins/siem/public/components/certificate_fingerprint/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/index.tsx @@ -8,9 +8,9 @@ import { EuiText } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { DraggableBadge } from '../draggables'; -import { ExternalLinkIcon } from '../external_link_icon'; -import { CertificateFingerprintLink } from '../links'; +import { DraggableBadge } from '../../../common/components/draggables'; +import { ExternalLinkIcon } from '../../../common/components/external_link_icon'; +import { CertificateFingerprintLink } from '../../../common/components/links'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/certificate_fingerprint/translations.ts b/x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/certificate_fingerprint/translations.ts rename to x-pack/plugins/siem/public/timelines/components/certificate_fingerprint/translations.ts diff --git a/x-pack/plugins/siem/public/components/duration/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/duration/index.test.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/duration/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/duration/index.test.tsx index 0dbc60ad9ae5..8063921668c9 100644 --- a/x-pack/plugins/siem/public/components/duration/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/duration/index.test.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { TestProviders } from '../../mock'; +import { TestProviders } from '../../../common/mock'; import { ONE_MILLISECOND_AS_NANOSECONDS } from '../formatted_duration/helpers'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { Duration } from '.'; diff --git a/x-pack/plugins/siem/public/components/duration/index.tsx b/x-pack/plugins/siem/public/timelines/components/duration/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/duration/index.tsx rename to x-pack/plugins/siem/public/timelines/components/duration/index.tsx index 76712b789ffb..1106ee63a03c 100644 --- a/x-pack/plugins/siem/public/components/duration/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/duration/index.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DefaultDraggable } from '../draggables'; +import { DefaultDraggable } from '../../../common/components/draggables'; import { FormattedDuration } from '../formatted_duration'; export const EVENT_DURATION_FIELD_NAME = 'event.duration'; diff --git a/x-pack/plugins/siem/public/components/edit_data_provider/helpers.test.tsx b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/helpers.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/edit_data_provider/helpers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/edit_data_provider/helpers.test.tsx index 744308730642..87388960dc5d 100644 --- a/x-pack/plugins/siem/public/components/edit_data_provider/helpers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/helpers.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { mockBrowserFields } from '../../containers/source/mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; import { EXISTS_OPERATOR, IS_OPERATOR } from '../timeline/data_providers/data_provider'; import { diff --git a/x-pack/plugins/siem/public/components/edit_data_provider/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/helpers.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/edit_data_provider/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/edit_data_provider/helpers.tsx index e6afc86a7ee6..03eb4f9bb515 100644 --- a/x-pack/plugins/siem/public/components/edit_data_provider/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/helpers.tsx @@ -6,7 +6,7 @@ import { findIndex } from 'lodash/fp'; import { EuiComboBoxOptionOption } from '@elastic/eui'; -import { BrowserField, BrowserFields, getAllFieldsByName } from '../../containers/source'; +import { BrowserField, BrowserFields, getAllFieldsByName } from '../../../common/containers/source'; import { QueryOperator, EXISTS_OPERATOR, diff --git a/x-pack/plugins/siem/public/components/edit_data_provider/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/edit_data_provider/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/edit_data_provider/index.test.tsx index 1786905a4bb4..035d1bb59796 100644 --- a/x-pack/plugins/siem/public/components/edit_data_provider/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/index.test.tsx @@ -7,8 +7,8 @@ import { mount } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; import { IS_OPERATOR, EXISTS_OPERATOR } from '../timeline/data_providers/data_provider'; import { StatefulEditDataProvider } from '.'; diff --git a/x-pack/plugins/siem/public/components/edit_data_provider/index.tsx b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/index.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/edit_data_provider/index.tsx rename to x-pack/plugins/siem/public/timelines/components/edit_data_provider/index.tsx index 5ecc96187532..95f3ec3b3164 100644 --- a/x-pack/plugins/siem/public/components/edit_data_provider/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/index.tsx @@ -20,7 +20,7 @@ import { import React, { useEffect, useState, useCallback } from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; +import { BrowserFields } from '../../../common/containers/source'; import { OnDataProviderEdited } from '../timeline/events'; import { QueryOperator } from '../timeline/data_providers/data_provider'; diff --git a/x-pack/plugins/siem/public/components/edit_data_provider/translations.ts b/x-pack/plugins/siem/public/timelines/components/edit_data_provider/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/edit_data_provider/translations.ts rename to x-pack/plugins/siem/public/timelines/components/edit_data_provider/translations.ts diff --git a/x-pack/plugins/siem/public/components/field_renderers/__snapshots__/field_renderers.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/field_renderers/__snapshots__/field_renderers.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/field_renderers/__snapshots__/field_renderers.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/field_renderers/__snapshots__/field_renderers.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/field_renderers/field_renderers.test.tsx b/x-pack/plugins/siem/public/timelines/components/field_renderers/field_renderers.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/field_renderers/field_renderers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/field_renderers/field_renderers.test.tsx index 88d03d8db676..b853a978c15e 100644 --- a/x-pack/plugins/siem/public/components/field_renderers/field_renderers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/field_renderers/field_renderers.test.tsx @@ -7,9 +7,9 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { FlowTarget, GetIpOverviewQuery, HostEcsFields } from '../../graphql/types'; -import { TestProviders } from '../../mock'; -import { getEmptyValue } from '../empty_value'; +import { FlowTarget, GetIpOverviewQuery, HostEcsFields } from '../../../graphql/types'; +import { TestProviders } from '../../../common/mock'; +import { getEmptyValue } from '../../../common/components/empty_value'; import { autonomousSystemRenderer, @@ -22,8 +22,8 @@ import { DEFAULT_MORE_MAX_HEIGHT, MoreContainer, } from './field_renderers'; -import { mockData } from '../page/network/ip_overview/mock'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { mockData } from '../../../network/components/ip_overview/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; type AutonomousSystem = GetIpOverviewQuery.AutonomousSystem; diff --git a/x-pack/plugins/siem/public/components/field_renderers/field_renderers.tsx b/x-pack/plugins/siem/public/timelines/components/field_renderers/field_renderers.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/field_renderers/field_renderers.tsx rename to x-pack/plugins/siem/public/timelines/components/field_renderers/field_renderers.tsx index 222eef515958..1d53299c0975 100644 --- a/x-pack/plugins/siem/public/components/field_renderers/field_renderers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/field_renderers/field_renderers.tsx @@ -10,14 +10,24 @@ import { getOr } from 'lodash/fp'; import React, { Fragment, useState } from 'react'; import styled from 'styled-components'; -import { AutonomousSystem, FlowTarget, HostEcsFields, IpOverviewData } from '../../graphql/types'; -import { escapeDataProviderId } from '../drag_and_drop/helpers'; -import { DefaultDraggable } from '../draggables'; -import { getEmptyTagValue } from '../empty_value'; -import { FormattedRelativePreferenceDate } from '../formatted_date'; -import { HostDetailsLink, ReputationLink, WhoIsLink, ReputationLinkSetting } from '../links'; -import { Spacer } from '../page'; -import * as i18n from '../page/network/ip_overview/translations'; +import { + AutonomousSystem, + FlowTarget, + HostEcsFields, + IpOverviewData, +} from '../../../graphql/types'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { DefaultDraggable } from '../../../common/components/draggables'; +import { getEmptyTagValue } from '../../../common/components/empty_value'; +import { FormattedRelativePreferenceDate } from '../../../common/components/formatted_date'; +import { + HostDetailsLink, + ReputationLink, + WhoIsLink, + ReputationLinkSetting, +} from '../../../common/components/links'; +import { Spacer } from '../../../common/components/page'; +import * as i18n from '../../../network/components/ip_overview/translations'; const DraggableContainerFlexGroup = styled(EuiFlexGroup)` flex-grow: unset; diff --git a/x-pack/plugins/siem/public/components/fields_browser/categories_pane.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/categories_pane.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/fields_browser/categories_pane.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/categories_pane.test.tsx index 361a0789135e..9a1f9a9d0735 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/categories_pane.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/categories_pane.test.tsx @@ -9,7 +9,7 @@ import React from 'react'; import { ThemeProvider } from 'styled-components'; import euiDarkVars from '@elastic/eui/dist/eui_theme_dark.json'; -import { mockBrowserFields } from '../../containers/source/mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; import { CATEGORY_PANE_WIDTH } from './helpers'; import { CategoriesPane } from './categories_pane'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/categories_pane.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/categories_pane.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/fields_browser/categories_pane.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/categories_pane.tsx index d6972625821c..93407e437391 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/categories_pane.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/categories_pane.tsx @@ -8,7 +8,7 @@ import { EuiInMemoryTable, EuiTitle } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; +import { BrowserFields } from '../../../common/containers/source'; import { FieldBrowserProps } from './types'; import { getCategoryColumns } from './category_columns'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/category.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/category.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/fields_browser/category.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/category.test.tsx index 38eaf43977fa..177ce5648e79 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/category.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/category.test.tsx @@ -6,13 +6,13 @@ import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; import { Category } from './category'; import { getFieldItems } from './field_items'; import { FIELDS_PANE_WIDTH } from './helpers'; -import { TestProviders } from '../../mock'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { TestProviders } from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/category.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/category.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/fields_browser/category.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/category.tsx index 9d2a7da9b2d0..fc9169303944 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/category.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/category.tsx @@ -8,7 +8,7 @@ import { EuiInMemoryTable } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; +import { BrowserFields } from '../../../common/containers/source'; import { CategoryTitle } from './category_title'; import { FieldItem, getFieldColumns } from './field_items'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/category_columns.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_columns.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/fields_browser/category_columns.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/category_columns.test.tsx index e116209ba5d6..ec2156bb609f 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/category_columns.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_columns.test.tsx @@ -7,7 +7,7 @@ import { mount } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; import { CATEGORY_PANE_WIDTH, getFieldCount } from './helpers'; import { CategoriesPane } from './categories_pane'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/category_columns.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_columns.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/fields_browser/category_columns.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/category_columns.tsx index 7133e9b848c5..2e952dc24dbd 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/category_columns.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_columns.tsx @@ -10,12 +10,12 @@ import { EuiIcon, EuiFlexGroup, EuiFlexItem, EuiLink, EuiText, EuiToolTip } from import React, { useContext } from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; -import { getColumnsWithTimestamp } from '../event_details/helpers'; -import { CountBadge } from '../page'; +import { BrowserFields } from '../../../common/containers/source'; +import { getColumnsWithTimestamp } from '../../../common/components/event_details/helpers'; +import { CountBadge } from '../../../common/components/page'; import { OnUpdateColumns } from '../timeline/events'; import { TimelineContext } from '../timeline/timeline_context'; -import { WithHoverActions } from '../with_hover_actions'; +import { WithHoverActions } from '../../../common/components/with_hover_actions'; import { LoadingSpinner, getCategoryPaneCategoryClassName, getFieldCount } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/category_title.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_title.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/fields_browser/category_title.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/category_title.test.tsx index 792e0342a6d5..8ad9cea9b294 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/category_title.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_title.test.tsx @@ -7,7 +7,7 @@ import { mount } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; import { CategoryTitle } from './category_title'; import { getFieldCount } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/category_title.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_title.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/fields_browser/category_title.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/category_title.tsx index cd14cef328a7..c8d59f5c0dfa 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/category_title.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/category_title.tsx @@ -8,9 +8,9 @@ import { EuiFlexGroup, EuiFlexItem, EuiTitle } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; +import { BrowserFields } from '../../../common/containers/source'; import { getFieldBrowserCategoryTitleClassName, getFieldCount } from './helpers'; -import { CountBadge } from '../page'; +import { CountBadge } from '../../../common/components/page'; const CountBadgeContainer = styled.div` position: relative; diff --git a/x-pack/plugins/siem/public/components/fields_browser/field_browser.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_browser.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/fields_browser/field_browser.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/field_browser.test.tsx index 9214fd5f2540..d4a6d85c7ccd 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/field_browser.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_browser.test.tsx @@ -7,8 +7,8 @@ import { mount } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; import { FieldsBrowser } from './field_browser'; import { FIELD_BROWSER_HEIGHT, FIELD_BROWSER_WIDTH } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/field_browser.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_browser.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/fields_browser/field_browser.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/field_browser.tsx index 02aeab74f8ba..c255bd062bb4 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/field_browser.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_browser.tsx @@ -9,8 +9,8 @@ import React, { useEffect, useCallback } from 'react'; import { noop } from 'lodash/fp'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { BrowserFields } from '../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { CategoriesPane } from './categories_pane'; import { FieldsPane } from './fields_pane'; import { Header } from './header'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/field_items.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_items.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/fields_browser/field_items.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/field_items.test.tsx index 226b56dad8c4..3b9e5368ff19 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/field_items.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_items.test.tsx @@ -7,16 +7,16 @@ import { omit } from 'lodash/fp'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { defaultColumnHeaderType } from '../timeline/body/column_headers/default_headers'; import { DEFAULT_DATE_COLUMN_MIN_WIDTH } from '../timeline/body/constants'; import { Category } from './category'; import { getFieldColumns, getFieldItems } from './field_items'; import { FIELDS_PANE_WIDTH } from './helpers'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; const selectedCategoryId = 'base'; const selectedCategoryFields = mockBrowserFields[selectedCategoryId].fields; diff --git a/x-pack/plugins/siem/public/components/fields_browser/field_items.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_items.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/fields_browser/field_items.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/field_items.tsx index 62f9297c38ef..9abcc909a161 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/field_items.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_items.tsx @@ -12,19 +12,27 @@ import React from 'react'; import { Draggable } from 'react-beautiful-dnd'; import styled from 'styled-components'; -import { BrowserField, BrowserFields } from '../../containers/source'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; -import { DragEffects } from '../drag_and_drop/draggable_wrapper'; -import { DroppableWrapper } from '../drag_and_drop/droppable_wrapper'; -import { getDraggableFieldId, getDroppableId, DRAG_TYPE_FIELD } from '../drag_and_drop/helpers'; -import { DraggableFieldBadge } from '../draggables/field_badge'; -import { getEmptyValue } from '../empty_value'; -import { getColumnsWithTimestamp, getExampleText, getIconFromType } from '../event_details/helpers'; -import { SelectableText } from '../selectable_text'; +import { BrowserField, BrowserFields } from '../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; +import { DragEffects } from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { DroppableWrapper } from '../../../common/components/drag_and_drop/droppable_wrapper'; +import { + getDraggableFieldId, + getDroppableId, + DRAG_TYPE_FIELD, +} from '../../../common/components/drag_and_drop/helpers'; +import { DraggableFieldBadge } from '../../../common/components/draggables/field_badge'; +import { getEmptyValue } from '../../../common/components/empty_value'; +import { + getColumnsWithTimestamp, + getExampleText, + getIconFromType, +} from '../../../common/components/event_details/helpers'; +import { SelectableText } from '../../../common/components/selectable_text'; import { defaultColumnHeaderType } from '../timeline/body/column_headers/default_headers'; import { DEFAULT_COLUMN_MIN_WIDTH } from '../timeline/body/constants'; import { OnUpdateColumns } from '../timeline/events'; -import { TruncatableText } from '../truncatable_text'; +import { TruncatableText } from '../../../common/components/truncatable_text'; import { FieldName } from './field_name'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/field_name.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_name.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/fields_browser/field_name.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/field_name.test.tsx index 31f1e7678aa4..473dd9eca4d1 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/field_name.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_name.test.tsx @@ -7,9 +7,9 @@ import { mount } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; -import { getColumnsWithTimestamp } from '../event_details/helpers'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; +import { getColumnsWithTimestamp } from '../../../common/components/event_details/helpers'; import { FieldName } from './field_name'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/field_name.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_name.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/fields_browser/field_name.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/field_name.tsx index fc9633b6f874..4043623f5d4a 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/field_name.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/field_name.tsx @@ -8,13 +8,13 @@ import { EuiButtonIcon, EuiHighlight, EuiIcon, EuiText, EuiToolTip } from '@elas import React, { useCallback, useContext, useState, useMemo } from 'react'; import styled from 'styled-components'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { OnUpdateColumns } from '../timeline/events'; import { TimelineContext } from '../timeline/timeline_context'; -import { WithHoverActions } from '../with_hover_actions'; +import { WithHoverActions } from '../../../common/components/with_hover_actions'; import { LoadingSpinner } from './helpers'; import * as i18n from './translations'; -import { DraggableWrapperHoverContent } from '../drag_and_drop/draggable_wrapper_hover_content'; +import { DraggableWrapperHoverContent } from '../../../common/components/drag_and_drop/draggable_wrapper_hover_content'; /** * The name of a (draggable) field diff --git a/x-pack/plugins/siem/public/components/fields_browser/fields_pane.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/fields_pane.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/fields_browser/fields_pane.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/fields_pane.test.tsx index f3ec87a96d46..be77b62d2d0a 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/fields_pane.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/fields_pane.test.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { FIELDS_PANE_WIDTH } from './helpers'; import { FieldsPane } from './fields_pane'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/fields_pane.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/fields_pane.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/fields_browser/fields_pane.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/fields_pane.tsx index 354b2ae5e5eb..9829a63101f8 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/fields_pane.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/fields_pane.tsx @@ -8,8 +8,8 @@ import { EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { BrowserFields } from '../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { Category } from './category'; import { FieldBrowserProps } from './types'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/header.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/header.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/fields_browser/header.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/header.test.tsx index 2abc2fd1046e..ca05d075e561 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/header.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/header.test.tsx @@ -6,8 +6,8 @@ import { mount } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; import { defaultHeaders } from '../timeline/body/column_headers/default_headers'; import { Header } from './header'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/header.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/header.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/fields_browser/header.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/header.tsx index ccf6ec67521b..1136b7c8d0dc 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/header.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/header.tsx @@ -15,10 +15,10 @@ import { import React, { useCallback } from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; -import { signalsHeaders } from '../../pages/detection_engine/components/signals/default_config'; -import { alertsHeaders } from '../alerts_viewer/default_headers'; -import { defaultHeaders as eventsDefaultHeaders } from '../events_viewer/default_headers'; +import { BrowserFields } from '../../../common/containers/source'; +import { signalsHeaders } from '../../../alerts/components/signals/default_config'; +import { alertsHeaders } from '../../../common/components/alerts_viewer/default_headers'; +import { defaultHeaders as eventsDefaultHeaders } from '../../../common/components/events_viewer/default_headers'; import { defaultHeaders } from '../timeline/body/column_headers/default_headers'; import { OnUpdateColumns } from '../timeline/events'; import { useTimelineTypeContext } from '../timeline/timeline_context'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/helpers.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/helpers.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/fields_browser/helpers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/helpers.test.tsx index db9daacb21fa..0e1b00dd9b86 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/helpers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/helpers.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { mockBrowserFields } from '../../containers/source/mock'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; import { categoryHasFields, @@ -15,7 +15,7 @@ import { getFieldCount, filterBrowserFieldsByFieldName, } from './helpers'; -import { BrowserFields } from '../../containers/source'; +import { BrowserFields } from '../../../common/containers/source'; const timelineId = 'test'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/helpers.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/fields_browser/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/helpers.tsx index e198d802d8a2..d176e68bc841 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/helpers.tsx @@ -8,7 +8,7 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import { filter, get, pickBy } from 'lodash/fp'; import styled from 'styled-components'; -import { BrowserField, BrowserFields } from '../../containers/source'; +import { BrowserField, BrowserFields } from '../../../common/containers/source'; import { DEFAULT_CATEGORY_NAME, defaultHeaders, diff --git a/x-pack/plugins/siem/public/components/fields_browser/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/fields_browser/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/index.test.tsx index 9e513b890e72..798fa53e607e 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/index.test.tsx @@ -8,9 +8,9 @@ import { mount } from 'enzyme'; import React from 'react'; import { ActionCreator } from 'typescript-fsa'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { TestProviders } from '../../mock'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { TestProviders } from '../../../common/mock'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { FIELD_BROWSER_HEIGHT, FIELD_BROWSER_WIDTH } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/index.tsx b/x-pack/plugins/siem/public/timelines/components/fields_browser/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/fields_browser/index.tsx rename to x-pack/plugins/siem/public/timelines/components/fields_browser/index.tsx index 3e19ba383b4e..11c44cce8995 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/index.tsx @@ -10,9 +10,9 @@ import React, { useEffect, useRef, useState, useCallback, useMemo } from 'react' import { connect, ConnectedProps } from 'react-redux'; import styled from 'styled-components'; -import { BrowserFields } from '../../containers/source'; -import { timelineActions } from '../../store/actions'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { BrowserFields } from '../../../common/containers/source'; +import { timelineActions } from '../../store/timeline'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { DEFAULT_CATEGORY_NAME } from '../timeline/body/column_headers/default_headers'; import { FieldsBrowser } from './field_browser'; import { filterBrowserFieldsByFieldName, mergeBrowserFieldsWithDefaultCategory } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/fields_browser/translations.ts b/x-pack/plugins/siem/public/timelines/components/fields_browser/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/fields_browser/translations.ts rename to x-pack/plugins/siem/public/timelines/components/fields_browser/translations.ts diff --git a/x-pack/plugins/siem/public/components/fields_browser/types.ts b/x-pack/plugins/siem/public/timelines/components/fields_browser/types.ts similarity index 90% rename from x-pack/plugins/siem/public/components/fields_browser/types.ts rename to x-pack/plugins/siem/public/timelines/components/fields_browser/types.ts index d6b1936fcc52..2b9889ec13e7 100644 --- a/x-pack/plugins/siem/public/components/fields_browser/types.ts +++ b/x-pack/plugins/siem/public/timelines/components/fields_browser/types.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { BrowserFields } from '../../containers/source'; -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { BrowserFields } from '../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { OnUpdateColumns } from '../timeline/events'; export type OnFieldSelected = (fieldId: string) => void; diff --git a/x-pack/plugins/siem/public/components/flyout/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/flyout/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/flyout/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/flyout/button/index.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/button/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/flyout/button/index.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/button/index.tsx index d0debbca4dec..a80b8de43516 100644 --- a/x-pack/plugins/siem/public/components/flyout/button/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/button/index.tsx @@ -10,12 +10,11 @@ import { rgba } from 'polished'; import React, { useMemo } from 'react'; import styled from 'styled-components'; -import { WithSource } from '../../../containers/source'; -import { IS_DRAGGING_CLASS_NAME } from '../../drag_and_drop/helpers'; -import { DataProviders } from '../../timeline/data_providers'; +import { WithSource } from '../../../../common/containers/source'; +import { IS_DRAGGING_CLASS_NAME } from '../../../../common/components/drag_and_drop/helpers'; import { DataProvider } from '../../timeline/data_providers/data_provider'; import { flattenIntoAndGroups } from '../../timeline/data_providers/helpers'; - +import { DataProviders } from '../../timeline/data_providers'; import * as i18n from './translations'; export const FLYOUT_BUTTON_CLASS_NAME = 'timeline-flyout-button'; diff --git a/x-pack/plugins/siem/public/components/flyout/button/translations.ts b/x-pack/plugins/siem/public/timelines/components/flyout/button/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/button/translations.ts rename to x-pack/plugins/siem/public/timelines/components/flyout/button/translations.ts diff --git a/x-pack/plugins/siem/public/components/flyout/header/index.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/header/index.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/flyout/header/index.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/header/index.tsx index 27a8a83a0850..b332260597f2 100644 --- a/x-pack/plugins/siem/public/components/flyout/header/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/header/index.tsx @@ -9,23 +9,17 @@ import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; import { isEmpty, get } from 'lodash/fp'; -import { History } from '../../../lib/history'; -import { Note } from '../../../lib/note'; -import { - appSelectors, - inputsModel, - inputsSelectors, - State, - timelineSelectors, -} from '../../../store'; +import { History } from '../../../../common/lib/history'; +import { Note } from '../../../../common/lib/note'; +import { appSelectors, inputsModel, inputsSelectors, State } from '../../../../common/store'; import { defaultHeaders } from '../../timeline/body/column_headers/default_headers'; import { Properties } from '../../timeline/properties'; -import { appActions } from '../../../store/app'; -import { inputsActions } from '../../../store/inputs'; -import { timelineActions } from '../../../store/actions'; -import { TimelineModel } from '../../../store/timeline/model'; -import { timelineDefaults } from '../../../store/timeline/defaults'; -import { InputsModelId } from '../../../store/inputs/constants'; +import { appActions } from '../../../../common/store/app'; +import { inputsActions } from '../../../../common/store/inputs'; +import { timelineActions, timelineSelectors } from '../../../store/timeline'; +import { TimelineModel } from '../../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../../timelines/store/timeline/defaults'; +import { InputsModelId } from '../../../../common/store/inputs/constants'; interface OwnProps { timelineId: string; diff --git a/x-pack/plugins/siem/public/components/flyout/header_with_close_button/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/header_with_close_button/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/flyout/header_with_close_button/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/flyout/header_with_close_button/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/index.test.tsx index e0eace2ad5b1..57fd61561c65 100644 --- a/x-pack/plugins/siem/public/components/flyout/header_with_close_button/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/index.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../mock'; +import { TestProviders } from '../../../../common/mock'; import { FlyoutHeaderWithCloseButton } from '.'; describe('FlyoutHeaderWithCloseButton', () => { diff --git a/x-pack/plugins/siem/public/components/flyout/header_with_close_button/index.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/header_with_close_button/index.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/index.tsx diff --git a/x-pack/plugins/siem/public/components/flyout/header_with_close_button/translations.ts b/x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/header_with_close_button/translations.ts rename to x-pack/plugins/siem/public/timelines/components/flyout/header_with_close_button/translations.ts diff --git a/x-pack/plugins/siem/public/components/flyout/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/index.test.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/flyout/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/index.test.tsx index ab41b4617894..b73f2f943bb0 100644 --- a/x-pack/plugins/siem/public/components/flyout/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/index.test.tsx @@ -9,8 +9,13 @@ import { set } from 'lodash/fp'; import React from 'react'; import { ActionCreator } from 'typescript-fsa'; -import { apolloClientObservable, mockGlobalState, TestProviders } from '../../mock'; -import { createStore, State } from '../../store'; +import { + apolloClientObservable, + mockGlobalState, + TestProviders, + SUB_PLUGINS_REDUCER, +} from '../../../common/mock'; +import { createStore, State } from '../../../common/store'; import { mockDataProviders } from '../timeline/data_providers/mock/mock_data_providers'; import { Flyout, FlyoutComponent } from '.'; @@ -54,7 +59,11 @@ describe('Flyout', () => { test('it does NOT render the fly out button when its state is set to flyout is true', () => { const stateShowIsTrue = set('timeline.timelineById.test.show', true, state); - const storeShowIsTrue = createStore(stateShowIsTrue, apolloClientObservable); + const storeShowIsTrue = createStore( + stateShowIsTrue, + SUB_PLUGINS_REDUCER, + apolloClientObservable + ); const wrapper = mount( @@ -73,7 +82,11 @@ describe('Flyout', () => { mockDataProviders, state ); - const storeWithDataProviders = createStore(stateWithDataProviders, apolloClientObservable); + const storeWithDataProviders = createStore( + stateWithDataProviders, + SUB_PLUGINS_REDUCER, + apolloClientObservable + ); const wrapper = mount( @@ -90,7 +103,11 @@ describe('Flyout', () => { mockDataProviders, state ); - const storeWithDataProviders = createStore(stateWithDataProviders, apolloClientObservable); + const storeWithDataProviders = createStore( + stateWithDataProviders, + SUB_PLUGINS_REDUCER, + apolloClientObservable + ); const wrapper = mount( @@ -127,7 +144,11 @@ describe('Flyout', () => { mockDataProviders, state ); - const storeWithDataProviders = createStore(stateWithDataProviders, apolloClientObservable); + const storeWithDataProviders = createStore( + stateWithDataProviders, + SUB_PLUGINS_REDUCER, + apolloClientObservable + ); const wrapper = mount( diff --git a/x-pack/plugins/siem/public/components/flyout/index.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/flyout/index.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/index.tsx index 404ca4a16e0f..c556c2d53f7c 100644 --- a/x-pack/plugins/siem/public/components/flyout/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/index.tsx @@ -9,11 +9,11 @@ import React, { useCallback } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import styled from 'styled-components'; -import { State, timelineSelectors } from '../../store'; +import { State } from '../../../common/store'; import { DataProvider } from '../timeline/data_providers/data_provider'; import { FlyoutButton } from './button'; import { Pane } from './pane'; -import { timelineActions } from '../../store/actions'; +import { timelineActions, timelineSelectors } from '../../store/timeline'; import { DEFAULT_TIMELINE_WIDTH } from '../timeline/body/constants'; import { StatefulTimeline } from '../timeline'; import { TimelineById } from '../../store/timeline/types'; diff --git a/x-pack/plugins/siem/public/components/flyout/pane/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/flyout/pane/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/pane/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/flyout/pane/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/flyout/pane/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/pane/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/flyout/pane/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/pane/index.test.tsx index 53cf8f95de0c..29606d7685d9 100644 --- a/x-pack/plugins/siem/public/components/flyout/pane/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/pane/index.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../mock'; +import { TestProviders } from '../../../../common/mock'; import { Pane } from '.'; const testFlyoutHeight = 980; diff --git a/x-pack/plugins/siem/public/components/flyout/pane/index.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/pane/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/flyout/pane/index.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/pane/index.tsx index 3b5041c1ee34..33aca80b940f 100644 --- a/x-pack/plugins/siem/public/components/flyout/pane/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/flyout/pane/index.tsx @@ -11,10 +11,10 @@ import styled from 'styled-components'; import { Resizable, ResizeCallback } from 're-resizable'; import { TimelineResizeHandle } from './timeline_resize_handle'; -import { EventDetailsWidthProvider } from '../../events_viewer/event_details_width_context'; +import { EventDetailsWidthProvider } from '../../../../common/components/events_viewer/event_details_width_context'; import * as i18n from './translations'; -import { timelineActions } from '../../../store/actions'; +import { timelineActions } from '../../../store/timeline'; const minWidthPixels = 550; // do not allow the flyout to shrink below this width (pixels) const maxWidthPercent = 95; // do not allow the flyout to grow past this percentage of the view diff --git a/x-pack/plugins/siem/public/components/flyout/pane/timeline_resize_handle.tsx b/x-pack/plugins/siem/public/timelines/components/flyout/pane/timeline_resize_handle.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/pane/timeline_resize_handle.tsx rename to x-pack/plugins/siem/public/timelines/components/flyout/pane/timeline_resize_handle.tsx diff --git a/x-pack/plugins/siem/public/components/flyout/pane/translations.ts b/x-pack/plugins/siem/public/timelines/components/flyout/pane/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/flyout/pane/translations.ts rename to x-pack/plugins/siem/public/timelines/components/flyout/pane/translations.ts diff --git a/x-pack/plugins/siem/public/components/formatted_duration/helpers.test.ts b/x-pack/plugins/siem/public/timelines/components/formatted_duration/helpers.test.ts similarity index 99% rename from x-pack/plugins/siem/public/components/formatted_duration/helpers.test.ts rename to x-pack/plugins/siem/public/timelines/components/formatted_duration/helpers.test.ts index 30254c49c9f3..dcf77f06defe 100644 --- a/x-pack/plugins/siem/public/components/formatted_duration/helpers.test.ts +++ b/x-pack/plugins/siem/public/timelines/components/formatted_duration/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { getEmptyValue } from '../empty_value'; +import { getEmptyValue } from '../../../common/components/empty_value'; import { getFormattedDurationString, getHumanizedDuration, diff --git a/x-pack/plugins/siem/public/components/formatted_duration/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/formatted_duration/helpers.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/formatted_duration/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/formatted_duration/helpers.tsx index 44bd76bc6beb..113ed7077603 100644 --- a/x-pack/plugins/siem/public/components/formatted_duration/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/formatted_duration/helpers.tsx @@ -6,7 +6,7 @@ import moment from 'moment'; -import { getEmptyValue } from '../empty_value'; +import { getEmptyValue } from '../../../common/components/empty_value'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/formatted_duration/index.tsx b/x-pack/plugins/siem/public/timelines/components/formatted_duration/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_duration/index.tsx rename to x-pack/plugins/siem/public/timelines/components/formatted_duration/index.tsx diff --git a/x-pack/plugins/siem/public/components/formatted_duration/tooltip/index.tsx b/x-pack/plugins/siem/public/timelines/components/formatted_duration/tooltip/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_duration/tooltip/index.tsx rename to x-pack/plugins/siem/public/timelines/components/formatted_duration/tooltip/index.tsx diff --git a/x-pack/plugins/siem/public/components/formatted_duration/translations.ts b/x-pack/plugins/siem/public/timelines/components/formatted_duration/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/formatted_duration/translations.ts rename to x-pack/plugins/siem/public/timelines/components/formatted_duration/translations.ts diff --git a/x-pack/plugins/siem/public/components/formatted_ip/index.tsx b/x-pack/plugins/siem/public/timelines/components/formatted_ip/index.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/formatted_ip/index.tsx rename to x-pack/plugins/siem/public/timelines/components/formatted_ip/index.tsx index ba97e8d61451..e3a722214d47 100644 --- a/x-pack/plugins/siem/public/components/formatted_ip/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/formatted_ip/index.tsx @@ -7,13 +7,19 @@ import { isArray, isEmpty, isString, uniq } from 'lodash/fp'; import React from 'react'; -import { DragEffects, DraggableWrapper } from '../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../drag_and_drop/helpers'; -import { getOrEmptyTagFromValue } from '../empty_value'; -import { IPDetailsLink } from '../links'; -import { parseQueryValue } from '../timeline/body/renderers/parse_query_value'; -import { DataProvider, IS_OPERATOR } from '../timeline/data_providers/data_provider'; -import { Provider } from '../timeline/data_providers/provider'; +import { + DragEffects, + DraggableWrapper, +} from '../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../common/components/drag_and_drop/helpers'; +import { getOrEmptyTagFromValue } from '../../../common/components/empty_value'; +import { IPDetailsLink } from '../../../common/components/links'; +import { parseQueryValue } from '../../../timelines/components/timeline/body/renderers/parse_query_value'; +import { + DataProvider, + IS_OPERATOR, +} from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Provider } from '../../../timelines/components/timeline/data_providers/provider'; const getUniqueId = ({ contextId, diff --git a/x-pack/plugins/siem/public/components/ja3_fingerprint/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/index.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/ja3_fingerprint/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/index.test.tsx index c4ea6ff63a0a..4ca1e7cc1bad 100644 --- a/x-pack/plugins/siem/public/components/ja3_fingerprint/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/index.test.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { TestProviders } from '../../mock'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { TestProviders } from '../../../common/mock'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; import { Ja3Fingerprint } from '.'; diff --git a/x-pack/plugins/siem/public/components/ja3_fingerprint/index.tsx b/x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/index.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/ja3_fingerprint/index.tsx rename to x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/index.tsx index 955a57576dc8..2bb4e7471eba 100644 --- a/x-pack/plugins/siem/public/components/ja3_fingerprint/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/index.tsx @@ -7,9 +7,9 @@ import React from 'react'; import styled from 'styled-components'; -import { DraggableBadge } from '../draggables'; -import { ExternalLinkIcon } from '../external_link_icon'; -import { Ja3FingerprintLink } from '../links'; +import { DraggableBadge } from '../../../common/components/draggables'; +import { ExternalLinkIcon } from '../../../common/components/external_link_icon'; +import { Ja3FingerprintLink } from '../../../common/components/links'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/ja3_fingerprint/translations.ts b/x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/ja3_fingerprint/translations.ts rename to x-pack/plugins/siem/public/timelines/components/ja3_fingerprint/translations.ts diff --git a/x-pack/plugins/siem/public/components/lazy_accordion/index.tsx b/x-pack/plugins/siem/public/timelines/components/lazy_accordion/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/lazy_accordion/index.tsx rename to x-pack/plugins/siem/public/timelines/components/lazy_accordion/index.tsx diff --git a/x-pack/plugins/siem/public/components/loading/index.tsx b/x-pack/plugins/siem/public/timelines/components/loading/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/loading/index.tsx rename to x-pack/plugins/siem/public/timelines/components/loading/index.tsx diff --git a/x-pack/plugins/siem/public/components/netflow/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/netflow/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/netflow/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/netflow/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/netflow/fingerprints/index.tsx b/x-pack/plugins/siem/public/timelines/components/netflow/fingerprints/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/netflow/fingerprints/index.tsx rename to x-pack/plugins/siem/public/timelines/components/netflow/fingerprints/index.tsx diff --git a/x-pack/plugins/siem/public/components/netflow/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/netflow/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/netflow/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/netflow/index.test.tsx index ecf162ebf273..0a6d2f8ab317 100644 --- a/x-pack/plugins/siem/public/components/netflow/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/netflow/index.test.tsx @@ -8,18 +8,21 @@ import { get } from 'lodash/fp'; import React from 'react'; import { shallow } from 'enzyme'; -import { asArrayIfExists } from '../../lib/helpers'; -import { getMockNetflowData } from '../../mock'; -import { TestProviders } from '../../mock/test_providers'; +import { asArrayIfExists } from '../../../common/lib/helpers'; +import { getMockNetflowData } from '../../../common/mock'; +import { TestProviders } from '../../../common/mock/test_providers'; import { TLS_CLIENT_CERTIFICATE_FINGERPRINT_SHA1_FIELD_NAME, TLS_SERVER_CERTIFICATE_FINGERPRINT_SHA1_FIELD_NAME, } from '../certificate_fingerprint'; import { EVENT_DURATION_FIELD_NAME } from '../duration'; -import { ID_FIELD_NAME } from '../event_details/event_id'; -import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../ip'; +import { ID_FIELD_NAME } from '../../../common/components/event_details/event_id'; +import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../../../network/components/ip'; import { JA3_HASH_FIELD_NAME } from '../ja3_fingerprint'; -import { DESTINATION_PORT_FIELD_NAME, SOURCE_PORT_FIELD_NAME } from '../port'; +import { + DESTINATION_PORT_FIELD_NAME, + SOURCE_PORT_FIELD_NAME, +} from '../../../network/components/port'; import { DESTINATION_GEO_CITY_NAME_FIELD_NAME, DESTINATION_GEO_CONTINENT_NAME_FIELD_NAME, @@ -31,13 +34,13 @@ import { SOURCE_GEO_COUNTRY_ISO_CODE_FIELD_NAME, SOURCE_GEO_COUNTRY_NAME_FIELD_NAME, SOURCE_GEO_REGION_NAME_FIELD_NAME, -} from '../source_destination/geo_fields'; +} from '../../../network/components/source_destination/geo_fields'; import { DESTINATION_BYTES_FIELD_NAME, DESTINATION_PACKETS_FIELD_NAME, SOURCE_BYTES_FIELD_NAME, SOURCE_PACKETS_FIELD_NAME, -} from '../source_destination/source_destination_arrows'; +} from '../../../network/components/source_destination/source_destination_arrows'; import * as i18n from '../timeline/body/renderers/translations'; import { Netflow } from '.'; @@ -53,8 +56,8 @@ import { NETWORK_PACKETS_FIELD_NAME, NETWORK_PROTOCOL_FIELD_NAME, NETWORK_TRANSPORT_FIELD_NAME, -} from '../source_destination/field_names'; -import { useMountAppended } from '../../utils/use_mount_appended'; +} from '../../../network/components/source_destination/field_names'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; const getNetflowInstance = () => ( void; diff --git a/x-pack/plugins/siem/public/components/notes/index.tsx b/x-pack/plugins/siem/public/timelines/components/notes/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/notes/index.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/index.tsx index b5fef9a5e4d4..42f28f034067 100644 --- a/x-pack/plugins/siem/public/components/notes/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/notes/index.tsx @@ -15,7 +15,7 @@ import { import React, { useState } from 'react'; import styled from 'styled-components'; -import { Note } from '../../lib/note'; +import { Note } from '../../../common/lib/note'; import { AddNote } from './add_note'; import { columns } from './columns'; diff --git a/x-pack/plugins/siem/public/components/notes/note_card/__snapshots__/note_card_body.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/notes/note_card/__snapshots__/note_card_body.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/__snapshots__/note_card_body.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/__snapshots__/note_card_body.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/notes/note_card/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/notes/note_card/index.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/index.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/index.tsx diff --git a/x-pack/plugins/siem/public/components/notes/note_card/note_card_body.test.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_body.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/note_card_body.test.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_body.test.tsx diff --git a/x-pack/plugins/siem/public/components/notes/note_card/note_card_body.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_body.tsx similarity index 82% rename from x-pack/plugins/siem/public/components/notes/note_card/note_card_body.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_body.tsx index 4463f8d4ff60..f846ead810ff 100644 --- a/x-pack/plugins/siem/public/components/notes/note_card/note_card_body.tsx +++ b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_body.tsx @@ -8,9 +8,9 @@ import { EuiPanel, EuiToolTip } from '@elastic/eui'; import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; -import { WithCopyToClipboard } from '../../../lib/clipboard/with_copy_to_clipboard'; -import { Markdown } from '../../markdown'; -import { WithHoverActions } from '../../with_hover_actions'; +import { WithCopyToClipboard } from '../../../../common/lib/clipboard/with_copy_to_clipboard'; +import { Markdown } from '../../../../common/components/markdown'; +import { WithHoverActions } from '../../../../common/components/with_hover_actions'; import * as i18n from '../translations'; const BodyContainer = styled(EuiPanel)` diff --git a/x-pack/plugins/siem/public/components/notes/note_card/note_card_header.test.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_header.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/note_card_header.test.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_header.test.tsx diff --git a/x-pack/plugins/siem/public/components/notes/note_card/note_card_header.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_header.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/note_card_header.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/note_card_header.tsx diff --git a/x-pack/plugins/siem/public/components/notes/note_card/note_created.test.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_created.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/notes/note_card/note_created.test.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/note_created.test.tsx diff --git a/x-pack/plugins/siem/public/components/notes/note_card/note_created.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_created.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/notes/note_card/note_created.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_card/note_created.tsx index cdd0406c7145..dc97373660bd 100644 --- a/x-pack/plugins/siem/public/components/notes/note_card/note_created.tsx +++ b/x-pack/plugins/siem/public/timelines/components/notes/note_card/note_created.tsx @@ -8,7 +8,7 @@ import { FormattedRelative } from '@kbn/i18n/react'; import React from 'react'; import styled from 'styled-components'; -import { LocalizedDateTooltip } from '../../localized_date_tooltip'; +import { LocalizedDateTooltip } from '../../../../common/components/localized_date_tooltip'; const NoteCreatedContainer = styled.span` user-select: none; diff --git a/x-pack/plugins/siem/public/components/notes/note_cards/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_cards/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/notes/note_cards/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_cards/index.test.tsx index f70e841d1eef..fa63eb625f28 100644 --- a/x-pack/plugins/siem/public/components/notes/note_cards/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/notes/note_cards/index.test.tsx @@ -9,7 +9,7 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { ThemeProvider } from 'styled-components'; import euiDarkVars from '@elastic/eui/dist/eui_theme_dark.json'; -import { Note } from '../../../lib/note'; +import { Note } from '../../../../common/lib/note'; import { NoteCards } from '.'; diff --git a/x-pack/plugins/siem/public/components/notes/note_cards/index.tsx b/x-pack/plugins/siem/public/timelines/components/notes/note_cards/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/notes/note_cards/index.tsx rename to x-pack/plugins/siem/public/timelines/components/notes/note_cards/index.tsx index 6664660eb6bd..346d77b14cd9 100644 --- a/x-pack/plugins/siem/public/components/notes/note_cards/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/notes/note_cards/index.tsx @@ -8,7 +8,7 @@ import { EuiFlexGroup, EuiPanel } from '@elastic/eui'; import React, { useState, useCallback } from 'react'; import styled from 'styled-components'; -import { Note } from '../../../lib/note'; +import { Note } from '../../../../common/lib/note'; import { AddNote } from '../add_note'; import { AssociateNote, GetNewNoteId, UpdateNote } from '../helpers'; import { NoteCard } from '../note_card'; diff --git a/x-pack/plugins/siem/public/components/notes/translations.ts b/x-pack/plugins/siem/public/timelines/components/notes/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/notes/translations.ts rename to x-pack/plugins/siem/public/timelines/components/notes/translations.ts diff --git a/x-pack/plugins/siem/public/components/open_timeline/constants.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/constants.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/constants.ts diff --git a/x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/delete_timeline_modal.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/delete_timeline_modal.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/delete_timeline_modal.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/delete_timeline_modal.test.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/delete_timeline_modal.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/delete_timeline_modal.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/delete_timeline_modal.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/delete_timeline_modal.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/delete_timeline_modal/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/delete_timeline_modal/index.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/edit_timeline_actions.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/edit_timeline_actions.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/edit_timeline_actions.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/edit_timeline_actions.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/edit_timeline_batch_actions.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/edit_timeline_batch_actions.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/edit_timeline_batch_actions.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/edit_timeline_batch_actions.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/export_timeline.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/export_timeline.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/export_timeline/export_timeline.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/export_timeline.test.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/export_timeline.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/export_timeline.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/open_timeline/export_timeline/export_timeline.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/export_timeline.tsx index ebfd5c18bd5d..43ef3bccbea5 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/export_timeline.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/export_timeline.tsx @@ -6,9 +6,12 @@ import React, { useCallback } from 'react'; import uuid from 'uuid'; -import { GenericDownloader, ExportSelectedData } from '../../generic_downloader'; +import { + GenericDownloader, + ExportSelectedData, +} from '../../../../common/components/generic_downloader'; import * as i18n from '../translations'; -import { useStateToaster } from '../../toasters'; +import { useStateToaster } from '../../../../common/components/toasters'; const ExportTimeline: React.FC<{ exportedIds: string[] | undefined; diff --git a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/export_timeline/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/open_timeline/export_timeline/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/index.tsx index 12cf952bb1ff..7bac3229c817 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/index.tsx @@ -9,7 +9,7 @@ import { DeleteTimelines } from '../types'; import { TimelineDownloader } from './export_timeline'; import { DeleteTimelineModalOverlay } from '../delete_timeline_modal'; -import { exportSelectedTimeline } from '../../../containers/timeline/api'; +import { exportSelectedTimeline } from '../../../containers/api'; export interface ExportTimeline { disableExportTimelineDownloader: () => void; diff --git a/x-pack/plugins/siem/public/components/open_timeline/export_timeline/mocks.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/mocks.ts similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/export_timeline/mocks.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/export_timeline/mocks.ts diff --git a/x-pack/plugins/siem/public/components/open_timeline/helpers.test.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/helpers.test.ts similarity index 97% rename from x-pack/plugins/siem/public/components/open_timeline/helpers.test.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/helpers.test.ts index a7c0b08fc8a2..e6db9df61b90 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/helpers.test.ts +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/helpers.test.ts @@ -10,19 +10,19 @@ import { mockTimelineResults, mockTimelineResult, mockTimelineModel, -} from '../../mock/timeline_results'; -import { timelineDefaults } from '../../store/timeline/defaults'; -import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../store/inputs/actions'; +} from '../../../common/mock/timeline_results'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; +import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../../common/store/inputs/actions'; import { setKqlFilterQueryDraft as dispatchSetKqlFilterQueryDraft, applyKqlFilterQuery as dispatchApplyKqlFilterQuery, addTimeline as dispatchAddTimeline, addNote as dispatchAddGlobalTimelineNote, -} from '../../store/timeline/actions'; +} from '../../../timelines/store/timeline/actions'; import { addNotes as dispatchAddNotes, updateNote as dispatchUpdateNote, -} from '../../store/app/actions'; +} from '../../../common/store/app/actions'; import { defaultTimelineToTimelineModel, getNotesCount, @@ -32,15 +32,15 @@ import { dispatchUpdateTimeline, } from './helpers'; import { OpenTimelineResult, DispatchUpdateTimeline } from './types'; -import { KueryFilterQueryKind } from '../../store/model'; -import { Note } from '../../lib/note'; +import { KueryFilterQueryKind } from '../../../common/store/model'; +import { Note } from '../../../common/lib/note'; import moment from 'moment'; import sinon from 'sinon'; -import { TimelineType } from '../../../common/types/timeline'; +import { TimelineType } from '../../../../common/types/timeline'; -jest.mock('../../store/inputs/actions'); -jest.mock('../../store/timeline/actions'); -jest.mock('../../store/app/actions'); +jest.mock('../../../common/store/inputs/actions'); +jest.mock('../../../timelines/store/timeline/actions'); +jest.mock('../../../common/store/app/actions'); jest.mock('uuid', () => { return { v1: jest.fn(() => 'uuid.v1()'), diff --git a/x-pack/plugins/siem/public/components/open_timeline/helpers.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/helpers.ts similarity index 95% rename from x-pack/plugins/siem/public/components/open_timeline/helpers.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/helpers.ts index 681d39feb09f..df433f147490 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/helpers.ts +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/helpers.ts @@ -9,23 +9,22 @@ import { getOr, set, isEmpty } from 'lodash/fp'; import { Action } from 'typescript-fsa'; import uuid from 'uuid'; import { Dispatch } from 'redux'; - -import { oneTimelineQuery } from '../../containers/timeline/one/index.gql_query'; -import { TimelineResult, GetOneTimeline, NoteResult } from '../../graphql/types'; +import { oneTimelineQuery } from '../../containers/one/index.gql_query'; +import { TimelineResult, GetOneTimeline, NoteResult } from '../../../graphql/types'; import { addNotes as dispatchAddNotes, updateNote as dispatchUpdateNote, -} from '../../store/app/actions'; -import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../store/inputs/actions'; +} from '../../../common/store/app/actions'; +import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../../common/store/inputs/actions'; import { setKqlFilterQueryDraft as dispatchSetKqlFilterQueryDraft, applyKqlFilterQuery as dispatchApplyKqlFilterQuery, addTimeline as dispatchAddTimeline, addNote as dispatchAddGlobalTimelineNote, -} from '../../store/timeline/actions'; +} from '../../../timelines/store/timeline/actions'; -import { ColumnHeaderOptions, TimelineModel } from '../../store/timeline/model'; -import { timelineDefaults } from '../../store/timeline/defaults'; +import { ColumnHeaderOptions, TimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { defaultColumnHeaderType, defaultHeaders, @@ -36,7 +35,7 @@ import { } from '../timeline/body/constants'; import { OpenTimelineResult, UpdateTimeline, DispatchUpdateTimeline } from './types'; -import { getTimeRangeSettings } from '../../utils/default_date_settings'; +import { getTimeRangeSettings } from '../../../common/utils/default_date_settings'; import { createNote } from '../notes/helpers'; export const OPEN_TIMELINE_CLASS_NAME = 'open-timeline'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/index.test.tsx index 731c6d1ca980..52197b92bdfb 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/index.test.tsx @@ -10,20 +10,20 @@ import { MockedProvider } from 'react-apollo/test-utils'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { wait } from '../../lib/helpers'; -import { TestProviderWithoutDragAndDrop, apolloClient } from '../../mock/test_providers'; -import { mockOpenTimelineQueryResults } from '../../mock/timeline_results'; -import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../pages/timelines/timelines_page'; +import { wait } from '../../../common/lib/helpers'; +import { TestProviderWithoutDragAndDrop, apolloClient } from '../../../common/mock/test_providers'; +import { mockOpenTimelineQueryResults } from '../../../common/mock/timeline_results'; +import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../pages/timelines_page'; import { NotePreviews } from './note_previews'; import { OPEN_TIMELINE_CLASS_NAME } from './helpers'; import { TimelineTabsStyle } from './types'; import { StatefulOpenTimeline } from '.'; -import { useGetAllTimeline, getAllTimeline } from '../../containers/timeline/all'; -jest.mock('../../lib/kibana'); -jest.mock('../../containers/timeline/all', () => { - const originalModule = jest.requireActual('../../containers/timeline/all'); +import { useGetAllTimeline, getAllTimeline } from '../../containers/all'; +jest.mock('../../../common/lib/kibana'); +jest.mock('../../containers/all', () => { + const originalModule = jest.requireActual('../../containers/all'); return { ...originalModule, useGetAllTimeline: jest.fn(), diff --git a/x-pack/plugins/siem/public/components/open_timeline/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/open_timeline/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/index.tsx index ed22673f07a7..735ccdd19a56 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/index.tsx @@ -9,18 +9,18 @@ import React, { useEffect, useState, useCallback } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; - -import { defaultHeaders } from '../../components/timeline/body/column_headers/default_headers'; -import { deleteTimelineMutation } from '../../containers/timeline/delete/persist.gql_query'; -import { useGetAllTimeline } from '../../containers/timeline/all'; -import { DeleteTimelineMutation, SortFieldTimeline, Direction } from '../../graphql/types'; -import { State, timelineSelectors } from '../../store'; -import { ColumnHeaderOptions, TimelineModel } from '../../store/timeline/model'; -import { timelineDefaults } from '../../store/timeline/defaults'; +import { defaultHeaders } from '../timeline/body/column_headers/default_headers'; +import { deleteTimelineMutation } from '../../containers/delete/persist.gql_query'; +import { useGetAllTimeline } from '../../containers/all'; +import { DeleteTimelineMutation, SortFieldTimeline, Direction } from '../../../graphql/types'; +import { State } from '../../../common/store'; +import { ColumnHeaderOptions, TimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineSelectors } from '../../../timelines/store/timeline'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { createTimeline as dispatchCreateNewTimeline, updateIsLoading as dispatchUpdateIsLoading, -} from '../../store/timeline/actions'; +} from '../../../timelines/store/timeline/actions'; import { OpenTimeline } from './open_timeline'; import { OPEN_TIMELINE_CLASS_NAME, queryTimelineById, dispatchUpdateTimeline } from './helpers'; import { OpenTimelineModalBody } from './open_timeline_modal/open_timeline_modal_body'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/note_previews/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/note_previews/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/index.test.tsx index 463111bd9735..318e50bb67d2 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/note_previews/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/index.test.tsx @@ -11,7 +11,7 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { OpenTimelineResult, TimelineResultNote } from '../types'; import { NotePreviews } from '.'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/note_previews/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/note_previews/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/index.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/note_previews/note_preview.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/note_preview.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/note_previews/note_preview.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/note_preview.test.tsx index 7cefaf08d76c..c0046e43eef3 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/note_previews/note_preview.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/note_preview.test.tsx @@ -9,7 +9,7 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { getEmptyValue } from '../../empty_value'; +import { getEmptyValue } from '../../../../common/components/empty_value'; import { NotePreview } from './note_preview'; import * as i18n from '../translations'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/note_previews/note_preview.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/note_preview.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/open_timeline/note_previews/note_preview.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/note_preview.tsx index bb4a032734b5..d079a4bedcba 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/note_previews/note_preview.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/note_previews/note_preview.tsx @@ -9,9 +9,9 @@ import { FormattedRelative } from '@kbn/i18n/react'; import React from 'react'; import styled from 'styled-components'; -import { getEmptyValue, defaultToEmptyTag } from '../../empty_value'; -import { FormattedDate } from '../../formatted_date'; -import { Markdown } from '../../markdown'; +import { getEmptyValue, defaultToEmptyTag } from '../../../../common/components/empty_value'; +import { FormattedDate } from '../../../../common/components/formatted_date'; +import { Markdown } from '../../../../common/components/markdown'; import * as i18n from '../translations'; import { TimelineResultNote } from '../types'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline.test.tsx index 449e1b169cea..787da4ed6cf4 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/open_timeline.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline.test.tsx @@ -10,14 +10,14 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../pages/timelines/timelines_page'; +import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../pages/timelines_page'; import { OpenTimelineResult, OpenTimelineProps } from './types'; import { TimelinesTableProps } from './timelines_table'; -import { mockTimelineResults } from '../../mock/timeline_results'; +import { mockTimelineResults } from '../../../common/mock/timeline_results'; import { OpenTimeline } from './open_timeline'; import { DEFAULT_SORT_DIRECTION, DEFAULT_SORT_FIELD } from './constants'; -jest.mock('../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); describe('OpenTimeline', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline.tsx index e172a006abe4..cdbba307a115 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/open_timeline.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline.tsx @@ -11,9 +11,9 @@ import { OPEN_TIMELINE_CLASS_NAME } from './helpers'; import { OpenTimelineProps, OpenTimelineResult } from './types'; import { SearchRow } from './search_row'; import { TimelinesTable } from './timelines_table'; -import { ImportDataModal } from '../import_data_modal'; +import { ImportDataModal } from '../../../common/components/import_data_modal'; import * as i18n from './translations'; -import { importTimelines } from '../../containers/timeline/api'; +import { importTimelines } from '../../containers/api'; import { UtilityBarGroup, @@ -21,7 +21,7 @@ import { UtilityBar, UtilityBarSection, UtilityBarAction, -} from '../utility_bar'; +} from '../../../common/components/utility_bar'; import { useEditTimelinBatchActions } from './edit_timeline_batch_actions'; import { useEditTimelineActions } from './edit_timeline_actions'; import { EditOneTimelineAction } from './export_timeline'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/index.test.tsx similarity index 83% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/index.test.tsx index 178c69e6957e..8382af6056ca 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/index.test.tsx @@ -10,19 +10,19 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { ThemeProvider } from 'styled-components'; -import { wait } from '../../../lib/helpers'; -import { TestProviderWithoutDragAndDrop } from '../../../mock/test_providers'; -import { mockOpenTimelineQueryResults } from '../../../mock/timeline_results'; -import { useGetAllTimeline, getAllTimeline } from '../../../containers/timeline/all'; +import { wait } from '../../../../common/lib/helpers'; +import { TestProviderWithoutDragAndDrop } from '../../../../common/mock/test_providers'; +import { mockOpenTimelineQueryResults } from '../../../../common/mock/timeline_results'; +import { useGetAllTimeline, getAllTimeline } from '../../../containers/all'; import { OpenTimelineModal } from '.'; -jest.mock('../../../lib/kibana'); -jest.mock('../../../utils/apollo_context', () => ({ +jest.mock('../../../../common/lib/kibana'); +jest.mock('../../../../common/utils/apollo_context', () => ({ useApolloClient: () => ({}), })); -jest.mock('../../../containers/timeline/all', () => { - const originalModule = jest.requireActual('../../../containers/timeline/all'); +jest.mock('../../../containers/all', () => { + const originalModule = jest.requireActual('../../../containers/all'); return { useGetAllTimeline: jest.fn(), getAllTimeline: originalModule.getAllTimeline, diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/index.tsx index c530929a3c96..901ae955cbfe 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/index.tsx @@ -7,8 +7,8 @@ import { EuiModal, EuiOverlayMask } from '@elastic/eui'; import React from 'react'; -import { TimelineModel } from '../../../store/timeline/model'; -import { useApolloClient } from '../../../utils/apollo_context'; +import { TimelineModel } from '../../../../timelines/store/timeline/model'; +import { useApolloClient } from '../../../../common/utils/apollo_context'; import * as i18n from '../translations'; import { ActionTimelineToShow } from '../types'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx index a610884d287a..1b320c9ebd75 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_body.test.tsx @@ -10,14 +10,14 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../../pages/timelines/timelines_page'; +import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../../pages/timelines_page'; import { OpenTimelineResult, OpenTimelineProps } from '../types'; import { TimelinesTableProps } from '../timelines_table'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { OpenTimelineModalBody } from './open_timeline_modal_body'; import { DEFAULT_SORT_DIRECTION, DEFAULT_SORT_FIELD } from '../constants'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('OpenTimelineModal', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_body.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_body.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_body.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_body.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx index 66947a313f5e..0244bdda0d82 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_button.test.tsx @@ -10,9 +10,9 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import { ThemeProvider } from 'styled-components'; -import { wait } from '../../../lib/helpers'; -import { TestProviderWithoutDragAndDrop } from '../../../mock/test_providers'; -import { mockOpenTimelineQueryResults } from '../../../mock/timeline_results'; +import { wait } from '../../../../common/lib/helpers'; +import { TestProviderWithoutDragAndDrop } from '../../../../common/mock/test_providers'; +import { mockOpenTimelineQueryResults } from '../../../../common/mock/timeline_results'; import * as i18n from '../translations'; import { OpenTimelineModalButton } from './open_timeline_modal_button'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_button.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_button.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/open_timeline_modal/open_timeline_modal_button.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/open_timeline_modal/open_timeline_modal_button.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/search_row/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/search_row/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/search_row/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/search_row/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/search_row/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/search_row/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/search_row/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/search_row/index.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/actions_columns.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/actions_columns.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/actions_columns.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/actions_columns.test.tsx index b0f8963dd501..0560bcf2b08c 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/actions_columns.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/actions_columns.test.tsx @@ -11,12 +11,12 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { OpenTimelineResult } from '../types'; import { TimelinesTableProps } from '.'; import { getMockTimelinesTableProps } from './mocks'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); const { TimelinesTable } = jest.requireActual('.'); diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/actions_columns.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/actions_columns.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/actions_columns.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/actions_columns.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_columns.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_columns.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_columns.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_columns.test.tsx index a312c72ecc25..4fb6a4d84f7d 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_columns.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_columns.test.tsx @@ -11,16 +11,16 @@ import React from 'react'; import { ThemeProvider } from 'styled-components'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; -import { getEmptyValue } from '../../empty_value'; +import { getEmptyValue } from '../../../../common/components/empty_value'; import { OpenTimelineResult } from '../types'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { NotePreviews } from '../note_previews'; import { TimelinesTable, TimelinesTableProps } from '.'; import * as i18n from '../translations'; import { getMockTimelinesTableProps } from './mocks'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('#getCommonColumns', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_columns.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_columns.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_columns.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_columns.tsx index 0d3a73a38905..e0c7ab68f6bf 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_columns.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_columns.tsx @@ -15,8 +15,8 @@ import { isUntitled } from '../helpers'; import { NotePreviews } from '../note_previews'; import * as i18n from '../translations'; import { OnOpenTimeline, OnToggleShowNotes, OpenTimelineResult } from '../types'; -import { getEmptyTagValue } from '../../empty_value'; -import { FormattedRelativePreferenceDate } from '../../formatted_date'; +import { getEmptyTagValue } from '../../../../common/components/empty_value'; +import { FormattedRelativePreferenceDate } from '../../../../common/components/formatted_date'; /** * Returns the column definitions (passed as the `columns` prop to diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_styles.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_styles.ts similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/common_styles.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/common_styles.ts diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/extended_columns.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/extended_columns.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/extended_columns.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/extended_columns.test.tsx index 14409a6bbb5a..be7127668f7f 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/extended_columns.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/extended_columns.test.tsx @@ -10,8 +10,8 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { getEmptyValue } from '../../empty_value'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { getEmptyValue } from '../../../../common/components/empty_value'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { OpenTimelineResult } from '../types'; import { TimelinesTable, TimelinesTableProps } from '.'; @@ -19,7 +19,7 @@ import { TimelinesTable, TimelinesTableProps } from '.'; import * as i18n from '../translations'; import { getMockTimelinesTableProps } from './mocks'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('#getExtendedColumns', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/extended_columns.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/extended_columns.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/extended_columns.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/extended_columns.tsx index b6d874fa0c4d..e50336f5169e 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/extended_columns.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/extended_columns.tsx @@ -8,7 +8,7 @@ import React from 'react'; -import { defaultToEmptyTag } from '../../empty_value'; +import { defaultToEmptyTag } from '../../../../common/components/empty_value'; import * as i18n from '../translations'; import { OpenTimelineResult } from '../types'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/icon_header_columns.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/icon_header_columns.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/icon_header_columns.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/icon_header_columns.test.tsx index 658dd96faa98..f1df605c072d 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/icon_header_columns.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/icon_header_columns.test.tsx @@ -10,11 +10,11 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { TimelinesTable, TimelinesTableProps } from '.'; import { OpenTimelineResult } from '../types'; import { getMockTimelinesTableProps } from './mocks'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('#getActionsColumns', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/icon_header_columns.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/icon_header_columns.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/icon_header_columns.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/icon_header_columns.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/index.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/index.test.tsx index 44e6218b5ad2..1ebde8488e46 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/index.test.tsx @@ -10,14 +10,14 @@ import { mountWithIntl } from 'test_utils/enzyme_helpers'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { mockTimelineResults } from '../../../mock/timeline_results'; +import { mockTimelineResults } from '../../../../common/mock/timeline_results'; import { OpenTimelineResult } from '../types'; import { TimelinesTable, TimelinesTableProps } from '.'; import { getMockTimelinesTableProps } from './mocks'; import * as i18n from '../translations'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('TimelinesTable', () => { const theme = () => ({ eui: euiDarkVars, darkMode: true }); diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/index.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/mocks.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/mocks.ts similarity index 97% rename from x-pack/plugins/siem/public/components/open_timeline/timelines_table/mocks.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/mocks.ts index 519dfc1b66ef..78ca898cc407 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/timelines_table/mocks.ts +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/timelines_table/mocks.ts @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../../pages/timelines/timelines_page'; +import { DEFAULT_SEARCH_RESULTS_PER_PAGE } from '../../../pages/timelines_page'; import { DEFAULT_SORT_DIRECTION, DEFAULT_SORT_FIELD } from '../constants'; import { OpenTimelineResult } from '../types'; import { TimelinesTableProps } from '.'; diff --git a/x-pack/plugins/siem/public/components/open_timeline/title_row/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/title_row/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/title_row/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/title_row/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/open_timeline/title_row/index.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/title_row/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/open_timeline/title_row/index.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/title_row/index.tsx index 559bbc3eecb8..e5f921e397b0 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/title_row/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/title_row/index.tsx @@ -9,7 +9,7 @@ import React from 'react'; import * as i18n from '../translations'; import { OpenTimelineProps } from '../types'; -import { HeaderSection } from '../../header_section'; +import { HeaderSection } from '../../../../common/components/header_section'; type Props = Pick & { /** The number of timelines currently selected */ diff --git a/x-pack/plugins/siem/public/components/open_timeline/translations.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/open_timeline/translations.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/translations.ts diff --git a/x-pack/plugins/siem/public/components/open_timeline/types.ts b/x-pack/plugins/siem/public/timelines/components/open_timeline/types.ts similarity index 96% rename from x-pack/plugins/siem/public/components/open_timeline/types.ts rename to x-pack/plugins/siem/public/timelines/components/open_timeline/types.ts index 4d953f6fa775..f874b5f58d98 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/types.ts +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/types.ts @@ -5,10 +5,10 @@ */ import { SetStateAction, Dispatch } from 'react'; -import { AllTimelinesVariables } from '../../containers/timeline/all'; -import { TimelineModel } from '../../store/timeline/model'; -import { NoteResult } from '../../graphql/types'; -import { TimelineType, TimelineTypeLiteral } from '../../../common/types/timeline'; +import { AllTimelinesVariables } from '../../containers/all'; +import { TimelineModel } from '../../../timelines/store/timeline/model'; +import { NoteResult } from '../../../graphql/types'; +import { TimelineType, TimelineTypeLiteral } from '../../../../common/types/timeline'; /** The users who added a timeline to favorites */ export interface FavoriteTimelineResult { diff --git a/x-pack/plugins/siem/public/components/open_timeline/use_timeline_types.tsx b/x-pack/plugins/siem/public/timelines/components/open_timeline/use_timeline_types.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/open_timeline/use_timeline_types.tsx rename to x-pack/plugins/siem/public/timelines/components/open_timeline/use_timeline_types.tsx index 1e23bc5bdda3..f99d8c566c4a 100644 --- a/x-pack/plugins/siem/public/components/open_timeline/use_timeline_types.tsx +++ b/x-pack/plugins/siem/public/timelines/components/open_timeline/use_timeline_types.tsx @@ -7,12 +7,11 @@ import React, { useState, useCallback, useMemo } from 'react'; import { useParams } from 'react-router-dom'; import { EuiTabs, EuiTab, EuiSpacer, EuiFilterButton } from '@elastic/eui'; -import { TimelineTypeLiteralWithNull, TimelineType } from '../../../common/types/timeline'; - -import { getTimelineTabsUrl } from '../link_to'; -import { useGetUrlSearch } from '../navigation/use_get_url_search'; -import { navTabs } from '../../pages/home/home_navigations'; +import { TimelineTypeLiteralWithNull, TimelineType } from '../../../../common/types/timeline'; +import { getTimelineTabsUrl } from '../../../common/components/link_to'; +import { navTabs } from '../../../app/home/home_navigations'; +import { useGetUrlSearch } from '../../../common/components/navigation/use_get_url_search'; import * as i18n from './translations'; import { TimelineTabsStyle, TimelineTab } from './types'; diff --git a/x-pack/plugins/siem/public/components/timeline/__snapshots__/timeline.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/__snapshots__/timeline.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/__snapshots__/timeline.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/__snapshots__/timeline.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/and_or_badge/__examples__/index.stories.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/and_or_badge/__examples__/index.stories.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/and_or_badge/__examples__/index.stories.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/and_or_badge/__examples__/index.stories.tsx diff --git a/x-pack/plugins/siem/public/components/and_or_badge/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/and_or_badge/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/and_or_badge/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/and_or_badge/index.tsx diff --git a/x-pack/plugins/siem/public/components/and_or_badge/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/and_or_badge/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/and_or_badge/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/and_or_badge/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/auto_save_warning/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/auto_save_warning/index.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/timeline/auto_save_warning/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/auto_save_warning/index.tsx index 90d0738aba72..210af7a57156 100644 --- a/x-pack/plugins/siem/public/components/timeline/auto_save_warning/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/auto_save_warning/index.tsx @@ -14,13 +14,12 @@ import { getOr } from 'lodash/fp'; import React from 'react'; import { connect, ConnectedProps } from 'react-redux'; -import { State, timelineSelectors } from '../../../store'; -import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../../store/inputs/actions'; - -import * as i18n from './translations'; -import { timelineActions } from '../../../store/timeline'; +import { State } from '../../../../common/store'; +import { setTimelineRangeDatePicker as dispatchSetTimelineRangeDatePicker } from '../../../../common/store/inputs/actions'; +import { timelineActions, timelineSelectors } from '../../../store/timeline'; import { AutoSavedWarningMsg } from '../../../store/timeline/types'; -import { useStateToaster } from '../../toasters'; +import { useStateToaster } from '../../../../common/components/toasters'; +import * as i18n from './translations'; const AutoSaveWarningMsgComponent = React.memo( ({ diff --git a/x-pack/plugins/siem/public/components/timeline/auto_save_warning/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/auto_save_warning/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/auto_save_warning/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/auto_save_warning/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/actions/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/actions/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/body/actions/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/actions/index.test.tsx index 6055745e9378..ee177f4aba05 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/actions/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/actions/index.test.tsx @@ -6,7 +6,7 @@ import { mount } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { DEFAULT_ACTIONS_COLUMN_WIDTH } from '../constants'; import { Actions } from '.'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/actions/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/actions/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/actions/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/actions/index.tsx index 030e9be7703e..d36a064b6cc7 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/actions/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/actions/index.tsx @@ -6,15 +6,15 @@ import { EuiButtonIcon, EuiCheckbox, EuiLoadingSpinner, EuiToolTip } from '@elastic/eui'; import React from 'react'; -import { Note } from '../../../../lib/note'; +import { Note } from '../../../../../common/lib/note'; import { AssociateNote, UpdateNote } from '../../../notes/helpers'; -import { Pin } from '../../../pin'; +import { Pin } from '../../pin'; import { NotesButton } from '../../properties/helpers'; import { EventsLoading, EventsTd, EventsTdContent, EventsTdGroupActions } from '../../styles'; import { eventHasNotes, getPinTooltip } from '../helpers'; import * as i18n from '../translations'; import { OnRowSelected } from '../../events'; -import { Ecs } from '../../../../graphql/types'; +import { Ecs } from '../../../../../graphql/types'; export interface TimelineActionProps { eventId: string; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/actions/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/actions/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/actions/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/actions/index.tsx index 7a2898d465b2..8ec7c52179b9 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/actions/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/actions/index.tsx @@ -7,7 +7,7 @@ import { EuiButtonIcon } from '@elastic/eui'; import React from 'react'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; import { OnColumnRemoved } from '../../../events'; import { EventsHeadingExtra, EventsLoading } from '../../../styles'; import { useTimelineContext } from '../../../timeline_context'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/column_header.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/column_header.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/column_header.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/column_header.tsx index e070ed8fa1d2..10f2d264d65d 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/column_header.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/column_header.tsx @@ -9,8 +9,8 @@ import { Draggable } from 'react-beautiful-dnd'; import { Resizable, ResizeCallback } from 're-resizable'; import deepEqual from 'fast-deep-equal'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; -import { getDraggableFieldId } from '../../../drag_and_drop/helpers'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; +import { getDraggableFieldId } from '../../../../../common/components/drag_and_drop/helpers'; import { OnColumnRemoved, OnColumnSorted, OnFilterChange, OnColumnResized } from '../../events'; import { EventsTh, EventsThContent, EventsHeadingHandle } from '../../styles'; import { Sort } from '../sort'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/common/dragging_container.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/common/dragging_container.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/common/dragging_container.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/common/dragging_container.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/common/styles.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/common/styles.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/common/styles.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/common/styles.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/default_headers.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/default_headers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/default_headers.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/default_headers.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/helpers.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/helpers.tsx index 853c1ec24b70..9b2cb2e97b98 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/helpers.tsx @@ -8,7 +8,7 @@ import { EuiText } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { Pin } from '../../../../pin'; +import { Pin } from '../../../pin'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/index.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/events_select/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/events_select/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/index.test.tsx index f0f6ce8d0ed6..9d1920b03c9b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/index.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { ColumnHeaderType } from '../../../../../store/timeline/model'; +import { ColumnHeaderType } from '../../../../../../timelines/store/timeline/model'; import { defaultHeaders } from '../default_headers'; import { Filter } from '.'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/index.tsx index 911a309edfd9..9daccf27399f 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/filter/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/filter/index.tsx @@ -8,7 +8,7 @@ import { noop } from 'lodash/fp'; import React from 'react'; import { OnFilterChange } from '../../../events'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; import { TextFilter } from '../text_filter'; interface Props { diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/header_content.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/header_content.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header/header_content.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/header_content.tsx index 0a69cef61857..83e3728c1490 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/header_content.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/header_content.tsx @@ -8,8 +8,8 @@ import { EuiToolTip } from '@elastic/eui'; import { noop } from 'lodash/fp'; import React from 'react'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; -import { TruncatableText } from '../../../../truncatable_text'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; +import { TruncatableText } from '../../../../../../common/components/truncatable_text'; import { EventsHeading, EventsHeadingTitleButton, EventsHeadingTitleSpan } from '../../../styles'; import { useTimelineContext } from '../../../timeline_context'; import { Sort } from '../../sort'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/helpers.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/helpers.ts similarity index 86% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header/helpers.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/helpers.ts index 47ce21e4c963..6d70795c422d 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/helpers.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/helpers.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Direction } from '../../../../../graphql/types'; -import { assertUnreachable } from '../../../../../lib/helpers'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; +import { Direction } from '../../../../../../graphql/types'; +import { assertUnreachable } from '../../../../../../common/lib/helpers'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; import { Sort, SortDirection } from '../../sort'; interface GetNewSortDirectionOnClickParams { diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/index.test.tsx index 80ae2aab0a19..dfbb5508f27c 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/index.test.tsx @@ -7,9 +7,9 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { Direction } from '../../../../../graphql/types'; -import { TestProviders } from '../../../../../mock'; -import { ColumnHeaderType } from '../../../../../store/timeline/model'; +import { Direction } from '../../../../../../graphql/types'; +import { TestProviders } from '../../../../../../common/mock'; +import { ColumnHeaderType } from '../../../../../../timelines/store/timeline/model'; import { Sort } from '../../sort'; import { CloseButton } from '../actions'; import { defaultHeaders } from '../default_headers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/index.tsx index 82c5d7eb73f0..854d45449c92 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header/index.tsx @@ -7,7 +7,7 @@ import { noop } from 'lodash/fp'; import React, { useCallback } from 'react'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; import { OnColumnRemoved, OnColumnSorted, OnFilterChange } from '../../../events'; import { Sort } from '../../sort'; import { Actions } from '../actions'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx index 9afc852373bc..534dd7bc9b73 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/index.test.tsx @@ -8,8 +8,8 @@ import { mount, shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; -import { defaultHeaders } from '../../../../../mock'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; +import { defaultHeaders } from '../../../../../../common/mock'; import { HeaderToolTipContent } from '.'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/index.tsx index bef4bcc42b0c..efad85775a9e 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/header_tooltip_content/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/header_tooltip_content/index.tsx @@ -9,8 +9,8 @@ import { isEmpty } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { ColumnHeaderOptions } from '../../../../../store/timeline/model'; -import { getIconFromType } from '../../../../event_details/helpers'; +import { ColumnHeaderOptions } from '../../../../../../timelines/store/timeline/model'; +import { getIconFromType } from '../../../../../../common/components/event_details/helpers'; import * as i18n from '../translations'; const IconType = styled(EuiIcon)` diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/helpers.test.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/helpers.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/helpers.test.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/helpers.test.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/helpers.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/helpers.ts similarity index 90% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/helpers.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/helpers.ts index 6923831f9ef6..7c29f1498d0d 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/helpers.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/helpers.ts @@ -6,8 +6,8 @@ import { get } from 'lodash/fp'; -import { BrowserFields } from '../../../../containers/source'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; +import { BrowserFields } from '../../../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; import { DEFAULT_COLUMN_MIN_WIDTH, DEFAULT_DATE_COLUMN_MIN_WIDTH, diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/index.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/index.test.tsx index 4fafacfd0163..446e6f2758e4 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/index.test.tsx @@ -9,11 +9,11 @@ import React from 'react'; import { DEFAULT_ACTIONS_COLUMN_WIDTH } from '../constants'; import { defaultHeaders } from './default_headers'; -import { Direction } from '../../../../graphql/types'; -import { mockBrowserFields } from '../../../../../public/containers/source/mock'; +import { Direction } from '../../../../../graphql/types'; +import { mockBrowserFields } from '../../../../../common/containers/source/mock'; import { Sort } from '../sort'; -import { TestProviders } from '../../../../mock/test_providers'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../common/mock/test_providers'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { ColumnHeadersComponent } from '.'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/index.tsx index 7a072f1dbf57..7a5ce5ac3c7c 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/column_headers/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/index.tsx @@ -10,11 +10,14 @@ import React, { useState, useEffect, useCallback, useMemo } from 'react'; import { Droppable, DraggableChildrenFn } from 'react-beautiful-dnd'; import deepEqual from 'fast-deep-equal'; -import { DragEffects } from '../../../drag_and_drop/draggable_wrapper'; -import { DraggableFieldBadge } from '../../../draggables/field_badge'; -import { BrowserFields } from '../../../../containers/source'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; -import { DRAG_TYPE_FIELD, droppableTimelineColumnsPrefix } from '../../../drag_and_drop/helpers'; +import { DragEffects } from '../../../../../common/components/drag_and_drop/draggable_wrapper'; +import { DraggableFieldBadge } from '../../../../../common/components/draggables/field_badge'; +import { BrowserFields } from '../../../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; +import { + DRAG_TYPE_FIELD, + droppableTimelineColumnsPrefix, +} from '../../../../../common/components/drag_and_drop/helpers'; import { StatefulFieldsBrowser } from '../../../fields_browser'; import { FIELD_BROWSER_HEIGHT, FIELD_BROWSER_WIDTH } from '../../../fields_browser/helpers'; import { diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/index.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/ranges.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/ranges.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/ranges.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/ranges.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/range_picker/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/range_picker/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/text_filter/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/text_filter/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/text_filter/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/text_filter/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/text_filter/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/text_filter/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/text_filter/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/text_filter/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/text_filter/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/text_filter/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/text_filter/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/text_filter/index.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_headers/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_headers/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_headers/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/column_id.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/column_id.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/column_id.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/column_id.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/constants.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/constants.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/constants.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/constants.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx index 098bd3108dba..8a2cc88eea91 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/index.test.tsx @@ -7,7 +7,7 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { mockTimelineData } from '../../../../mock'; +import { mockTimelineData } from '../../../../../common/mock'; import { defaultHeaders } from '../column_headers/default_headers'; import { columnRenderers } from '../renderers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/index.tsx index c15c468373c5..da00e4054a76 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/data_driven_columns/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/data_driven_columns/index.tsx @@ -7,8 +7,8 @@ import React from 'react'; import { getOr } from 'lodash/fp'; -import { Ecs, TimelineNonEcsData } from '../../../../graphql/types'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; +import { Ecs, TimelineNonEcsData } from '../../../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; import { OnColumnResized } from '../../events'; import { EventsTd, EventsTdContent, EventsTdGroupData } from '../../styles'; import { ColumnRenderer } from '../renderers/column_renderer'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/events/event_column_view.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/events/event_column_view.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/events/event_column_view.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/events/event_column_view.tsx index daf9c3d8b1f9..2b143d34d381 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/events/event_column_view.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/events/event_column_view.tsx @@ -7,9 +7,9 @@ import React, { useMemo } from 'react'; import uuid from 'uuid'; -import { TimelineNonEcsData, Ecs } from '../../../../graphql/types'; -import { Note } from '../../../../lib/note'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; +import { TimelineNonEcsData, Ecs } from '../../../../../graphql/types'; +import { Note } from '../../../../../common/lib/note'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; import { AssociateNote, UpdateNote } from '../../../notes/helpers'; import { OnColumnResized, OnPinEvent, OnRowSelected, OnUnPinEvent } from '../../events'; import { EventsTdContent, EventsTrData } from '../../styles'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/events/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/events/index.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/timeline/body/events/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/events/index.tsx index 4178bc656f32..fc892f5b8e6b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/events/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/events/index.tsx @@ -6,11 +6,11 @@ import React from 'react'; -import { BrowserFields } from '../../../../containers/source'; -import { TimelineItem, TimelineNonEcsData } from '../../../../graphql/types'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; -import { maxDelay } from '../../../../lib/helpers/scheduler'; -import { Note } from '../../../../lib/note'; +import { BrowserFields } from '../../../../../common/containers/source'; +import { TimelineItem, TimelineNonEcsData } from '../../../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; +import { maxDelay } from '../../../../../common/lib/helpers/scheduler'; +import { Note } from '../../../../../common/lib/note'; import { AddNoteToEvent, UpdateNote } from '../../../notes/helpers'; import { OnColumnResized, diff --git a/x-pack/plugins/siem/public/components/timeline/body/events/stateful_event.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/events/stateful_event.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/events/stateful_event.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/events/stateful_event.tsx index 6e5c292064dc..61c580951892 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/events/stateful_event.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/events/stateful_event.tsx @@ -8,14 +8,14 @@ import React, { useEffect, useRef, useState, useCallback } from 'react'; import uuid from 'uuid'; import VisibilitySensor from 'react-visibility-sensor'; -import { BrowserFields } from '../../../../containers/source'; -import { TimelineDetailsQuery } from '../../../../containers/timeline/details'; -import { TimelineItem, DetailItem, TimelineNonEcsData } from '../../../../graphql/types'; -import { requestIdleCallbackViaScheduler } from '../../../../lib/helpers/scheduler'; -import { Note } from '../../../../lib/note'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; +import { BrowserFields } from '../../../../../common/containers/source'; +import { TimelineDetailsQuery } from '../../../../containers/details'; +import { TimelineItem, DetailItem, TimelineNonEcsData } from '../../../../../graphql/types'; +import { requestIdleCallbackViaScheduler } from '../../../../../common/lib/helpers/scheduler'; +import { Note } from '../../../../../common/lib/note'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; import { AddNoteToEvent, UpdateNote } from '../../../notes/helpers'; -import { SkeletonRow } from '../../../skeleton_row'; +import { SkeletonRow } from '../../skeleton_row'; import { OnColumnResized, OnPinEvent, @@ -31,7 +31,7 @@ import { getRowRenderer } from '../renderers/get_row_renderer'; import { RowRenderer } from '../renderers/row_renderer'; import { getEventType } from '../helpers'; import { NoteCards } from '../../../notes/note_cards'; -import { useEventDetailsWidthContext } from '../../../events_viewer/event_details_width_context'; +import { useEventDetailsWidthContext } from '../../../../../common/components/events_viewer/event_details_width_context'; import { EventColumnView } from './event_column_view'; interface Props { diff --git a/x-pack/plugins/siem/public/components/timeline/body/helpers.test.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/helpers.test.ts similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/body/helpers.test.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/helpers.test.ts index f021bf38b56c..e237e99df9ad 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/helpers.test.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/helpers.test.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Ecs } from '../../../graphql/types'; +import { Ecs } from '../../../../graphql/types'; import { eventHasNotes, eventIsPinned, getPinTooltip, stringifyEvent } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/helpers.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/helpers.ts similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/helpers.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/helpers.ts index 3d1d165ef4fa..a3eb3cc651f7 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/helpers.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/helpers.ts @@ -5,8 +5,8 @@ */ import { isEmpty, noop } from 'lodash/fp'; -import { Ecs, TimelineItem, TimelineNonEcsData } from '../../../graphql/types'; -import { EventType } from '../../../store/timeline/model'; +import { Ecs, TimelineItem, TimelineNonEcsData } from '../../../../graphql/types'; +import { EventType } from '../../../../timelines/store/timeline/model'; import { OnPinEvent, OnUnPinEvent } from '../events'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/index.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/index.test.tsx index cf35c8e565bb..c2c3f4dd7f12 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/index.test.tsx @@ -6,16 +6,16 @@ import React from 'react'; -import { mockBrowserFields } from '../../../containers/source/mock'; -import { Direction } from '../../../graphql/types'; -import { defaultHeaders, mockTimelineData } from '../../../mock'; -import { TestProviders } from '../../../mock/test_providers'; +import { mockBrowserFields } from '../../../../common/containers/source/mock'; +import { Direction } from '../../../../graphql/types'; +import { defaultHeaders, mockTimelineData } from '../../../../common/mock'; +import { TestProviders } from '../../../../common/mock/test_providers'; import { Body, BodyProps } from '.'; import { columnRenderers, rowRenderers } from './renderers'; import { Sort } from './sort'; -import { wait } from '../../../lib/helpers'; -import { useMountAppended } from '../../../utils/use_mount_appended'; +import { wait } from '../../../../common/lib/helpers'; +import { useMountAppended } from '../../../../common/utils/use_mount_appended'; const testBodyHeight = 700; const mockGetNotesByIds = (eventId: string[]) => []; @@ -30,7 +30,7 @@ jest.mock( children({ isVisible: true }) ); -jest.mock('../../../lib/helpers/scheduler', () => ({ +jest.mock('../../../../common/lib/helpers/scheduler', () => ({ requestIdleCallbackViaScheduler: (callback: () => void, opts?: unknown) => { callback(); }, diff --git a/x-pack/plugins/siem/public/components/timeline/body/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/index.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/index.tsx index fac8cc61cddd..391d19cb7855 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/index.tsx @@ -6,10 +6,10 @@ import React, { useMemo, useRef } from 'react'; -import { BrowserFields } from '../../../containers/source'; -import { TimelineItem, TimelineNonEcsData } from '../../../graphql/types'; -import { Note } from '../../../lib/note'; -import { ColumnHeaderOptions } from '../../../store/timeline/model'; +import { BrowserFields } from '../../../../common/containers/source'; +import { TimelineItem, TimelineNonEcsData } from '../../../../graphql/types'; +import { Note } from '../../../../common/lib/note'; +import { ColumnHeaderOptions } from '../../../../timelines/store/timeline/model'; import { AddNoteToEvent, UpdateNote } from '../../notes/helpers'; import { OnColumnRemoved, diff --git a/x-pack/plugins/siem/public/components/timeline/body/mini_map/date_ranges.test.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/mini_map/date_ranges.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/mini_map/date_ranges.test.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/mini_map/date_ranges.test.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/mini_map/date_ranges.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/mini_map/date_ranges.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/mini_map/date_ranges.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/mini_map/date_ranges.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/args.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/args.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/args.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/args.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/empty_column_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/empty_column_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/empty_column_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/empty_column_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/formatted_field.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/formatted_field.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/formatted_field.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/formatted_field.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/get_column_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/get_column_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/get_column_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/get_column_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/get_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/get_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/get_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/get_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/host_working_dir.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/host_working_dir.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/host_working_dir.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/host_working_dir.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/plain_column_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/plain_column_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/plain_column_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/plain_column_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/plain_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/plain_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/plain_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/plain_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/process_draggable.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/process_draggable.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/process_draggable.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/process_draggable.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/unknown_column_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/unknown_column_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/unknown_column_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/unknown_column_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/user_host_working_dir.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/user_host_working_dir.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/__snapshots__/user_host_working_dir.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/__snapshots__/user_host_working_dir.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/args.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/args.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/args.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/args.test.tsx index 53a205441244..e7e7d1d47f47 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/args.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/args.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { TestProviders } from '../../../../mock'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; +import { TestProviders } from '../../../../../common/mock'; import { ArgsComponent } from './args'; describe('Args', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/args.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/args.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/args.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/args.tsx index 22367ec87985..f421b471282b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/args.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/args.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from './helpers'; interface Props { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/generic_details.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/generic_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/generic_details.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/generic_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/generic_file_details.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/generic_file_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/generic_file_details.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/generic_file_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/generic_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/generic_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/generic_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/generic_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/primary_secondary_user_info.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/primary_secondary_user_info.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/primary_secondary_user_info.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/primary_secondary_user_info.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/session_user_host_working_dir.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/session_user_host_working_dir.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/__snapshots__/session_user_host_working_dir.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/__snapshots__/session_user_host_working_dir.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_details.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_details.test.tsx index 21cccc88f4fb..b4c95d383593 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_details.test.tsx @@ -7,11 +7,11 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; import { AuditdGenericDetails, AuditdGenericLine } from './generic_details'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('GenericDetails', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_details.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_details.tsx index c25c656b75e4..1e82519285da 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_details.tsx @@ -8,9 +8,9 @@ import { EuiFlexGroup, EuiSpacer } from '@elastic/eui'; import { get } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; -import { DraggableBadge } from '../../../../draggables'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import * as i18n from './translations'; import { NetflowRenderer } from '../netflow'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_file_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_file_details.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_file_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_file_details.test.tsx index fce0e1d645e1..0990280879a1 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_file_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_file_details.test.tsx @@ -7,11 +7,11 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; import { AuditdGenericFileDetails, AuditdGenericFileLine } from './generic_file_details'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('GenericFileDetails', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_file_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_file_details.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_file_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_file_details.tsx index 797361878e6c..d9149bae8919 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_file_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_file_details.tsx @@ -8,9 +8,9 @@ import { EuiFlexGroup, EuiSpacer, IconType } from '@elastic/eui'; import { get } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; -import { DraggableBadge } from '../../../../draggables'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import * as i18n from './translations'; import { NetflowRenderer } from '../netflow'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx index 417a078a0815..ae5e7e2ef789 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_row_renderer.test.tsx @@ -8,18 +8,18 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { Ecs } from '../../../../../graphql/types'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../../graphql/types'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { RowRenderer } from '../row_renderer'; import { createGenericAuditRowRenderer, createGenericFileRowRenderer, } from './generic_row_renderer'; -jest.mock('../../../../../pages/overview/events_by_dataset'); +jest.mock('../../../../../../overview/components/events_by_dataset'); describe('GenericRowRenderer', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_row_renderer.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/generic_row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/generic_row_renderer.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx index 598769e854b4..41e35427ae25 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/primary_secondary_user_info.test.tsx @@ -7,9 +7,9 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../../mock'; +import { TestProviders } from '../../../../../../common/mock'; import { PrimarySecondaryUserInfo, nilOrUnSet } from './primary_secondary_user_info'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('UserPrimarySecondary', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx index a54042d3de9d..8c9191181d93 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/primary_secondary_user_info.tsx @@ -7,7 +7,7 @@ import { EuiFlexGroup } from '@elastic/eui'; import React from 'react'; -import { DraggableBadge } from '../../../../draggables'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import * as i18n from './translations'; import { TokensFlexItem } from '../helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx index a0a9977f5765..d1e67c25bd79 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/session_user_host_working_dir.test.tsx @@ -8,9 +8,9 @@ import { EuiFlexItem } from '@elastic/eui'; import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../../mock'; +import { TestProviders } from '../../../../../../common/mock'; import { SessionUserHostWorkingDir } from './session_user_host_working_dir'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('SessionUserHostWorkingDir', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx index 6a6b55bb817c..fb2fd7a4b04b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/session_user_host_working_dir.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../../draggables'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import * as i18n from './translations'; import { TokensFlexItem } from '../helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/auditd/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/auditd/translations.ts diff --git a/x-pack/plugins/siem/public/components/bytes/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/bytes/index.test.tsx similarity index 74% rename from x-pack/plugins/siem/public/components/bytes/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/bytes/index.test.tsx index d99a909efad1..06f392683cbf 100644 --- a/x-pack/plugins/siem/public/components/bytes/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/bytes/index.test.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { TestProviders } from '../../mock'; -import { PreferenceFormattedBytes } from '../formatted_bytes'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../../common/mock'; +import { PreferenceFormattedBytes } from '../../../../../../common/components/formatted_bytes'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { Bytes } from '.'; diff --git a/x-pack/plugins/siem/public/components/bytes/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/bytes/index.tsx similarity index 83% rename from x-pack/plugins/siem/public/components/bytes/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/bytes/index.tsx index 94c6ecba68be..a8dfe939d28d 100644 --- a/x-pack/plugins/siem/public/components/bytes/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/bytes/index.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { DefaultDraggable } from '../draggables'; -import { PreferenceFormattedBytes } from '../formatted_bytes'; +import { DefaultDraggable } from '../../../../../../common/components/draggables'; +import { PreferenceFormattedBytes } from '../../../../../../common/components/formatted_bytes'; export const BYTES_FORMAT = 'bytes'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/column_renderer.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/column_renderer.ts similarity index 82% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/column_renderer.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/column_renderer.ts index a13de90e7aed..4a89fea8c510 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/column_renderer.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/column_renderer.ts @@ -4,8 +4,8 @@ * you may not use this file except in compliance with the Elastic License. */ -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; export interface ColumnRenderer { isInstance: (columnName: string, data: TimelineNonEcsData[]) => boolean; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/constants.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/constants.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/constants.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/constants.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx similarity index 82% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx index a7c9d10e82a2..ba77709459c2 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details.test.tsx @@ -11,10 +11,10 @@ import React from 'react'; -import { TestProviders } from '../../../../../mock'; -import { mockBrowserFields } from '../../../../../../public/containers/source/mock'; -import { mockEndgameDnsRequest } from '../../../../../../public/mock/mock_endgame_ecs_data'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../../common/mock'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockEndgameDnsRequest } from '../../../../../../common/mock/mock_endgame_ecs_data'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { DnsRequestEventDetails } from './dns_request_event_details'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details.tsx index 824e8c00de30..74ed5b2a6587 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details.tsx @@ -8,9 +8,9 @@ import { EuiSpacer } from '@elastic/eui'; import { get } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; +import { BrowserFields } from '../../../../../../common/containers/source'; import { Details } from '../helpers'; -import { Ecs } from '../../../../../graphql/types'; +import { Ecs } from '../../../../../../graphql/types'; import { NetflowRenderer } from '../netflow'; import { DnsRequestEventDetailsLine } from './dns_request_event_details_line'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx index e12eacd73559..1d46e4c3eb02 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details_line.test.tsx @@ -11,10 +11,10 @@ import React from 'react'; -import { TestProviders } from '../../../../../mock'; +import { TestProviders } from '../../../../../../common/mock'; import { DnsRequestEventDetailsLine } from './dns_request_event_details_line'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('DnsRequestEventDetailsLine', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx index c7a08620bebb..eafe64f13c25 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/dns_request_event_details_line.tsx @@ -7,7 +7,7 @@ import { EuiFlexGroup } from '@elastic/eui'; import React from 'react'; -import { DraggableBadge } from '../../../../draggables'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from '../helpers'; import { ProcessDraggableWithNonExistentProcess } from '../process_draggable'; import { UserHostWorkingDir } from '../user_host_working_dir'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/dns/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/dns/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/dns/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/empty_column_renderer.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/empty_column_renderer.test.tsx index b31d01b8e94a..4514ce5e9bb0 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/empty_column_renderer.test.tsx @@ -8,10 +8,10 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { defaultHeaders, mockTimelineData, TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; -import { getEmptyValue } from '../../../empty_value'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { defaultHeaders, mockTimelineData, TestProviders } from '../../../../../common/mock'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; +import { getEmptyValue } from '../../../../../common/components/empty_value'; import { deleteItemIdx, findItem } from './helpers'; import { emptyColumnRenderer } from './empty_column_renderer'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/empty_column_renderer.tsx similarity index 81% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/empty_column_renderer.tsx index 45ef46616718..9769e23b57af 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/empty_column_renderer.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/empty_column_renderer.tsx @@ -8,11 +8,14 @@ import React from 'react'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; -import { DraggableWrapper, DragEffects } from '../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../drag_and_drop/helpers'; -import { getEmptyValue } from '../../../empty_value'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; +import { + DraggableWrapper, + DragEffects, +} from '../../../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../../../common/components/drag_and_drop/helpers'; +import { getEmptyValue } from '../../../../../common/components/empty_value'; import { EXISTS_OPERATOR } from '../../data_providers/data_provider'; import { Provider } from '../../data_providers/provider'; import { ColumnRenderer } from './column_renderer'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx index 72b879d4ade7..e84cb93b8717 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details.test.tsx @@ -11,15 +11,15 @@ import React from 'react'; -import { TestProviders } from '../../../../../mock'; -import { mockBrowserFields } from '../../../../../../public/containers/source/mock'; +import { TestProviders } from '../../../../../../common/mock'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; import { mockEndgameAdminLogon, mockEndgameExplicitUserLogon, mockEndgameUserLogon, mockEndgameUserLogoff, -} from '../../../../../../public/mock/mock_endgame_ecs_data'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +} from '../../../../../../common/mock/mock_endgame_ecs_data'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { EndgameSecurityEventDetails } from './endgame_security_event_details'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx index 35a88f52f05a..11580e2536ff 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details.tsx @@ -8,8 +8,8 @@ import { EuiSpacer } from '@elastic/eui'; import { get } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; import { NetflowRenderer } from '../netflow'; import { EndgameSecurityEventDetailsLine } from './endgame_security_event_details_line'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx index 4e522f6ed5c9..b2b4b021e5db 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details_line.test.tsx @@ -11,10 +11,10 @@ import React from 'react'; -import { TestProviders } from '../../../../../mock'; +import { TestProviders } from '../../../../../../common/mock'; import { EndgameSecurityEventDetailsLine } from './endgame_security_event_details_line'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('EndgameSecurityEventDetailsLine', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx index c2c42ba0e4dd..c2bccc24fd99 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/endgame_security_event_details_line.tsx @@ -7,7 +7,7 @@ import { EuiFlexGroup } from '@elastic/eui'; import React from 'react'; -import { DraggableBadge } from '../../../../draggables'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from '../helpers'; import { ProcessDraggableWithNonExistentProcess } from '../process_draggable'; import { UserHostWorkingDir } from '../user_host_working_dir'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/helpers.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/helpers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/helpers.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/helpers.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/helpers.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/helpers.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/endgame/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/endgame/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/exit_code_draggable.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/exit_code_draggable.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/exit_code_draggable.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/exit_code_draggable.test.tsx index 4da236bfa34c..4471c26ef8fd 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/exit_code_draggable.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/exit_code_draggable.test.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../common/mock'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { ExitCodeDraggable } from './exit_code_draggable'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/exit_code_draggable.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/exit_code_draggable.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/exit_code_draggable.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/exit_code_draggable.tsx index 7671e3f0509a..8aba73f5373e 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/exit_code_draggable.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/exit_code_draggable.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/file_draggable.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/file_draggable.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/file_draggable.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/file_draggable.test.tsx index d800821f8d8a..70e0e74675cd 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/file_draggable.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/file_draggable.test.tsx @@ -6,10 +6,10 @@ import React from 'react'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { FileDraggable } from './file_draggable'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; describe('FileDraggable', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/file_draggable.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/file_draggable.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/file_draggable.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/file_draggable.tsx index e4871c6479c6..bdf223d215a1 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/file_draggable.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/file_draggable.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field.test.tsx index 73f7b004ca3f..64f4656e7e79 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field.test.tsx @@ -8,14 +8,14 @@ import { shallow } from 'enzyme'; import { get } from 'lodash/fp'; import React from 'react'; -import { mockTimelineData, TestProviders } from '../../../../mock'; -import { getEmptyValue } from '../../../empty_value'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { mockTimelineData, TestProviders } from '../../../../../common/mock'; +import { getEmptyValue } from '../../../../../common/components/empty_value'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { FormattedFieldValue } from './formatted_field'; import { HOST_NAME_FIELD_NAME } from './constants'; -jest.mock('../../../../lib/kibana'); +jest.mock('../../../../../common/lib/kibana'); describe('Events', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field.tsx index 0f650d638619..d03f0573dc2b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field.tsx @@ -8,16 +8,19 @@ import { EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; import { isNumber, isString, isEmpty } from 'lodash/fp'; import React from 'react'; -import { DefaultDraggable } from '../../../draggables'; -import { Bytes, BYTES_FORMAT } from '../../../bytes'; +import { DefaultDraggable } from '../../../../../common/components/draggables'; +import { Bytes, BYTES_FORMAT } from './bytes'; import { Duration, EVENT_DURATION_FIELD_NAME } from '../../../duration'; -import { getOrEmptyTagFromValue, getEmptyTagValue } from '../../../empty_value'; -import { FormattedDate } from '../../../formatted_date'; -import { FormattedIp } from '../../../formatted_ip'; -import { HostDetailsLink } from '../../../links'; +import { + getOrEmptyTagFromValue, + getEmptyTagValue, +} from '../../../../../common/components/empty_value'; +import { FormattedDate } from '../../../../../common/components/formatted_date'; +import { FormattedIp } from '../../../../components/formatted_ip'; +import { HostDetailsLink } from '../../../../../common/components/links'; -import { Port, PORT_NAMES } from '../../../port'; -import { TruncatableText } from '../../../truncatable_text'; +import { Port, PORT_NAMES } from '../../../../../network/components/port'; +import { TruncatableText } from '../../../../../common/components/truncatable_text'; import { DATE_FIELD_TYPE, HOST_NAME_FIELD_NAME, diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field_helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field_helpers.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field_helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field_helpers.tsx index 7c9accd4cef4..bbf8c5af3be9 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/formatted_field_helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/formatted_field_helpers.tsx @@ -9,13 +9,13 @@ import { isString, isEmpty } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { DefaultDraggable } from '../../../draggables'; -import { getEmptyTagValue } from '../../../empty_value'; -import { getRuleDetailsUrl } from '../../../link_to/redirect_to_detection_engine'; -import { TruncatableText } from '../../../truncatable_text'; +import { DefaultDraggable } from '../../../../../common/components/draggables'; +import { getEmptyTagValue } from '../../../../../common/components/empty_value'; +import { getRuleDetailsUrl } from '../../../../../common/components/link_to/redirect_to_detection_engine'; +import { TruncatableText } from '../../../../../common/components/truncatable_text'; -import { isUrlInvalid } from '../../../../pages/detection_engine/rules/components/step_about_rule/helpers'; -import endPointSvg from '../../../../utils/logo_endpoint/64_color.svg'; +import { isUrlInvalid } from '../../../../../alerts/components/rules/step_about_rule/helpers'; +import endPointSvg from '../../../../../common/utils/logo_endpoint/64_color.svg'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_column_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_column_renderer.test.tsx similarity index 89% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/get_column_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_column_renderer.test.tsx index 25d5c71caf48..12b093bd517c 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_column_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_column_renderer.test.tsx @@ -8,16 +8,16 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { mockTimelineData } from '../../../../mock'; -import { TestProviders } from '../../../../mock/test_providers'; -import { getEmptyValue } from '../../../empty_value'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { mockTimelineData } from '../../../../../common/mock'; +import { TestProviders } from '../../../../../common/mock/test_providers'; +import { getEmptyValue } from '../../../../../common/components/empty_value'; import { defaultHeaders } from '../column_headers/default_headers'; import { columnRenderers } from '.'; import { getColumnRenderer } from './get_column_renderer'; import { getValues, findItem, deleteItemIdx } from './helpers'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; describe('get_column_renderer', () => { let nonSuricata: TimelineNonEcsData[]; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_column_renderer.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_column_renderer.ts similarity index 91% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/get_column_renderer.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_column_renderer.ts index 22aa14d598c1..03d041aef1e7 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_column_renderer.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_column_renderer.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { TimelineNonEcsData } from '../../../../graphql/types'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; import { ColumnRenderer } from './column_renderer'; const unhandledColumnRenderer = (): never => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/get_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx index 7ad8cfed5256..3222f8a2362d 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_row_renderer.test.tsx @@ -8,11 +8,11 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash'; import React from 'react'; -import { mockBrowserFields } from '../../../../containers/source/mock'; -import { Ecs } from '../../../../graphql/types'; -import { mockTimelineData } from '../../../../mock'; -import { TestProviders } from '../../../../mock/test_providers'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { mockBrowserFields } from '../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../graphql/types'; +import { mockTimelineData } from '../../../../../common/mock'; +import { TestProviders } from '../../../../../common/mock/test_providers'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { rowRenderers } from '.'; import { getRowRenderer } from './get_row_renderer'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_row_renderer.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_row_renderer.ts similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/get_row_renderer.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_row_renderer.ts index b5a585d46381..2e90c589e653 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/get_row_renderer.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/get_row_renderer.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Ecs } from '../../../../graphql/types'; +import { Ecs } from '../../../../../graphql/types'; import { RowRenderer } from './row_renderer'; const unhandledRowRenderer = (): never => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/helpers.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/helpers.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/helpers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/helpers.test.tsx index 98a99cb6e408..82704d544b8b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/helpers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/helpers.test.tsx @@ -6,8 +6,8 @@ import { cloneDeep } from 'lodash/fp'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { mockTimelineData } from '../../../../mock'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { mockTimelineData } from '../../../../../common/mock'; import { deleteItemIdx, findItem, diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/helpers.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/helpers.tsx index 26aa5cea51ce..7cda5aa3c59f 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/helpers.tsx @@ -8,7 +8,7 @@ import { EuiFlexItem } from '@elastic/eui'; import { isNumber, isEmpty } from 'lodash/fp'; import styled from 'styled-components'; -import { TimelineNonEcsData } from '../../../../graphql/types'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; export const deleteItemIdx = (data: TimelineNonEcsData[], idx: number) => [ ...data.slice(0, idx), diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/host_working_dir.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/host_working_dir.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/host_working_dir.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/host_working_dir.test.tsx index d84dfcc56188..85a000bbcaf6 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/host_working_dir.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/host_working_dir.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { mockTimelineData, TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { mockTimelineData, TestProviders } from '../../../../../common/mock'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { HostWorkingDir } from './host_working_dir'; describe('HostWorkingDir', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/host_working_dir.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/host_working_dir.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/host_working_dir.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/host_working_dir.tsx index db49df30be47..89d46dd287ff 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/host_working_dir.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/host_working_dir.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import * as i18n from './translations'; import { TokensFlexItem } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/index.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/index.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/index.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/index.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow.tsx similarity index 86% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/netflow.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow.tsx index 0990301b6e2b..0492450df513 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow.tsx @@ -7,22 +7,28 @@ import { get } from 'lodash/fp'; import React from 'react'; -import { Ecs } from '../../../../graphql/types'; -import { asArrayIfExists } from '../../../../lib/helpers'; +import { Ecs } from '../../../../../graphql/types'; +import { asArrayIfExists } from '../../../../../common/lib/helpers'; import { TLS_CLIENT_CERTIFICATE_FINGERPRINT_SHA1_FIELD_NAME, TLS_SERVER_CERTIFICATE_FINGERPRINT_SHA1_FIELD_NAME, } from '../../../certificate_fingerprint'; import { EVENT_DURATION_FIELD_NAME } from '../../../duration'; -import { ID_FIELD_NAME } from '../../../event_details/event_id'; -import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../../../ip'; +import { ID_FIELD_NAME } from '../../../../../common/components/event_details/event_id'; +import { + DESTINATION_IP_FIELD_NAME, + SOURCE_IP_FIELD_NAME, +} from '../../../../../network/components/ip'; import { JA3_HASH_FIELD_NAME } from '../../../ja3_fingerprint'; import { Netflow } from '../../../netflow'; import { EVENT_END_FIELD_NAME, EVENT_START_FIELD_NAME, } from '../../../netflow/netflow_columns/duration_event_start_end'; -import { DESTINATION_PORT_FIELD_NAME, SOURCE_PORT_FIELD_NAME } from '../../../port'; +import { + DESTINATION_PORT_FIELD_NAME, + SOURCE_PORT_FIELD_NAME, +} from '../../../../../network/components/port'; import { DESTINATION_GEO_CITY_NAME_FIELD_NAME, DESTINATION_GEO_CONTINENT_NAME_FIELD_NAME, @@ -34,13 +40,13 @@ import { SOURCE_GEO_COUNTRY_ISO_CODE_FIELD_NAME, SOURCE_GEO_COUNTRY_NAME_FIELD_NAME, SOURCE_GEO_REGION_NAME_FIELD_NAME, -} from '../../../source_destination/geo_fields'; +} from '../../../../../network/components/source_destination/geo_fields'; import { DESTINATION_BYTES_FIELD_NAME, DESTINATION_PACKETS_FIELD_NAME, SOURCE_BYTES_FIELD_NAME, SOURCE_PACKETS_FIELD_NAME, -} from '../../../source_destination/source_destination_arrows'; +} from '../../../../../network/components/source_destination/source_destination_arrows'; import { NETWORK_BYTES_FIELD_NAME, NETWORK_COMMUNITY_ID_FIELD_NAME, @@ -48,7 +54,7 @@ import { NETWORK_PACKETS_FIELD_NAME, NETWORK_PROTOCOL_FIELD_NAME, NETWORK_TRANSPORT_FIELD_NAME, -} from '../../../source_destination/field_names'; +} from '../../../../../network/components/source_destination/field_names'; interface NetflowRendererProps { data: Ecs; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/__snapshots__/netflow_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/__snapshots__/netflow_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/__snapshots__/netflow_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/__snapshots__/netflow_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx index e5375302f5ba..9c620f5cf670 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/netflow_row_renderer.test.tsx @@ -7,11 +7,11 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { Ecs } from '../../../../../graphql/types'; -import { getMockNetflowData, TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../../graphql/types'; +import { getMockNetflowData, TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { eventActionMatches, diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx similarity index 90% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx index 10d80e1952f4..7926b447196f 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/netflow/netflow_row_renderer.tsx @@ -10,14 +10,17 @@ import { get } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { asArrayIfExists } from '../../../../../lib/helpers'; +import { asArrayIfExists } from '../../../../../../common/lib/helpers'; import { TLS_CLIENT_CERTIFICATE_FINGERPRINT_SHA1_FIELD_NAME, TLS_SERVER_CERTIFICATE_FINGERPRINT_SHA1_FIELD_NAME, } from '../../../../certificate_fingerprint'; import { EVENT_DURATION_FIELD_NAME } from '../../../../duration'; -import { ID_FIELD_NAME } from '../../../../event_details/event_id'; -import { DESTINATION_IP_FIELD_NAME, SOURCE_IP_FIELD_NAME } from '../../../../ip'; +import { ID_FIELD_NAME } from '../../../../../../common/components/event_details/event_id'; +import { + DESTINATION_IP_FIELD_NAME, + SOURCE_IP_FIELD_NAME, +} from '../../../../../../network/components/ip'; import { JA3_HASH_FIELD_NAME } from '../../../../ja3_fingerprint'; import { Netflow } from '../../../../netflow'; import { @@ -28,7 +31,10 @@ import { PROCESS_NAME_FIELD_NAME, USER_NAME_FIELD_NAME, } from '../../../../netflow/netflow_columns/user_process'; -import { DESTINATION_PORT_FIELD_NAME, SOURCE_PORT_FIELD_NAME } from '../../../../port'; +import { + DESTINATION_PORT_FIELD_NAME, + SOURCE_PORT_FIELD_NAME, +} from '../../../../../../network/components/port'; import { NETWORK_BYTES_FIELD_NAME, NETWORK_COMMUNITY_ID_FIELD_NAME, @@ -36,7 +42,7 @@ import { NETWORK_PACKETS_FIELD_NAME, NETWORK_PROTOCOL_FIELD_NAME, NETWORK_TRANSPORT_FIELD_NAME, -} from '../../../../source_destination/field_names'; +} from '../../../../../../network/components/source_destination/field_names'; import { DESTINATION_GEO_CITY_NAME_FIELD_NAME, DESTINATION_GEO_CONTINENT_NAME_FIELD_NAME, @@ -48,13 +54,13 @@ import { SOURCE_GEO_COUNTRY_ISO_CODE_FIELD_NAME, SOURCE_GEO_COUNTRY_NAME_FIELD_NAME, SOURCE_GEO_REGION_NAME_FIELD_NAME, -} from '../../../../source_destination/geo_fields'; +} from '../../../../../../network/components/source_destination/geo_fields'; import { DESTINATION_BYTES_FIELD_NAME, DESTINATION_PACKETS_FIELD_NAME, SOURCE_BYTES_FIELD_NAME, SOURCE_PACKETS_FIELD_NAME, -} from '../../../../source_destination/source_destination_arrows'; +} from '../../../../../../network/components/source_destination/source_destination_arrows'; import { RowRenderer, RowRendererContainer } from '../row_renderer'; const Details = styled.div` diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/parent_process_draggable.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parent_process_draggable.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/parent_process_draggable.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parent_process_draggable.test.tsx index 684def7386da..0a173f766ae1 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/parent_process_draggable.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parent_process_draggable.test.tsx @@ -6,10 +6,10 @@ import React from 'react'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { ParentProcessDraggable } from './parent_process_draggable'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; describe('ParentProcessDraggable', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/parent_process_draggable.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parent_process_draggable.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/parent_process_draggable.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parent_process_draggable.tsx index 1402743ef8a5..12d23e2f0b60 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/parent_process_draggable.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parent_process_draggable.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/parse_query_value.test.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_query_value.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/parse_query_value.test.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_query_value.test.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/parse_query_value.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_query_value.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/parse_query_value.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_query_value.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/parse_value.test.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_value.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/parse_value.test.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_value.test.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/parse_value.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_value.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/parse_value.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/parse_value.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_column_renderer.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_column_renderer.test.tsx index 8a22307767a4..b80b3cf9a375 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_column_renderer.test.tsx @@ -8,10 +8,10 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { defaultHeaders, mockTimelineData, TestProviders } from '../../../../mock'; -import { getEmptyValue } from '../../../empty_value'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { defaultHeaders, mockTimelineData, TestProviders } from '../../../../../common/mock'; +import { getEmptyValue } from '../../../../../common/components/empty_value'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { plainColumnRenderer } from './plain_column_renderer'; import { getValues, deleteItemIdx, findItem } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx index f6a61889c501..d2881382b170 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_column_renderer.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_column_renderer.tsx @@ -7,9 +7,9 @@ import { head } from 'lodash/fp'; import React from 'react'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { ColumnHeaderOptions } from '../../../../store/timeline/model'; -import { getEmptyTagValue } from '../../../empty_value'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { ColumnHeaderOptions } from '../../../../../timelines/store/timeline/model'; +import { getEmptyTagValue } from '../../../../../common/components/empty_value'; import { ColumnRenderer } from './column_renderer'; import { FormattedFieldValue } from './formatted_field'; import { parseValue } from './parse_value'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_row_renderer.test.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/plain_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_row_renderer.test.tsx index 467f507e8be7..82d42988ef34 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_row_renderer.test.tsx @@ -10,9 +10,9 @@ import { cloneDeep } from 'lodash'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { mockBrowserFields } from '../../../../containers/source/mock'; -import { Ecs } from '../../../../graphql/types'; -import { mockTimelineData } from '../../../../mock'; +import { mockBrowserFields } from '../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../graphql/types'; +import { mockTimelineData } from '../../../../../common/mock'; import { plainRowRenderer } from './plain_row_renderer'; describe('plain_row_renderer', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/plain_row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_row_renderer.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/plain_row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/plain_row_renderer.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_draggable.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_draggable.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/process_draggable.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_draggable.test.tsx index 8cc7323ed358..91ae94940f7f 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_draggable.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_draggable.test.tsx @@ -7,9 +7,9 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { ProcessDraggable, ProcessDraggableWithNonExistentProcess } from './process_draggable'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; describe('ProcessDraggable', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_draggable.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_draggable.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/process_draggable.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_draggable.tsx index 35512c60629d..6e900fb3cab4 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_draggable.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_draggable.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite } from './helpers'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_hash.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_hash.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/process_hash.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_hash.test.tsx index 08a9d29967db..55cc61edb064 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_hash.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_hash.test.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { TestProviders } from '../../../../mock'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../common/mock'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; import { ProcessHash } from './process_hash'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_hash.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_hash.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/process_hash.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_hash.tsx index b6696d38dc1c..9658ed89a608 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/process_hash.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/process_hash.tsx @@ -8,7 +8,7 @@ import { EuiFlexGroup } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { isNillEmptyOrNotFinite, TokensFlexItem } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/row_renderer.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/row_renderer.tsx index 2d9f877fe4af..5cee0a0118dd 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/row_renderer.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/row_renderer.tsx @@ -6,8 +6,8 @@ import React from 'react'; -import { BrowserFields } from '../../../../containers/source'; -import { Ecs } from '../../../../graphql/types'; +import { BrowserFields } from '../../../../../common/containers/source'; +import { Ecs } from '../../../../../graphql/types'; import { EventsTrSupplement } from '../../styles'; interface RowRendererContainerProps { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/__snapshots__/suricata_details.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/__snapshots__/suricata_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/__snapshots__/suricata_details.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/__snapshots__/suricata_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/__snapshots__/suricata_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/__snapshots__/suricata_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/__snapshots__/suricata_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/__snapshots__/suricata_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/__snapshots__/suricata_signature.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/__snapshots__/suricata_signature.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/__snapshots__/suricata_signature.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/__snapshots__/suricata_signature.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_details.test.tsx similarity index 83% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_details.test.tsx index 027aa0df8bcd..d5040cb25237 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_details.test.tsx @@ -7,10 +7,10 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { mockTimelineData } from '../../../../../mock'; -import { TestProviders } from '../../../../../mock/test_providers'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockTimelineData } from '../../../../../../common/mock'; +import { TestProviders } from '../../../../../../common/mock/test_providers'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { SuricataDetails } from './suricata_details'; describe('SuricataDetails', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_details.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_details.tsx index 17f5f236265e..c21b609a0f91 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_details.tsx @@ -9,8 +9,8 @@ import { get } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; import { NetflowRenderer } from '../netflow'; import { SuricataSignature } from './suricata_signature'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_links.test.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_links.test.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_links.test.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_links.test.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_links.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_links.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_links.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_links.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_refs.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_refs.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_refs.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_refs.tsx index dd773bb88ef6..08992216bf74 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_refs.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_refs.tsx @@ -8,7 +8,7 @@ import { EuiFlexGroup, EuiFlexItem, EuiLink } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { ExternalLinkIcon } from '../../../../external_link_icon'; +import { ExternalLinkIcon } from '../../../../../../common/components/external_link_icon'; import { getLinksFromSignature } from './suricata_links'; const LinkEuiFlexItem = styled(EuiFlexItem)` diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx similarity index 85% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx index b26d8ce3693b..a10cd9dc97f6 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_row_renderer.test.tsx @@ -8,12 +8,12 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { Ecs } from '../../../../../graphql/types'; -import { mockTimelineData } from '../../../../../mock'; -import { TestProviders } from '../../../../../mock/test_providers'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../../graphql/types'; +import { mockTimelineData } from '../../../../../../common/mock'; +import { TestProviders } from '../../../../../../common/mock/test_providers'; import { suricataRowRenderer } from './suricata_row_renderer'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('suricata_row_renderer', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_row_renderer.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_row_renderer.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_signature.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.test.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_signature.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.test.tsx index beae16af558e..245e538f6919 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_signature.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { SuricataSignature, Tokens, diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_signature.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_signature.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx index 66c559729ccc..3ae88a1e7c57 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/suricata/suricata_signature.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/suricata/suricata_signature.tsx @@ -8,15 +8,18 @@ import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiToolTip } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { DragEffects, DraggableWrapper } from '../../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../../drag_and_drop/helpers'; -import { ExternalLinkIcon } from '../../../../external_link_icon'; -import { GoogleLink } from '../../../../links'; -import { Provider } from '../../../../timeline/data_providers/provider'; +import { + DragEffects, + DraggableWrapper, +} from '../../../../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../../../../common/components/drag_and_drop/helpers'; +import { ExternalLinkIcon } from '../../../../../../common/components/external_link_icon'; +import { GoogleLink } from '../../../../../../common/components/links'; +import { Provider } from '../../../data_providers/provider'; import { TokensFlexItem } from '../helpers'; import { getBeginningTokens } from './suricata_links'; -import { DefaultDraggable } from '../../../../draggables'; +import { DefaultDraggable } from '../../../../../../common/components/draggables'; import { IS_OPERATOR } from '../../../data_providers/data_provider'; export const SURICATA_SIGNATURE_FIELD_NAME = 'suricata.eve.alert.signature'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/auth_ssh.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/auth_ssh.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/auth_ssh.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/auth_ssh.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/generic_details.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/generic_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/generic_details.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/generic_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/generic_file_details.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/generic_file_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/generic_file_details.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/generic_file_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/generic_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/generic_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/generic_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/generic_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/package.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/package.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/__snapshots__/package.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/__snapshots__/package.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/auth_ssh.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/auth_ssh.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/auth_ssh.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/auth_ssh.test.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/auth_ssh.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/auth_ssh.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/auth_ssh.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/auth_ssh.tsx index 0ff2eec35314..431f1b5e974d 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/auth_ssh.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/auth_ssh.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../../draggables'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import { TokensFlexItem } from '../helpers'; interface Props { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_details.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_details.test.tsx index 19113d93f7cb..e622c91e8b87 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_details.test.tsx @@ -7,11 +7,11 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; import { SystemGenericDetails, SystemGenericLine } from './generic_details'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('SystemGenericDetails', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_details.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_details.tsx index 2ad3eb468145..e849732d07f6 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_details.tsx @@ -8,10 +8,10 @@ import { EuiFlexGroup, EuiSpacer } from '@elastic/eui'; import { get } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; -import { DraggableBadge } from '../../../../draggables'; -import { OverflowField } from '../../../../tables/helpers'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; +import { OverflowField } from '../../../../../../common/components/tables/helpers'; import * as i18n from './translations'; import { NetflowRenderer } from '../netflow'; @@ -20,7 +20,7 @@ import { Details, TokensFlexItem } from '../helpers'; import { ProcessDraggable } from '../process_draggable'; import { Package } from './package'; import { AuthSsh } from './auth_ssh'; -import { Badge } from '../../../../page'; +import { Badge } from '../../../../../../common/components/page'; interface Props { contextId: string; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_file_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_file_details.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_file_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_file_details.test.tsx index cab7191c13ae..d8784233b664 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_file_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_file_details.test.tsx @@ -7,11 +7,11 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; import { SystemGenericFileDetails, SystemGenericFileLine } from './generic_file_details'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; describe('SystemGenericFileDetails', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_file_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_file_details.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_file_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_file_details.tsx index ef7c3b3ccf85..8dd513539a96 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_file_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_file_details.tsx @@ -8,10 +8,10 @@ import { EuiFlexGroup, EuiSpacer } from '@elastic/eui'; import { get } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; -import { DraggableBadge } from '../../../../draggables'; -import { OverflowField } from '../../../../tables/helpers'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; +import { OverflowField } from '../../../../../../common/components/tables/helpers'; import * as i18n from './translations'; import { NetflowRenderer } from '../netflow'; @@ -23,7 +23,7 @@ import { AuthSsh } from './auth_ssh'; import { ExitCodeDraggable } from '../exit_code_draggable'; import { FileDraggable } from '../file_draggable'; import { Package } from './package'; -import { Badge } from '../../../../page'; +import { Badge } from '../../../../../../common/components/page'; import { ParentProcessDraggable } from '../parent_process_draggable'; import { ProcessHash } from '../process_hash'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_row_renderer.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_row_renderer.test.tsx index 2f5fa76855f2..26cccc82896e 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_row_renderer.test.tsx @@ -8,9 +8,9 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { BrowserFields } from '../../../../../containers/source'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { Ecs } from '../../../../../graphql/types'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../../graphql/types'; import { mockDnsEvent, mockFimFileCreatedEvent, @@ -19,7 +19,7 @@ import { mockSocketOpenedEvent, mockTimelineData, TestProviders, -} from '../../../../../mock'; +} from '../../../../../../common/mock'; import { mockEndgameAdminLogon, mockEndgameCreationEvent, @@ -34,8 +34,8 @@ import { mockEndgameTerminationEvent, mockEndgameUserLogoff, mockEndgameUserLogon, -} from '../../../../../mock/mock_endgame_ecs_data'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +} from '../../../../../../common/mock/mock_endgame_ecs_data'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { RowRenderer } from '../row_renderer'; import { createDnsRowRenderer, @@ -48,7 +48,7 @@ import { } from './generic_row_renderer'; import * as i18n from './translations'; -jest.mock('../../../../../pages/overview/events_by_dataset'); +jest.mock('../../../../../../overview/components/events_by_dataset'); describe('GenericRowRenderer', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_row_renderer.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/generic_row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/generic_row_renderer.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/package.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/package.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/package.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/package.test.tsx index 100c8fbe5a98..56f9452ba40b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/package.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/package.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { Package } from './package'; describe('Package', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/package.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/package.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/package.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/package.tsx index a28e850e2af9..7aa66f8db883 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/package.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/package.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../../draggables'; +import { DraggableBadge } from '../../../../../../common/components/draggables'; import { TokensFlexItem } from '../helpers'; interface Props { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/system/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/system/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/system/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/unknown_column_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/unknown_column_renderer.test.tsx similarity index 91% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/unknown_column_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/unknown_column_renderer.test.tsx index 73d1d5cb441e..f49318171e8b 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/unknown_column_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/unknown_column_renderer.test.tsx @@ -10,9 +10,9 @@ import { cloneDeep } from 'lodash'; import React from 'react'; import { ThemeProvider } from 'styled-components'; -import { TimelineNonEcsData } from '../../../../graphql/types'; -import { defaultHeaders, mockTimelineData } from '../../../../mock'; -import { getEmptyValue } from '../../../empty_value'; +import { TimelineNonEcsData } from '../../../../../graphql/types'; +import { defaultHeaders, mockTimelineData } from '../../../../../common/mock'; +import { getEmptyValue } from '../../../../../common/components/empty_value'; import { unknownColumnRenderer } from './unknown_column_renderer'; import { getValues } from './helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/unknown_column_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/unknown_column_renderer.tsx similarity index 83% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/unknown_column_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/unknown_column_renderer.tsx index 4b4a4a3d4378..49bc61f00a63 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/unknown_column_renderer.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/unknown_column_renderer.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { getEmptyTagValue } from '../../../empty_value'; +import { getEmptyTagValue } from '../../../../../common/components/empty_value'; import { ColumnRenderer } from './column_renderer'; export const unknownColumnRenderer: ColumnRenderer = { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/user_host_working_dir.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/user_host_working_dir.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/user_host_working_dir.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/user_host_working_dir.test.tsx index 45b670acb569..7f460d30d709 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/user_host_working_dir.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/user_host_working_dir.test.tsx @@ -7,9 +7,9 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../../mock'; +import { TestProviders } from '../../../../../common/mock'; import { UserHostWorkingDir } from './user_host_working_dir'; -import { useMountAppended } from '../../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../../common/utils/use_mount_appended'; describe('UserHostWorkingDir', () => { const mount = useMountAppended(); diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/user_host_working_dir.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/user_host_working_dir.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/user_host_working_dir.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/user_host_working_dir.tsx index d370afee2585..80585b37cfd9 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/user_host_working_dir.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/user_host_working_dir.tsx @@ -6,7 +6,7 @@ import React from 'react'; -import { DraggableBadge } from '../../../draggables'; +import { DraggableBadge } from '../../../../../common/components/draggables'; import { TokensFlexItem } from './helpers'; import { HostWorkingDir } from './host_working_dir'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/__snapshots__/zeek_details.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/__snapshots__/zeek_details.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/__snapshots__/zeek_details.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/__snapshots__/zeek_details.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/__snapshots__/zeek_row_renderer.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/__snapshots__/zeek_row_renderer.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/__snapshots__/zeek_row_renderer.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/__snapshots__/zeek_row_renderer.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/__snapshots__/zeek_signature.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/__snapshots__/zeek_signature.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/__snapshots__/zeek_signature.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/__snapshots__/zeek_signature.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_details.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_details.test.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_details.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_details.test.tsx index b45e4c41762b..d3ec7922342c 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_details.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_details.test.tsx @@ -6,9 +6,9 @@ import React from 'react'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { ZeekDetails } from './zeek_details'; describe('ZeekDetails', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_details.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_details.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_details.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_details.tsx index d8561186b454..4f991429d6a4 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_details.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_details.tsx @@ -8,8 +8,8 @@ import { EuiSpacer } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../../../../containers/source'; -import { Ecs } from '../../../../../graphql/types'; +import { BrowserFields } from '../../../../../../common/containers/source'; +import { Ecs } from '../../../../../../graphql/types'; import { NetflowRenderer } from '../netflow'; import { ZeekSignature } from './zeek_signature'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx index 456b93eb829e..2197ccb0ce2e 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_row_renderer.test.tsx @@ -8,10 +8,10 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { mockBrowserFields } from '../../../../../containers/source/mock'; -import { Ecs } from '../../../../../graphql/types'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { mockBrowserFields } from '../../../../../../common/containers/source/mock'; +import { Ecs } from '../../../../../../graphql/types'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { zeekRowRenderer } from './zeek_row_renderer'; describe('zeek_row_renderer', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_row_renderer.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_row_renderer.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_row_renderer.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_row_renderer.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_signature.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_signature.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.test.tsx index f199b537f1be..f416da562504 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_signature.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.test.tsx @@ -8,9 +8,9 @@ import { shallow } from 'enzyme'; import { cloneDeep } from 'lodash/fp'; import React from 'react'; -import { Ecs } from '../../../../../graphql/types'; -import { mockTimelineData, TestProviders } from '../../../../../mock'; -import { useMountAppended } from '../../../../../utils/use_mount_appended'; +import { Ecs } from '../../../../../../graphql/types'; +import { mockTimelineData, TestProviders } from '../../../../../../common/mock'; +import { useMountAppended } from '../../../../../../common/utils/use_mount_appended'; import { ZeekSignature, extractStateValue, diff --git a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_signature.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_signature.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx index 4cb8140e22ce..cdf4a8cba68a 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/renderers/zeek/zeek_signature.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/renderers/zeek/zeek_signature.tsx @@ -9,12 +9,15 @@ import { get } from 'lodash/fp'; import React from 'react'; import styled from 'styled-components'; -import { Ecs } from '../../../../../graphql/types'; -import { DragEffects, DraggableWrapper } from '../../../../drag_and_drop/draggable_wrapper'; -import { escapeDataProviderId } from '../../../../drag_and_drop/helpers'; -import { ExternalLinkIcon } from '../../../../external_link_icon'; -import { GoogleLink, ReputationLink } from '../../../../links'; -import { Provider } from '../../../../timeline/data_providers/provider'; +import { Ecs } from '../../../../../../graphql/types'; +import { + DragEffects, + DraggableWrapper, +} from '../../../../../../common/components/drag_and_drop/draggable_wrapper'; +import { escapeDataProviderId } from '../../../../../../common/components/drag_and_drop/helpers'; +import { ExternalLinkIcon } from '../../../../../../common/components/external_link_icon'; +import { GoogleLink, ReputationLink } from '../../../../../../common/components/links'; +import { Provider } from '../../../data_providers/provider'; import { IS_OPERATOR } from '../../../data_providers/data_provider'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/sort/__snapshots__/sort_indicator.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/__snapshots__/sort_indicator.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/sort/__snapshots__/sort_indicator.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/body/sort/__snapshots__/sort_indicator.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/body/sort/index.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/index.ts similarity index 89% rename from x-pack/plugins/siem/public/components/timeline/body/sort/index.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/sort/index.ts index 4a55ba8e1e8e..93fbe314e1da 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/sort/index.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/index.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Direction } from '../../../../graphql/types'; +import { Direction } from '../../../../../graphql/types'; import { ColumnId } from '../column_id'; /** Specifies a column's sort direction */ diff --git a/x-pack/plugins/siem/public/components/timeline/body/sort/sort_indicator.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/sort_indicator.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/sort/sort_indicator.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/sort/sort_indicator.test.tsx index db3e96a4e265..43738da44b17 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/sort/sort_indicator.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/sort_indicator.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { Direction } from '../../../../graphql/types'; +import { Direction } from '../../../../../graphql/types'; import { getDirection, SortIndicator } from './sort_indicator'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/sort/sort_indicator.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/sort_indicator.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/sort/sort_indicator.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/sort/sort_indicator.tsx index 74fb1e5e4034..c148e2f6c629 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/sort/sort_indicator.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/sort/sort_indicator.tsx @@ -7,7 +7,7 @@ import { EuiIcon } from '@elastic/eui'; import React from 'react'; -import { Direction } from '../../../../graphql/types'; +import { Direction } from '../../../../../graphql/types'; import { SortDirection } from '.'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/stateful_body.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/stateful_body.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/body/stateful_body.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/stateful_body.test.tsx index 4945939ac2bd..126f3439f463 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/stateful_body.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/stateful_body.test.tsx @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { mockBrowserFields } from '../../../containers/source/mock'; +import { mockBrowserFields } from '../../../../common/containers/source/mock'; import { defaultHeaders } from './column_headers/default_headers'; import { getColumnHeaders } from './column_headers/helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/body/stateful_body.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/body/stateful_body.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/body/stateful_body.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/body/stateful_body.tsx index 76f26d3dda5a..1aed63ff71d6 100644 --- a/x-pack/plugins/siem/public/components/timeline/body/stateful_body.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/body/stateful_body.tsx @@ -10,13 +10,14 @@ import React, { useCallback, useEffect } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { BrowserFields } from '../../../containers/source'; -import { TimelineItem } from '../../../graphql/types'; -import { Note } from '../../../lib/note'; -import { appSelectors, State, timelineSelectors } from '../../../store'; -import { timelineActions, appActions } from '../../../store/actions'; +import { BrowserFields } from '../../../../common/containers/source'; +import { TimelineItem } from '../../../../graphql/types'; +import { Note } from '../../../../common/lib/note'; +import { appSelectors, State } from '../../../../common/store'; +import { appActions } from '../../../../common/store/actions'; import { ColumnHeaderOptions, TimelineModel } from '../../../store/timeline/model'; import { timelineDefaults } from '../../../store/timeline/defaults'; +import { timelineActions, timelineSelectors } from '../../../store/timeline'; import { AddNoteToEvent, UpdateNote } from '../../notes/helpers'; import { OnColumnRemoved, diff --git a/x-pack/plugins/siem/public/components/timeline/body/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/body/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/body/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/body/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/data_providers.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/empty.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/empty.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/empty.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/empty.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/provider.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/provider.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/provider.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/provider.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/__snapshots__/providers.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/data_provider.ts b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/data_provider.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/data_provider.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/data_provider.ts diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/data_providers.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/data_providers.test.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/data_providers/data_providers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/data_providers.test.tsx index b77d37e8e31a..54e7cb20aeed 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/data_providers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/data_providers.test.tsx @@ -7,8 +7,8 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../mock/test_providers'; -import { useMountAppended } from '../../../utils/use_mount_appended'; +import { TestProviders } from '../../../../common/mock/test_providers'; +import { useMountAppended } from '../../../../common/utils/use_mount_appended'; import { DataProviders } from '.'; import { DataProvider } from './data_provider'; diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/empty.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/empty.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/data_providers/empty.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/empty.test.tsx index 10586657b52a..9cc5704808c6 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/empty.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/empty.test.tsx @@ -8,7 +8,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; import { Empty } from './empty'; -import { TestProviders } from '../../../mock/test_providers'; +import { TestProviders } from '../../../../common/mock/test_providers'; describe('Empty', () => { describe('rendering', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/empty.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/empty.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/data_providers/empty.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/empty.tsx index 1c225eba20b4..84f533977a9a 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/empty.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/empty.tsx @@ -8,7 +8,7 @@ import { EuiBadge, EuiText } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { AndOrBadge } from '../../and_or_badge'; +import { AndOrBadge } from '../and_or_badge'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/helpers.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/helpers.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/data_providers/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/index.tsx index caead394db05..13c91f25c880 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/index.tsx @@ -8,12 +8,12 @@ import { rgba } from 'polished'; import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../../containers/source'; -import { DroppableWrapper } from '../../drag_and_drop/droppable_wrapper'; +import { BrowserFields } from '../../../../common/containers/source'; +import { DroppableWrapper } from '../../../../common/components/drag_and_drop/droppable_wrapper'; import { droppableTimelineProvidersPrefix, IS_DRAGGING_CLASS_NAME, -} from '../../drag_and_drop/helpers'; +} from '../../../../common/components/drag_and_drop/helpers'; import { OnDataProviderEdited, OnDataProviderRemoved, diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/mock/mock_data_providers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/mock/mock_data_providers.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/mock/mock_data_providers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/mock/mock_data_providers.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/provider.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/data_providers/provider.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider.test.tsx index f0d7ca83fb39..d6d337bb3e1d 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/provider.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../../mock/test_providers'; +import { TestProviders } from '../../../../common/mock/test_providers'; import { mockDataProviders } from './mock/mock_data_providers'; import { Provider } from './provider'; diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/provider.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/provider.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/provider_badge.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_badge.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/data_providers/provider_badge.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_badge.tsx index 859ced39ebc4..b3682c0d5514 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/provider_badge.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_badge.tsx @@ -10,8 +10,8 @@ import { isString } from 'lodash/fp'; import React, { useCallback, useMemo } from 'react'; import styled from 'styled-components'; -import { ProviderContainer } from '../../drag_and_drop/provider_container'; -import { getEmptyString } from '../../empty_value'; +import { getEmptyString } from '../../../../common/components/empty_value'; +import { ProviderContainer } from '../../../../common/components/drag_and_drop/provider_container'; import { EXISTS_OPERATOR, QueryOperator } from './data_provider'; diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/provider_item_actions.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_actions.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/data_providers/provider_item_actions.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_actions.tsx index 121f832221d3..540b1b80259a 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/provider_item_actions.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_actions.tsx @@ -12,7 +12,7 @@ import { import React, { FunctionComponent } from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../../containers/source'; +import { BrowserFields } from '../../../../common/containers/source'; import { OnDataProviderEdited } from '../events'; import { QueryOperator, EXISTS_OPERATOR } from './data_provider'; import { StatefulEditDataProvider } from '../../edit_data_provider'; diff --git a/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and.tsx new file mode 100644 index 000000000000..171112b28d78 --- /dev/null +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and.tsx @@ -0,0 +1,95 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { EuiFlexItem } from '@elastic/eui'; +import React from 'react'; + +import { AndOrBadge } from '../and_or_badge'; +import { BrowserFields } from '../../../../common/containers/source'; +import { + OnChangeDataProviderKqlQuery, + OnDataProviderEdited, + OnDataProviderRemoved, + OnToggleDataProviderEnabled, + OnToggleDataProviderExcluded, +} from '../events'; + +import { DataProvidersAnd, IS_OPERATOR } from './data_provider'; +import { ProviderItemBadge } from './provider_item_badge'; + +interface ProviderItemAndPopoverProps { + browserFields: BrowserFields; + dataProvidersAnd: DataProvidersAnd[]; + onChangeDataProviderKqlQuery: OnChangeDataProviderKqlQuery; + onDataProviderEdited: OnDataProviderEdited; + onDataProviderRemoved: OnDataProviderRemoved; + onToggleDataProviderEnabled: OnToggleDataProviderEnabled; + onToggleDataProviderExcluded: OnToggleDataProviderExcluded; + providerId: string; + timelineId: string; +} + +export class ProviderItemAnd extends React.PureComponent { + public render() { + const { + browserFields, + dataProvidersAnd, + onDataProviderEdited, + providerId, + timelineId, + } = this.props; + + return dataProvidersAnd.map((providerAnd: DataProvidersAnd, index: number) => ( + + + + + + this.deleteAndProvider(providerId, providerAnd.id)} + field={providerAnd.queryMatch.displayField || providerAnd.queryMatch.field} + kqlQuery={providerAnd.kqlQuery} + isEnabled={providerAnd.enabled} + isExcluded={providerAnd.excluded} + onDataProviderEdited={onDataProviderEdited} + operator={providerAnd.queryMatch.operator || IS_OPERATOR} + providerId={providerId} + timelineId={timelineId} + toggleEnabledProvider={() => + this.toggleEnabledAndProvider(providerId, !providerAnd.enabled, providerAnd.id) + } + toggleExcludedProvider={() => + this.toggleExcludedAndProvider(providerId, !providerAnd.excluded, providerAnd.id) + } + val={providerAnd.queryMatch.displayValue || providerAnd.queryMatch.value} + /> + + + )); + } + + private deleteAndProvider = (providerId: string, andProviderId: string) => { + this.props.onDataProviderRemoved(providerId, andProviderId); + }; + + private toggleEnabledAndProvider = ( + providerId: string, + enabled: boolean, + andProviderId: string + ) => { + this.props.onToggleDataProviderEnabled({ providerId, enabled, andProviderId }); + }; + + private toggleExcludedAndProvider = ( + providerId: string, + excluded: boolean, + andProviderId: string + ) => { + this.props.onToggleDataProviderExcluded({ providerId, excluded, andProviderId }); + }; +} diff --git a/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and_drag_drop.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and_drag_drop.tsx new file mode 100644 index 000000000000..4a9358befc51 --- /dev/null +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_and_drag_drop.tsx @@ -0,0 +1,136 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { EuiBadge, EuiFlexGroup, EuiFlexItem, EuiText } from '@elastic/eui'; +import { rgba } from 'polished'; +import React, { useCallback } from 'react'; +import styled from 'styled-components'; + +import { AndOrBadge } from '../and_or_badge'; +import { + OnChangeDataProviderKqlQuery, + OnChangeDroppableAndProvider, + OnDataProviderEdited, + OnDataProviderRemoved, + OnToggleDataProviderEnabled, + OnToggleDataProviderExcluded, +} from '../events'; + +import { BrowserFields } from '../../../../common/containers/source'; + +import { DataProvider } from './data_provider'; +import { ProviderItemAnd } from './provider_item_and'; + +import * as i18n from './translations'; + +const DropAndTargetDataProvidersContainer = styled(EuiFlexItem)` + margin: 0px 8px; +`; + +DropAndTargetDataProvidersContainer.displayName = 'DropAndTargetDataProvidersContainer'; + +const DropAndTargetDataProviders = styled.div<{ hasAndItem: boolean }>` + min-width: 230px; + width: auto; + border: 0.1rem dashed ${props => props.theme.eui.euiColorSuccess}; + border-radius: 5px; + text-align: center; + padding: 3px 10px; + display: flex; + justify-content: center; + align-items: center; + ${props => + props.hasAndItem + ? `&:hover { + transition: background-color 0.7s ease; + background-color: ${() => rgba(props.theme.eui.euiColorSuccess, 0.2)}; + }` + : ''}; + cursor: ${({ hasAndItem }) => (!hasAndItem ? `default` : 'inherit')}; +`; + +DropAndTargetDataProviders.displayName = 'DropAndTargetDataProviders'; + +const NumberProviderAndBadge = (styled(EuiBadge)` + margin: 0px 5px; +` as unknown) as typeof EuiBadge; + +NumberProviderAndBadge.displayName = 'NumberProviderAndBadge'; + +interface ProviderItemDropProps { + browserFields: BrowserFields; + dataProvider: DataProvider; + mousePosition?: { x: number; y: number; boundLeft: number; boundTop: number }; + onChangeDataProviderKqlQuery: OnChangeDataProviderKqlQuery; + onChangeDroppableAndProvider: OnChangeDroppableAndProvider; + onDataProviderEdited: OnDataProviderEdited; + onDataProviderRemoved: OnDataProviderRemoved; + onToggleDataProviderEnabled: OnToggleDataProviderEnabled; + onToggleDataProviderExcluded: OnToggleDataProviderExcluded; + timelineId: string; +} + +export const ProviderItemAndDragDrop = React.memo( + ({ + browserFields, + dataProvider, + onChangeDataProviderKqlQuery, + onChangeDroppableAndProvider, + onDataProviderEdited, + onDataProviderRemoved, + onToggleDataProviderEnabled, + onToggleDataProviderExcluded, + timelineId, + }) => { + const onMouseEnter = useCallback(() => onChangeDroppableAndProvider(dataProvider.id), [ + onChangeDroppableAndProvider, + dataProvider.id, + ]); + const onMouseLeave = useCallback(() => onChangeDroppableAndProvider(''), [ + onChangeDroppableAndProvider, + ]); + const hasAndItem = dataProvider.and.length > 0; + return ( + + + + {hasAndItem && ( + + {dataProvider.and.length} + + )} + + {i18n.DROP_HERE_TO_ADD_AN} + + + + + + + ); + } +); + +ProviderItemAndDragDrop.displayName = 'ProviderItemAndDragDrop'; diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/provider_item_badge.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_badge.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/data_providers/provider_item_badge.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_badge.tsx index b268315efb91..b53c08a8bb10 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/provider_item_badge.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/provider_item_badge.tsx @@ -8,13 +8,13 @@ import { noop } from 'lodash/fp'; import React, { useCallback, useEffect, useState } from 'react'; import { useDispatch } from 'react-redux'; -import { BrowserFields } from '../../../containers/source'; +import { BrowserFields } from '../../../../common/containers/source'; import { OnDataProviderEdited } from '../events'; import { ProviderBadge } from './provider_badge'; import { ProviderItemActions } from './provider_item_actions'; import { DataProvidersAnd, QueryOperator } from './data_provider'; -import { dragAndDropActions } from '../../../store/drag_and_drop'; +import { dragAndDropActions } from '../../../../common/store/drag_and_drop'; import { TimelineContext } from '../timeline_context'; interface ProviderItemBadgeProps { diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/providers.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/providers.test.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/data_providers/providers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/providers.test.tsx index 43e84bac508e..34202d090e06 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/providers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/providers.test.tsx @@ -7,16 +7,16 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { createKibanaCoreStartMock } from '../../../mock/kibana_core'; -import { TestProviders } from '../../../mock/test_providers'; -import { DroppableWrapper } from '../../drag_and_drop/droppable_wrapper'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import { createKibanaCoreStartMock } from '../../../../common/mock/kibana_core'; +import { TestProviders } from '../../../../common/mock/test_providers'; +import { DroppableWrapper } from '../../../../common/components/drag_and_drop/droppable_wrapper'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { TimelineContext } from '../timeline_context'; import { mockDataProviders } from './mock/mock_data_providers'; import { Providers } from './providers'; import { DELETE_CLASS_NAME, ENABLE_CLASS_NAME, EXCLUDE_CLASS_NAME } from './provider_item_actions'; -import { useMountAppended } from '../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../common/utils/use_mount_appended'; const mockUiSettingsForFilterManager = createKibanaCoreStartMock().uiSettings; diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/providers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/providers.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/data_providers/providers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/providers.tsx index 8d9d0c69d53c..7f10a7b16c7b 100644 --- a/x-pack/plugins/siem/public/components/timeline/data_providers/providers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/providers.tsx @@ -10,13 +10,13 @@ import React, { useMemo } from 'react'; import { Draggable, DraggingStyle, Droppable, NotDraggingStyle } from 'react-beautiful-dnd'; import styled, { css } from 'styled-components'; -import { AndOrBadge } from '../../and_or_badge'; -import { BrowserFields } from '../../../containers/source'; +import { AndOrBadge } from '../and_or_badge'; +import { BrowserFields } from '../../../../common/containers/source'; import { getTimelineProviderDroppableId, IS_DRAGGING_CLASS_NAME, getTimelineProviderDraggableId, -} from '../../drag_and_drop/helpers'; +} from '../../../../common/components/drag_and_drop/helpers'; import { OnDataProviderEdited, OnDataProviderRemoved, diff --git a/x-pack/plugins/siem/public/components/timeline/data_providers/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/data_providers/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/data_providers/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/data_providers/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/events.ts b/x-pack/plugins/siem/public/timelines/components/timeline/events.ts similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/events.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/events.ts index f977c03ed305..6c9a9b8b8967 100644 --- a/x-pack/plugins/siem/public/components/timeline/events.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/events.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { ColumnHeaderOptions } from '../../store/timeline/model'; +import { ColumnHeaderOptions } from '../../../timelines/store/timeline/model'; import { ColumnId } from './body/column_id'; import { SortDirection } from './body/sort'; import { QueryOperator } from './data_providers/data_provider'; diff --git a/x-pack/plugins/siem/public/components/timeline/expandable_event/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/expandable_event/index.tsx similarity index 84% rename from x-pack/plugins/siem/public/components/timeline/expandable_event/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/expandable_event/index.tsx index 218d4db9901c..b08c6afcaf4a 100644 --- a/x-pack/plugins/siem/public/components/timeline/expandable_event/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/expandable_event/index.tsx @@ -7,10 +7,10 @@ import React from 'react'; import styled from 'styled-components'; -import { BrowserFields } from '../../../containers/source'; -import { ColumnHeaderOptions } from '../../../store/timeline/model'; -import { DetailItem } from '../../../graphql/types'; -import { StatefulEventDetails } from '../../event_details/stateful_event_details'; +import { BrowserFields } from '../../../../common/containers/source'; +import { ColumnHeaderOptions } from '../../../../timelines/store/timeline/model'; +import { DetailItem } from '../../../../graphql/types'; +import { StatefulEventDetails } from '../../../../common/components/event_details/stateful_event_details'; import { LazyAccordion } from '../../lazy_accordion'; import { OnUpdateColumns } from '../events'; diff --git a/x-pack/plugins/siem/public/components/timeline/expandable_event/translations.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/expandable_event/translations.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/expandable_event/translations.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/expandable_event/translations.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/fetch_kql_timeline.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/fetch_kql_timeline.tsx similarity index 88% rename from x-pack/plugins/siem/public/components/timeline/fetch_kql_timeline.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/fetch_kql_timeline.tsx index 16eaa8030820..e75f87e0d601 100644 --- a/x-pack/plugins/siem/public/components/timeline/fetch_kql_timeline.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/fetch_kql_timeline.tsx @@ -9,11 +9,11 @@ import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; import { IIndexPattern } from 'src/plugins/data/public'; -import { timelineSelectors, State } from '../../store'; -import { inputsActions } from '../../store/actions'; -import { InputsModelId } from '../../store/inputs/constants'; -import { useUpdateKql } from '../../utils/kql/use_update_kql'; - +import { State } from '../../../common/store'; +import { inputsActions } from '../../../common/store/actions'; +import { InputsModelId } from '../../../common/store/inputs/constants'; +import { useUpdateKql } from '../../../common/utils/kql/use_update_kql'; +import { timelineSelectors } from '../../store/timeline'; export interface TimelineKqlFetchProps { id: string; indexPattern: IIndexPattern; diff --git a/x-pack/plugins/siem/public/components/timeline/footer/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/footer/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/footer/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/footer/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/footer/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/footer/index.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/footer/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/footer/index.test.tsx index d54a4cee83e5..86b362aefca1 100644 --- a/x-pack/plugins/siem/public/components/timeline/footer/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/footer/index.test.tsx @@ -8,7 +8,7 @@ import { mount, shallow } from 'enzyme'; import { getOr } from 'lodash/fp'; import React from 'react'; -import { TestProviders } from '../../../mock/test_providers'; +import { TestProviders } from '../../../../common/mock/test_providers'; import { FooterComponent, PagingControlComponent } from './index'; import { mockData } from './mock'; diff --git a/x-pack/plugins/siem/public/components/timeline/footer/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/footer/index.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/footer/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/footer/index.tsx index 7a025e96e57f..556f7b043e3a 100644 --- a/x-pack/plugins/siem/public/components/timeline/footer/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/footer/index.tsx @@ -28,7 +28,7 @@ import { OnChangeItemsPerPage, OnLoadMore } from '../events'; import { LastUpdatedAt } from './last_updated'; import * as i18n from './translations'; import { useTimelineTypeContext } from '../timeline_context'; -import { useEventDetailsWidthContext } from '../../events_viewer/event_details_width_context'; +import { useEventDetailsWidthContext } from '../../../../common/components/events_viewer/event_details_width_context'; export const isCompactFooter = (width: number): boolean => width < 600; diff --git a/x-pack/plugins/siem/public/components/timeline/footer/last_updated.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/footer/last_updated.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/footer/last_updated.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/footer/last_updated.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/footer/mock.ts b/x-pack/plugins/siem/public/timelines/components/timeline/footer/mock.ts similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/footer/mock.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/footer/mock.ts index f6aaf9475f2c..fcd30ee2b850 100644 --- a/x-pack/plugins/siem/public/components/timeline/footer/mock.ts +++ b/x-pack/plugins/siem/public/timelines/components/timeline/footer/mock.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -import { EventsTimelineData } from '../../../graphql/types'; +import { EventsTimelineData } from '../../../../graphql/types'; export const mockData: { Events: EventsTimelineData } = { Events: { diff --git a/x-pack/plugins/siem/public/components/timeline/footer/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/footer/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/footer/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/footer/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/header/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/header/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/header/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/header/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/timeline/header/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/header/index.test.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/timeline/header/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/header/index.test.tsx index 7da76df49776..a3855c848cf2 100644 --- a/x-pack/plugins/siem/public/components/timeline/header/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/header/index.test.tsx @@ -7,18 +7,18 @@ import { shallow } from 'enzyme'; import React from 'react'; -import { mockIndexPattern } from '../../../mock'; -import { createKibanaCoreStartMock } from '../../../mock/kibana_core'; -import { TestProviders } from '../../../mock/test_providers'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import { mockIndexPattern } from '../../../../common/mock'; +import { createKibanaCoreStartMock } from '../../../../common/mock/kibana_core'; +import { TestProviders } from '../../../../common/mock/test_providers'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { mockDataProviders } from '../data_providers/mock/mock_data_providers'; -import { useMountAppended } from '../../../utils/use_mount_appended'; +import { useMountAppended } from '../../../../common/utils/use_mount_appended'; import { TimelineHeader } from '.'; const mockUiSettingsForFilterManager = createKibanaCoreStartMock().uiSettings; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('Header', () => { const indexPattern = mockIndexPattern; diff --git a/x-pack/plugins/siem/public/components/timeline/header/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/header/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/header/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/header/index.tsx index 58e6b6e83724..974b23bedac0 100644 --- a/x-pack/plugins/siem/public/components/timeline/header/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/header/index.tsx @@ -18,7 +18,7 @@ import { OnToggleDataProviderExcluded, } from '../events'; import { StatefulSearchOrFilter } from '../search_or_filter'; -import { BrowserFields } from '../../../containers/source'; +import { BrowserFields } from '../../../../common/containers/source'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/header/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/header/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/header/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/header/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/helpers.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/helpers.test.tsx similarity index 99% rename from x-pack/plugins/siem/public/components/timeline/helpers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/helpers.test.tsx index fc5a8ae924f8..87eb9cc45b98 100644 --- a/x-pack/plugins/siem/public/components/timeline/helpers.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/helpers.test.tsx @@ -5,12 +5,12 @@ */ import { cloneDeep } from 'lodash/fp'; -import { mockIndexPattern } from '../../mock'; +import { mockIndexPattern } from '../../../common/mock'; import { mockDataProviders } from './data_providers/mock/mock_data_providers'; import { buildGlobalQuery, combineQueries } from './helpers'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { EsQueryConfig, Filter, esFilters } from '../../../../../../src/plugins/data/public'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { EsQueryConfig, Filter, esFilters } from '../../../../../../../src/plugins/data/public'; const cleanUpKqlQuery = (str: string) => str.replace(/\n/g, '').replace(/\s\s+/g, ' '); const startDate = new Date('2018-03-23T18:49:23.132Z').valueOf(); diff --git a/x-pack/plugins/siem/public/components/timeline/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/helpers.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/helpers.tsx index 53ab7d81cadc..776ff114734d 100644 --- a/x-pack/plugins/siem/public/components/timeline/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/helpers.tsx @@ -7,16 +7,16 @@ import { isEmpty, isNumber, get } from 'lodash/fp'; import memoizeOne from 'memoize-one'; -import { escapeQueryValue, convertToBuildEsQuery } from '../../lib/keury'; +import { escapeQueryValue, convertToBuildEsQuery } from '../../../common/lib/keury'; import { DataProvider, DataProvidersAnd, EXISTS_OPERATOR } from './data_providers/data_provider'; -import { BrowserFields } from '../../containers/source'; +import { BrowserFields } from '../../../common/containers/source'; import { IIndexPattern, Query, EsQueryConfig, Filter, -} from '../../../../../../src/plugins/data/public'; +} from '../../../../../../../src/plugins/data/public'; const convertDateFieldToQuery = (field: string, value: string | number) => `${field}: ${isNumber(value) ? value : new Date(value).valueOf()}`; diff --git a/x-pack/plugins/siem/public/components/timeline/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/index.tsx index bebc6f9b654c..fca16ffadce8 100644 --- a/x-pack/plugins/siem/public/components/timeline/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/index.tsx @@ -8,12 +8,12 @@ import React, { useEffect, useCallback, useMemo } from 'react'; import { connect, ConnectedProps } from 'react-redux'; import deepEqual from 'fast-deep-equal'; -import { WithSource } from '../../containers/source'; -import { useSignalIndex } from '../../containers/detection_engine/signals/use_signal_index'; -import { inputsModel, inputsSelectors, State, timelineSelectors } from '../../store'; -import { timelineActions } from '../../store/actions'; -import { ColumnHeaderOptions, TimelineModel } from '../../store/timeline/model'; -import { timelineDefaults } from '../../store/timeline/defaults'; +import { WithSource } from '../../../common/containers/source'; +import { useSignalIndex } from '../../../alerts/containers/detection_engine/signals/use_signal_index'; +import { inputsModel, inputsSelectors, State } from '../../../common/store'; +import { timelineActions, timelineSelectors } from '../../store/timeline'; +import { ColumnHeaderOptions, TimelineModel } from '../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../timelines/store/timeline/defaults'; import { defaultHeaders } from './body/column_headers/default_headers'; import { OnChangeItemsPerPage, diff --git a/x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/index.test.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/index.test.tsx index c5aea833a4b2..d5cfc397e199 100644 --- a/x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/index.test.tsx @@ -9,7 +9,7 @@ import { mount } from 'enzyme'; /* eslint-disable @kbn/eslint/module_migration */ import routeData from 'react-router'; /* eslint-enable @kbn/eslint/module_migration */ -import { InsertTimelinePopoverComponent } from './'; +import { InsertTimelinePopoverComponent } from '.'; const mockDispatch = jest.fn(); jest.mock('react-redux', () => { diff --git a/x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/index.tsx index 573e010868ba..37b1125cd673 100644 --- a/x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/index.tsx @@ -12,7 +12,7 @@ import { useDispatch } from 'react-redux'; import { OpenTimelineResult } from '../../open_timeline/types'; import { SelectableTimeline } from '../selectable_timeline'; import * as i18n from '../translations'; -import { timelineActions } from '../../../store/timeline'; +import { timelineActions } from '../../../../timelines/store/timeline'; interface InsertTimelinePopoverProps { isDisabled: boolean; diff --git a/x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/use_insert_timeline.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/use_insert_timeline.tsx similarity index 87% rename from x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/use_insert_timeline.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/use_insert_timeline.tsx index e4d828b68f3d..1a81c131de01 100644 --- a/x-pack/plugins/siem/public/components/timeline/insert_timeline_popover/use_insert_timeline.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/insert_timeline_popover/use_insert_timeline.tsx @@ -5,9 +5,9 @@ */ import { useCallback, useState } from 'react'; -import { useBasePath } from '../../../lib/kibana'; -import { CursorPosition } from '../../markdown_editor'; -import { FormData, FormHook } from '../../../shared_imports'; +import { useBasePath } from '../../../../common/lib/kibana'; +import { CursorPosition } from '../../../../common/components/markdown_editor'; +import { FormData, FormHook } from '../../../../shared_imports'; export const useInsertTimeline = (form: FormHook, fieldName: string) => { const basePath = window.location.origin + useBasePath(); diff --git a/x-pack/plugins/siem/public/components/pin/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/pin/index.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/pin/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/pin/index.test.tsx diff --git a/x-pack/plugins/siem/public/components/pin/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/pin/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/pin/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/pin/index.tsx index 9f898f9acaf2..800ea814fdd5 100644 --- a/x-pack/plugins/siem/public/components/pin/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/pin/index.tsx @@ -8,7 +8,7 @@ import { EuiButtonIcon, IconSize } from '@elastic/eui'; import { noop } from 'lodash/fp'; import React from 'react'; -import * as i18n from '../../components/timeline/body/translations'; +import * as i18n from '../body/translations'; export type PinIcon = 'pin' | 'pinFilled'; diff --git a/x-pack/plugins/siem/public/components/timeline/properties/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/properties/helpers.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/properties/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/helpers.tsx index 4c64c8a100b4..1453d58c2ffd 100644 --- a/x-pack/plugins/siem/public/components/timeline/properties/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/properties/helpers.tsx @@ -23,15 +23,15 @@ import styled from 'styled-components'; import { useHistory } from 'react-router-dom'; import { useSelector } from 'react-redux'; -import { Note } from '../../../lib/note'; +import { Note } from '../../../../common/lib/note'; import { Notes } from '../../notes'; import { AssociateNote, UpdateNote } from '../../notes/helpers'; import { NOTES_PANEL_WIDTH } from './notes_size'; import { ButtonContainer, DescriptionContainer, LabelText, NameField, StyledStar } from './styles'; import * as i18n from './translations'; -import { SiemPageName } from '../../../pages/home/types'; -import { timelineSelectors } from '../../../store/timeline'; -import { State } from '../../../store'; +import { SiemPageName } from '../../../../app/types'; +import { timelineSelectors } from '../../../../timelines/store/timeline'; +import { State } from '../../../../common/store'; export const historyToolTip = 'The chronological history of actions related to this timeline'; export const streamLiveToolTip = 'Update the Timeline as new data arrives'; diff --git a/x-pack/plugins/siem/public/components/timeline/properties/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/properties/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/properties/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/index.test.tsx index e942c8f36dc8..17968a597706 100644 --- a/x-pack/plugins/siem/public/components/timeline/properties/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/properties/index.test.tsx @@ -8,16 +8,19 @@ import { mount } from 'enzyme'; import React from 'react'; import { Provider as ReduxStoreProvider } from 'react-redux'; -import { mockGlobalState, apolloClientObservable } from '../../../mock'; -import { createStore, State } from '../../../store'; -import { useThrottledResizeObserver } from '../../utils'; - +import { + mockGlobalState, + apolloClientObservable, + SUB_PLUGINS_REDUCER, +} from '../../../../common/mock'; +import { createStore, State } from '../../../../common/store'; +import { useThrottledResizeObserver } from '../../../../common/components/utils'; import { Properties, showDescriptionThreshold, showNotesThreshold } from '.'; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); let mockedWidth = 1000; -jest.mock('../../utils'); +jest.mock('../../../../common/components/utils'); (useThrottledResizeObserver as jest.Mock).mockImplementation(() => ({ width: mockedWidth, })); @@ -26,11 +29,11 @@ describe('Properties', () => { const usersViewing = ['elastic']; const state: State = mockGlobalState; - let store = createStore(state, apolloClientObservable); + let store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); beforeEach(() => { jest.clearAllMocks(); - store = createStore(state, apolloClientObservable); + store = createStore(state, SUB_PLUGINS_REDUCER, apolloClientObservable); mockedWidth = 1000; }); diff --git a/x-pack/plugins/siem/public/components/timeline/properties/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/properties/index.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/properties/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/index.tsx index 0080fcb1e692..502cc85ce907 100644 --- a/x-pack/plugins/siem/public/components/timeline/properties/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/properties/index.tsx @@ -6,9 +6,9 @@ import React, { useState, useCallback, useMemo } from 'react'; -import { useThrottledResizeObserver } from '../../utils'; -import { Note } from '../../../lib/note'; -import { InputsModelId } from '../../../store/inputs/constants'; +import { useThrottledResizeObserver } from '../../../../common/components/utils'; +import { Note } from '../../../../common/lib/note'; +import { InputsModelId } from '../../../../common/store/inputs/constants'; import { AssociateNote, UpdateNote } from '../../notes/helpers'; import { TimelineProperties } from './styles'; diff --git a/x-pack/plugins/siem/public/components/timeline/properties/notes_size.ts b/x-pack/plugins/siem/public/timelines/components/timeline/properties/notes_size.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/properties/notes_size.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/notes_size.ts diff --git a/x-pack/plugins/siem/public/components/timeline/properties/properties_left.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/properties/properties_left.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/properties/properties_left.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/properties_left.tsx index 3016def8a80b..52766422e49c 100644 --- a/x-pack/plugins/siem/public/components/timeline/properties/properties_left.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/properties/properties_left.tsx @@ -10,8 +10,8 @@ import React from 'react'; import styled from 'styled-components'; import { Description, Name, NotesButton, StarIcon } from './helpers'; import { AssociateNote, UpdateNote } from '../../notes/helpers'; -import { Note } from '../../../lib/note'; -import { SuperDatePicker } from '../../super_date_picker'; +import { Note } from '../../../../common/lib/note'; +import { SuperDatePicker } from '../../../../common/components/super_date_picker'; import * as i18n from './translations'; diff --git a/x-pack/plugins/siem/public/components/timeline/properties/properties_right.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/properties/properties_right.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/properties/properties_right.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/properties_right.tsx index 59d268487cca..3db64390b51b 100644 --- a/x-pack/plugins/siem/public/components/timeline/properties/properties_right.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/properties/properties_right.tsx @@ -17,11 +17,11 @@ import { import { NewTimeline, Description, NotesButton, NewCase } from './helpers'; import { OpenTimelineModalButton } from '../../open_timeline/open_timeline_modal/open_timeline_modal_button'; import { OpenTimelineModal } from '../../open_timeline/open_timeline_modal'; -import { InspectButton, InspectButtonContainer } from '../../inspect'; +import { InspectButton, InspectButtonContainer } from '../../../../common/components/inspect'; import * as i18n from './translations'; import { AssociateNote } from '../../notes/helpers'; -import { Note } from '../../../lib/note'; +import { Note } from '../../../../common/lib/note'; export const PropertiesRightStyle = styled(EuiFlexGroup)` margin-right: 5px; diff --git a/x-pack/plugins/siem/public/components/timeline/properties/styles.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/properties/styles.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/properties/styles.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/styles.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/properties/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/properties/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/properties/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/properties/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/query_bar/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/query_bar/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/query_bar/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/query_bar/index.test.tsx index a78e5b8e1d22..546f06b60cb5 100644 --- a/x-pack/plugins/siem/public/components/timeline/query_bar/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/query_bar/index.test.tsx @@ -7,13 +7,13 @@ import { mount } from 'enzyme'; import React from 'react'; -import { DEFAULT_FROM, DEFAULT_TO } from '../../../../common/constants'; -import { mockBrowserFields } from '../../../containers/source/mock'; -import { convertKueryToElasticSearchQuery } from '../../../lib/keury'; -import { mockIndexPattern, TestProviders } from '../../../mock'; -import { createKibanaCoreStartMock } from '../../../mock/kibana_core'; -import { QueryBar } from '../../query_bar'; -import { FilterManager } from '../../../../../../../src/plugins/data/public'; +import { DEFAULT_FROM, DEFAULT_TO } from '../../../../../common/constants'; +import { mockBrowserFields } from '../../../../common/containers/source/mock'; +import { convertKueryToElasticSearchQuery } from '../../../../common/lib/keury'; +import { mockIndexPattern, TestProviders } from '../../../../common/mock'; +import { createKibanaCoreStartMock } from '../../../../common/mock/kibana_core'; +import { QueryBar } from '../../../../common/components/query_bar'; +import { FilterManager } from '../../../../../../../../src/plugins/data/public'; import { mockDataProviders } from '../data_providers/mock/mock_data_providers'; import { buildGlobalQuery } from '../helpers'; @@ -21,7 +21,7 @@ import { QueryBarTimeline, QueryBarTimelineComponentProps, getDataProviderFilter const mockUiSettingsForFilterManager = createKibanaCoreStartMock().uiSettings; -jest.mock('../../../lib/kibana'); +jest.mock('../../../../common/lib/kibana'); describe('Timeline QueryBar ', () => { // We are doing that because we need to wrapped this component with redux diff --git a/x-pack/plugins/siem/public/components/timeline/query_bar/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/query_bar/index.tsx similarity index 94% rename from x-pack/plugins/siem/public/components/timeline/query_bar/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/query_bar/index.tsx index 7d2b4f71183d..07a769751cb0 100644 --- a/x-pack/plugins/siem/public/components/timeline/query_bar/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/query_bar/index.tsx @@ -17,15 +17,15 @@ import { FilterManager, SavedQuery, SavedQueryTimeFilter, -} from '../../../../../../../src/plugins/data/public'; +} from '../../../../../../../../src/plugins/data/public'; -import { BrowserFields } from '../../../containers/source'; -import { convertKueryToElasticSearchQuery } from '../../../lib/keury'; -import { KueryFilterQuery, KueryFilterQueryKind } from '../../../store'; -import { KqlMode } from '../../../store/timeline/model'; -import { useSavedQueryServices } from '../../../utils/saved_query_services'; -import { DispatchUpdateReduxTime } from '../../super_date_picker'; -import { QueryBar } from '../../query_bar'; +import { BrowserFields } from '../../../../common/containers/source'; +import { convertKueryToElasticSearchQuery } from '../../../../common/lib/keury'; +import { KueryFilterQuery, KueryFilterQueryKind } from '../../../../common/store'; +import { KqlMode } from '../../../../timelines/store/timeline/model'; +import { useSavedQueryServices } from '../../../../common/utils/saved_query_services'; +import { DispatchUpdateReduxTime } from '../../../../common/components/super_date_picker'; +import { QueryBar } from '../../../../common/components/query_bar'; import { DataProvider } from '../data_providers/data_provider'; import { buildGlobalQuery } from '../helpers'; diff --git a/x-pack/plugins/siem/public/components/timeline/refetch_timeline.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/refetch_timeline.tsx similarity index 83% rename from x-pack/plugins/siem/public/components/timeline/refetch_timeline.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/refetch_timeline.tsx index 73c20d9b9b6b..aef6e0df604c 100644 --- a/x-pack/plugins/siem/public/components/timeline/refetch_timeline.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/refetch_timeline.tsx @@ -7,9 +7,9 @@ import React, { useEffect } from 'react'; import { useDispatch } from 'react-redux'; -import { inputsModel } from '../../store'; -import { inputsActions } from '../../store/actions'; -import { InputsModelId } from '../../store/inputs/constants'; +import { inputsModel } from '../../../common/store'; +import { inputsActions } from '../../../common/store/actions'; +import { InputsModelId } from '../../../common/store/inputs/constants'; export interface TimelineRefetchProps { id: string; diff --git a/x-pack/plugins/siem/public/components/timeline/search_or_filter/helpers.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/helpers.test.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/search_or_filter/helpers.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/helpers.test.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/search_or_filter/helpers.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/helpers.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/search_or_filter/helpers.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/helpers.tsx index 5db453988cbb..77257e367c6f 100644 --- a/x-pack/plugins/siem/public/components/timeline/search_or_filter/helpers.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/helpers.tsx @@ -8,10 +8,10 @@ import { EuiSpacer, EuiText } from '@elastic/eui'; import React from 'react'; import styled from 'styled-components'; -import { AndOrBadge } from '../../and_or_badge'; +import { AndOrBadge } from '../and_or_badge'; import * as i18n from './translations'; -import { KqlMode } from '../../../store/timeline/model'; +import { KqlMode } from '../../../../timelines/store/timeline/model'; const AndOrContainer = styled.div` position: relative; diff --git a/x-pack/plugins/siem/public/components/timeline/search_or_filter/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/components/timeline/search_or_filter/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/index.tsx index fa92ef9ce596..22fbaadf2e81 100644 --- a/x-pack/plugins/siem/public/components/timeline/search_or_filter/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/index.tsx @@ -10,21 +10,24 @@ import { connect, ConnectedProps } from 'react-redux'; import { Dispatch } from 'redux'; import deepEqual from 'fast-deep-equal'; -import { Filter, FilterManager, IIndexPattern } from '../../../../../../../src/plugins/data/public'; -import { BrowserFields } from '../../../containers/source'; -import { convertKueryToElasticSearchQuery } from '../../../lib/keury'; +import { + Filter, + FilterManager, + IIndexPattern, +} from '../../../../../../../../src/plugins/data/public'; +import { BrowserFields } from '../../../../common/containers/source'; +import { convertKueryToElasticSearchQuery } from '../../../../common/lib/keury'; import { KueryFilterQuery, SerializedFilterQuery, State, - timelineSelectors, inputsModel, inputsSelectors, -} from '../../../store'; -import { timelineActions } from '../../../store/actions'; -import { KqlMode, TimelineModel, EventType } from '../../../store/timeline/model'; -import { timelineDefaults } from '../../../store/timeline/defaults'; -import { dispatchUpdateReduxTime } from '../../super_date_picker'; +} from '../../../../common/store'; +import { timelineActions, timelineSelectors } from '../../../store/timeline'; +import { KqlMode, TimelineModel, EventType } from '../../../../timelines/store/timeline/model'; +import { timelineDefaults } from '../../../../timelines/store/timeline/defaults'; +import { dispatchUpdateReduxTime } from '../../../../common/components/super_date_picker'; import { SearchOrFilter } from './search_or_filter'; interface OwnProps { diff --git a/x-pack/plugins/siem/public/components/timeline/search_or_filter/pick_events.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/pick_events.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/search_or_filter/pick_events.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/pick_events.tsx index 3117bae74528..85097f93464b 100644 --- a/x-pack/plugins/siem/public/components/timeline/search_or_filter/pick_events.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/pick_events.tsx @@ -8,7 +8,7 @@ import { EuiHealth, EuiSuperSelect } from '@elastic/eui'; import React, { memo } from 'react'; import styled from 'styled-components'; -import { EventType } from '../../../store/timeline/model'; +import { EventType } from '../../../../timelines/store/timeline/model'; import * as i18n from './translations'; interface EventTypeOptionItem { diff --git a/x-pack/plugins/siem/public/components/timeline/search_or_filter/search_or_filter.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx similarity index 93% rename from x-pack/plugins/siem/public/components/timeline/search_or_filter/search_or_filter.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx index 0b8ed7113574..388085d1361f 100644 --- a/x-pack/plugins/siem/public/components/timeline/search_or_filter/search_or_filter.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/search_or_filter.tsx @@ -8,11 +8,15 @@ import { EuiFlexGroup, EuiFlexItem, EuiSuperSelect, EuiToolTip } from '@elastic/ import React from 'react'; import styled, { createGlobalStyle } from 'styled-components'; -import { Filter, FilterManager, IIndexPattern } from '../../../../../../../src/plugins/data/public'; -import { BrowserFields } from '../../../containers/source'; -import { KueryFilterQuery, KueryFilterQueryKind } from '../../../store'; -import { KqlMode, EventType } from '../../../store/timeline/model'; -import { DispatchUpdateReduxTime } from '../../super_date_picker'; +import { + Filter, + FilterManager, + IIndexPattern, +} from '../../../../../../../../src/plugins/data/public'; +import { BrowserFields } from '../../../../common/containers/source'; +import { KueryFilterQuery, KueryFilterQueryKind } from '../../../../common/store'; +import { KqlMode, EventType } from '../../../../timelines/store/timeline/model'; +import { DispatchUpdateReduxTime } from '../../../../common/components/super_date_picker'; import { DataProvider } from '../data_providers/data_provider'; import { QueryBarTimeline } from '../query_bar'; diff --git a/x-pack/plugins/siem/public/components/timeline/search_or_filter/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/search_or_filter/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/search_or_filter/translations.ts diff --git a/x-pack/plugins/siem/public/components/timeline/search_super_select/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/search_super_select/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/search_super_select/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/search_super_select/index.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/selectable_timeline/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/selectable_timeline/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/selectable_timeline/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/selectable_timeline/index.tsx index 964bb2061333..fb3cb3f177ca 100644 --- a/x-pack/plugins/siem/public/components/timeline/selectable_timeline/index.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/selectable_timeline/index.tsx @@ -21,14 +21,14 @@ import React, { memo, useCallback, useMemo, useState, useEffect } from 'react'; import { ListProps } from 'react-virtualized'; import styled from 'styled-components'; -import { useGetAllTimeline } from '../../../containers/timeline/all'; -import { SortFieldTimeline, Direction } from '../../../graphql/types'; -import { TimelineType, TimelineTypeLiteralWithNull } from '../../../../common/types/timeline'; +import { TimelineType, TimelineTypeLiteralWithNull } from '../../../../../common/types/timeline'; +import { useGetAllTimeline } from '../../../containers/all'; +import { SortFieldTimeline, Direction } from '../../../../graphql/types'; import { isUntitled } from '../../open_timeline/helpers'; import * as i18nTimeline from '../../open_timeline/translations'; import { OpenTimelineResult } from '../../open_timeline/types'; -import { getEmptyTagValue } from '../../empty_value'; +import { getEmptyTagValue } from '../../../../common/components/empty_value'; import * as i18n from '../translations'; diff --git a/x-pack/plugins/siem/public/components/skeleton_row/__snapshots__/index.test.tsx.snap b/x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/__snapshots__/index.test.tsx.snap similarity index 100% rename from x-pack/plugins/siem/public/components/skeleton_row/__snapshots__/index.test.tsx.snap rename to x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/__snapshots__/index.test.tsx.snap diff --git a/x-pack/plugins/siem/public/components/skeleton_row/index.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/index.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/skeleton_row/index.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/index.test.tsx index 0ee54a1a2000..b63359077bf2 100644 --- a/x-pack/plugins/siem/public/components/skeleton_row/index.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/index.test.tsx @@ -7,7 +7,7 @@ import { mount, shallow } from 'enzyme'; import React from 'react'; -import { TestProviders } from '../../mock'; +import { TestProviders } from '../../../../common/mock'; import { SkeletonRow } from './index'; describe('SkeletonRow', () => { diff --git a/x-pack/plugins/siem/public/components/skeleton_row/index.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/index.tsx similarity index 100% rename from x-pack/plugins/siem/public/components/skeleton_row/index.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/skeleton_row/index.tsx diff --git a/x-pack/plugins/siem/public/components/timeline/styles.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/styles.tsx similarity index 98% rename from x-pack/plugins/siem/public/components/timeline/styles.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/styles.tsx index 16fb57714829..aad80cbdfe33 100644 --- a/x-pack/plugins/siem/public/components/timeline/styles.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/styles.tsx @@ -8,8 +8,8 @@ import { EuiLoadingSpinner } from '@elastic/eui'; import { rgba } from 'polished'; import styled, { createGlobalStyle } from 'styled-components'; -import { EventType } from '../../store/timeline/model'; -import { IS_TIMELINE_FIELD_DRAGGING_CLASS_NAME } from '../drag_and_drop/helpers'; +import { EventType } from '../../../timelines/store/timeline/model'; +import { IS_TIMELINE_FIELD_DRAGGING_CLASS_NAME } from '../../../common/components/drag_and_drop/helpers'; /** * TIMELINE BODY diff --git a/x-pack/plugins/siem/public/components/timeline/timeline.test.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/timeline.test.tsx similarity index 96% rename from x-pack/plugins/siem/public/components/timeline/timeline.test.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/timeline.test.tsx index 0d0ce79c77be..578f85fe9ddf 100644 --- a/x-pack/plugins/siem/public/components/timeline/timeline.test.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/timeline.test.tsx @@ -9,11 +9,11 @@ import React from 'react'; import { MockedProvider } from 'react-apollo/test-utils'; import useResizeObserver from 'use-resize-observer/polyfilled'; -import { timelineQuery } from '../../containers/timeline/index.gql_query'; -import { mockBrowserFields } from '../../containers/source/mock'; -import { Direction } from '../../graphql/types'; -import { defaultHeaders, mockTimelineData, mockIndexPattern } from '../../mock'; -import { TestProviders } from '../../mock/test_providers'; +import { timelineQuery } from '../../containers/index.gql_query'; +import { mockBrowserFields } from '../../../common/containers/source/mock'; +import { Direction } from '../../../graphql/types'; +import { defaultHeaders, mockTimelineData, mockIndexPattern } from '../../../common/mock'; +import { TestProviders } from '../../../common/mock/test_providers'; import { DELETE_CLASS_NAME, @@ -23,9 +23,9 @@ import { import { TimelineComponent, Props as TimelineComponentProps } from './timeline'; import { Sort } from './body/sort'; import { mockDataProviders } from './data_providers/mock/mock_data_providers'; -import { useMountAppended } from '../../utils/use_mount_appended'; +import { useMountAppended } from '../../../common/utils/use_mount_appended'; -jest.mock('../../lib/kibana'); +jest.mock('../../../common/lib/kibana'); const mockUseResizeObserver: jest.Mock = useResizeObserver as jest.Mock; jest.mock('use-resize-observer/polyfilled'); diff --git a/x-pack/plugins/siem/public/components/timeline/timeline.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/timeline.tsx similarity index 95% rename from x-pack/plugins/siem/public/components/timeline/timeline.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/timeline.tsx index cc3116235557..79d86e5b556d 100644 --- a/x-pack/plugins/siem/public/components/timeline/timeline.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/timeline.tsx @@ -10,11 +10,11 @@ import React, { useState, useMemo } from 'react'; import styled from 'styled-components'; import { FlyoutHeaderWithCloseButton } from '../flyout/header_with_close_button'; -import { BrowserFields } from '../../containers/source'; -import { TimelineQuery } from '../../containers/timeline'; -import { Direction } from '../../graphql/types'; -import { useKibana } from '../../lib/kibana'; -import { ColumnHeaderOptions, KqlMode, EventType } from '../../store/timeline/model'; +import { BrowserFields } from '../../../common/containers/source'; +import { TimelineQuery } from '../../containers/index'; +import { Direction } from '../../../graphql/types'; +import { useKibana } from '../../../common/lib/kibana'; +import { ColumnHeaderOptions, KqlMode, EventType } from '../../../timelines/store/timeline/model'; import { defaultHeaders } from './body/column_headers/default_headers'; import { Sort } from './body/sort'; import { StatefulBody } from './body/stateful_body'; @@ -37,7 +37,7 @@ import { Filter, FilterManager, IIndexPattern, -} from '../../../../../../src/plugins/data/public'; +} from '../../../../../../../src/plugins/data/public'; const TimelineContainer = styled.div` height: 100%; diff --git a/x-pack/plugins/siem/public/components/timeline/timeline_context.tsx b/x-pack/plugins/siem/public/timelines/components/timeline/timeline_context.tsx similarity index 97% rename from x-pack/plugins/siem/public/components/timeline/timeline_context.tsx rename to x-pack/plugins/siem/public/timelines/components/timeline/timeline_context.tsx index 25a0078b6066..7c1eadd8e8be 100644 --- a/x-pack/plugins/siem/public/components/timeline/timeline_context.tsx +++ b/x-pack/plugins/siem/public/timelines/components/timeline/timeline_context.tsx @@ -6,7 +6,7 @@ import React, { createContext, memo, useContext, useEffect, useState } from 'react'; -import { FilterManager } from '../../../../../../src/plugins/data/public'; +import { FilterManager } from '../../../../../../../src/plugins/data/public'; import { TimelineAction } from './body/actions'; diff --git a/x-pack/plugins/siem/public/components/timeline/translations.ts b/x-pack/plugins/siem/public/timelines/components/timeline/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/components/timeline/translations.ts rename to x-pack/plugins/siem/public/timelines/components/timeline/translations.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/all/index.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/all/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/all/index.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/all/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/all/index.tsx b/x-pack/plugins/siem/public/timelines/containers/all/index.tsx similarity index 93% rename from x-pack/plugins/siem/public/containers/timeline/all/index.tsx rename to x-pack/plugins/siem/public/timelines/containers/all/index.tsx index e1d1edc1a8ce..bdab29953a24 100644 --- a/x-pack/plugins/siem/public/containers/timeline/all/index.tsx +++ b/x-pack/plugins/siem/public/timelines/containers/all/index.tsx @@ -9,19 +9,19 @@ import memoizeOne from 'memoize-one'; import { useCallback, useState, useEffect } from 'react'; import { useDispatch } from 'react-redux'; -import { OpenTimelineResult } from '../../../components/open_timeline/types'; -import { errorToToaster, useStateToaster } from '../../../components/toasters'; +import { OpenTimelineResult } from '../../components/open_timeline/types'; +import { errorToToaster, useStateToaster } from '../../../common/components/toasters'; import { GetAllTimeline, PageInfoTimeline, SortTimeline, TimelineResult, } from '../../../graphql/types'; -import { inputsActions } from '../../../store/inputs'; -import { useApolloClient } from '../../../utils/apollo_context'; +import { inputsActions } from '../../../common/store/inputs'; +import { useApolloClient } from '../../../common/utils/apollo_context'; import { allTimelinesQuery } from './index.gql_query'; -import * as i18n from '../../../pages/timelines/translations'; +import * as i18n from '../../pages/translations'; import { TimelineTypeLiteralWithNull } from '../../../../common/types/timeline'; export interface AllTimelinesArgs { diff --git a/x-pack/plugins/siem/public/containers/timeline/api.ts b/x-pack/plugins/siem/public/timelines/containers/api.ts similarity index 90% rename from x-pack/plugins/siem/public/containers/timeline/api.ts rename to x-pack/plugins/siem/public/timelines/containers/api.ts index 023e2e6af9f8..8afbec05938e 100644 --- a/x-pack/plugins/siem/public/containers/timeline/api.ts +++ b/x-pack/plugins/siem/public/timelines/containers/api.ts @@ -15,11 +15,14 @@ import { } from '../../../common/types/timeline'; import { TIMELINE_URL, TIMELINE_IMPORT_URL, TIMELINE_EXPORT_URL } from '../../../common/constants'; -import { KibanaServices } from '../../lib/kibana'; -import { ExportSelectedData } from '../../components/generic_downloader'; +import { KibanaServices } from '../../common/lib/kibana'; +import { ExportSelectedData } from '../../common/components/generic_downloader'; -import { createToasterPlainError } from '../case/utils'; -import { ImportDataProps, ImportDataResponse } from '../detection_engine/rules'; +import { createToasterPlainError } from '../../cases/containers/utils'; +import { + ImportDataProps, + ImportDataResponse, +} from '../../alerts/containers/detection_engine/rules'; interface RequestPostTimeline { timeline: SavedTimeline; diff --git a/x-pack/plugins/siem/public/containers/timeline/delete/persist.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/delete/persist.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/delete/persist.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/delete/persist.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/details/index.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/details/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/details/index.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/details/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/details/index.tsx b/x-pack/plugins/siem/public/timelines/containers/details/index.tsx similarity index 97% rename from x-pack/plugins/siem/public/containers/timeline/details/index.tsx rename to x-pack/plugins/siem/public/timelines/containers/details/index.tsx index cf1b8954307e..1b84451b5cba 100644 --- a/x-pack/plugins/siem/public/containers/timeline/details/index.tsx +++ b/x-pack/plugins/siem/public/timelines/containers/details/index.tsx @@ -11,7 +11,7 @@ import { Query } from 'react-apollo'; import { DEFAULT_INDEX_KEY } from '../../../../common/constants'; import { DetailItem, GetTimelineDetailsQuery } from '../../../graphql/types'; -import { useUiSetting } from '../../../lib/kibana'; +import { useUiSetting } from '../../../common/lib/kibana'; import { timelineDetailsQuery } from './index.gql_query'; diff --git a/x-pack/plugins/siem/public/containers/timeline/favorite/persist.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/favorite/persist.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/favorite/persist.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/favorite/persist.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/index.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/index.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/index.tsx b/x-pack/plugins/siem/public/timelines/containers/index.tsx similarity index 92% rename from x-pack/plugins/siem/public/containers/timeline/index.tsx rename to x-pack/plugins/siem/public/timelines/containers/index.tsx index 6e09e124696b..76f6bdd36ece 100644 --- a/x-pack/plugins/siem/public/containers/timeline/index.tsx +++ b/x-pack/plugins/siem/public/timelines/containers/index.tsx @@ -20,14 +20,14 @@ import { TimelineEdges, TimelineItem, } from '../../graphql/types'; -import { inputsModel, inputsSelectors, State } from '../../store'; -import { withKibana, WithKibanaProps } from '../../lib/kibana'; -import { createFilter } from '../helpers'; -import { QueryTemplate, QueryTemplateProps } from '../query_template'; -import { EventType } from '../../store/timeline/model'; +import { inputsModel, inputsSelectors, State } from '../../common/store'; +import { withKibana, WithKibanaProps } from '../../common/lib/kibana'; +import { createFilter } from '../../common/containers/helpers'; +import { QueryTemplate, QueryTemplateProps } from '../../common/containers/query_template'; +import { EventType } from '../../timelines/store/timeline/model'; import { timelineQuery } from './index.gql_query'; -import { timelineActions } from '../../store/timeline'; -import { SIGNALS_PAGE_TIMELINE_ID } from '../../pages/detection_engine/components/signals'; +import { timelineActions } from '../../timelines/store/timeline'; +import { SIGNALS_PAGE_TIMELINE_ID } from '../../alerts/components/signals'; export interface TimelineArgs { events: TimelineItem[]; diff --git a/x-pack/plugins/siem/public/containers/timeline/notes/persist.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/notes/persist.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/notes/persist.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/notes/persist.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/one/index.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/one/index.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/one/index.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/one/index.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/persist.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/persist.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/persist.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/persist.gql_query.ts diff --git a/x-pack/plugins/siem/public/containers/timeline/pinned_event/persist.gql_query.ts b/x-pack/plugins/siem/public/timelines/containers/pinned_event/persist.gql_query.ts similarity index 100% rename from x-pack/plugins/siem/public/containers/timeline/pinned_event/persist.gql_query.ts rename to x-pack/plugins/siem/public/timelines/containers/pinned_event/persist.gql_query.ts diff --git a/x-pack/plugins/siem/public/timelines/index.ts b/x-pack/plugins/siem/public/timelines/index.ts new file mode 100644 index 000000000000..5cce258b10d1 --- /dev/null +++ b/x-pack/plugins/siem/public/timelines/index.ts @@ -0,0 +1,24 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { SecuritySubPluginWithStore } from '../app/types'; +import { getTimelinesRoutes } from './routes'; +import { initialTimelineState, timelineReducer } from './store/timeline/reducer'; +import { TimelineState } from './store/timeline/types'; + +export class Timelines { + public setup() {} + + public start(): SecuritySubPluginWithStore<'timeline', TimelineState> { + return { + routes: getTimelinesRoutes(), + store: { + initialState: { timeline: initialTimelineState }, + reducer: { timeline: timelineReducer }, + }, + }; + } +} diff --git a/x-pack/plugins/siem/public/pages/timelines/index.tsx b/x-pack/plugins/siem/public/timelines/pages/index.tsx similarity index 84% rename from x-pack/plugins/siem/public/pages/timelines/index.tsx rename to x-pack/plugins/siem/public/timelines/pages/index.tsx index 343be5cbe383..55b4dc16c284 100644 --- a/x-pack/plugins/siem/public/pages/timelines/index.tsx +++ b/x-pack/plugins/siem/public/timelines/pages/index.tsx @@ -11,15 +11,15 @@ import { Switch, Route, Redirect } from 'react-router-dom'; import { ChromeBreadcrumb } from '../../../../../../src/core/public'; import { TimelineType } from '../../../common/types/timeline'; -import { TAB_TIMELINES, TAB_TEMPLATES } from '../../components/open_timeline/translations'; -import { getTimelinesUrl } from '../../components/link_to'; -import { TimelineRouteSpyState } from '../../utils/route/types'; +import { TAB_TIMELINES, TAB_TEMPLATES } from '../components/open_timeline/translations'; +import { getTimelinesUrl } from '../../common/components/link_to'; +import { TimelineRouteSpyState } from '../../common/utils/route/types'; -import { SiemPageName } from '../home/types'; +import { SiemPageName } from '../../app/types'; import { TimelinesPage } from './timelines_page'; import { PAGE_TITLE } from './translations'; -import { appendSearch } from '../../components/link_to/helpers'; +import { appendSearch } from '../../common/components/link_to/helpers'; const timelinesPagePath = `/:pageName(${SiemPageName.timelines})/:tabName(${TimelineType.default}|${TimelineType.template})`; const timelinesDefaultPath = `/${SiemPageName.timelines}/${TimelineType.default}`; diff --git a/x-pack/plugins/siem/public/pages/timelines/timelines_page.test.tsx b/x-pack/plugins/siem/public/timelines/pages/timelines_page.test.tsx similarity index 92% rename from x-pack/plugins/siem/public/pages/timelines/timelines_page.test.tsx rename to x-pack/plugins/siem/public/timelines/pages/timelines_page.test.tsx index ae95a1316a60..0338163d8b79 100644 --- a/x-pack/plugins/siem/public/pages/timelines/timelines_page.test.tsx +++ b/x-pack/plugins/siem/public/timelines/pages/timelines_page.test.tsx @@ -4,15 +4,16 @@ * you may not use this file except in compliance with the Elastic License. */ -import { TimelinesPageComponent } from './timelines_page'; -import { useKibana } from '../../lib/kibana'; +import ApolloClient from 'apollo-client'; import { shallow, ShallowWrapper } from 'enzyme'; import React from 'react'; -import ApolloClient from 'apollo-client'; -jest.mock('../../pages/overview/events_by_dataset'); +import { useKibana } from '../../common/lib/kibana'; +import { TimelinesPageComponent } from './timelines_page'; + +jest.mock('../../overview/components/events_by_dataset'); -jest.mock('../../lib/kibana', () => { +jest.mock('../../common/lib/kibana', () => { return { useKibana: jest.fn(), }; @@ -21,7 +22,7 @@ describe('TimelinesPageComponent', () => { const mockAppollloClient = {} as ApolloClient; let wrapper: ShallowWrapper; - describe('If the user is authorised', () => { + describe('If the user is authorized', () => { beforeAll(() => { ((useKibana as unknown) as jest.Mock).mockReturnValue({ services: { diff --git a/x-pack/plugins/siem/public/pages/timelines/timelines_page.tsx b/x-pack/plugins/siem/public/timelines/pages/timelines_page.tsx similarity index 85% rename from x-pack/plugins/siem/public/pages/timelines/timelines_page.tsx rename to x-pack/plugins/siem/public/timelines/pages/timelines_page.tsx index 73070d2b94aa..d00aef642045 100644 --- a/x-pack/plugins/siem/public/pages/timelines/timelines_page.tsx +++ b/x-pack/plugins/siem/public/timelines/pages/timelines_page.tsx @@ -4,17 +4,16 @@ * you may not use this file except in compliance with the Elastic License. */ +import { EuiButton } from '@elastic/eui'; import ApolloClient from 'apollo-client'; -import React, { useState, useCallback } from 'react'; +import React, { useCallback, useState } from 'react'; import styled from 'styled-components'; - -import { EuiButton } from '@elastic/eui'; -import { HeaderPage } from '../../components/header_page'; -import { StatefulOpenTimeline } from '../../components/open_timeline'; -import { WrapperPage } from '../../components/wrapper_page'; -import { SpyRoute } from '../../utils/route/spy_routes'; +import { HeaderPage } from '../../common/components/header_page'; +import { WrapperPage } from '../../common/components/wrapper_page'; +import { useKibana } from '../../common/lib/kibana'; +import { SpyRoute } from '../../common/utils/route/spy_routes'; +import { StatefulOpenTimeline } from '../components/open_timeline'; import * as i18n from './translations'; -import { useKibana } from '../../lib/kibana'; const TimelinesContainer = styled.div` width: 100%; diff --git a/x-pack/plugins/siem/public/pages/timelines/translations.ts b/x-pack/plugins/siem/public/timelines/pages/translations.ts similarity index 100% rename from x-pack/plugins/siem/public/pages/timelines/translations.ts rename to x-pack/plugins/siem/public/timelines/pages/translations.ts diff --git a/x-pack/plugins/siem/public/timelines/routes.tsx b/x-pack/plugins/siem/public/timelines/routes.tsx new file mode 100644 index 000000000000..50b8e1b8a711 --- /dev/null +++ b/x-pack/plugins/siem/public/timelines/routes.tsx @@ -0,0 +1,15 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { Route } from 'react-router-dom'; + +import { Timelines } from './pages'; +import { SiemPageName } from '../app/types'; + +export const getTimelinesRoutes = () => [ + } />, +]; diff --git a/x-pack/plugins/siem/public/store/timeline/actions.ts b/x-pack/plugins/siem/public/timelines/store/timeline/actions.ts similarity index 94% rename from x-pack/plugins/siem/public/store/timeline/actions.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/actions.ts index 12155decf40d..ba62c5b93012 100644 --- a/x-pack/plugins/siem/public/store/timeline/actions.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/actions.ts @@ -6,16 +6,16 @@ import actionCreatorFactory from 'typescript-fsa'; -import { Filter } from '../../../../../../src/plugins/data/public'; -import { Sort } from '../../components/timeline/body/sort'; +import { Filter } from '../../../../../../../src/plugins/data/public'; +import { Sort } from '../../../timelines/components/timeline/body/sort'; import { DataProvider, QueryOperator, -} from '../../components/timeline/data_providers/data_provider'; -import { KueryFilterQuery, SerializedFilterQuery } from '../types'; +} from '../../../timelines/components/timeline/data_providers/data_provider'; +import { KueryFilterQuery, SerializedFilterQuery } from '../../../common/store/types'; import { EventType, KqlMode, TimelineModel, ColumnHeaderOptions } from './model'; -import { TimelineNonEcsData } from '../../graphql/types'; +import { TimelineNonEcsData } from '../../../graphql/types'; const actionCreator = actionCreatorFactory('x-pack/siem/local/timeline'); diff --git a/x-pack/plugins/siem/public/store/timeline/defaults.ts b/x-pack/plugins/siem/public/timelines/store/timeline/defaults.ts similarity index 80% rename from x-pack/plugins/siem/public/store/timeline/defaults.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/defaults.ts index 9203720e2e28..e0f142bd61d0 100644 --- a/x-pack/plugins/siem/public/store/timeline/defaults.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/defaults.ts @@ -4,11 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { TimelineType } from '../../../common/types/timeline'; - -import { Direction } from '../../graphql/types'; -import { DEFAULT_TIMELINE_WIDTH } from '../../components/timeline/body/constants'; -import { defaultHeaders } from '../../components/timeline/body/column_headers/default_headers'; +import { TimelineType } from '../../../../common/types/timeline'; +import { Direction } from '../../../graphql/types'; +import { DEFAULT_TIMELINE_WIDTH } from '../../../timelines/components/timeline/body/constants'; +import { defaultHeaders } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { SubsetTimelineModel, TimelineModel } from './model'; export const timelineDefaults: SubsetTimelineModel & Pick = { diff --git a/x-pack/plugins/siem/public/store/timeline/epic.test.ts b/x-pack/plugins/siem/public/timelines/store/timeline/epic.test.ts similarity index 97% rename from x-pack/plugins/siem/public/store/timeline/epic.test.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/epic.test.ts index 00aa20e07860..6bee579206de 100644 --- a/x-pack/plugins/siem/public/store/timeline/epic.test.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/epic.test.ts @@ -4,14 +4,11 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Filter, esFilters } from '../../../../../../src/plugins/data/public'; - -import { TimelineType } from '../../../common/types/timeline'; - -import { Direction } from '../../graphql/types'; - -import { TimelineModel } from './model'; +import { Filter, esFilters } from '../../../../../../../src/plugins/data/public'; +import { TimelineType } from '../../../../common/types/timeline'; +import { Direction } from '../../../graphql/types'; import { convertTimelineAsInput } from './epic'; +import { TimelineModel } from './model'; describe('Epic Timeline', () => { describe('#convertTimelineAsInput ', () => { diff --git a/x-pack/plugins/siem/public/store/timeline/epic.ts b/x-pack/plugins/siem/public/timelines/store/timeline/epic.ts similarity index 96% rename from x-pack/plugins/siem/public/store/timeline/epic.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/epic.ts index a7b8c48b4506..7bb890292adf 100644 --- a/x-pack/plugins/siem/public/store/timeline/epic.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/epic.ts @@ -28,13 +28,13 @@ import { takeUntil, } from 'rxjs/operators'; -import { esFilters, Filter, MatchAllFilter } from '../../../../../../src/plugins/data/public'; -import { TimelineType } from '../../../common/types/timeline'; -import { TimelineInput, ResponseTimeline, TimelineResult } from '../../graphql/types'; -import { AppApolloClient } from '../../lib/lib'; -import { addError } from '../app/actions'; -import { NotesById } from '../app/model'; -import { inputsModel } from '../inputs'; +import { esFilters, Filter, MatchAllFilter } from '../../../../../../../src/plugins/data/public'; +import { TimelineType } from '../../../../common/types/timeline'; +import { TimelineInput, ResponseTimeline, TimelineResult } from '../../../graphql/types'; +import { AppApolloClient } from '../../../common/lib/lib'; +import { addError } from '../../../common/store/app/actions'; +import { NotesById } from '../../../common/store/app/model'; +import { inputsModel } from '../../../common/store/inputs'; import { applyKqlFilterQuery, @@ -72,8 +72,8 @@ import { isNotNull } from './helpers'; import { dispatcherTimelinePersistQueue } from './epic_dispatcher_timeline_persistence_queue'; import { myEpicTimelineId } from './my_epic_timeline_id'; import { ActionTimeline, TimelineById } from './types'; -import { persistTimeline } from '../../containers/timeline/api'; -import { ALL_TIMELINE_QUERY_ID } from '../../containers/timeline/all'; +import { persistTimeline } from '../../containers/api'; +import { ALL_TIMELINE_QUERY_ID } from '../../containers/all'; interface TimelineEpicDependencies { timelineByIdSelector: (state: State) => TimelineById; diff --git a/x-pack/plugins/siem/public/store/timeline/epic_dispatcher_timeline_persistence_queue.ts b/x-pack/plugins/siem/public/timelines/store/timeline/epic_dispatcher_timeline_persistence_queue.ts similarity index 100% rename from x-pack/plugins/siem/public/store/timeline/epic_dispatcher_timeline_persistence_queue.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/epic_dispatcher_timeline_persistence_queue.ts diff --git a/x-pack/plugins/siem/public/store/timeline/epic_favorite.ts b/x-pack/plugins/siem/public/timelines/store/timeline/epic_favorite.ts similarity index 95% rename from x-pack/plugins/siem/public/store/timeline/epic_favorite.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/epic_favorite.ts index 6a1dadb8a59f..0fd8e983085f 100644 --- a/x-pack/plugins/siem/public/store/timeline/epic_favorite.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/epic_favorite.ts @@ -12,9 +12,9 @@ import { Epic } from 'redux-observable'; import { from, Observable, empty } from 'rxjs'; import { filter, mergeMap, withLatestFrom, startWith, takeUntil } from 'rxjs/operators'; -import { persistTimelineFavoriteMutation } from '../../containers/timeline/favorite/persist.gql_query'; -import { PersistTimelineFavoriteMutation, ResponseFavoriteTimeline } from '../../graphql/types'; -import { addError } from '../app/actions'; +import { persistTimelineFavoriteMutation } from '../../containers/favorite/persist.gql_query'; +import { PersistTimelineFavoriteMutation, ResponseFavoriteTimeline } from '../../../graphql/types'; +import { addError } from '../../../common/store/app/actions'; import { endTimelineSaving, updateIsFavorite, @@ -26,7 +26,7 @@ import { dispatcherTimelinePersistQueue } from './epic_dispatcher_timeline_persi import { refetchQueries } from './refetch_queries'; import { myEpicTimelineId } from './my_epic_timeline_id'; import { ActionTimeline, TimelineById } from './types'; -import { inputsModel } from '../inputs'; +import { inputsModel } from '../../../common/store/inputs'; export const timelineFavoriteActionsType = [updateIsFavorite.type]; diff --git a/x-pack/plugins/siem/public/store/timeline/epic_note.ts b/x-pack/plugins/siem/public/timelines/store/timeline/epic_note.ts similarity index 93% rename from x-pack/plugins/siem/public/store/timeline/epic_note.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/epic_note.ts index 3722a6ad8036..30b2566de146 100644 --- a/x-pack/plugins/siem/public/store/timeline/epic_note.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/epic_note.ts @@ -12,11 +12,11 @@ import { Epic } from 'redux-observable'; import { from, empty, Observable } from 'rxjs'; import { filter, mergeMap, switchMap, withLatestFrom, startWith, takeUntil } from 'rxjs/operators'; -import { persistTimelineNoteMutation } from '../../containers/timeline/notes/persist.gql_query'; -import { PersistTimelineNoteMutation, ResponseNote } from '../../graphql/types'; -import { updateNote, addError } from '../app/actions'; -import { NotesById } from '../app/model'; -import { inputsModel } from '../inputs'; +import { persistTimelineNoteMutation } from '../../../timelines/containers/notes/persist.gql_query'; +import { PersistTimelineNoteMutation, ResponseNote } from '../../../graphql/types'; +import { updateNote, addError } from '../../../common/store/app/actions'; +import { NotesById } from '../../../common/store/app/model'; +import { inputsModel } from '../../../common/store/inputs'; import { addNote, diff --git a/x-pack/plugins/siem/public/store/timeline/epic_pinned_event.ts b/x-pack/plugins/siem/public/timelines/store/timeline/epic_pinned_event.ts similarity index 95% rename from x-pack/plugins/siem/public/store/timeline/epic_pinned_event.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/epic_pinned_event.ts index a1281250ba72..88c080bb78cc 100644 --- a/x-pack/plugins/siem/public/store/timeline/epic_pinned_event.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/epic_pinned_event.ts @@ -12,10 +12,10 @@ import { Epic } from 'redux-observable'; import { from, Observable, empty } from 'rxjs'; import { filter, mergeMap, startWith, withLatestFrom, takeUntil } from 'rxjs/operators'; -import { persistTimelinePinnedEventMutation } from '../../containers/timeline/pinned_event/persist.gql_query'; -import { PersistTimelinePinnedEventMutation, PinnedEvent } from '../../graphql/types'; -import { addError } from '../app/actions'; -import { inputsModel } from '../inputs'; +import { persistTimelinePinnedEventMutation } from '../../../timelines/containers/pinned_event/persist.gql_query'; +import { PersistTimelinePinnedEventMutation, PinnedEvent } from '../../../graphql/types'; +import { addError } from '../../../common/store/app/actions'; +import { inputsModel } from '../../../common/store/inputs'; import { pinEvent, diff --git a/x-pack/plugins/siem/public/store/timeline/helpers.ts b/x-pack/plugins/siem/public/timelines/store/timeline/helpers.ts similarity index 98% rename from x-pack/plugins/siem/public/store/timeline/helpers.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/helpers.ts index adab029c1115..a8821779169c 100644 --- a/x-pack/plugins/siem/public/store/timeline/helpers.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/helpers.ts @@ -6,21 +6,20 @@ import { getOr, omit, uniq, isEmpty, isEqualWith, union } from 'lodash/fp'; -import { Filter } from '../../../../../../src/plugins/data/public'; - -import { getColumnWidthFromType } from '../../components/timeline/body/column_headers/helpers'; -import { Sort } from '../../components/timeline/body/sort'; +import { Filter } from '../../../../../../../src/plugins/data/public'; +import { getColumnWidthFromType } from '../../../timelines/components/timeline/body/column_headers/helpers'; +import { Sort } from '../../../timelines/components/timeline/body/sort'; import { DataProvider, QueryOperator, QueryMatch, -} from '../../components/timeline/data_providers/data_provider'; -import { KueryFilterQuery, SerializedFilterQuery } from '../model'; +} from '../../../timelines/components/timeline/data_providers/data_provider'; +import { KueryFilterQuery, SerializedFilterQuery } from '../../../common/store/model'; import { timelineDefaults } from './defaults'; import { ColumnHeaderOptions, KqlMode, TimelineModel, EventType } from './model'; import { TimelineById, TimelineState } from './types'; -import { TimelineNonEcsData } from '../../graphql/types'; +import { TimelineNonEcsData } from '../../../graphql/types'; const EMPTY_TIMELINE_BY_ID: TimelineById = {}; // stable reference diff --git a/x-pack/plugins/siem/public/store/timeline/index.ts b/x-pack/plugins/siem/public/timelines/store/timeline/index.ts similarity index 61% rename from x-pack/plugins/siem/public/store/timeline/index.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/index.ts index a1c51905e8d0..48042ddf8991 100644 --- a/x-pack/plugins/siem/public/store/timeline/index.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/index.ts @@ -4,7 +4,17 @@ * you may not use this file except in compliance with the Elastic License. */ +import { AnyAction, Reducer } from 'redux'; import * as timelineActions from './actions'; import * as timelineSelectors from './selectors'; +import { TimelineState } from './types'; export { timelineActions, timelineSelectors }; + +export interface TimelinePluginState { + timeline: TimelineState; +} + +export interface TimelinePluginReducer { + timeline: Reducer; +} diff --git a/x-pack/plugins/siem/public/store/timeline/manage_timeline_id.tsx b/x-pack/plugins/siem/public/timelines/store/timeline/manage_timeline_id.tsx similarity index 100% rename from x-pack/plugins/siem/public/store/timeline/manage_timeline_id.tsx rename to x-pack/plugins/siem/public/timelines/store/timeline/manage_timeline_id.tsx diff --git a/x-pack/plugins/siem/public/store/timeline/model.ts b/x-pack/plugins/siem/public/timelines/store/timeline/model.ts similarity index 91% rename from x-pack/plugins/siem/public/store/timeline/model.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/model.ts index 54e19812634a..1957abafbcc7 100644 --- a/x-pack/plugins/siem/public/store/timeline/model.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/model.ts @@ -4,14 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -import { Filter } from '../../../../../../src/plugins/data/public'; +import { Filter } from '../../../../../../../src/plugins/data/public'; -import { TimelineTypeLiteralWithNull } from '../../../common/types/timeline'; - -import { DataProvider } from '../../components/timeline/data_providers/data_provider'; -import { Sort } from '../../components/timeline/body/sort'; -import { PinnedEvent, TimelineNonEcsData } from '../../graphql/types'; -import { KueryFilterQuery, SerializedFilterQuery } from '../model'; +import { TimelineTypeLiteralWithNull } from '../../../../common/types/timeline'; +import { DataProvider } from '../../../timelines/components/timeline/data_providers/data_provider'; +import { Sort } from '../../../timelines/components/timeline/body/sort'; +import { PinnedEvent, TimelineNonEcsData } from '../../../graphql/types'; +import { KueryFilterQuery, SerializedFilterQuery } from '../../../common/store/model'; export const DEFAULT_PAGE_COUNT = 2; // Eui Pager will not render unless this is a minimum of 2 pages export type KqlMode = 'filter' | 'search'; diff --git a/x-pack/plugins/siem/public/store/timeline/my_epic_timeline_id.ts b/x-pack/plugins/siem/public/timelines/store/timeline/my_epic_timeline_id.ts similarity index 100% rename from x-pack/plugins/siem/public/store/timeline/my_epic_timeline_id.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/my_epic_timeline_id.ts diff --git a/x-pack/plugins/siem/public/store/timeline/reducer.test.ts b/x-pack/plugins/siem/public/timelines/store/timeline/reducer.test.ts similarity index 99% rename from x-pack/plugins/siem/public/store/timeline/reducer.test.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/reducer.test.ts index 42c6d6ecb0e5..65c78ca8efdb 100644 --- a/x-pack/plugins/siem/public/store/timeline/reducer.test.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/reducer.test.ts @@ -6,21 +6,21 @@ import { cloneDeep, set } from 'lodash/fp'; -import { TimelineType } from '../../../common/types/timeline'; +import { TimelineType } from '../../../../common/types/timeline'; import { IS_OPERATOR, DataProvider, DataProvidersAnd, -} from '../../components/timeline/data_providers/data_provider'; -import { defaultColumnHeaderType } from '../../components/timeline/body/column_headers/default_headers'; +} from '../../../timelines/components/timeline/data_providers/data_provider'; +import { defaultColumnHeaderType } from '../../../timelines/components/timeline/body/column_headers/default_headers'; import { DEFAULT_COLUMN_MIN_WIDTH, DEFAULT_TIMELINE_WIDTH, -} from '../../components/timeline/body/constants'; -import { getColumnWidthFromType } from '../../components/timeline/body/column_headers/helpers'; -import { Direction } from '../../graphql/types'; -import { defaultHeaders } from '../../mock'; +} from '../../../timelines/components/timeline/body/constants'; +import { getColumnWidthFromType } from '../../../timelines/components/timeline/body/column_headers/helpers'; +import { Direction } from '../../../graphql/types'; +import { defaultHeaders } from '../../../common/mock'; import { addNewTimeline, diff --git a/x-pack/plugins/siem/public/store/timeline/reducer.ts b/x-pack/plugins/siem/public/timelines/store/timeline/reducer.ts similarity index 100% rename from x-pack/plugins/siem/public/store/timeline/reducer.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/reducer.ts diff --git a/x-pack/plugins/siem/public/store/timeline/refetch_queries.ts b/x-pack/plugins/siem/public/timelines/store/timeline/refetch_queries.ts similarity index 69% rename from x-pack/plugins/siem/public/store/timeline/refetch_queries.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/refetch_queries.ts index a19f91aa530e..f5a30ed831bd 100644 --- a/x-pack/plugins/siem/public/store/timeline/refetch_queries.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/refetch_queries.ts @@ -4,9 +4,9 @@ * you may not use this file except in compliance with the Elastic License. */ -import { allTimelinesQuery } from '../../containers/timeline/all/index.gql_query'; -import { Direction } from '../../graphql/types'; -import { DEFAULT_SORT_FIELD } from '../../components/open_timeline/constants'; +import { allTimelinesQuery } from '../../../timelines/containers/all/index.gql_query'; +import { Direction } from '../../../graphql/types'; +import { DEFAULT_SORT_FIELD } from '../../../timelines/components/open_timeline/constants'; export const refetchQueries = [ { diff --git a/x-pack/plugins/siem/public/store/timeline/selectors.ts b/x-pack/plugins/siem/public/timelines/store/timeline/selectors.ts similarity index 95% rename from x-pack/plugins/siem/public/store/timeline/selectors.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/selectors.ts index 780145ebfa54..03e9d722ac93 100644 --- a/x-pack/plugins/siem/public/store/timeline/selectors.ts +++ b/x-pack/plugins/siem/public/timelines/store/timeline/selectors.ts @@ -6,8 +6,8 @@ import { createSelector } from 'reselect'; -import { isFromKueryExpressionValid } from '../../lib/keury'; -import { State } from '../reducer'; +import { isFromKueryExpressionValid } from '../../../common/lib/keury'; +import { State } from '../../../common/store/reducer'; import { TimelineModel } from './model'; import { AutoSavedWarningMsg, TimelineById } from './types'; diff --git a/x-pack/plugins/siem/public/store/timeline/types.ts b/x-pack/plugins/siem/public/timelines/store/timeline/types.ts similarity index 100% rename from x-pack/plugins/siem/public/store/timeline/types.ts rename to x-pack/plugins/siem/public/timelines/store/timeline/types.ts diff --git a/x-pack/test/api_integration/apis/siem/authentications.ts b/x-pack/test/api_integration/apis/siem/authentications.ts index b89a1448d5fe..2a9a6d669f3f 100644 --- a/x-pack/test/api_integration/apis/siem/authentications.ts +++ b/x-pack/test/api_integration/apis/siem/authentications.ts @@ -6,7 +6,7 @@ import expect from '@kbn/expect'; -import { authenticationsQuery } from '../../../../plugins/siem/public/containers/authentications/index.gql_query'; +import { authenticationsQuery } from '../../../../plugins/siem/public/hosts/containers/authentications/index.gql_query'; import { GetAuthenticationsQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/hosts.ts b/x-pack/test/api_integration/apis/siem/hosts.ts index 0a2ee9c82bce..8acf87d88c5f 100644 --- a/x-pack/test/api_integration/apis/siem/hosts.ts +++ b/x-pack/test/api_integration/apis/siem/hosts.ts @@ -13,9 +13,9 @@ import { GetHostsTableQuery, HostsFields, } from '../../../../plugins/siem/public/graphql/types'; -import { HostOverviewQuery } from '../../../../plugins/siem/public/containers/hosts/overview/host_overview.gql_query'; -import { HostFirstLastSeenGqlQuery } from '../../../../plugins/siem/public/containers/hosts/first_last_seen/first_last_seen.gql_query'; -import { HostsTableQuery } from '../../../../plugins/siem/public/containers/hosts/hosts_table.gql_query'; +import { HostOverviewQuery } from '../../../../plugins/siem/public/hosts/containers/hosts/overview/host_overview.gql_query'; +import { HostFirstLastSeenGqlQuery } from '../../../../plugins/siem/public/hosts/containers/hosts/first_last_seen/first_last_seen.gql_query'; +import { HostsTableQuery } from '../../../../plugins/siem/public/hosts/containers/hosts/hosts_table.gql_query'; import { FtrProviderContext } from '../../ftr_provider_context'; const FROM = new Date('2000-01-01T00:00:00.000Z').valueOf(); diff --git a/x-pack/test/api_integration/apis/siem/ip_overview.ts b/x-pack/test/api_integration/apis/siem/ip_overview.ts index 2f1a792aff25..c0ed9cd2da84 100644 --- a/x-pack/test/api_integration/apis/siem/ip_overview.ts +++ b/x-pack/test/api_integration/apis/siem/ip_overview.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { ipOverviewQuery } from '../../../../plugins/siem/public/containers/ip_overview/index.gql_query'; +import { ipOverviewQuery } from '../../../../plugins/siem/public/network/containers/ip_overview/index.gql_query'; import { GetIpOverviewQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/kpi_host_details.ts b/x-pack/test/api_integration/apis/siem/kpi_host_details.ts index 30f9f6f04a24..c108a6dcbc74 100644 --- a/x-pack/test/api_integration/apis/siem/kpi_host_details.ts +++ b/x-pack/test/api_integration/apis/siem/kpi_host_details.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { kpiHostDetailsQuery } from '../../../../plugins/siem/public/containers/kpi_host_details/index.gql_query'; +import { kpiHostDetailsQuery } from '../../../../plugins/siem/public/hosts/containers/kpi_host_details/index.gql_query'; import { GetKpiHostDetailsQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/kpi_hosts.ts b/x-pack/test/api_integration/apis/siem/kpi_hosts.ts index 2303b9ecfb78..ed4a19f2d7d9 100644 --- a/x-pack/test/api_integration/apis/siem/kpi_hosts.ts +++ b/x-pack/test/api_integration/apis/siem/kpi_hosts.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { kpiHostsQuery } from '../../../../plugins/siem/public/containers/kpi_hosts/index.gql_query'; +import { kpiHostsQuery } from '../../../../plugins/siem/public/hosts/containers/kpi_hosts/index.gql_query'; import { GetKpiHostsQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/kpi_network.ts b/x-pack/test/api_integration/apis/siem/kpi_network.ts index 22e133e48bbd..28f7c80eb320 100644 --- a/x-pack/test/api_integration/apis/siem/kpi_network.ts +++ b/x-pack/test/api_integration/apis/siem/kpi_network.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { kpiNetworkQuery } from '../../../../plugins/siem/public/containers/kpi_network/index.gql_query'; +import { kpiNetworkQuery } from '../../../../plugins/siem/public/network/containers/kpi_network/index.gql_query'; import { GetKpiNetworkQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/network_dns.ts b/x-pack/test/api_integration/apis/siem/network_dns.ts index 1eba41e238c8..590727362d7a 100644 --- a/x-pack/test/api_integration/apis/siem/network_dns.ts +++ b/x-pack/test/api_integration/apis/siem/network_dns.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { networkDnsQuery } from '../../../../plugins/siem/public/containers/network_dns/index.gql_query'; +import { networkDnsQuery } from '../../../../plugins/siem/public/network/containers/network_dns/index.gql_query'; import { Direction, GetNetworkDnsQuery, diff --git a/x-pack/test/api_integration/apis/siem/network_top_n_flow.ts b/x-pack/test/api_integration/apis/siem/network_top_n_flow.ts index 6ab7945e9000..19948967c180 100644 --- a/x-pack/test/api_integration/apis/siem/network_top_n_flow.ts +++ b/x-pack/test/api_integration/apis/siem/network_top_n_flow.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { networkTopNFlowQuery } from '../../../../plugins/siem/public/containers/network_top_n_flow/index.gql_query'; +import { networkTopNFlowQuery } from '../../../../plugins/siem/public/network/containers/network_top_n_flow/index.gql_query'; import { Direction, FlowTargetSourceDest, diff --git a/x-pack/test/api_integration/apis/siem/overview_host.ts b/x-pack/test/api_integration/apis/siem/overview_host.ts index 95dbb44e30c4..fe9d04a16c62 100644 --- a/x-pack/test/api_integration/apis/siem/overview_host.ts +++ b/x-pack/test/api_integration/apis/siem/overview_host.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { DEFAULT_INDEX_PATTERN } from '../../../../plugins/siem/common/constants'; -import { overviewHostQuery } from '../../../../plugins/siem/public/containers/overview/overview_host/index.gql_query'; +import { overviewHostQuery } from '../../../../plugins/siem/public/overview/containers//overview_host/index.gql_query'; import { GetOverviewHostQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/overview_network.ts b/x-pack/test/api_integration/apis/siem/overview_network.ts index ef7d82d2ea8d..1b8354e0632f 100644 --- a/x-pack/test/api_integration/apis/siem/overview_network.ts +++ b/x-pack/test/api_integration/apis/siem/overview_network.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { overviewNetworkQuery } from '../../../../plugins/siem/public/containers/overview/overview_network/index.gql_query'; +import { overviewNetworkQuery } from '../../../../plugins/siem/public/overview/containers/overview_network/index.gql_query'; import { GetOverviewNetworkQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/saved_objects/notes.ts b/x-pack/test/api_integration/apis/siem/saved_objects/notes.ts index 75670374b6f6..76c4afb08466 100644 --- a/x-pack/test/api_integration/apis/siem/saved_objects/notes.ts +++ b/x-pack/test/api_integration/apis/siem/saved_objects/notes.ts @@ -8,7 +8,7 @@ import expect from '@kbn/expect'; import gql from 'graphql-tag'; import { FtrProviderContext } from '../../../ftr_provider_context'; -import { persistTimelineNoteMutation } from '../../../../../plugins/siem/public/containers/timeline/notes/persist.gql_query'; +import { persistTimelineNoteMutation } from '../../../../../plugins/siem/public/timelines/containers/notes/persist.gql_query'; export default function({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/api_integration/apis/siem/saved_objects/pinned_events.ts b/x-pack/test/api_integration/apis/siem/saved_objects/pinned_events.ts index 39055e971d11..4d24ea988215 100644 --- a/x-pack/test/api_integration/apis/siem/saved_objects/pinned_events.ts +++ b/x-pack/test/api_integration/apis/siem/saved_objects/pinned_events.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { FtrProviderContext } from '../../../ftr_provider_context'; -import { persistTimelinePinnedEventMutation } from '../../../../../plugins/siem/public/containers/timeline/pinned_event/persist.gql_query'; +import { persistTimelinePinnedEventMutation } from '../../../../../plugins/siem/public/timelines/containers/pinned_event/persist.gql_query'; export default function({ getService }: FtrProviderContext) { const esArchiver = getService('esArchiver'); diff --git a/x-pack/test/api_integration/apis/siem/saved_objects/timeline.ts b/x-pack/test/api_integration/apis/siem/saved_objects/timeline.ts index 2d9f576ef37e..b6f272b8d754 100644 --- a/x-pack/test/api_integration/apis/siem/saved_objects/timeline.ts +++ b/x-pack/test/api_integration/apis/siem/saved_objects/timeline.ts @@ -15,9 +15,9 @@ import ApolloClient from 'apollo-client'; import { FtrProviderContext } from '../../../ftr_provider_context'; -import { deleteTimelineMutation } from '../../../../../plugins/siem/public/containers/timeline/delete/persist.gql_query'; -import { persistTimelineFavoriteMutation } from '../../../../../plugins/siem/public/containers/timeline/favorite/persist.gql_query'; -import { persistTimelineMutation } from '../../../../../plugins/siem/public/containers/timeline/persist.gql_query'; +import { deleteTimelineMutation } from '../../../../../plugins/siem/public/timelines/containers/delete/persist.gql_query'; +import { persistTimelineFavoriteMutation } from '../../../../../plugins/siem/public/timelines/containers/favorite/persist.gql_query'; +import { persistTimelineMutation } from '../../../../../plugins/siem/public/timelines/containers/persist.gql_query'; import { TimelineResult } from '../../../../../plugins/siem/public/graphql/types'; export default function({ getService }: FtrProviderContext) { diff --git a/x-pack/test/api_integration/apis/siem/sources.ts b/x-pack/test/api_integration/apis/siem/sources.ts index 2338d4ce45c8..b17280703c94 100644 --- a/x-pack/test/api_integration/apis/siem/sources.ts +++ b/x-pack/test/api_integration/apis/siem/sources.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { sourceQuery } from '../../../../plugins/siem/public/containers/source/index.gql_query'; +import { sourceQuery } from '../../../../plugins/siem/public/common/containers/source/index.gql_query'; import { SourceQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/timeline.ts b/x-pack/test/api_integration/apis/siem/timeline.ts index de57b0c3f469..14cc957d98eb 100644 --- a/x-pack/test/api_integration/apis/siem/timeline.ts +++ b/x-pack/test/api_integration/apis/siem/timeline.ts @@ -6,7 +6,7 @@ import expect from '@kbn/expect'; -import { timelineQuery } from '../../../../plugins/siem/public/containers/timeline/index.gql_query'; +import { timelineQuery } from '../../../../plugins/siem/public/timelines/containers/index.gql_query'; import { Direction, GetTimelineQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/timeline_details.ts b/x-pack/test/api_integration/apis/siem/timeline_details.ts index f88d5355f22c..920879cf9cf3 100644 --- a/x-pack/test/api_integration/apis/siem/timeline_details.ts +++ b/x-pack/test/api_integration/apis/siem/timeline_details.ts @@ -7,7 +7,7 @@ import expect from '@kbn/expect'; import { sortBy } from 'lodash'; -import { timelineDetailsQuery } from '../../../../plugins/siem/public/containers/timeline/details/index.gql_query'; +import { timelineDetailsQuery } from '../../../../plugins/siem/public/timelines/containers/details/index.gql_query'; import { DetailItem, GetTimelineDetailsQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/tls.ts b/x-pack/test/api_integration/apis/siem/tls.ts index e4e8b5db3d7e..8ee2ef43efe3 100644 --- a/x-pack/test/api_integration/apis/siem/tls.ts +++ b/x-pack/test/api_integration/apis/siem/tls.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { tlsQuery } from '../../../../plugins/siem/public/containers/tls/index.gql_query'; +import { tlsQuery } from '../../../../plugins/siem/public/network/containers/tls/index.gql_query'; import { Direction, TlsFields, diff --git a/x-pack/test/api_integration/apis/siem/uncommon_processes.ts b/x-pack/test/api_integration/apis/siem/uncommon_processes.ts index c9674e740f76..325f2f83e53d 100644 --- a/x-pack/test/api_integration/apis/siem/uncommon_processes.ts +++ b/x-pack/test/api_integration/apis/siem/uncommon_processes.ts @@ -6,7 +6,7 @@ import expect from '@kbn/expect'; -import { uncommonProcessesQuery } from '../../../../plugins/siem/public/containers/uncommon_processes/index.gql_query'; +import { uncommonProcessesQuery } from '../../../../plugins/siem/public/hosts/containers/uncommon_processes/index.gql_query'; import { GetUncommonProcessesQuery } from '../../../../plugins/siem/public/graphql/types'; import { FtrProviderContext } from '../../ftr_provider_context'; diff --git a/x-pack/test/api_integration/apis/siem/users.ts b/x-pack/test/api_integration/apis/siem/users.ts index c8ea1be7d3f1..c6ac571e86eb 100644 --- a/x-pack/test/api_integration/apis/siem/users.ts +++ b/x-pack/test/api_integration/apis/siem/users.ts @@ -5,7 +5,7 @@ */ import expect from '@kbn/expect'; -import { usersQuery } from '../../../../plugins/siem/public/containers/users/index.gql_query'; +import { usersQuery } from '../../../../plugins/siem/public/network/containers/users/index.gql_query'; import { Direction, UsersFields, From 96bc66386201b503dc94c8497fed2c5784559635 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Tue, 12 May 2020 10:35:39 +0300 Subject: [PATCH 45/67] [Flights] Delay Bucket - Error notification on opening sample visualization (#66028) Closes: #66024 --- .../data/common/es_query/es_query/migrate_filter.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/src/plugins/data/common/es_query/es_query/migrate_filter.ts b/src/plugins/data/common/es_query/es_query/migrate_filter.ts index 22fbfe0e1ab0..a0529d585879 100644 --- a/src/plugins/data/common/es_query/es_query/migrate_filter.ts +++ b/src/plugins/data/common/es_query/es_query/migrate_filter.ts @@ -43,18 +43,25 @@ export function migrateFilter(filter: Filter, indexPattern?: IIndexPattern) { if (isDeprecatedMatchPhraseFilter(filter)) { const fieldName = Object.keys(filter.query.match)[0]; const params: Record = get(filter, ['query', 'match', fieldName]); + let query = params.query; if (indexPattern) { const field = indexPattern.fields.find(f => f.name === fieldName); if (field) { - params.query = getConvertedValueForField(field, params.query); + query = getConvertedValueForField(field, params.query); } } return { ...filter, query: { match_phrase: { - [fieldName]: omit(params, 'type'), + [fieldName]: omit( + { + ...params, + query, + }, + 'type' + ), }, }, }; From 2ad2bfa9069e66d183e3ce9c3146d953af56bdc2 Mon Sep 17 00:00:00 2001 From: Jean-Louis Leysens Date: Tue, 12 May 2020 09:37:03 +0200 Subject: [PATCH 46/67] Fix heigt calc in calc issue for ie11 (#66010) --- src/plugins/console/public/styles/_app.scss | 5 ++++- x-pack/plugins/painless_lab/public/styles/_index.scss | 7 +++++-- x-pack/plugins/searchprofiler/public/styles/_index.scss | 5 ++++- 3 files changed, 13 insertions(+), 4 deletions(-) diff --git a/src/plugins/console/public/styles/_app.scss b/src/plugins/console/public/styles/_app.scss index 047db6e3ad87..c41df24912c2 100644 --- a/src/plugins/console/public/styles/_app.scss +++ b/src/plugins/console/public/styles/_app.scss @@ -1,8 +1,11 @@ // TODO: Move all of the styles here (should be modularised by, e.g., CSS-in-JS or CSS modules). @import '@elastic/eui/src/components/header/variables'; +// This value is calculated to static value using SCSS because calc in calc has issues in IE11 +$headerHeightOffset: $euiHeaderHeightCompensation * 2; + #consoleRoot { - height: calc(100vh - calc(#{$euiHeaderChildSize} * 2)); + height: calc(100vh - #{$headerHeightOffset}); display: flex; flex: 1 1 auto; // Make sure the editor actions don't create scrollbars on this container diff --git a/x-pack/plugins/painless_lab/public/styles/_index.scss b/x-pack/plugins/painless_lab/public/styles/_index.scss index df68a6450c19..e6c9574161fd 100644 --- a/x-pack/plugins/painless_lab/public/styles/_index.scss +++ b/x-pack/plugins/painless_lab/public/styles/_index.scss @@ -5,7 +5,7 @@ * This is a very brittle way of preventing the editor and other content from disappearing * behind the bottom bar. */ -$bottomBarHeight: calc(#{$euiSize} * 3); +$bottomBarHeight: $euiSize * 3; .painlessLabBottomBarPlaceholder { height: $bottomBarHeight; @@ -40,8 +40,11 @@ $bottomBarHeight: calc(#{$euiSize} * 3); line-height: 0; } +// This value is calculated to static value using SCSS because calc in calc has issues in IE11 +$headerHeightOffset: $euiHeaderHeightCompensation * 2; + .painlessLabMainContainer { - height: calc(100vh - calc(#{$euiHeaderChildSize} * 2) - #{$bottomBarHeight}); + height: calc(100vh - #{$headerHeightOffset} - #{$bottomBarHeight}); } .painlessLabPanelsContainer { diff --git a/x-pack/plugins/searchprofiler/public/styles/_index.scss b/x-pack/plugins/searchprofiler/public/styles/_index.scss index 5c35e9a23b8a..e63042cf8fe2 100644 --- a/x-pack/plugins/searchprofiler/public/styles/_index.scss +++ b/x-pack/plugins/searchprofiler/public/styles/_index.scss @@ -47,8 +47,11 @@ } } +// This value is calculated to static value using SCSS because calc in calc has issues in IE11 +$headerHeightOffset: $euiHeaderHeightCompensation * 2; + .appRoot { - height: calc(100vh - calc(#{$euiHeaderChildSize} * 2)); + height: calc(100vh - #{$headerHeightOffset}); overflow: hidden; flex-shrink: 1; } From f3548d6c838776b2e84138c7cc7500c46560d867 Mon Sep 17 00:00:00 2001 From: Alexey Antonov Date: Tue, 12 May 2020 11:24:03 +0300 Subject: [PATCH 47/67] Inspect action shows on dashboard for every chart (#65998) Closes: #60372 --- .../public/embeddable/visualize_embeddable.ts | 18 ++++-------------- 1 file changed, 4 insertions(+), 14 deletions(-) diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts index 10704514ab8d..f5a840c480aa 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable.ts @@ -71,6 +71,8 @@ export interface VisualizeOutput extends EmbeddableOutput { type ExpressionLoader = InstanceType; +const visTypesWithoutInspector = ['markdown', 'input_control_vis', 'metrics', 'vega', 'timelion']; + export class VisualizeEmbeddable extends Embeddable { private handler?: ExpressionLoader; private timefilter: TimefilterContract; @@ -126,7 +128,7 @@ export class VisualizeEmbeddable extends Embeddable { - if (!this.handler) { + if (!this.handler || visTypesWithoutInspector.includes(this.vis.type.name)) { return undefined; } return this.handler.inspect(); @@ -215,19 +217,7 @@ export class VisualizeEmbeddable extends Embeddable { - const visTypesWithoutInspector = [ - 'markdown', - 'input_control_vis', - 'metrics', - 'vega', - 'timelion', - ]; - if (visTypesWithoutInspector.includes(this.vis.type.name)) { - return false; - } - return this.getInspectorAdapters(); - }; + hasInspector = () => Boolean(this.getInspectorAdapters()); /** * From 724f2820599963708c58ccb4de265ab177f47898 Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Tue, 12 May 2020 10:30:19 +0200 Subject: [PATCH 48/67] [Drilldowns][IE] fix welcome bar layout in IE (#65676) * fix drilldown hello bar in IE * fix comment * use children instead of title for EuiCallOut content Co-authored-by: Elastic Machine --- .../drilldown_hello_bar.tsx | 53 +++++++++---------- 1 file changed, 25 insertions(+), 28 deletions(-) diff --git a/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/drilldown_hello_bar.tsx b/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/drilldown_hello_bar.tsx index 48e17dadc810..99885e5cc40f 100644 --- a/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/drilldown_hello_bar.tsx +++ b/x-pack/plugins/drilldowns/public/components/drilldown_hello_bar/drilldown_hello_bar.tsx @@ -30,33 +30,30 @@ export const DrilldownHelloBar: React.FC = ({ onHideClick = () => {}, }) => { return ( - - -
- -
-
- - - {txtHelpText} - - {docsLink && ( - <> - - {txtViewDocsLinkLabel} - - )} - - - - {txtHideHelpButtonLabel} - - - - } - /> + + + +
+ +
+
+ + + {txtHelpText} + + {docsLink && ( + <> + + {txtViewDocsLinkLabel} + + )} + + + + {txtHideHelpButtonLabel} + + +
+
); }; From 69a61d4ee78765bbccc3911c7d125ea35cf63b6c Mon Sep 17 00:00:00 2001 From: Dmitry Lemeshko Date: Tue, 12 May 2020 11:53:20 +0300 Subject: [PATCH 49/67] [functional/services] import By/until from module (#66015) Co-authored-by: Elastic Machine --- test/functional/services/find.ts | 10 +++------ .../web_element_wrapper.ts | 21 +++++++------------ test/functional/services/remote/remote.ts | 4 ++-- test/functional/services/remote/webdriver.ts | 4 ++-- 4 files changed, 14 insertions(+), 25 deletions(-) diff --git a/test/functional/services/find.ts b/test/functional/services/find.ts index 09fc32115f68..3697e9446107 100644 --- a/test/functional/services/find.ts +++ b/test/functional/services/find.ts @@ -17,20 +17,16 @@ * under the License. */ -import { WebDriver, WebElement, By } from 'selenium-webdriver'; +import { WebDriver, WebElement, By, until } from 'selenium-webdriver'; import { FtrProviderContext } from '../ftr_provider_context'; import { WebElementWrapper } from './lib/web_element_wrapper'; export async function FindProvider({ getService }: FtrProviderContext) { const log = getService('log'); const config = getService('config'); - const webdriver = await getService('__webdriver__').init(); + const { driver, browserType } = await getService('__webdriver__').init(); const retry = getService('retry'); - const driver = webdriver.driver; - const until = webdriver.until; - const browserType = webdriver.browserType; - const WAIT_FOR_EXISTS_TIME = config.get('timeouts.waitForExists'); const POLLING_TIME = 500; const defaultFindTimeout = config.get('timeouts.find'); @@ -40,7 +36,7 @@ export async function FindProvider({ getService }: FtrProviderContext) { WebElementWrapper.create( webElement, locator, - webdriver, + driver, defaultFindTimeout, fixedHeaderHeight, log, diff --git a/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts b/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts index 8b57ecd3c823..615dc783601b 100644 --- a/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts +++ b/test/functional/services/lib/web_element_wrapper/web_element_wrapper.ts @@ -18,7 +18,7 @@ */ import { delay } from 'bluebird'; -import { WebElement, WebDriver, By, Key, until } from 'selenium-webdriver'; +import { WebElement, WebDriver, By, Key } from 'selenium-webdriver'; import { PNG } from 'pngjs'; // @ts-ignore not supported yet import cheerio from 'cheerio'; @@ -29,12 +29,6 @@ import { CustomCheerio, CustomCheerioStatic } from './custom_cheerio_api'; import { scrollIntoViewIfNecessary } from './scroll_into_view_if_necessary'; import { Browsers } from '../../remote/browsers'; -interface Driver { - driver: WebDriver; - By: typeof By; - until: typeof until; -} - interface TypeOptions { charByChar: boolean; } @@ -51,16 +45,15 @@ const RETRY_CLICK_RETRY_ON_ERRORS = [ ]; export class WebElementWrapper { - private By = this.webDriver.By; - private driver: WebDriver = this.webDriver.driver; + private By = By; private Keys = Key; - public isW3CEnabled: boolean = (this.webDriver.driver as any).executor_.w3c === true; + public isW3CEnabled: boolean = (this.driver as any).executor_.w3c === true; public isChromium: boolean = [Browsers.Chrome, Browsers.ChromiumEdge].includes(this.browserType); public static create( webElement: WebElement | WebElementWrapper, locator: By | null, - webDriver: Driver, + driver: WebDriver, timeout: number, fixedHeaderHeight: number, logger: ToolingLog, @@ -73,7 +66,7 @@ export class WebElementWrapper { return new WebElementWrapper( webElement, locator, - webDriver, + driver, timeout, fixedHeaderHeight, logger, @@ -84,7 +77,7 @@ export class WebElementWrapper { constructor( public _webElement: WebElement, private locator: By | null, - private webDriver: Driver, + private driver: WebDriver, private timeout: number, private fixedHeaderHeight: number, private logger: ToolingLog, @@ -109,7 +102,7 @@ export class WebElementWrapper { return WebElementWrapper.create( otherWebElement, locator, - this.webDriver, + this.driver, this.timeout, this.fixedHeaderHeight, this.logger, diff --git a/test/functional/services/remote/remote.ts b/test/functional/services/remote/remote.ts index 933b08f7681e..770e82ad461d 100644 --- a/test/functional/services/remote/remote.ts +++ b/test/functional/services/remote/remote.ts @@ -58,7 +58,7 @@ export async function RemoteProvider({ getService }: FtrProviderContext) { Fs.writeFileSync(path, JSON.stringify(JSON.parse(coverageJson), null, 2)); }; - const { driver, By, until, consoleLog$ } = await initWebDriver( + const { driver, consoleLog$ } = await initWebDriver( log, browserType, lifecycle, @@ -153,5 +153,5 @@ export async function RemoteProvider({ getService }: FtrProviderContext) { await driver.quit(); }); - return { driver, By, until, browserType, consoleLog$ }; + return { driver, browserType, consoleLog$ }; } diff --git a/test/functional/services/remote/webdriver.ts b/test/functional/services/remote/webdriver.ts index df79db50b868..27d17bf75465 100644 --- a/test/functional/services/remote/webdriver.ts +++ b/test/functional/services/remote/webdriver.ts @@ -28,7 +28,7 @@ import { delay } from 'bluebird'; import chromeDriver from 'chromedriver'; // @ts-ignore types not available import geckoDriver from 'geckodriver'; -import { Builder, Capabilities, By, logging, until } from 'selenium-webdriver'; +import { Builder, Capabilities, logging } from 'selenium-webdriver'; import chrome from 'selenium-webdriver/chrome'; import firefox from 'selenium-webdriver/firefox'; import edge from 'selenium-webdriver/edge'; @@ -310,7 +310,7 @@ async function attemptToCreateCommand( return; } // abort - return { driver: session, By, until, consoleLog$ }; + return { driver: session, consoleLog$ }; } export async function initWebDriver( From 0f5c1ed95ae4a295101eb3f12dbca843a60abd3f Mon Sep 17 00:00:00 2001 From: Anton Dosov Date: Tue, 12 May 2020 10:57:49 +0200 Subject: [PATCH 50/67] [Drilldowns][chore] Remove some any's from components. Remove `PlaceContext` from components (#65854) Co-authored-by: Elastic Machine --- .../public/drilldowns/drilldown_definition.ts | 5 ---- .../public/dynamic_actions/types.ts | 4 +-- .../flyout_create_drilldown.tsx | 1 - .../flyout_edit_drilldown.tsx | 1 - ...nnected_flyout_manage_drilldowns.story.tsx | 2 +- ...onnected_flyout_manage_drilldowns.test.tsx | 27 +++++-------------- .../connected_flyout_manage_drilldowns.tsx | 16 +++++------ .../flyout_drilldown_wizard.story.tsx | 19 ++++++++++--- .../flyout_drilldown_wizard.tsx | 2 +- 9 files changed, 31 insertions(+), 46 deletions(-) diff --git a/x-pack/plugins/advanced_ui_actions/public/drilldowns/drilldown_definition.ts b/x-pack/plugins/advanced_ui_actions/public/drilldowns/drilldown_definition.ts index 16c8077d727c..f01dd22c06bc 100644 --- a/x-pack/plugins/advanced_ui_actions/public/drilldowns/drilldown_definition.ts +++ b/x-pack/plugins/advanced_ui_actions/public/drilldowns/drilldown_definition.ts @@ -15,11 +15,6 @@ import { ActionFactoryDefinition } from '../dynamic_actions'; * `Config` is a serializable object containing the configuration that the * drilldown is able to collect using UI. * - * `PlaceContext` is an object that the app that opens drilldown management - * flyout provides to the React component, specifying the contextual information - * about that app. For example, on Dashboard app this context contains - * information about the current embeddable and dashboard. - * * `ExecutionContext` is an object created in response to user's interaction * and provided to the `execute` function of the drilldown. This object contains * information about the action user performed. diff --git a/x-pack/plugins/advanced_ui_actions/public/dynamic_actions/types.ts b/x-pack/plugins/advanced_ui_actions/public/dynamic_actions/types.ts index 9148d1ec7055..fb513e892d41 100644 --- a/x-pack/plugins/advanced_ui_actions/public/dynamic_actions/types.ts +++ b/x-pack/plugins/advanced_ui_actions/public/dynamic_actions/types.ts @@ -4,7 +4,7 @@ * you may not use this file except in compliance with the Elastic License. */ -export interface SerializedAction { +export interface SerializedAction { readonly factoryId: string; readonly name: string; readonly config: Config; @@ -16,5 +16,5 @@ export interface SerializedAction { export interface SerializedEvent { eventId: string; triggers: string[]; - action: SerializedAction; + action: SerializedAction; } diff --git a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_create_drilldown/flyout_create_drilldown.tsx b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_create_drilldown/flyout_create_drilldown.tsx index 81f88e563a25..381cad443e3a 100644 --- a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_create_drilldown/flyout_create_drilldown.tsx +++ b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_create_drilldown/flyout_create_drilldown.tsx @@ -72,7 +72,6 @@ export class FlyoutCreateDrilldownAction implements ActionByType handle.close()} - placeContext={context} viewMode={'create'} dynamicActionManager={embeddable.enhancements.dynamicActions} /> diff --git a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/flyout_edit_drilldown.tsx b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/flyout_edit_drilldown.tsx index a4499ba4d757..5d2a90fdaff0 100644 --- a/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/flyout_edit_drilldown.tsx +++ b/x-pack/plugins/dashboard_enhanced/public/services/drilldowns/actions/flyout_edit_drilldown/flyout_edit_drilldown.tsx @@ -60,7 +60,6 @@ export class FlyoutEditDrilldownAction implements ActionByType handle.close()} - placeContext={context} viewMode={'manage'} dynamicActionManager={embeddable.enhancements.dynamicActions} /> diff --git a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.story.tsx b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.story.tsx index 16b4d3a25d9e..a186feec3392 100644 --- a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.story.tsx +++ b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.story.tsx @@ -38,6 +38,6 @@ const FlyoutManageDrilldowns = createFlyoutManageDrilldowns({ storiesOf('components/FlyoutManageDrilldowns', module).add('default', () => ( {}}> - + )); diff --git a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx index 52c53f32ff09..152eaf18f16c 100644 --- a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx +++ b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.test.tsx @@ -43,9 +43,7 @@ beforeEach(() => { }); test('Allows to manage drilldowns', async () => { - const screen = render( - - ); + const screen = render(); // wait for initial render. It is async because resolving compatible action factories is async await wait(() => expect(screen.getByText(/Manage Drilldowns/i)).toBeVisible()); @@ -112,9 +110,7 @@ test('Allows to manage drilldowns', async () => { }); test('Can delete multiple drilldowns', async () => { - const screen = render( - - ); + const screen = render(); // wait for initial render. It is async because resolving compatible action factories is async await wait(() => expect(screen.getByText(/Manage Drilldowns/i)).toBeVisible()); @@ -151,7 +147,6 @@ test('Create only mode', async () => { const onClose = jest.fn(); const screen = render( { test('After switching between action factories state is restored', async () => { const screen = render( - + ); // wait for initial render. It is async because resolving compatible action factories is async await wait(() => expect(screen.getAllByText(/Create/i).length).toBeGreaterThan(0)); @@ -216,9 +207,7 @@ test("Error when can't save drilldown changes", async () => { jest.spyOn(mockDynamicActionManager, 'createEvent').mockImplementationOnce(async () => { throw error; }); - const screen = render( - - ); + const screen = render(); // wait for initial render. It is async because resolving compatible action factories is async await wait(() => expect(screen.getByText(/Manage Drilldowns/i)).toBeVisible()); fireEvent.click(screen.getByText(/Create new/i)); @@ -236,9 +225,7 @@ test("Error when can't save drilldown changes", async () => { }); test('Should show drilldown welcome message. Should be able to dismiss it', async () => { - let screen = render( - - ); + let screen = render(); // wait for initial render. It is async because resolving compatible action factories is async await wait(() => expect(screen.getByText(/Manage Drilldowns/i)).toBeVisible()); @@ -248,9 +235,7 @@ test('Should show drilldown welcome message. Should be able to dismiss it', asyn expect(screen.queryByTestId(WELCOME_MESSAGE_TEST_SUBJ)).toBeNull(); cleanup(); - screen = render( - - ); + screen = render(); // wait for initial render. It is async because resolving compatible action factories is async await wait(() => expect(screen.getByText(/Manage Drilldowns/i)).toBeVisible()); expect(screen.queryByTestId(WELCOME_MESSAGE_TEST_SUBJ)).toBeNull(); diff --git a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx index 5ebda079a15b..ba273e7d578f 100644 --- a/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx +++ b/x-pack/plugins/drilldowns/public/components/connected_flyout_manage_drilldowns/connected_flyout_manage_drilldowns.tsx @@ -32,8 +32,7 @@ import { toastDrilldownsDeleted, } from './i18n'; -interface ConnectedFlyoutManageDrilldownsProps { - placeContext: Context; +interface ConnectedFlyoutManageDrilldownsProps { dynamicActionManager: DynamicActionManager; viewMode?: 'create' | 'manage'; onClose?: () => void; @@ -75,10 +74,9 @@ export function createFlyoutManageDrilldowns({ const factoryContext: object = React.useMemo( () => ({ - placeContext: props.placeContext, triggers: selectedTriggers, }), - [props.placeContext, selectedTriggers] + [selectedTriggers] ); const actionFactories = useCompatibleActionFactoriesForCurrentContext( @@ -222,12 +220,10 @@ export function createFlyoutManageDrilldowns({ } function useCompatibleActionFactoriesForCurrentContext( - actionFactories: Array>, + actionFactories: ActionFactory[], context: Context ) { - const [compatibleActionFactories, setCompatibleActionFactories] = useState< - Array> - >(); + const [compatibleActionFactories, setCompatibleActionFactories] = useState(); useEffect(() => { let canceled = false; async function updateCompatibleFactoriesForContext() { @@ -283,7 +279,7 @@ function useDrilldownsStateManager( } async function createDrilldown( - action: UiActionsEnhancedSerializedAction, + action: UiActionsEnhancedSerializedAction, selectedTriggers: Array ) { await run(async () => { @@ -297,7 +293,7 @@ function useDrilldownsStateManager( async function editDrilldown( drilldownId: string, - action: UiActionsEnhancedSerializedAction, + action: UiActionsEnhancedSerializedAction, selectedTriggers: Array ) { await run(async () => { diff --git a/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.story.tsx b/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.story.tsx index 152cd393b9d3..add8b748afee 100644 --- a/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.story.tsx +++ b/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.story.tsx @@ -15,17 +15,25 @@ import { urlFactory, // eslint-disable-next-line @kbn/eslint/no-restricted-paths } from '../../../../advanced_ui_actions/public/components/action_wizard/test_data'; +import { AdvancedUiActionsActionFactory as ActionFactory } from '../../../../advanced_ui_actions/public/'; storiesOf('components/FlyoutDrilldownWizard', module) .add('default', () => { - return ; + return ( + + ); }) .add('open in flyout - create', () => { return ( {}}> {}} - drilldownActionFactories={[urlFactory, dashboardFactory]} + drilldownActionFactories={[ + urlFactory as ActionFactory, + dashboardFactory as ActionFactory, + ]} /> ); @@ -35,7 +43,10 @@ storiesOf('components/FlyoutDrilldownWizard', module) {}}> {}} - drilldownActionFactories={[urlFactory, dashboardFactory]} + drilldownActionFactories={[ + urlFactory as ActionFactory, + dashboardFactory as ActionFactory, + ]} initialDrilldownWizardConfig={{ name: 'My fancy drilldown', actionFactory: urlFactory as any, @@ -54,7 +65,7 @@ storiesOf('components/FlyoutDrilldownWizard', module) {}}> {}} - drilldownActionFactories={[dashboardFactory]} + drilldownActionFactories={[dashboardFactory as ActionFactory]} initialDrilldownWizardConfig={{ name: 'My fancy drilldown', actionFactory: urlFactory as any, diff --git a/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.tsx b/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.tsx index 1f775a5ff103..84c1a04a71d1 100644 --- a/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.tsx +++ b/x-pack/plugins/drilldowns/public/components/flyout_drilldown_wizard/flyout_drilldown_wizard.tsx @@ -25,7 +25,7 @@ export interface DrilldownWizardConfig { } export interface FlyoutDrilldownWizardProps { - drilldownActionFactories: Array>; + drilldownActionFactories: ActionFactory[]; onSubmit?: (drilldownWizardConfig: Required) => void; onDelete?: () => void; From 592e23496f9b7072f252946502ace4692fb71ab8 Mon Sep 17 00:00:00 2001 From: Shahzad Date: Tue, 12 May 2020 11:16:32 +0200 Subject: [PATCH 51/67] [Uptime] Enable deselection of stale filters (#65523) --- .../overview/alerts/add_filter_btn.tsx | 4 +- .../filters_expression_select.tsx | 41 ++++++++++--------- .../filter_popover.test.tsx.snap | 12 +++--- .../overview/filter_group/filter_group.tsx | 15 +++---- .../overview/filter_group/filter_popover.tsx | 14 ++++++- .../uptime/public/hooks/use_filter_update.ts | 17 +++++++- 6 files changed, 64 insertions(+), 39 deletions(-) diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/add_filter_btn.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/add_filter_btn.tsx index c52489984dab..c33cba73ee97 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/add_filter_btn.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/add_filter_btn.tsx @@ -17,9 +17,9 @@ interface Props { export const AddFilterButton: React.FC = ({ newFilters, onNewFilter }) => { const [isPopoverOpen, setPopover] = useState(false); - const currentFilters = useFilterUpdate(); + const { selectedFilters } = useFilterUpdate(); - const getSelectedItems = (fieldName: string) => currentFilters.get(fieldName) || []; + const getSelectedItems = (fieldName: string) => selectedFilters.get(fieldName) || []; const onButtonClick = () => { setPopover(!isPopoverOpen); diff --git a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx index 8298f202b945..a6728643146d 100644 --- a/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx +++ b/x-pack/plugins/uptime/public/components/overview/alerts/monitor_expressions/filters_expression_select.tsx @@ -31,7 +31,10 @@ export const FiltersExpressionsSelect: React.FC = ({ values: string[]; }>({ fieldName: '', values: [] }); - const currentFilters = useFilterUpdate(updatedFieldValues.fieldName, updatedFieldValues.values); + const { selectedLocations, selectedPorts, selectedSchemes, selectedTags } = useFilterUpdate( + updatedFieldValues.fieldName, + updatedFieldValues.values + ); useEffect(() => { if (updatedFieldValues.fieldName === 'observer.geo.name') { @@ -45,13 +48,6 @@ export const FiltersExpressionsSelect: React.FC = ({ // eslint-disable-next-line react-hooks/exhaustive-deps }, []); - const selectedTags = currentFilters.get('tags'); - const selectedPorts = currentFilters.get('url.port'); - const selectedScheme = currentFilters.get('monitor.type'); - const selectedLocation = currentFilters.get('observer.geo.name'); - - const getSelectedItems = (fieldName: string) => currentFilters.get(fieldName) || []; - const onFilterFieldChange = (fieldName: string, values: string[]) => { setUpdatedFieldValues({ fieldName, values }); }; @@ -64,10 +60,11 @@ export const FiltersExpressionsSelect: React.FC = ({ id: 'filter_port', disabled: ports?.length === 0, items: ports?.map((p: number) => p.toString()) ?? [], - selectedItems: getSelectedItems('url.port'), + selectedItems: selectedPorts, title: filterLabels.PORT, - description: selectedPorts ? alertFilterLabels.USING_PORT : alertFilterLabels.USING, - value: selectedPorts?.join(',') ?? alertFilterLabels.ANY_PORT, + description: + selectedPorts.length === 0 ? alertFilterLabels.USING : alertFilterLabels.USING_PORT, + value: selectedPorts.length === 0 ? alertFilterLabels.ANY_PORT : selectedPorts?.join(','), }, { onFilterFieldChange, @@ -76,10 +73,10 @@ export const FiltersExpressionsSelect: React.FC = ({ id: 'filter_tags', disabled: tags?.length === 0, items: tags ?? [], - selectedItems: getSelectedItems('tags'), + selectedItems: selectedTags, title: filterLabels.TAGS, - description: selectedTags ? alertFilterLabels.WITH_TAG : alertFilterLabels.WITH, - value: selectedTags?.join(',') ?? alertFilterLabels.ANY_TAG, + description: selectedTags.length === 0 ? alertFilterLabels.WITH : alertFilterLabels.WITH_TAG, + value: selectedTags.length === 0 ? alertFilterLabels.ANY_TAG : selectedTags?.join(','), }, { onFilterFieldChange, @@ -88,10 +85,10 @@ export const FiltersExpressionsSelect: React.FC = ({ id: 'filter_scheme', disabled: schemes?.length === 0, items: schemes ?? [], - selectedItems: getSelectedItems('monitor.type'), + selectedItems: selectedSchemes, title: filterLabels.SCHEME, - description: selectedScheme ? alertFilterLabels.OF_TYPE : alertFilterLabels.OF, - value: selectedScheme?.join(',') ?? alertFilterLabels.ANY_TYPE, + description: selectedSchemes.length === 0 ? alertFilterLabels.OF : alertFilterLabels.OF_TYPE, + value: selectedSchemes.length === 0 ? alertFilterLabels.ANY_TYPE : selectedSchemes?.join(','), }, { onFilterFieldChange, @@ -100,10 +97,14 @@ export const FiltersExpressionsSelect: React.FC = ({ id: 'filter_location', disabled: locations?.length === 0, items: locations ?? [], - selectedItems: getSelectedItems('observer.geo.name'), + selectedItems: selectedLocations, title: filterLabels.SCHEME, - description: selectedLocation ? alertFilterLabels.FROM_LOCATION : alertFilterLabels.FROM, - value: selectedLocation?.join(',') ?? alertFilterLabels.ANY_LOCATION, + description: + selectedLocations.length === 0 ? alertFilterLabels.FROM : alertFilterLabels.FROM_LOCATION, + value: + selectedLocations.length === 0 + ? alertFilterLabels.ANY_LOCATION + : selectedLocations?.join(','), }, ]; diff --git a/x-pack/plugins/uptime/public/components/overview/filter_group/__tests__/__snapshots__/filter_popover.test.tsx.snap b/x-pack/plugins/uptime/public/components/overview/filter_group/__tests__/__snapshots__/filter_popover.test.tsx.snap index c7ffc36532b7..2677fd828c95 100644 --- a/x-pack/plugins/uptime/public/components/overview/filter_group/__tests__/__snapshots__/filter_popover.test.tsx.snap +++ b/x-pack/plugins/uptime/public/components/overview/filter_group/__tests__/__snapshots__/filter_popover.test.tsx.snap @@ -7,7 +7,7 @@ exports[`FilterPopover component does not show item list when loading 1`] = ` @@ -26,7 +26,7 @@ exports[`FilterPopover component does not show item list when loading 1`] = ` @@ -64,7 +64,7 @@ exports[`FilterPopover component renders without errors for valid props 1`] = ` - 3 + 1 diff --git a/x-pack/plugins/uptime/public/components/overview/filter_group/filter_group.tsx b/x-pack/plugins/uptime/public/components/overview/filter_group/filter_group.tsx index b881dfcdd2e0..f5527a17b0cd 100644 --- a/x-pack/plugins/uptime/public/components/overview/filter_group/filter_group.tsx +++ b/x-pack/plugins/uptime/public/components/overview/filter_group/filter_group.tsx @@ -27,14 +27,15 @@ export const FilterGroupComponent: React.FC = ({ values: string[]; }>({ fieldName: '', values: [] }); - const currentFilters = useFilterUpdate(updatedFieldValues.fieldName, updatedFieldValues.values); + const { selectedLocations, selectedPorts, selectedSchemes, selectedTags } = useFilterUpdate( + updatedFieldValues.fieldName, + updatedFieldValues.values + ); const onFilterFieldChange = (fieldName: string, values: string[]) => { setUpdatedFieldValues({ fieldName, values }); }; - const getSelectedItems = (fieldName: string) => currentFilters.get(fieldName) || []; - const filterPopoverProps: FilterPopoverProps[] = [ { loading, @@ -42,7 +43,7 @@ export const FilterGroupComponent: React.FC = ({ fieldName: 'observer.geo.name', id: 'location', items: locations, - selectedItems: getSelectedItems('observer.geo.name'), + selectedItems: selectedLocations, title: filterLabels.LOCATION, }, { @@ -52,7 +53,7 @@ export const FilterGroupComponent: React.FC = ({ id: 'port', disabled: ports.length === 0, items: ports.map((p: number) => p.toString()), - selectedItems: getSelectedItems('url.port'), + selectedItems: selectedPorts, title: filterLabels.PORT, }, { @@ -62,7 +63,7 @@ export const FilterGroupComponent: React.FC = ({ id: 'scheme', disabled: schemes.length === 0, items: schemes, - selectedItems: getSelectedItems('monitor.type'), + selectedItems: selectedSchemes, title: filterLabels.SCHEME, }, { @@ -72,7 +73,7 @@ export const FilterGroupComponent: React.FC = ({ id: 'tags', disabled: tags.length === 0, items: tags, - selectedItems: getSelectedItems('tags'), + selectedItems: selectedTags, title: filterLabels.TAGS, }, ]; diff --git a/x-pack/plugins/uptime/public/components/overview/filter_group/filter_popover.tsx b/x-pack/plugins/uptime/public/components/overview/filter_group/filter_popover.tsx index 18d40b83be36..c04460237f4f 100644 --- a/x-pack/plugins/uptime/public/components/overview/filter_group/filter_popover.tsx +++ b/x-pack/plugins/uptime/public/components/overview/filter_group/filter_popover.tsx @@ -33,7 +33,7 @@ export const FilterPopover = ({ id, disabled, loading, - items, + items: allItems, onFilterFieldChange, selectedItems, title, @@ -46,6 +46,16 @@ export const FilterPopover = ({ const [searchQuery, setSearchQuery] = useState(''); const [tempSelectedItems, setTempSelectedItems] = useState(selectedItems); + const [items, setItems] = useState([]); + + useEffect(() => { + // Merge incoming items with selected items, to enable deselection + + const mItems = selectedItems.concat(allItems ?? []); + const newItems = mItems.filter((item, index) => mItems.indexOf(item) === index); + setItems(newItems); + }, [allItems, selectedItems]); + useEffect(() => { if (searchQuery !== '') { const toDisplay = items.filter(item => item.indexOf(searchQuery) >= 0); @@ -60,7 +70,7 @@ export const FilterPopover = ({ button={ btnContent ?? ( 0} numFilters={items.length} numActiveFilters={tempSelectedItems.length} diff --git a/x-pack/plugins/uptime/public/hooks/use_filter_update.ts b/x-pack/plugins/uptime/public/hooks/use_filter_update.ts index 97ef6b0e67ad..e7e59ff2e22e 100644 --- a/x-pack/plugins/uptime/public/hooks/use_filter_update.ts +++ b/x-pack/plugins/uptime/public/hooks/use_filter_update.ts @@ -12,8 +12,15 @@ import { useUrlParams } from './use_url_params'; * @param fieldName the name of the field to filter against * @param values the list of values to use when filter a field */ +interface SelectedFilters { + selectedTags: string[]; + selectedPorts: string[]; + selectedSchemes: string[]; + selectedLocations: string[]; + selectedFilters: Map; +} -export const useFilterUpdate = (fieldName?: string, values?: string[]) => { +export const useFilterUpdate = (fieldName?: string, values?: string[]): SelectedFilters => { const [getUrlParams, updateUrl] = useUrlParams(); const { filters: currentFilters } = getUrlParams(); @@ -52,5 +59,11 @@ export const useFilterUpdate = (fieldName?: string, values?: string[]) => { // eslint-disable-next-line react-hooks/exhaustive-deps }, [fieldName, values]); - return filterKueries; + return { + selectedTags: filterKueries.get('tags') || [], + selectedPorts: filterKueries.get('url.port') || [], + selectedSchemes: filterKueries.get('monitor.type') || [], + selectedLocations: filterKueries.get('observer.geo.name') || [], + selectedFilters: filterKueries, + }; }; From 3f43763bc3b0e6f0e601159ef1bd5a69fdf70412 Mon Sep 17 00:00:00 2001 From: Dario Gieselaar Date: Tue, 12 May 2020 13:21:04 +0200 Subject: [PATCH 52/67] [APM] Correct relative paths in scripts (#66159) --- .../scripts/kibana-security/setup-custom-kibana-user-role.ts | 2 +- x-pack/plugins/apm/scripts/upload-telemetry-data/index.ts | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/x-pack/plugins/apm/scripts/kibana-security/setup-custom-kibana-user-role.ts b/x-pack/plugins/apm/scripts/kibana-security/setup-custom-kibana-user-role.ts index 85aa43f78f7d..19e22b3718a7 100644 --- a/x-pack/plugins/apm/scripts/kibana-security/setup-custom-kibana-user-role.ts +++ b/x-pack/plugins/apm/scripts/kibana-security/setup-custom-kibana-user-role.ts @@ -15,7 +15,7 @@ import { argv } from 'yargs'; const config = yaml.safeLoad( fs.readFileSync( - path.join(__filename, '../../../../../../../config/kibana.dev.yml'), + path.join(__filename, '../../../../../../config/kibana.dev.yml'), 'utf8' ) ); diff --git a/x-pack/plugins/apm/scripts/upload-telemetry-data/index.ts b/x-pack/plugins/apm/scripts/upload-telemetry-data/index.ts index 4f69a3a3bd21..f80f9da7de38 100644 --- a/x-pack/plugins/apm/scripts/upload-telemetry-data/index.ts +++ b/x-pack/plugins/apm/scripts/upload-telemetry-data/index.ts @@ -38,7 +38,7 @@ if (!githubToken) { throw new Error('GITHUB_TOKEN was not provided.'); } -const kibanaConfigDir = path.join(__filename, '../../../../../../../config'); +const kibanaConfigDir = path.join(__filename, '../../../../../../config'); const kibanaDevConfig = path.join(kibanaConfigDir, 'kibana.dev.yml'); const kibanaConfig = path.join(kibanaConfigDir, 'kibana.yml'); From 15c0644c9756eb58e86cef7e7cd1ce8266bc7ed0 Mon Sep 17 00:00:00 2001 From: Peter Pisljar Date: Tue, 12 May 2020 13:29:58 +0200 Subject: [PATCH 53/67] making vis (completely) serializable (#64207) --- ...ta-public.extractsearchsourcereferences.md | 13 ++ ...ata-public.injectsearchsourcereferences.md | 13 ++ .../kibana-plugin-plugins-data-public.md | 3 + ...ugins-data-public.parsesearchsourcejson.md | 11 ++ .../public/new_platform/__mocks__/helpers.ts | 3 + .../new_platform/new_platform.karma_mock.js | 1 + .../ui/public/new_platform/set_services.ts | 2 + src/plugins/data/public/index.ts | 3 + src/plugins/data/public/public.api.md | 49 +++++--- .../data/public/search/expressions/esaggs.ts | 2 +- src/plugins/data/public/search/index.ts | 3 + .../data/public/search/search_service.ts | 13 +- .../create_search_source.test.ts | 116 +++++------------- .../search_source/create_search_source.ts | 75 ++--------- .../search_source/extract_references.ts | 70 +++++++++++ .../data/public/search/search_source/index.ts | 5 +- .../search/search_source/inject_references.ts | 55 +++++++++ .../data/public/search/search_source/mocks.ts | 3 +- .../public/search/search_source/parse_json.ts | 41 +++++++ .../search/search_source/search_source.ts | 77 ++++-------- src/plugins/data/public/search/types.ts | 9 +- .../angular/context/api/context.ts | 4 +- .../angular/context/query/actions.js | 2 +- .../public/application/angular/discover.js | 5 +- src/plugins/discover/public/mocks.ts | 4 +- src/plugins/discover/public/plugin.ts | 20 ++- .../public/control/create_search_source.ts | 4 +- .../public/control/list_control_factory.ts | 2 +- .../public/control/range_control_factory.ts | 2 +- .../saved_object/helpers/apply_es_resp.ts | 25 +++- .../helpers/build_saved_object.ts | 2 +- .../helpers/serialize_saved_object.ts | 10 ++ .../public/saved_object/saved_object.test.ts | 79 ++++++------ src/plugins/saved_objects/public/types.ts | 2 + .../public/lib/resolve_saved_objects.ts | 17 ++- .../saved_objects_table.test.tsx.snap | 2 +- .../public/register_services.ts | 10 +- .../visualize_embeddable_factory.tsx | 4 +- .../public/legacy/build_pipeline.test.ts | 2 + src/plugins/visualizations/public/plugin.ts | 19 ++- .../public/saved_visualizations/_saved_vis.ts | 65 +++------- .../saved_visualization_references.ts | 15 +++ src/plugins/visualizations/public/services.ts | 5 + src/plugins/visualizations/public/types.ts | 4 +- src/plugins/visualizations/public/vis.test.ts | 24 ++-- src/plugins/visualizations/public/vis.ts | 60 ++++++--- .../public/application/editor/editor.js | 3 +- .../public/application/legacy_app.js | 8 +- .../es_search_source/es_search_source.js | 2 +- .../classes/sources/es_source/es_source.js | 6 +- 50 files changed, 572 insertions(+), 402 deletions(-) create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.extractsearchsourcereferences.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.injectsearchsourcereferences.md create mode 100644 docs/development/plugins/data/public/kibana-plugin-plugins-data-public.parsesearchsourcejson.md create mode 100644 src/plugins/data/public/search/search_source/extract_references.ts create mode 100644 src/plugins/data/public/search/search_source/inject_references.ts create mode 100644 src/plugins/data/public/search/search_source/parse_json.ts diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.extractsearchsourcereferences.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.extractsearchsourcereferences.md new file mode 100644 index 000000000000..cd051cfeca6b --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.extractsearchsourcereferences.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [extractSearchSourceReferences](./kibana-plugin-plugins-data-public.extractsearchsourcereferences.md) + +## extractSearchSourceReferences variable + +Signature: + +```typescript +extractReferences: (state: SearchSourceFields) => [SearchSourceFields & { + indexRefName?: string | undefined; +}, SavedObjectReference[]] +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.injectsearchsourcereferences.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.injectsearchsourcereferences.md new file mode 100644 index 000000000000..b55f5b866244 --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.injectsearchsourcereferences.md @@ -0,0 +1,13 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [injectSearchSourceReferences](./kibana-plugin-plugins-data-public.injectsearchsourcereferences.md) + +## injectSearchSourceReferences variable + +Signature: + +```typescript +injectReferences: (searchSourceFields: SearchSourceFields & { + indexRefName: string; +}, references: SavedObjectReference[]) => SearchSourceFields +``` diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md index 8b58957b9044..02cc34baf7c4 100644 --- a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.md @@ -101,11 +101,14 @@ | [esFilters](./kibana-plugin-plugins-data-public.esfilters.md) | | | [esKuery](./kibana-plugin-plugins-data-public.eskuery.md) | | | [esQuery](./kibana-plugin-plugins-data-public.esquery.md) | | +| [extractSearchSourceReferences](./kibana-plugin-plugins-data-public.extractsearchsourcereferences.md) | | | [fieldFormats](./kibana-plugin-plugins-data-public.fieldformats.md) | | | [FilterBar](./kibana-plugin-plugins-data-public.filterbar.md) | | | [getIndexPatternFieldListCreator](./kibana-plugin-plugins-data-public.getindexpatternfieldlistcreator.md) | | | [getKbnTypeNames](./kibana-plugin-plugins-data-public.getkbntypenames.md) | Get the esTypes known by all kbnFieldTypes {Array} | | [indexPatterns](./kibana-plugin-plugins-data-public.indexpatterns.md) | | +| [injectSearchSourceReferences](./kibana-plugin-plugins-data-public.injectsearchsourcereferences.md) | | +| [parseSearchSourceJSON](./kibana-plugin-plugins-data-public.parsesearchsourcejson.md) | | | [QueryStringInput](./kibana-plugin-plugins-data-public.querystringinput.md) | | | [search](./kibana-plugin-plugins-data-public.search.md) | | | [SearchBar](./kibana-plugin-plugins-data-public.searchbar.md) | | diff --git a/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.parsesearchsourcejson.md b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.parsesearchsourcejson.md new file mode 100644 index 000000000000..f5014c55fdaa --- /dev/null +++ b/docs/development/plugins/data/public/kibana-plugin-plugins-data-public.parsesearchsourcejson.md @@ -0,0 +1,11 @@ + + +[Home](./index.md) > [kibana-plugin-plugins-data-public](./kibana-plugin-plugins-data-public.md) > [parseSearchSourceJSON](./kibana-plugin-plugins-data-public.parsesearchsourcejson.md) + +## parseSearchSourceJSON variable + +Signature: + +```typescript +parseSearchSourceJSON: (searchSourceJSON: string) => SearchSourceFields +``` diff --git a/src/legacy/ui/public/new_platform/__mocks__/helpers.ts b/src/legacy/ui/public/new_platform/__mocks__/helpers.ts index f9f449492901..e3aa49baeae0 100644 --- a/src/legacy/ui/public/new_platform/__mocks__/helpers.ts +++ b/src/legacy/ui/public/new_platform/__mocks__/helpers.ts @@ -32,6 +32,7 @@ import { chartPluginMock } from '../../../../../plugins/charts/public/mocks'; import { advancedSettingsMock } from '../../../../../plugins/advanced_settings/public/mocks'; import { savedObjectsManagementPluginMock } from '../../../../../plugins/saved_objects_management/public/mocks'; import { visualizationsPluginMock } from '../../../../../plugins/visualizations/public/mocks'; +import { discoverPluginMock } from '../../../../../plugins/discover/public/mocks'; /* eslint-enable @kbn/eslint/no-restricted-paths */ export const pluginsMock = { @@ -48,6 +49,7 @@ export const pluginsMock = { visualizations: visualizationsPluginMock.createSetupContract(), kibanaLegacy: kibanaLegacyPluginMock.createSetupContract(), savedObjectsManagement: savedObjectsManagementPluginMock.createSetupContract(), + discover: discoverPluginMock.createSetupContract(), }), createStart: () => ({ data: dataPluginMock.createStartContract(), @@ -62,6 +64,7 @@ export const pluginsMock = { visualizations: visualizationsPluginMock.createStartContract(), kibanaLegacy: kibanaLegacyPluginMock.createStartContract(), savedObjectsManagement: savedObjectsManagementPluginMock.createStartContract(), + discover: discoverPluginMock.createStartContract(), }), }; diff --git a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js index 3caba24748bf..332a0a0f9ca6 100644 --- a/src/legacy/ui/public/new_platform/new_platform.karma_mock.js +++ b/src/legacy/ui/public/new_platform/new_platform.karma_mock.js @@ -515,6 +515,7 @@ export const npStart = { docViews: { DocViewer: () => null, }, + savedSearchLoader: {}, }, }, }; diff --git a/src/legacy/ui/public/new_platform/set_services.ts b/src/legacy/ui/public/new_platform/set_services.ts index 400f31e73ffa..9cacb0c09d79 100644 --- a/src/legacy/ui/public/new_platform/set_services.ts +++ b/src/legacy/ui/public/new_platform/set_services.ts @@ -57,6 +57,7 @@ export function setStartServices(npStart: NpStart) { dataServices.setIndexPatterns(npStart.plugins.data.indexPatterns); dataServices.setQueryService(npStart.plugins.data.query); dataServices.setSearchService(npStart.plugins.data.search); + visualizationsServices.setI18n(npStart.core.i18n); visualizationsServices.setTypes( pick(npStart.plugins.visualizations, ['get', 'all', 'getAliases']) @@ -82,4 +83,5 @@ export function setStartServices(npStart: NpStart) { visualizationTypes: visualizationsServices.getTypes(), }); visualizationsServices.setSavedVisualizationsLoader(savedVisualizationsLoader); + visualizationsServices.setSavedSearchLoader(npStart.plugins.discover.savedSearchLoader); } diff --git a/src/plugins/data/public/index.ts b/src/plugins/data/public/index.ts index 69dd97a88179..4a5b3fd5714d 100644 --- a/src/plugins/data/public/index.ts +++ b/src/plugins/data/public/index.ts @@ -358,6 +358,9 @@ export { SearchResponse, SearchError, ISearchSource, + parseSearchSourceJSON, + injectSearchSourceReferences, + extractSearchSourceReferences, SearchSourceFields, EsQuerySortValue, SortDirection, diff --git a/src/plugins/data/public/public.api.md b/src/plugins/data/public/public.api.md index ee56ad60441f..e157d2ac6a52 100644 --- a/src/plugins/data/public/public.api.md +++ b/src/plugins/data/public/public.api.md @@ -46,7 +46,6 @@ import * as React_2 from 'react'; import { Required } from '@kbn/utility-types'; import * as Rx from 'rxjs'; import { SavedObject as SavedObject_2 } from 'src/core/public'; -import { SavedObjectReference } from 'kibana/public'; import { SavedObjectsClientContract } from 'src/core/public'; import { SearchParams } from 'elasticsearch'; import { SearchResponse as SearchResponse_2 } from 'elasticsearch'; @@ -420,6 +419,14 @@ export type ExistsFilter = Filter & { exists?: FilterExistsProperty; }; +// Warning: (ae-forgotten-export) The symbol "SavedObjectReference" needs to be exported by the entry point index.d.ts +// Warning: (ae-missing-release-tag) "extractReferences" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const extractSearchSourceReferences: (state: SearchSourceFields) => [SearchSourceFields & { + indexRefName?: string | undefined; +}, SavedObjectReference[]]; + // Warning: (ae-missing-release-tag) "FetchOptions" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1059,6 +1066,13 @@ export interface IndexPatternTypeMeta { aggs?: Record; } +// Warning: (ae-missing-release-tag) "injectReferences" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const injectSearchSourceReferences: (searchSourceFields: SearchSourceFields & { + indexRefName: string; +}, references: SavedObjectReference[]) => SearchSourceFields; + // Warning: (ae-missing-release-tag) "InputTimeRange" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1273,6 +1287,11 @@ export interface OptionedValueProp { // @public (undocumented) export type ParsedInterval = ReturnType; +// Warning: (ae-missing-release-tag) "parseSearchSourceJSON" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) +// +// @public (undocumented) +export const parseSearchSourceJSON: (searchSourceJSON: string) => SearchSourceFields; + // Warning: (ae-missing-release-tag) "PhraseFilter" is exported by the package, but it is missing a release tag (@alpha, @beta, @public, or @internal) // // @public (undocumented) @@ -1809,20 +1828,20 @@ export type TSearchStrategyProvider = (context: ISearc // src/plugins/data/public/index.ts:237:27 - (ae-forgotten-export) The symbol "getFromSavedObject" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:237:27 - (ae-forgotten-export) The symbol "flattenHitWrapper" needs to be exported by the entry point index.d.ts // src/plugins/data/public/index.ts:237:27 - (ae-forgotten-export) The symbol "formatHitProvider" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:374:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:374:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:374:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:374:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:376:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:377:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:386:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:387:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:388:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:392:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:393:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:396:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:397:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts -// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:377:20 - (ae-forgotten-export) The symbol "getRequestInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:377:20 - (ae-forgotten-export) The symbol "getResponseInspectorStats" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:377:20 - (ae-forgotten-export) The symbol "tabifyAggResponse" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:377:20 - (ae-forgotten-export) The symbol "tabifyGetColumns" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:379:1 - (ae-forgotten-export) The symbol "CidrMask" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:380:1 - (ae-forgotten-export) The symbol "dateHistogramInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:389:1 - (ae-forgotten-export) The symbol "InvalidEsCalendarIntervalError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:390:1 - (ae-forgotten-export) The symbol "InvalidEsIntervalFormatError" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:391:1 - (ae-forgotten-export) The symbol "isDateHistogramBucketAggConfig" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:395:1 - (ae-forgotten-export) The symbol "isValidEsInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:396:1 - (ae-forgotten-export) The symbol "isValidInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:399:1 - (ae-forgotten-export) The symbol "parseInterval" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:400:1 - (ae-forgotten-export) The symbol "propFilter" needs to be exported by the entry point index.d.ts +// src/plugins/data/public/index.ts:403:1 - (ae-forgotten-export) The symbol "toAbsoluteDates" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:33:33 - (ae-forgotten-export) The symbol "FilterStateStore" needs to be exported by the entry point index.d.ts // src/plugins/data/public/query/state_sync/connect_to_query_state.ts:37:1 - (ae-forgotten-export) The symbol "QueryStateChange" needs to be exported by the entry point index.d.ts // src/plugins/data/public/types.ts:52:5 - (ae-forgotten-export) The symbol "createFiltersFromValueClickAction" needs to be exported by the entry point index.d.ts diff --git a/src/plugins/data/public/search/expressions/esaggs.ts b/src/plugins/data/public/search/expressions/esaggs.ts index eec75b084113..d6901da99319 100644 --- a/src/plugins/data/public/search/expressions/esaggs.ts +++ b/src/plugins/data/public/search/expressions/esaggs.ts @@ -282,7 +282,7 @@ export const esaggs = (): ExpressionFunctionDefinition { }, search, searchSource: { - create: (fields?: SearchSourceFields) => new SearchSource(fields, searchSourceDependencies), - fromJSON: createSearchSourceFromJSON(dependencies.indexPatterns, searchSourceDependencies), + create: createSearchSource(dependencies.indexPatterns, searchSourceDependencies), + createEmpty: () => { + return new SearchSource({}, searchSourceDependencies); + }, }, setInterceptor: (searchInterceptor: SearchInterceptor) => { // TODO: should an intercepror have a destroy method? diff --git a/src/plugins/data/public/search/search_source/create_search_source.test.ts b/src/plugins/data/public/search/search_source/create_search_source.test.ts index efa63b0722e2..23ab5979595a 100644 --- a/src/plugins/data/public/search/search_source/create_search_source.test.ts +++ b/src/plugins/data/public/search/search_source/create_search_source.test.ts @@ -16,7 +16,7 @@ * specific language governing permissions and limitations * under the License. */ -import { createSearchSourceFromJSON } from './create_search_source'; +import { createSearchSource as createSearchSourceFactory } from './create_search_source'; import { IIndexPattern } from '../../../common/index_patterns'; import { IndexPatternsContract } from '../../index_patterns/index_patterns'; import { Filter } from '../../../common/es_query/filters'; @@ -27,7 +27,7 @@ describe('createSearchSource', () => { const indexPatternMock: IIndexPattern = {} as IIndexPattern; let indexPatternContractMock: jest.Mocked; let dependencies: any; - let createSearchSource: ReturnType; + let createSearchSource: ReturnType; beforeEach(() => { const core = coreMock.createStart(); @@ -43,27 +43,17 @@ describe('createSearchSource', () => { get: jest.fn().mockReturnValue(Promise.resolve(indexPatternMock)), } as unknown) as jest.Mocked; - createSearchSource = createSearchSourceFromJSON(indexPatternContractMock, dependencies); + createSearchSource = createSearchSourceFactory(indexPatternContractMock, dependencies); }); - test('should fail if JSON is invalid', () => { - expect(createSearchSource('{', [])).rejects.toThrow(); - expect(createSearchSource('0', [])).rejects.toThrow(); - expect(createSearchSource('"abcdefg"', [])).rejects.toThrow(); - }); - - test('should set fields', async () => { - const searchSource = await createSearchSource( - JSON.stringify({ - highlightAll: true, - query: { - query: '', - language: 'kuery', - }, - }), - [] - ); - + it('should set fields', async () => { + const searchSource = await createSearchSource({ + highlightAll: true, + query: { + query: '', + language: 'kuery', + }, + }); expect(searchSource.getOwnField('highlightAll')).toBe(true); expect(searchSource.getOwnField('query')).toEqual({ query: '', @@ -71,66 +61,32 @@ describe('createSearchSource', () => { }); }); - test('should resolve referenced index pattern', async () => { - const searchSource = await createSearchSource( - JSON.stringify({ - indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index', - }), - [ + it('should set filters and resolve referenced index patterns', async () => { + const searchSource = await createSearchSource({ + filter: [ { - id: '123-456', - type: 'index-pattern', - name: 'kibanaSavedObjectMeta.searchSourceJSON.index', - }, - ] - ); - - expect(indexPatternContractMock.get).toHaveBeenCalledWith('123-456'); - expect(searchSource.getOwnField('index')).toBe(indexPatternMock); - }); - - test('should set filters and resolve referenced index patterns', async () => { - const searchSource = await createSearchSource( - JSON.stringify({ - filter: [ - { - meta: { - alias: null, - negate: false, - disabled: false, - type: 'phrase', - key: 'category.keyword', - params: { - query: "Men's Clothing", - }, - indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index', + meta: { + alias: null, + negate: false, + disabled: false, + type: 'phrase', + key: 'category.keyword', + params: { + query: "Men's Clothing", }, - query: { - match_phrase: { - 'category.keyword': "Men's Clothing", - }, - }, - $state: { - store: 'appState', + index: '123-456', + }, + query: { + match_phrase: { + 'category.keyword': "Men's Clothing", }, }, - ], - }), - [ - { - id: '123-456', - type: 'index-pattern', - name: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index', }, - ] - ); + ], + }); const filters = searchSource.getOwnField('filter') as Filter[]; - expect(filters[0]).toMatchInlineSnapshot(` Object { - "$state": Object { - "store": "appState", - }, "meta": Object { "alias": null, "disabled": false, @@ -151,15 +107,11 @@ describe('createSearchSource', () => { `); }); - test('should migrate legacy queries on the fly', async () => { - const searchSource = await createSearchSource( - JSON.stringify({ - highlightAll: true, - query: 'a:b', - }), - [] - ); - + it('should migrate legacy queries on the fly', async () => { + const searchSource = await createSearchSource({ + highlightAll: true, + query: 'a:b' as any, + }); expect(searchSource.getOwnField('query')).toEqual({ query: 'a:b', language: 'lucene', diff --git a/src/plugins/data/public/search/search_source/create_search_source.ts b/src/plugins/data/public/search/search_source/create_search_source.ts index cc98f433b3a0..3466d60e5dd7 100644 --- a/src/plugins/data/public/search/search_source/create_search_source.ts +++ b/src/plugins/data/public/search/search_source/create_search_source.ts @@ -16,11 +16,8 @@ * specific language governing permissions and limitations * under the License. */ -import { transform, defaults, isFunction } from 'lodash'; -import { SavedObjectReference } from 'kibana/public'; import { migrateLegacyQuery } from '../../../../kibana_legacy/public'; -import { InvalidJSONProperty } from '../../../../kibana_utils/public'; -import { SearchSourceDependencies, SearchSource, ISearchSource } from './search_source'; +import { SearchSource, SearchSourceDependencies } from './search_source'; import { IndexPatternsContract } from '../../index_patterns/index_patterns'; import { SearchSourceFields } from './types'; @@ -33,6 +30,7 @@ import { SearchSourceFields } from './types'; * the start contract of the data plugin as part of the search service * * @param indexPatterns The index patterns contract of the data plugin + * @param searchSourceDependencies * * @return Wired utility function taking two parameters `searchSourceJson`, the json string * returned by `serializeSearchSource` and `references`, a list of references including the ones @@ -40,73 +38,20 @@ import { SearchSourceFields } from './types'; * * * @public */ -export const createSearchSourceFromJSON = ( +export const createSearchSource = ( indexPatterns: IndexPatternsContract, searchSourceDependencies: SearchSourceDependencies -) => async ( - searchSourceJson: string, - references: SavedObjectReference[] -): Promise => { - const searchSource = new SearchSource({}, searchSourceDependencies); +) => async (searchSourceFields: SearchSourceFields = {}) => { + const fields = { ...searchSourceFields }; - // if we have a searchSource, set its values based on the searchSourceJson field - let searchSourceValues: Record; - try { - searchSourceValues = JSON.parse(searchSourceJson); - } catch (e) { - throw new InvalidJSONProperty( - `Invalid JSON in search source. ${e.message} JSON: ${searchSourceJson}` - ); + // hydrating index pattern + if (fields.index && typeof fields.index === 'string') { + fields.index = await indexPatterns.get(searchSourceFields.index as any); } - // This detects a scenario where documents with invalid JSON properties have been imported into the saved object index. - // (This happened in issue #20308) - if (!searchSourceValues || typeof searchSourceValues !== 'object') { - throw new InvalidJSONProperty('Invalid JSON in search source.'); - } - - // Inject index id if a reference is saved - if (searchSourceValues.indexRefName) { - const reference = references.find(ref => ref.name === searchSourceValues.indexRefName); - if (!reference) { - throw new Error(`Could not find reference for ${searchSourceValues.indexRefName}`); - } - searchSourceValues.index = reference.id; - delete searchSourceValues.indexRefName; - } - - if (searchSourceValues.filter && Array.isArray(searchSourceValues.filter)) { - searchSourceValues.filter.forEach((filterRow: any) => { - if (!filterRow.meta || !filterRow.meta.indexRefName) { - return; - } - const reference = references.find((ref: any) => ref.name === filterRow.meta.indexRefName); - if (!reference) { - throw new Error(`Could not find reference for ${filterRow.meta.indexRefName}`); - } - filterRow.meta.index = reference.id; - delete filterRow.meta.indexRefName; - }); - } - - if (searchSourceValues.index && typeof searchSourceValues.index === 'string') { - searchSourceValues.index = await indexPatterns.get(searchSourceValues.index); - } - - const searchSourceFields = searchSource.getFields(); - const fnProps = transform( - searchSourceFields, - function(dynamic, val, name) { - if (isFunction(val) && name) dynamic[name] = val; - }, - {} - ); - - // This assignment might hide problems because the type of values passed from the parsed JSON - // might not fit the SearchSourceFields interface. - const newFields: SearchSourceFields = defaults(searchSourceValues, fnProps); + const searchSource = new SearchSource(fields, searchSourceDependencies); - searchSource.setFields(newFields); + // todo: move to migration script .. create issue const query = searchSource.getOwnField('query'); if (typeof query !== 'undefined') { diff --git a/src/plugins/data/public/search/search_source/extract_references.ts b/src/plugins/data/public/search/search_source/extract_references.ts new file mode 100644 index 000000000000..f9987767a968 --- /dev/null +++ b/src/plugins/data/public/search/search_source/extract_references.ts @@ -0,0 +1,70 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { SavedObjectReference } from '../../../../../core/types'; +import { Filter } from '../../../common/es_query/filters'; +import { SearchSourceFields } from './types'; + +export const extractReferences = ( + state: SearchSourceFields +): [SearchSourceFields & { indexRefName?: string }, SavedObjectReference[]] => { + let searchSourceFields: SearchSourceFields & { indexRefName?: string } = { ...state }; + const references: SavedObjectReference[] = []; + if (searchSourceFields.index) { + const indexId = searchSourceFields.index.id || ((searchSourceFields.index as any) as string); + const refName = 'kibanaSavedObjectMeta.searchSourceJSON.index'; + references.push({ + name: refName, + type: 'index-pattern', + id: indexId, + }); + searchSourceFields = { + ...searchSourceFields, + indexRefName: refName, + index: undefined, + }; + } + + if (searchSourceFields.filter) { + searchSourceFields = { + ...searchSourceFields, + filter: (searchSourceFields.filter as Filter[]).map((filterRow, i) => { + if (!filterRow.meta || !filterRow.meta.index) { + return filterRow; + } + const refName = `kibanaSavedObjectMeta.searchSourceJSON.filter[${i}].meta.index`; + references.push({ + name: refName, + type: 'index-pattern', + id: filterRow.meta.index, + }); + return { + ...filterRow, + meta: { + ...filterRow.meta, + indexRefName: refName, + index: undefined, + }, + }; + }), + }; + } + + return [searchSourceFields, references]; +}; diff --git a/src/plugins/data/public/search/search_source/index.ts b/src/plugins/data/public/search/search_source/index.ts index 9c4106b2dc61..48c0338f7e98 100644 --- a/src/plugins/data/public/search/search_source/index.ts +++ b/src/plugins/data/public/search/search_source/index.ts @@ -18,5 +18,8 @@ */ export { SearchSource, ISearchSource, SearchSourceDependencies } from './search_source'; -export { createSearchSourceFromJSON } from './create_search_source'; +export { createSearchSource } from './create_search_source'; export { SortDirection, EsQuerySortValue, SearchSourceFields } from './types'; +export { injectReferences } from './inject_references'; +export { extractReferences } from './extract_references'; +export { parseSearchSourceJSON } from './parse_json'; diff --git a/src/plugins/data/public/search/search_source/inject_references.ts b/src/plugins/data/public/search/search_source/inject_references.ts new file mode 100644 index 000000000000..a567c33d2280 --- /dev/null +++ b/src/plugins/data/public/search/search_source/inject_references.ts @@ -0,0 +1,55 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { SearchSourceFields } from './types'; +import { SavedObjectReference } from '../../../../../core/types'; + +export const injectReferences = ( + searchSourceFields: SearchSourceFields & { indexRefName: string }, + references: SavedObjectReference[] +) => { + const searchSourceReturnFields: SearchSourceFields = { ...searchSourceFields }; + // Inject index id if a reference is saved + if (searchSourceFields.indexRefName) { + const reference = references.find(ref => ref.name === searchSourceFields.indexRefName); + if (!reference) { + throw new Error(`Could not find reference for ${searchSourceFields.indexRefName}`); + } + // @ts-ignore + searchSourceReturnFields.index = reference.id; + // @ts-ignore + delete searchSourceReturnFields.indexRefName; + } + + if (searchSourceReturnFields.filter && Array.isArray(searchSourceReturnFields.filter)) { + searchSourceReturnFields.filter.forEach((filterRow: any) => { + if (!filterRow.meta || !filterRow.meta.indexRefName) { + return; + } + const reference = references.find((ref: any) => ref.name === filterRow.meta.indexRefName); + if (!reference) { + throw new Error(`Could not find reference for ${filterRow.meta.indexRefName}`); + } + filterRow.meta.index = reference.id; + delete filterRow.meta.indexRefName; + }); + } + + return searchSourceReturnFields; +}; diff --git a/src/plugins/data/public/search/search_source/mocks.ts b/src/plugins/data/public/search/search_source/mocks.ts index 157331ea87bb..cf2d009e41b5 100644 --- a/src/plugins/data/public/search/search_source/mocks.ts +++ b/src/plugins/data/public/search/search_source/mocks.ts @@ -43,12 +43,13 @@ export const searchSourceInstanceMock: MockedKeys = { getSearchRequestBody: jest.fn(), destroy: jest.fn(), history: [], + getSerializedFields: jest.fn(), serialize: jest.fn(), }; export const searchSourceMock = { create: jest.fn().mockReturnValue(searchSourceInstanceMock), - fromJSON: jest.fn().mockReturnValue(searchSourceInstanceMock), + createEmpty: jest.fn().mockReturnValue(searchSourceInstanceMock), }; export const createSearchSourceMock = (fields?: SearchSourceFields) => diff --git a/src/plugins/data/public/search/search_source/parse_json.ts b/src/plugins/data/public/search/search_source/parse_json.ts new file mode 100644 index 000000000000..f0eb377cedc7 --- /dev/null +++ b/src/plugins/data/public/search/search_source/parse_json.ts @@ -0,0 +1,41 @@ +/* + * Licensed to Elasticsearch B.V. under one or more contributor + * license agreements. See the NOTICE file distributed with + * this work for additional information regarding copyright + * ownership. Elasticsearch B.V. licenses this file to you under + * the Apache License, Version 2.0 (the "License"); you may + * not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, + * software distributed under the License is distributed on an + * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + * KIND, either express or implied. See the License for the + * specific language governing permissions and limitations + * under the License. + */ + +import { SearchSourceFields } from './types'; +import { InvalidJSONProperty } from '../../../../kibana_utils/public'; + +export const parseSearchSourceJSON = (searchSourceJSON: string) => { + // if we have a searchSource, set its values based on the searchSourceJson field + let searchSourceValues: SearchSourceFields; + try { + searchSourceValues = JSON.parse(searchSourceJSON); + } catch (e) { + throw new InvalidJSONProperty( + `Invalid JSON in search source. ${e.message} JSON: ${searchSourceJSON}` + ); + } + + // This detects a scenario where documents with invalid JSON properties have been imported into the saved object index. + // (This happened in issue #20308) + if (!searchSourceValues || typeof searchSourceValues !== 'object') { + throw new InvalidJSONProperty('Invalid JSON in search source.'); + } + + return searchSourceValues; +}; diff --git a/src/plugins/data/public/search/search_source/search_source.ts b/src/plugins/data/public/search/search_source/search_source.ts index 091a27a6f418..acbb19380762 100644 --- a/src/plugins/data/public/search/search_source/search_source.ts +++ b/src/plugins/data/public/search/search_source/search_source.ts @@ -69,9 +69,9 @@ * `appSearchSource`. */ -import { uniqueId, uniq, extend, pick, difference, set, omit, keys, isFunction } from 'lodash'; +import { uniqueId, uniq, extend, pick, difference, omit, set, keys, isFunction } from 'lodash'; import { map } from 'rxjs/operators'; -import { CoreStart, SavedObjectReference } from 'kibana/public'; +import { CoreStart } from 'kibana/public'; import { normalizeSortRequest } from './normalize_sort_request'; import { filterDocvalueFields } from './filter_docvalue_fields'; import { fieldWildcardFilter } from '../../../../kibana_utils/public'; @@ -82,6 +82,7 @@ import { FetchOptions, RequestFailure, getSearchParams, handleResponse } from '. import { getEsQueryConfig, buildEsQuery, Filter } from '../../../common'; import { getHighlightRequest } from '../../../common/field_formats'; import { fetchSoon } from '../legacy'; +import { extractReferences } from './extract_references'; import { ISearchStartLegacy } from '../types'; export interface SearchSourceDependencies { @@ -450,6 +451,25 @@ export class SearchSource { return searchRequest; } + public getSerializedFields() { + const { filter: originalFilters, ...searchSourceFields } = omit(this.getFields(), [ + 'sort', + 'size', + ]); + let serializedSearchSourceFields: SearchSourceFields = { + ...searchSourceFields, + index: searchSourceFields.index ? searchSourceFields.index.id : undefined, + }; + if (originalFilters) { + const filters = this.getFilters(originalFilters); + serializedSearchSourceFields = { + ...serializedSearchSourceFields, + filter: filters, + }; + } + return serializedSearchSourceFields; + } + /** * Serializes the instance to a JSON string and a set of referenced objects. * Use this method to get a representation of the search source which can be stored in a saved object. @@ -461,57 +481,8 @@ export class SearchSource { * Using `createSearchSource`, the instance can be re-created. * @public */ public serialize() { - const references: SavedObjectReference[] = []; - - const { - filter: originalFilters, - ...searchSourceFields - }: Omit = omit(this.getFields(), ['sort', 'size']); - let serializedSearchSourceFields: Omit & { - indexRefName?: string; - filter?: Array & { meta: Filter['meta'] & { indexRefName?: string } }>; - } = searchSourceFields; - if (searchSourceFields.index) { - const indexId = searchSourceFields.index.id!; - const refName = 'kibanaSavedObjectMeta.searchSourceJSON.index'; - references.push({ - name: refName, - type: 'index-pattern', - id: indexId, - }); - serializedSearchSourceFields = { - ...serializedSearchSourceFields, - indexRefName: refName, - index: undefined, - }; - } - if (originalFilters) { - const filters = this.getFilters(originalFilters); - serializedSearchSourceFields = { - ...serializedSearchSourceFields, - filter: filters.map((filterRow, i) => { - if (!filterRow.meta || !filterRow.meta.index) { - return filterRow; - } - const refName = `kibanaSavedObjectMeta.searchSourceJSON.filter[${i}].meta.index`; - references.push({ - name: refName, - type: 'index-pattern', - id: filterRow.meta.index, - }); - return { - ...filterRow, - meta: { - ...filterRow.meta, - indexRefName: refName, - index: undefined, - }, - }; - }), - }; - } - - return { searchSourceJSON: JSON.stringify(serializedSearchSourceFields), references }; + const [searchSourceFields, references] = extractReferences(this.getSerializedFields()); + return { searchSourceJSON: JSON.stringify(searchSourceFields), references }; } private getFilters(filterField: SearchSourceFields['filter']): Filter[] { diff --git a/src/plugins/data/public/search/types.ts b/src/plugins/data/public/search/types.ts index 1687c8f98339..64b4f1c5c298 100644 --- a/src/plugins/data/public/search/types.ts +++ b/src/plugins/data/public/search/types.ts @@ -17,7 +17,7 @@ * under the License. */ -import { CoreStart, SavedObjectReference } from 'kibana/public'; +import { CoreStart } from 'kibana/public'; import { SearchAggsSetup, SearchAggsStart } from './aggs'; import { ISearch, ISearchGeneric } from './i_search'; import { TStrategyTypes } from './strategy_types'; @@ -82,11 +82,8 @@ export interface ISearchStart { setInterceptor: (searchInterceptor: SearchInterceptor) => void; search: ISearchGeneric; searchSource: { - create: (fields?: SearchSourceFields) => ISearchSource; - fromJSON: ( - searchSourceJson: string, - references: SavedObjectReference[] - ) => Promise; + create: (fields?: SearchSourceFields) => Promise; + createEmpty: () => ISearchSource; }; __LEGACY: ISearchStartLegacy; } diff --git a/src/plugins/discover/public/application/angular/context/api/context.ts b/src/plugins/discover/public/application/angular/context/api/context.ts index 0bca820f9a72..a47005b64053 100644 --- a/src/plugins/discover/public/application/angular/context/api/context.ts +++ b/src/plugins/discover/public/application/angular/context/api/context.ts @@ -113,8 +113,8 @@ function fetchContextProvider(indexPatterns: IndexPatternsContract) { async function createSearchSource(indexPattern: IndexPattern, filters: Filter[]) { const { data } = getServices(); - return data.search.searchSource - .create() + const searchSource = await data.search.searchSource.create(); + return searchSource .setParent(undefined) .setField('index', indexPattern) .setField('filter', filters); diff --git a/src/plugins/discover/public/application/angular/context/query/actions.js b/src/plugins/discover/public/application/angular/context/query/actions.js index 1b1fa7138bfd..6f8d5fe64f83 100644 --- a/src/plugins/discover/public/application/angular/context/query/actions.js +++ b/src/plugins/discover/public/application/angular/context/query/actions.js @@ -30,7 +30,7 @@ import { MarkdownSimple } from '../../../../../../kibana_react/public'; export function QueryActionsProvider(Promise) { const { filterManager, indexPatterns, data } = getServices(); - const fetchAnchor = fetchAnchorProvider(indexPatterns, data.search.searchSource.create()); + const fetchAnchor = fetchAnchorProvider(indexPatterns, data.search.searchSource.createEmpty()); const { fetchSurroundingDocs } = fetchContextProvider(indexPatterns); const { setPredecessorCount, setQueryParameters, setSuccessorCount } = getQueryParameterActions( filterManager, diff --git a/src/plugins/discover/public/application/angular/discover.js b/src/plugins/discover/public/application/angular/discover.js index 2afd0322f870..b6076f338d63 100644 --- a/src/plugins/discover/public/application/angular/discover.js +++ b/src/plugins/discover/public/application/angular/discover.js @@ -1021,7 +1021,7 @@ function discoverController( }, ]; - $scope.vis = visualizations.createVis('histogram', { + $scope.vis = await visualizations.createVis('histogram', { title: savedSearch.title, params: { addLegend: false, @@ -1029,8 +1029,7 @@ function discoverController( }, data: { aggs: visStateAggs, - indexPattern: $scope.searchSource.getField('index').id, - searchSource: $scope.searchSource, + searchSource: $scope.searchSource.getSerializedFields(), }, }); diff --git a/src/plugins/discover/public/mocks.ts b/src/plugins/discover/public/mocks.ts index dd7da5e8bc25..c394fe2c11a7 100644 --- a/src/plugins/discover/public/mocks.ts +++ b/src/plugins/discover/public/mocks.ts @@ -33,9 +33,7 @@ const createSetupContract = (): Setup => { const createStartContract = (): Start => { const startContract: Start = { - savedSearches: { - createLoader: jest.fn(), - }, + savedSearchLoader: {} as any, }; return startContract; }; diff --git a/src/plugins/discover/public/plugin.ts b/src/plugins/discover/public/plugin.ts index 807365cb26dc..032483e4e34b 100644 --- a/src/plugins/discover/public/plugin.ts +++ b/src/plugins/discover/public/plugin.ts @@ -39,7 +39,7 @@ import { KibanaLegacySetup, AngularRenderedAppUpdater } from 'src/plugins/kibana import { HomePublicPluginSetup } from 'src/plugins/home/public'; import { Start as InspectorPublicPluginStart } from 'src/plugins/inspector/public'; import { DataPublicPluginStart, DataPublicPluginSetup, esFilters } from '../../data/public'; -import { SavedObjectLoader, SavedObjectKibanaServices } from '../../saved_objects/public'; +import { SavedObjectLoader } from '../../saved_objects/public'; import { createKbnUrlTracker } from '../../kibana_utils/public'; import { DocViewInput, DocViewInputFn } from './application/doc_views/doc_views_types'; @@ -73,13 +73,7 @@ export interface DiscoverSetup { } export interface DiscoverStart { - savedSearches: { - /** - * Create a {@link SavedObjectLoader | loader} to handle the saved searches type. - * @param services - */ - createLoader(services: SavedObjectKibanaServices): SavedObjectLoader; - }; + savedSearchLoader: SavedObjectLoader; } /** @@ -264,9 +258,13 @@ export class DiscoverPlugin }; return { - savedSearches: { - createLoader: createSavedSearchesLoader, - }, + savedSearchLoader: createSavedSearchesLoader({ + savedObjectsClient: core.savedObjects.client, + indexPatterns: plugins.data.indexPatterns, + search: plugins.data.search, + chrome: core.chrome, + overlays: core.overlays, + }), }; } diff --git a/src/plugins/input_control_vis/public/control/create_search_source.ts b/src/plugins/input_control_vis/public/control/create_search_source.ts index d6772a7cba5b..6cd16161c8a8 100644 --- a/src/plugins/input_control_vis/public/control/create_search_source.ts +++ b/src/plugins/input_control_vis/public/control/create_search_source.ts @@ -25,7 +25,7 @@ import { DataPublicPluginStart, } from 'src/plugins/data/public'; -export function createSearchSource( +export async function createSearchSource( { create }: DataPublicPluginStart['search']['searchSource'], initialState: SearchSourceFields | null, indexPattern: IndexPattern, @@ -34,7 +34,7 @@ export function createSearchSource( filters: PhraseFilter[] = [], timefilter: TimefilterContract ) { - const searchSource = create(initialState || {}); + const searchSource = await create(initialState || {}); // Do not not inherit from rootSearchSource to avoid picking up time and globals searchSource.setParent(undefined); diff --git a/src/plugins/input_control_vis/public/control/list_control_factory.ts b/src/plugins/input_control_vis/public/control/list_control_factory.ts index 123ef83277e0..87aa4a2486c4 100644 --- a/src/plugins/input_control_vis/public/control/list_control_factory.ts +++ b/src/plugins/input_control_vis/public/control/list_control_factory.ts @@ -147,7 +147,7 @@ export class ListControl extends Control { direction: 'desc', query, }); - const searchSource = createSearchSource( + const searchSource = await createSearchSource( this.searchSource, initialSearchSourceState, indexPattern, diff --git a/src/plugins/input_control_vis/public/control/range_control_factory.ts b/src/plugins/input_control_vis/public/control/range_control_factory.ts index 326756ad5ffc..eac79ca5fcca 100644 --- a/src/plugins/input_control_vis/public/control/range_control_factory.ts +++ b/src/plugins/input_control_vis/public/control/range_control_factory.ts @@ -84,7 +84,7 @@ export class RangeControl extends Control { const fieldName = this.filterManager.fieldName; const aggs = minMaxAgg(indexPattern.fields.getByName(fieldName)); - const searchSource = createSearchSource( + const searchSource = await createSearchSource( this.searchSource, null, indexPattern, diff --git a/src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts b/src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts index df687a051fc7..9d0e25132271 100644 --- a/src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts +++ b/src/plugins/saved_objects/public/saved_object/helpers/apply_es_resp.ts @@ -19,7 +19,11 @@ import _ from 'lodash'; import { EsResponse, SavedObject, SavedObjectConfig, SavedObjectKibanaServices } from '../../types'; import { expandShorthand, SavedObjectNotFound } from '../../../../kibana_utils/public'; -import { IndexPattern } from '../../../../data/public'; +import { + IndexPattern, + injectSearchSourceReferences, + parseSearchSourceJSON, +} from '../../../../data/public'; /** * A given response of and ElasticSearch containing a plain saved object is applied to the given @@ -63,12 +67,21 @@ export async function applyESResp( _.assign(savedObject, savedObject._source); savedObject.lastSavedTitle = savedObject.title; - if (config.searchSource) { + if (meta.searchSourceJSON) { try { - savedObject.searchSource = await dependencies.search.searchSource.fromJSON( - meta.searchSourceJSON, - resp.references - ); + let searchSourceValues = parseSearchSourceJSON(meta.searchSourceJSON); + + if (config.searchSource) { + searchSourceValues = injectSearchSourceReferences( + searchSourceValues as any, + resp.references + ); + savedObject.searchSource = await dependencies.search.searchSource.create( + searchSourceValues + ); + } else { + savedObject.searchSourceFields = searchSourceValues; + } } catch (error) { if ( error.constructor.name === 'SavedObjectNotFound' && diff --git a/src/plugins/saved_objects/public/saved_object/helpers/build_saved_object.ts b/src/plugins/saved_objects/public/saved_object/helpers/build_saved_object.ts index e5b0e18e7b43..fdc8d79c9428 100644 --- a/src/plugins/saved_objects/public/saved_object/helpers/build_saved_object.ts +++ b/src/plugins/saved_objects/public/saved_object/helpers/build_saved_object.ts @@ -55,7 +55,7 @@ export function buildSavedObject( savedObject.defaults = config.defaults || {}; // optional search source which this object configures savedObject.searchSource = config.searchSource - ? services.search.searchSource.create() + ? services.search.searchSource.createEmpty() : undefined; // the id of the document savedObject.id = config.id || void 0; diff --git a/src/plugins/saved_objects/public/saved_object/helpers/serialize_saved_object.ts b/src/plugins/saved_objects/public/saved_object/helpers/serialize_saved_object.ts index 78f9eeb8b5fb..acb371b8af9c 100644 --- a/src/plugins/saved_objects/public/saved_object/helpers/serialize_saved_object.ts +++ b/src/plugins/saved_objects/public/saved_object/helpers/serialize_saved_object.ts @@ -19,6 +19,7 @@ import _ from 'lodash'; import { SavedObject, SavedObjectConfig } from '../../types'; import { expandShorthand } from '../../../../kibana_utils/public'; +import { extractSearchSourceReferences } from '../../../../data/public'; export function serializeSavedObject(savedObject: SavedObject, config: SavedObjectConfig) { // mapping definition for the fields that this object will expose @@ -48,6 +49,15 @@ export function serializeSavedObject(savedObject: SavedObject, config: SavedObje references.push(...searchSourceReferences); } + if (savedObject.searchSourceFields) { + const [searchSourceFields, searchSourceReferences] = extractSearchSourceReferences( + savedObject.searchSourceFields + ); + const searchSourceJSON = JSON.stringify(searchSourceFields); + attributes.kibanaSavedObjectMeta = { searchSourceJSON }; + references.push(...searchSourceReferences); + } + if (savedObject.unresolvedIndexPatternReference) { references.push(savedObject.unresolvedIndexPatternReference); } diff --git a/src/plugins/saved_objects/public/saved_object/saved_object.test.ts b/src/plugins/saved_objects/public/saved_object/saved_object.test.ts index f7e67dbe3ee1..66587a5d068c 100644 --- a/src/plugins/saved_objects/public/saved_object/saved_object.test.ts +++ b/src/plugins/saved_objects/public/saved_object/saved_object.test.ts @@ -111,6 +111,7 @@ describe('Saved Object', () => { searchSource: { ...dataStartMock.search.searchSource, create: createSearchSourceMock, + createEmpty: createSearchSourceMock, }, }, } as unknown) as SavedObjectKibanaServices); @@ -572,46 +573,50 @@ describe('Saved Object', () => { }); it('passes references to search source parsing function', async () => { + SavedObjectClass = createSavedObjectClass(({ + savedObjectsClient: savedObjectsClientStub, + indexPatterns: dataStartMock.indexPatterns, + search: { + ...dataStartMock.search, + }, + } as unknown) as SavedObjectKibanaServices); const savedObject = new SavedObjectClass({ type: 'dashboard', searchSource: true }); - await savedObject.init!(); - - const searchSourceJSON = JSON.stringify({ - indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index', - filter: [ - { - meta: { - indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index', + return savedObject.init!().then(async () => { + const searchSourceJSON = JSON.stringify({ + indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.index', + filter: [ + { + meta: { + indexRefName: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index', + }, + }, + ], + }); + const response = { + found: true, + _source: { + kibanaSavedObjectMeta: { + searchSourceJSON, }, }, - ], - }); - const response = { - found: true, - _source: { - kibanaSavedObjectMeta: { - searchSourceJSON, - }, - }, - references: [ - { - name: 'kibanaSavedObjectMeta.searchSourceJSON.index', - type: 'index-pattern', - id: 'my-index-1', - }, - { - name: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index', - type: 'index-pattern', - id: 'my-index-2', - }, - ], - }; - const result = await savedObject.applyESResp(response); - - expect(result._source).toEqual({ - kibanaSavedObjectMeta: { - searchSourceJSON: - '{"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.index","filter":[{"meta":{"indexRefName":"kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index"}}]}', - }, + references: [ + { + name: 'kibanaSavedObjectMeta.searchSourceJSON.index', + type: 'index-pattern', + id: 'my-index-1', + }, + { + name: 'kibanaSavedObjectMeta.searchSourceJSON.filter[0].meta.index', + type: 'index-pattern', + id: 'my-index-2', + }, + ], + }; + await savedObject.applyESResp(response); + expect(dataStartMock.search.searchSource.create).toBeCalledWith({ + filter: [{ meta: { index: 'my-index-2' } }], + index: 'my-index-1', + }); }); }); }); diff --git a/src/plugins/saved_objects/public/types.ts b/src/plugins/saved_objects/public/types.ts index 318403804095..973a493c0a15 100644 --- a/src/plugins/saved_objects/public/types.ts +++ b/src/plugins/saved_objects/public/types.ts @@ -29,6 +29,7 @@ import { IIndexPattern, IndexPatternsContract, ISearchSource, + SearchSourceFields, } from '../../data/public'; export interface SavedObject { @@ -52,6 +53,7 @@ export interface SavedObject { migrationVersion?: Record; save: (saveOptions: SavedObjectSaveOpts) => Promise; searchSource?: ISearchSource; + searchSourceFields?: SearchSourceFields; showInRecentlyAccessed: boolean; title: string; unresolvedIndexPatternReference?: SavedObjectReference; diff --git a/src/plugins/saved_objects_management/public/lib/resolve_saved_objects.ts b/src/plugins/saved_objects_management/public/lib/resolve_saved_objects.ts index d4764b8949a6..8da8a5b1cebb 100644 --- a/src/plugins/saved_objects_management/public/lib/resolve_saved_objects.ts +++ b/src/plugins/saved_objects_management/public/lib/resolve_saved_objects.ts @@ -21,7 +21,12 @@ import { i18n } from '@kbn/i18n'; import { cloneDeep } from 'lodash'; import { OverlayStart, SavedObjectReference } from 'src/core/public'; import { SavedObject, SavedObjectLoader } from '../../../saved_objects/public'; -import { IndexPatternsContract, IIndexPattern, DataPublicPluginStart } from '../../../data/public'; +import { + DataPublicPluginStart, + IndexPatternsContract, + IIndexPattern, + injectSearchSourceReferences, +} from '../../../data/public'; type SavedObjectsRawDoc = Record; @@ -207,13 +212,17 @@ export async function resolveIndexPatternConflicts( return reference; }); + const serializedSearchSourceWithInjectedReferences = injectSearchSourceReferences( + serializedSearchSource, + replacedReferences + ); + if (!allResolved) { // The user decided to skip this conflict so do nothing return; } - obj.searchSource = await dependencies.search.searchSource.fromJSON( - JSON.stringify(serializedSearchSource), - replacedReferences + obj.searchSource = await dependencies.search.searchSource.create( + serializedSearchSourceWithInjectedReferences ); if (await saveObject(obj, overwriteAll)) { importCount++; diff --git a/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap b/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap index 3b7f48f36640..25362c067b4f 100644 --- a/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap +++ b/src/plugins/saved_objects_management/public/management_section/objects_table/__snapshots__/saved_objects_table.test.tsx.snap @@ -280,7 +280,7 @@ exports[`SavedObjectsTable import should show the flyout 1`] = ` "search": [MockFunction], "searchSource": Object { "create": [MockFunction], - "fromJSON": [MockFunction], + "createEmpty": [MockFunction], }, "setInterceptor": [MockFunction], } diff --git a/src/plugins/saved_objects_management/public/register_services.ts b/src/plugins/saved_objects_management/public/register_services.ts index a34b632b78f6..320169fb01b3 100644 --- a/src/plugins/saved_objects_management/public/register_services.ts +++ b/src/plugins/saved_objects_management/public/register_services.ts @@ -25,7 +25,7 @@ export const registerServices = async ( registry: ISavedObjectsManagementServiceRegistry, getStartServices: StartServicesAccessor ) => { - const [coreStart, { dashboard, data, visualizations, discover }] = await getStartServices(); + const [, { dashboard, visualizations, discover }] = await getStartServices(); if (dashboard) { registry.register({ @@ -47,13 +47,7 @@ export const registerServices = async ( registry.register({ id: 'savedSearches', title: 'searches', - service: discover.savedSearches.createLoader({ - savedObjectsClient: coreStart.savedObjects.client, - indexPatterns: data.indexPatterns, - search: data.search, - chrome: coreStart.chrome, - overlays: coreStart.overlays, - }), + service: discover.savedSearchLoader, }); } }; diff --git a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx b/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx index c6d43a4ef2f8..6c4a97185884 100644 --- a/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx +++ b/src/plugins/visualizations/public/embeddable/visualize_embeddable_factory.tsx @@ -122,7 +122,9 @@ export class VisualizeEmbeddableFactory try { const savedObject = await savedVisualizations.get(savedObjectId); - const vis = new Vis(savedObject.visState.type, await convertToSerializedVis(savedObject)); + const visState = convertToSerializedVis(savedObject); + const vis = new Vis(savedObject.visState.type, visState); + await vis.setState(visState); return createVisEmbeddableFromObject(this.deps)(vis, input, parent); } catch (e) { console.error(e); // eslint-disable-line no-console diff --git a/src/plugins/visualizations/public/legacy/build_pipeline.test.ts b/src/plugins/visualizations/public/legacy/build_pipeline.test.ts index 5476ce6df039..913058196380 100644 --- a/src/plugins/visualizations/public/legacy/build_pipeline.test.ts +++ b/src/plugins/visualizations/public/legacy/build_pipeline.test.ts @@ -398,6 +398,7 @@ describe('visualize loader pipeline helpers: build pipeline', () => { return aggs; }, } as any, + searchSource: {} as any, }, isHierarchical: () => { return false; @@ -473,6 +474,7 @@ describe('visualize loader pipeline helpers: build pipeline', () => { return aggs; }, } as any, + searchSource: {} as any, }, isHierarchical: () => { return false; diff --git a/src/plugins/visualizations/public/plugin.ts b/src/plugins/visualizations/public/plugin.ts index 29d66ea963a6..1bd50c882e2c 100644 --- a/src/plugins/visualizations/public/plugin.ts +++ b/src/plugins/visualizations/public/plugin.ts @@ -43,6 +43,7 @@ import { setAggs, setChrome, setOverlays, + setSavedSearchLoader, } from './services'; import { VISUALIZE_EMBEDDABLE_TYPE, @@ -70,6 +71,7 @@ import { convertFromSerializedVis, convertToSerializedVis, } from './saved_visualizations/_saved_vis'; +import { createSavedSearchesLoader } from '../../discover/public'; /** * Interface for this plugin's returned setup/start contracts. @@ -81,7 +83,7 @@ export type VisualizationsSetup = TypesSetup; export interface VisualizationsStart extends TypesStart { savedVisualizationsLoader: SavedVisualizationsLoader; - createVis: (visType: string, visState?: SerializedVis) => Vis; + createVis: (visType: string, visState: SerializedVis) => Promise; convertToSerializedVis: typeof convertToSerializedVis; convertFromSerializedVis: typeof convertFromSerializedVis; showNewVisModal: typeof showNewVisModal; @@ -174,7 +176,14 @@ export class VisualizationsPlugin visualizationTypes: types, }); setSavedVisualizationsLoader(savedVisualizationsLoader); - + const savedSearchLoader = createSavedSearchesLoader({ + savedObjectsClient: core.savedObjects.client, + indexPatterns: data.indexPatterns, + search: data.search, + chrome: core.chrome, + overlays: core.overlays, + }); + setSavedSearchLoader(savedSearchLoader); return { ...types, showNewVisModal, @@ -183,7 +192,11 @@ export class VisualizationsPlugin * @param {IIndexPattern} indexPattern - index pattern to use * @param {VisState} visState - visualization configuration */ - createVis: (visType: string, visState?: SerializedVis) => new Vis(visType, visState), + createVis: async (visType: string, visState: SerializedVis) => { + const vis = new Vis(visType); + await vis.setState(visState); + return vis; + }, convertToSerializedVis, convertFromSerializedVis, savedVisualizationsLoader, diff --git a/src/plugins/visualizations/public/saved_visualizations/_saved_vis.ts b/src/plugins/visualizations/public/saved_visualizations/_saved_vis.ts index 8bc98ca4b478..81e551b9abdc 100644 --- a/src/plugins/visualizations/public/saved_visualizations/_saved_vis.ts +++ b/src/plugins/visualizations/public/saved_visualizations/_saved_vis.ts @@ -32,32 +32,25 @@ import { // @ts-ignore import { updateOldState } from '../legacy/vis_update_state'; import { extractReferences, injectReferences } from './saved_visualization_references'; -import { IIndexPattern, ISearchSource } from '../../../../plugins/data/public'; +import { IIndexPattern } from '../../../../plugins/data/public'; import { ISavedVis, SerializedVis } from '../types'; -import { createSavedSearchesLoader } from '../../../../plugins/discover/public'; -import { getChrome, getOverlays, getIndexPatterns, getSavedObjects, getSearch } from '../services'; +import { createSavedSearchesLoader } from '../../../discover/public'; -export const convertToSerializedVis = async (savedVis: ISavedVis): Promise => { - const { visState } = savedVis; - const searchSource = - savedVis.searchSource && (await getSearchSource(savedVis.searchSource, savedVis.savedSearchId)); +export const convertToSerializedVis = (savedVis: ISavedVis): SerializedVis => { + const { id, title, description, visState, uiStateJSON, searchSourceFields } = savedVis; - const indexPattern = - searchSource && searchSource.getField('index') ? searchSource.getField('index')!.id : undefined; - - const aggs = indexPattern ? visState.aggs || [] : visState.aggs; + const aggs = searchSourceFields && searchSourceFields.index ? visState.aggs || [] : visState.aggs; return { - id: savedVis.id, - title: savedVis.title, + id, + title, type: visState.type, - description: savedVis.description, + description, params: visState.params, - uiState: JSON.parse(savedVis.uiStateJSON || '{}'), + uiState: JSON.parse(uiStateJSON || '{}'), data: { - indexPattern, aggs, - searchSource, + searchSource: searchSourceFields!, savedSearchId: savedVis.savedSearchId, }, }; @@ -74,36 +67,14 @@ export const convertFromSerializedVis = (vis: SerializedVis): ISavedVis => { params: vis.params, }, uiStateJSON: JSON.stringify(vis.uiState), - searchSource: vis.data.searchSource!, + searchSourceFields: vis.data.searchSource, savedSearchId: vis.data.savedSearchId, }; }; -const getSearchSource = async (inputSearchSource: ISearchSource, savedSearchId?: string) => { - const search = getSearch(); - - const searchSource = inputSearchSource.createCopy - ? inputSearchSource.createCopy() - : search.searchSource.create({ ...(inputSearchSource as any).fields }); - - if (savedSearchId) { - const savedSearch = await createSavedSearchesLoader({ - search, - savedObjectsClient: getSavedObjects().client, - indexPatterns: getIndexPatterns(), - chrome: getChrome(), - overlays: getOverlays(), - }).get(savedSearchId); - - searchSource.setParent(savedSearch.searchSource); - } - - searchSource!.setField('size', 0); - return searchSource; -}; - export function createSavedVisClass(services: SavedObjectKibanaServices) { const SavedObjectClass = createSavedObjectClass(services); + const savedSearch = createSavedSearchesLoader(services); class SavedVis extends SavedObjectClass { public static type: string = 'visualization'; @@ -117,7 +88,6 @@ export function createSavedVisClass(services: SavedObjectKibanaServices) { }; // Order these fields to the top, the rest are alphabetical public static fieldOrder = ['title', 'description']; - public static searchSource = true; constructor(opts: Record | string = {}) { if (typeof opts !== 'object') { @@ -128,7 +98,6 @@ export function createSavedVisClass(services: SavedObjectKibanaServices) { super({ type: SavedVis.type, mapping: SavedVis.mapping, - searchSource: SavedVis.searchSource, extractReferences, injectReferences, id: (opts.id as string) || '', @@ -144,11 +113,11 @@ export function createSavedVisClass(services: SavedObjectKibanaServices) { afterESResp: async (savedObject: SavedObject) => { const savedVis = (savedObject as any) as ISavedVis; savedVis.visState = await updateOldState(savedVis.visState); - if (savedVis.savedSearchId && savedVis.searchSource) { - savedObject.searchSource = await getSearchSource( - savedVis.searchSource, - savedVis.savedSearchId - ); + if (savedVis.searchSourceFields?.index) { + await services.indexPatterns.get(savedVis.searchSourceFields.index as any); + } + if (savedVis.savedSearchId) { + await savedSearch.get(savedVis.savedSearchId); } return (savedVis as any) as SavedObject; }, diff --git a/src/plugins/visualizations/public/saved_visualizations/saved_visualization_references.ts b/src/plugins/visualizations/public/saved_visualizations/saved_visualization_references.ts index a14595524100..d28853694b65 100644 --- a/src/plugins/visualizations/public/saved_visualizations/saved_visualization_references.ts +++ b/src/plugins/visualizations/public/saved_visualizations/saved_visualization_references.ts @@ -18,6 +18,7 @@ */ import { SavedObjectAttributes, SavedObjectReference } from '../../../../core/public'; import { VisSavedObject } from '../types'; +import { injectSearchSourceReferences, extractSearchSourceReferences } from '../../../data/public'; export function extractReferences({ attributes, @@ -29,6 +30,14 @@ export function extractReferences({ const updatedAttributes = { ...attributes }; const updatedReferences = [...references]; + if (updatedAttributes.searchSourceFields) { + const [searchSource, searchSourceReferences] = extractSearchSourceReferences( + updatedAttributes.searchSourceFields as any + ); + updatedAttributes.searchSourceFields = searchSource; + searchSourceReferences.forEach(r => updatedReferences.push(r)); + } + // Extract saved search if (updatedAttributes.savedSearchId) { updatedReferences.push({ @@ -66,6 +75,12 @@ export function extractReferences({ } export function injectReferences(savedObject: VisSavedObject, references: SavedObjectReference[]) { + if (savedObject.searchSourceFields) { + savedObject.searchSourceFields = injectSearchSourceReferences( + savedObject.searchSourceFields as any, + references + ); + } if (savedObject.savedSearchRefName) { const savedSearchReference = references.find( reference => reference.name === savedObject.savedSearchRefName diff --git a/src/plugins/visualizations/public/services.ts b/src/plugins/visualizations/public/services.ts index 618c61dff176..22cdefcee603 100644 --- a/src/plugins/visualizations/public/services.ts +++ b/src/plugins/visualizations/public/services.ts @@ -38,6 +38,7 @@ import { UsageCollectionSetup } from '../../../plugins/usage_collection/public'; import { ExpressionsStart } from '../../../plugins/expressions/public'; import { UiActionsStart } from '../../../plugins/ui_actions/public'; import { SavedVisualizationsLoader } from './saved_visualizations'; +import { SavedObjectLoader } from '../../saved_objects/public'; export const [getUISettings, setUISettings] = createGetterSetter('UISettings'); @@ -84,3 +85,7 @@ export const [getAggs, setAggs] = createGetterSetter('Overlays'); export const [getChrome, setChrome] = createGetterSetter('Chrome'); + +export const [getSavedSearchLoader, setSavedSearchLoader] = createGetterSetter( + 'savedSearchLoader' +); diff --git a/src/plugins/visualizations/public/types.ts b/src/plugins/visualizations/public/types.ts index 54528a33414c..3455d88b6ce9 100644 --- a/src/plugins/visualizations/public/types.ts +++ b/src/plugins/visualizations/public/types.ts @@ -18,7 +18,7 @@ */ import { SavedObject } from '../../../plugins/saved_objects/public'; -import { ISearchSource, AggConfigOptions } from '../../../plugins/data/public'; +import { AggConfigOptions, SearchSourceFields } from '../../../plugins/data/public'; import { SerializedVis, Vis, VisParams } from './vis'; export { Vis, SerializedVis, VisParams }; @@ -45,7 +45,7 @@ export interface ISavedVis { title: string; description?: string; visState: SavedVisState; - searchSource?: ISearchSource; + searchSourceFields?: SearchSourceFields; uiStateJSON?: string; savedSearchRefName?: string; savedSearchId?: string; diff --git a/src/plugins/visualizations/public/vis.test.ts b/src/plugins/visualizations/public/vis.test.ts index fc9327903fc9..aba735656b7d 100644 --- a/src/plugins/visualizations/public/vis.test.ts +++ b/src/plugins/visualizations/public/vis.test.ts @@ -18,8 +18,6 @@ */ import { Vis } from './vis'; -// @ts-ignore -import fixturesStubbedLogstashIndexPatternProvider from '../../../fixtures/stubbed_logstash_index_pattern'; jest.mock('./services', () => { class MockVisualizationController { @@ -36,7 +34,10 @@ jest.mock('./services', () => { // eslint-disable-next-line const { BaseVisType } = require('./vis_types/base_vis_type'); - + // eslint-disable-next-line + const { SearchSource } = require('../../data/public/search/search_source'); + // eslint-disable-next-line + const fixturesStubbedLogstashIndexPatternProvider = require('../../../fixtures/stubbed_logstash_index_pattern'); const visType = new BaseVisType({ name: 'pie', title: 'pie', @@ -51,6 +52,13 @@ jest.mock('./services', () => { aggs: cfg.map((aggConfig: any) => ({ ...aggConfig, toJSON: () => aggConfig })), }), }), + getSearch: () => ({ + searchSource: { + create: () => { + return new SearchSource({ index: fixturesStubbedLogstashIndexPatternProvider }); + }, + }, + }), }; }); @@ -66,19 +74,15 @@ describe('Vis Class', function() { { type: 'terms' as any, schema: 'segment', params: { field: 'geo.src' } }, ], searchSource: { - getField: (name: string) => { - if (name === 'index') { - return fixturesStubbedLogstashIndexPatternProvider(); - } - }, - createCopy: jest.fn(), + index: '123', }, }, params: { isDonut: true }, }; - beforeEach(function() { + beforeEach(async function() { vis = new Vis('test', stateFixture as any); + await vis.setState(stateFixture as any); }); const verifyVis = function(visToVerify: Vis) { diff --git a/src/plugins/visualizations/public/vis.ts b/src/plugins/visualizations/public/vis.ts index 009dd71b9a91..916467ac08f4 100644 --- a/src/plugins/visualizations/public/vis.ts +++ b/src/plugins/visualizations/public/vis.ts @@ -28,21 +28,22 @@ */ import { isFunction, defaults, cloneDeep } from 'lodash'; +import { Assign } from '@kbn/utility-types'; import { PersistedState } from './persisted_state'; -import { getTypes, getAggs } from './services'; +import { getTypes, getAggs, getSearch, getSavedSearchLoader } from './services'; import { VisType } from './vis_types'; import { IAggConfigs, IndexPattern, ISearchSource, AggConfigOptions, + SearchSourceFields, } from '../../../plugins/data/public'; export interface SerializedVisData { expression?: string; aggs: AggConfigOptions[]; - indexPattern?: string; - searchSource?: ISearchSource; + searchSource: SearchSourceFields; savedSearchId?: string; } @@ -68,6 +69,19 @@ export interface VisParams { [key: string]: any; } +const getSearchSource = async (inputSearchSource: ISearchSource, savedSearchId?: string) => { + const searchSource = inputSearchSource.createCopy(); + if (savedSearchId) { + const savedSearch = await getSavedSearchLoader().get(savedSearchId); + + searchSource.setParent(savedSearch.searchSource); + } + searchSource.setField('size', 0); + return searchSource; +}; + +type PartialVisState = Assign }>; + export class Vis { public readonly type: VisType; public readonly id?: string; @@ -86,8 +100,6 @@ export class Vis { this.params = this.getParams(visState.params); this.uiState = new PersistedState(visState.uiState); this.id = visState.id; - - this.setState(visState || {}); } private getType(visType: string) { @@ -102,7 +114,7 @@ export class Vis { return defaults({}, cloneDeep(params || {}), cloneDeep(this.type.visConfig.defaults || {})); } - setState(state: SerializedVis) { + async setState(state: PartialVisState) { let typeChanged = false; if (state.type && this.type.name !== state.type) { // @ts-ignore @@ -120,19 +132,24 @@ export class Vis { } if (state.data && state.data.searchSource) { - this.data.searchSource = state.data.searchSource!; + this.data.searchSource = await getSearch().searchSource.create(state.data.searchSource!); this.data.indexPattern = this.data.searchSource.getField('index'); } if (state.data && state.data.savedSearchId) { this.data.savedSearchId = state.data.savedSearchId; + if (this.data.searchSource) { + this.data.searchSource = await getSearchSource( + this.data.searchSource, + this.data.savedSearchId + ); + this.data.indexPattern = this.data.searchSource.getField('index'); + } } - if (state.data && state.data.aggs) { - const configStates = this.initializeDefaultsFromSchemas( - cloneDeep(state.data.aggs), - this.type.schemas.all || [] - ); + if (state.data && (state.data.aggs || !this.data.aggs)) { + const aggs = state.data.aggs ? cloneDeep(state.data.aggs) : []; + const configStates = this.initializeDefaultsFromSchemas(aggs, this.type.schemas.all || []); if (!this.data.indexPattern) { - if (state.data.aggs.length) { + if (aggs.length) { throw new Error('trying to initialize aggs without index pattern'); } return; @@ -142,22 +159,31 @@ export class Vis { } clone() { - return new Vis(this.type.name, this.serialize()); + const { data, ...restOfSerialized } = this.serialize(); + const vis = new Vis(this.type.name, restOfSerialized as any); + vis.setState({ ...restOfSerialized, data: {} }); + const aggs = this.data.indexPattern + ? getAggs().createAggConfigs(this.data.indexPattern, data.aggs) + : undefined; + vis.data = { + ...this.data, + aggs, + }; + return vis; } serialize(): SerializedVis { const aggs = this.data.aggs ? this.data.aggs.aggs.map(agg => agg.toJSON()) : []; - const indexPattern = this.data.searchSource && this.data.searchSource.getField('index'); return { id: this.id, title: this.title, + description: this.description, type: this.type.name, params: cloneDeep(this.params) as any, uiState: this.uiState.toJSON(), data: { aggs: aggs as any, - indexPattern: indexPattern ? indexPattern.id : undefined, - searchSource: this.data.searchSource!.createCopy(), + searchSource: this.data.searchSource ? this.data.searchSource.getSerializedFields() : {}, savedSearchId: this.data.savedSearchId, }, }; diff --git a/src/plugins/visualize/public/application/editor/editor.js b/src/plugins/visualize/public/application/editor/editor.js index bd699c762371..78e5c92c5eab 100644 --- a/src/plugins/visualize/public/application/editor/editor.js +++ b/src/plugins/visualize/public/application/editor/editor.js @@ -645,8 +645,7 @@ function VisualizeAppController($scope, $route, $injector, $timeout, kbnUrlState title: savedVis.title, type: savedVis.type || stateContainer.getState().vis.type, }); - savedVis.searchSource.setField('query', stateContainer.getState().query); - savedVis.searchSource.setField('filter', stateContainer.getState().filters); + savedVis.searchSourceFields = searchSource.getSerializedFields(); savedVis.visState = stateContainer.getState().vis; savedVis.uiStateJSON = angular.toJson($scope.uiState.toJSON()); $appStatus.dirty = false; diff --git a/src/plugins/visualize/public/application/legacy_app.js b/src/plugins/visualize/public/application/legacy_app.js index e14057cab6ca..d1c81e67be1b 100644 --- a/src/plugins/visualize/public/application/legacy_app.js +++ b/src/plugins/visualize/public/application/legacy_app.js @@ -45,9 +45,9 @@ const getResolvedResults = deps => { return savedVis => { results.savedVis = savedVis; + const serializedVis = visualizations.convertToSerializedVis(savedVis); return visualizations - .convertToSerializedVis(savedVis) - .then(serializedVis => visualizations.createVis(serializedVis.type, serializedVis)) + .createVis(serializedVis.type, serializedVis) .then(vis => { if (vis.type.setup) { return vis.type.setup(vis).catch(() => vis); @@ -171,6 +171,10 @@ export function initVisualizeApp(app, deps) { return data.indexPatterns .ensureDefaultIndexPattern(history) .then(() => savedVisualizations.get($route.current.params)) + .then(savedVis => { + savedVis.searchSourceFields = { index: $route.current.params.indexPattern }; + return savedVis; + }) .then(getResolvedResults(deps)) .then(delay) .catch( diff --git a/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.js b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.js index a412c49facea..21fd8b205b03 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.js +++ b/x-pack/plugins/maps/public/classes/sources/es_search_source/es_search_source.js @@ -399,7 +399,7 @@ export class ESSearchSource extends AbstractESSource { } const searchService = getSearchService(); - const searchSource = searchService.searchSource.create(); + const searchSource = searchService.searchSource.createEmpty(); searchSource.setField('index', indexPattern); searchSource.setField('size', 1); diff --git a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js index 87733e347aa2..b3341a1061d6 100644 --- a/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js +++ b/x-pack/plugins/maps/public/classes/sources/es_source/es_source.js @@ -125,7 +125,7 @@ export class AbstractESSource extends AbstractVectorSource { allFilters.push(getTimeFilter().createFilter(indexPattern, searchFilters.timeFilters)); } const searchService = getSearchService(); - const searchSource = searchService.searchSource.create(initialSearchContext); + const searchSource = await searchService.searchSource.create(initialSearchContext); searchSource.setField('index', indexPattern); searchSource.setField('size', limit); @@ -135,7 +135,7 @@ export class AbstractESSource extends AbstractVectorSource { } if (searchFilters.sourceQuery) { - const layerSearchSource = searchService.searchSource.create(); + const layerSearchSource = searchService.searchSource.createEmpty(); layerSearchSource.setField('index', indexPattern); layerSearchSource.setField('query', searchFilters.sourceQuery); @@ -296,7 +296,7 @@ export class AbstractESSource extends AbstractVectorSource { const indexPattern = await this.getIndexPattern(); const searchService = getSearchService(); - const searchSource = searchService.searchSource.create(); + const searchSource = searchService.searchSource.createEmpty(); searchSource.setField('index', indexPattern); searchSource.setField('size', 0); From a696fc1aa5927c4d9f24743f66f53682fa00f060 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Cau=C3=AA=20Marcondes?= <55978943+cauemarcondes@users.noreply.github.com> Date: Tue, 12 May 2020 13:17:01 +0100 Subject: [PATCH 54/67] [APM] fixing transaction action menu unit test --- .../__test__/TransactionActionMenu.test.tsx | 72 ++++++------------- 1 file changed, 23 insertions(+), 49 deletions(-) diff --git a/x-pack/plugins/apm/public/components/shared/TransactionActionMenu/__test__/TransactionActionMenu.test.tsx b/x-pack/plugins/apm/public/components/shared/TransactionActionMenu/__test__/TransactionActionMenu.test.tsx index cda602204469..b14598ef219a 100644 --- a/x-pack/plugins/apm/public/components/shared/TransactionActionMenu/__test__/TransactionActionMenu.test.tsx +++ b/x-pack/plugins/apm/public/components/shared/TransactionActionMenu/__test__/TransactionActionMenu.test.tsx @@ -5,7 +5,7 @@ */ import React from 'react'; -import { render, fireEvent, act, wait } from '@testing-library/react'; +import { render, fireEvent, act } from '@testing-library/react'; import { TransactionActionMenu } from '../TransactionActionMenu'; import { Transaction } from '../../../../../typings/es_schemas/ui/transaction'; import * as Transactions from './mockData'; @@ -143,13 +143,26 @@ describe('TransactionActionMenu component', () => { }); describe('Custom links', () => { - let callApmApiSpy: jasmine.Spy; beforeAll(() => { - callApmApiSpy = spyOn(apmApi, 'callApmApi').and.returnValue({}); + // Mocks callApmAPI because it's going to be used to fecth the transaction in the custom links flyout. + spyOn(apmApi, 'callApmApi').and.returnValue({}); }); afterAll(() => { jest.resetAllMocks(); }); + function renderTransactionActionMenuWithLicense(license: License) { + return render( + + + + + + ); + } it('doesnt show custom links when license is not valid', () => { const license = new License({ signature: 'test signature', @@ -161,17 +174,7 @@ describe('TransactionActionMenu component', () => { uid: '1' } }); - const component = render( - - - - - - ); + const component = renderTransactionActionMenuWithLicense(license); act(() => { fireEvent.click(component.getByText('Actions')); }); @@ -215,17 +218,7 @@ describe('TransactionActionMenu component', () => { uid: '1' } }); - const component = render( - - - - - - ); + const component = renderTransactionActionMenuWithLicense(license); act(() => { fireEvent.click(component.getByText('Actions')); }); @@ -242,23 +235,13 @@ describe('TransactionActionMenu component', () => { uid: '1' } }); - const component = render( - - - - - - ); + const component = renderTransactionActionMenuWithLicense(license); act(() => { fireEvent.click(component.getByText('Actions')); }); expectTextsInDocument(component, ['Custom Links']); }); - it('opens flyout with filters prefilled', async () => { + it('opens flyout with filters prefilled', () => { const license = new License({ signature: 'test signature', license: { @@ -269,17 +252,7 @@ describe('TransactionActionMenu component', () => { uid: '1' } }); - const component = render( - - - - - - ); + const component = renderTransactionActionMenuWithLicense(license); act(() => { fireEvent.click(component.getByText('Actions')); }); @@ -288,7 +261,6 @@ describe('TransactionActionMenu component', () => { fireEvent.click(component.getByText('Create custom link')); }); expectTextsInDocument(component, ['Create link']); - await wait(() => expect(callApmApiSpy).toHaveBeenCalled()); const getFilterKeyValue = (key: string) => { return { [(component.getAllByText(key)[0] as HTMLOptionElement) @@ -306,6 +278,8 @@ describe('TransactionActionMenu component', () => { expect(getFilterKeyValue('transaction.type')).toEqual({ 'transaction.type': 'request' }); + // Forces component to unmount to prevent to update the state when callApmAPI call returns after the test is finished. + component.unmount(); }); }); }); From 68432daa9f9ad370fd59bc48b65903fb1f66e247 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mike=20C=C3=B4t=C3=A9?= Date: Tue, 12 May 2020 08:29:07 -0400 Subject: [PATCH 55/67] Fix flaky end to end test for alert edit (#65893) Co-authored-by: Elastic Machine --- .../action_connector_form/action_form.tsx | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx index ae179f56f0c8..f3e955c97330 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx @@ -153,9 +153,10 @@ export const ActionForm = ({ const preconfiguredConnectors = connectors.filter(connector => connector.isPreconfigured); const hasActionsDisabled = actions.some( action => - !actionTypesIndex![action.actionTypeId].enabled && + actionTypesIndex && + !actionTypesIndex[action.actionTypeId].enabled && !checkActionFormActionTypeEnabled( - actionTypesIndex![action.actionTypeId], + actionTypesIndex[action.actionTypeId], preconfiguredConnectors ).isEnabled ); @@ -209,7 +210,11 @@ export const ActionForm = ({ }, index: number ) => { - const actionType = actionTypesIndex![actionItem.actionTypeId]; + if (!actionTypesIndex) { + return null; + } + + const actionType = actionTypesIndex[actionItem.actionTypeId]; const optionsList = connectors .filter( @@ -227,7 +232,7 @@ export const ActionForm = ({ if (!actionTypeRegistered || actionItem.group !== defaultActionGroupId) return null; const ParamsFieldsComponent = actionTypeRegistered.actionParamsFields; const checkEnabledResult = checkActionFormActionTypeEnabled( - actionTypesIndex![actionConnector.actionTypeId], + actionTypesIndex[actionConnector.actionTypeId], connectors.filter(connector => connector.isPreconfigured) ); @@ -249,7 +254,8 @@ export const ActionForm = ({ /> } labelAppend={ - actionTypesIndex![actionConnector.actionTypeId].enabledInConfig ? ( + actionTypesIndex && + actionTypesIndex[actionConnector.actionTypeId].enabledInConfig ? ( Date: Tue, 12 May 2020 14:42:09 +0200 Subject: [PATCH 56/67] [SIEM][Detection Engine] Fix StepDescription value in StepRuleActions (#63677) --- .../description_step/actions_description.tsx | 35 +++++++++++++++++++ .../rules/description_step/index.tsx | 11 ++++++ .../description_step/throttle_description.tsx | 17 +++++++++ .../rules/step_rule_actions/index.tsx | 10 ++++-- .../rules/step_rule_actions/schema.tsx | 13 +++++-- .../rules/throttle_select_field/index.tsx | 2 ++ 6 files changed, 82 insertions(+), 6 deletions(-) create mode 100644 x-pack/plugins/siem/public/alerts/components/rules/description_step/actions_description.tsx create mode 100644 x-pack/plugins/siem/public/alerts/components/rules/description_step/throttle_description.tsx diff --git a/x-pack/plugins/siem/public/alerts/components/rules/description_step/actions_description.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/actions_description.tsx new file mode 100644 index 000000000000..be96ab10bd2b --- /dev/null +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/actions_description.tsx @@ -0,0 +1,35 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import React from 'react'; +import { startCase } from 'lodash/fp'; +import { AlertAction } from '../../../../../../alerting/common'; + +const ActionsDescription = ({ actions }: { actions: AlertAction[] }) => { + if (!actions.length) return null; + + return ( +
    + {actions.map((action, index) => ( +
  • {getActionTypeName(action.actionTypeId)}
  • + ))} +
+ ); +}; + +export const buildActionsDescription = (actions: AlertAction[], title: string) => ({ + title: actions.length ? title : '', + description: , +}); + +const getActionTypeName = (actionTypeId: AlertAction['actionTypeId']) => { + if (!actionTypeId) return ''; + const actionType = actionTypeId.split('.')[1]; + + if (!actionType) return ''; + + return startCase(actionType); +}; diff --git a/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx index 86fe128b0a4f..8604367e60a1 100644 --- a/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/index.tsx @@ -34,6 +34,8 @@ import { } from './helpers'; import { useSiemJobs } from '../../../../common/components/ml_popover/hooks/use_siem_jobs'; import { buildMlJobDescription } from './ml_job_description'; +import { buildActionsDescription } from './actions_description'; +import { buildThrottleDescription } from './throttle_description'; const DescriptionListContainer = styled(EuiDescriptionList)` &.euiDescriptionList--column .euiDescriptionList__title { @@ -73,6 +75,15 @@ export const StepRuleDescriptionComponent: React.FC = ), ]; } + + if (key === 'throttle') { + return [...acc, buildThrottleDescription(get(key, data), get([key, 'label'], schema))]; + } + + if (key === 'actions') { + return [...acc, buildActionsDescription(get(key, data), get([key, 'label'], schema))]; + } + return [...acc, ...buildListItems(data, pick(key, schema), filterManager, indexPatterns)]; }, []); diff --git a/x-pack/plugins/siem/public/alerts/components/rules/description_step/throttle_description.tsx b/x-pack/plugins/siem/public/alerts/components/rules/description_step/throttle_description.tsx new file mode 100644 index 000000000000..b3cdbabab36e --- /dev/null +++ b/x-pack/plugins/siem/public/alerts/components/rules/description_step/throttle_description.tsx @@ -0,0 +1,17 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { find } from 'lodash/fp'; +import { THROTTLE_OPTIONS, DEFAULT_THROTTLE_OPTION } from '../throttle_select_field'; + +export const buildThrottleDescription = (value = DEFAULT_THROTTLE_OPTION.value, title: string) => { + const throttleOption = find(['value', value], THROTTLE_OPTIONS); + + return { + title, + description: throttleOption ? throttleOption.text : value, + }; +}; diff --git a/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx index 2d22f0a3437f..86d2eb557e07 100644 --- a/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/index.tsx @@ -17,7 +17,11 @@ import { import { StepRuleDescription } from '../description_step'; import { Form, UseField, useForm } from '../../../../shared_imports'; import { StepContentWrapper } from '../step_content_wrapper'; -import { ThrottleSelectField, THROTTLE_OPTIONS } from '../throttle_select_field'; +import { + ThrottleSelectField, + THROTTLE_OPTIONS, + DEFAULT_THROTTLE_OPTION, +} from '../throttle_select_field'; import { RuleActionsField } from '../rule_actions_field'; import { useKibana } from '../../../../common/lib/kibana'; import { schema } from './schema'; @@ -33,7 +37,7 @@ const stepActionsDefaultValue = { isNew: true, actions: [], kibanaSiemAppUrl: '', - throttle: THROTTLE_OPTIONS[0].value, + throttle: DEFAULT_THROTTLE_OPTION.value, }; const GhostFormField = () => <>; @@ -116,7 +120,7 @@ const StepRuleActionsComponent: FC = ({ return isReadOnlyView && myStepData != null ? ( - + ) : ( <> diff --git a/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx index a978e038985f..b2f8b79e3f62 100644 --- a/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/step_rule_actions/schema.tsx @@ -11,9 +11,6 @@ import { i18n } from '@kbn/i18n'; import { FormSchema } from '../../../../shared_imports'; export const schema: FormSchema = { - actions: {}, - enabled: {}, - kibanaSiemAppUrl: {}, throttle: { label: i18n.translate( 'xpack.siem.detectionEngine.createRule.stepRuleActions.fieldThrottleLabel', @@ -29,4 +26,14 @@ export const schema: FormSchema = { } ), }, + actions: { + label: i18n.translate( + 'xpack.siem.detectionEngine.createRule.stepRuleActions.fieldActionsLabel', + { + defaultMessage: 'Actions', + } + ), + }, + enabled: {}, + kibanaSiemAppUrl: {}, }; diff --git a/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx b/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx index 281c45b19ece..43fd4f1f2c61 100644 --- a/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx +++ b/x-pack/plugins/siem/public/alerts/components/rules/throttle_select_field/index.tsx @@ -20,6 +20,8 @@ export const THROTTLE_OPTIONS = [ { value: '7d', text: 'Weekly' }, ]; +export const DEFAULT_THROTTLE_OPTION = THROTTLE_OPTIONS[0]; + type ThrottleSelectField = typeof SelectField; export const ThrottleSelectField: ThrottleSelectField = props => { From 0124977830a7995bbfb493a475e6bcd2cd0dc79e Mon Sep 17 00:00:00 2001 From: Pete Harverson Date: Tue, 12 May 2020 14:53:48 +0100 Subject: [PATCH 57/67] [ML] Fixes anomaly charts for rare detectors when model plot is enabled (#66075) --- x-pack/plugins/ml/common/util/job_utils.d.ts | 2 ++ x-pack/plugins/ml/common/util/job_utils.js | 22 ++++++++++--------- .../plugins/ml/common/util/job_utils.test.js | 13 ++++++++++- .../explorer_charts_container_service.js | 3 ++- .../application/explorer/explorer_utils.js | 6 ++++- .../timeseries_search_service.ts | 10 +++++++-- .../timeseriesexplorer/timeseriesexplorer.js | 9 ++++---- 7 files changed, 45 insertions(+), 20 deletions(-) diff --git a/x-pack/plugins/ml/common/util/job_utils.d.ts b/x-pack/plugins/ml/common/util/job_utils.d.ts index 4528fbfbb774..170e42aabc67 100644 --- a/x-pack/plugins/ml/common/util/job_utils.d.ts +++ b/x-pack/plugins/ml/common/util/job_utils.d.ts @@ -44,6 +44,8 @@ export function mlFunctionToESAggregation(functionName: string): string | null; export function isModelPlotEnabled(job: Job, detectorIndex: number, entityFields: any[]): boolean; +export function isModelPlotChartableForDetector(job: Job, detectorIndex: number): boolean; + export function getSafeAggregationName(fieldName: string, index: number): string; export function getLatestDataOrBucketTimestamp( diff --git a/x-pack/plugins/ml/common/util/job_utils.js b/x-pack/plugins/ml/common/util/job_utils.js index 8fe5733ce67b..1217139872fc 100644 --- a/x-pack/plugins/ml/common/util/job_utils.js +++ b/x-pack/plugins/ml/common/util/job_utils.js @@ -105,18 +105,20 @@ export function isModelPlotChartableForDetector(job, detectorIndex) { const dtr = dtrs[detectorIndex]; const functionName = dtr.function; - // Model plot can be charted for any of the functions which map to ES aggregations, + // Model plot can be charted for any of the functions which map to ES aggregations + // (except rare, for which no model plot results are generated), // plus varp and info_content functions. isModelPlotChartable = - mlFunctionToESAggregation(functionName) !== null || - [ - 'varp', - 'high_varp', - 'low_varp', - 'info_content', - 'high_info_content', - 'low_info_content', - ].includes(functionName) === true; + functionName !== 'rare' && + (mlFunctionToESAggregation(functionName) !== null || + [ + 'varp', + 'high_varp', + 'low_varp', + 'info_content', + 'high_info_content', + 'low_info_content', + ].includes(functionName) === true); } return isModelPlotChartable; diff --git a/x-pack/plugins/ml/common/util/job_utils.test.js b/x-pack/plugins/ml/common/util/job_utils.test.js index a5df160bdf5c..de269676a96e 100644 --- a/x-pack/plugins/ml/common/util/job_utils.test.js +++ b/x-pack/plugins/ml/common/util/job_utils.test.js @@ -307,7 +307,14 @@ describe('ML - job utils', () => { const job2 = { analysis_config: { - detectors: [{ function: 'count' }, { function: 'info_content' }], + detectors: [ + { function: 'count' }, + { function: 'info_content' }, + { + function: 'rare', + by_field_name: 'mlcategory', + }, + ], }, model_plot_config: { enabled: true, @@ -325,6 +332,10 @@ describe('ML - job utils', () => { test('returns true for info_content detector when model plot is enabled', () => { expect(isModelPlotChartableForDetector(job2, 1)).toBe(true); }); + + test('returns false for rare by mlcategory when model plot is enabled', () => { + expect(isModelPlotChartableForDetector(job2, 2)).toBe(false); + }); }); describe('getPartitioningFieldNames', () => { diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js index e0fb97a81f58..fe7e436b6111 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_charts/explorer_charts_container_service.js @@ -19,6 +19,7 @@ import { chartLimits, getChartType } from '../../util/chart_utils'; import { getEntityFieldList } from '../../../../common/util/anomaly_utils'; import { isSourceDataChartableForDetector, + isModelPlotChartableForDetector, isModelPlotEnabled, } from '../../../../common/util/job_utils'; import { mlResultsService } from '../../services/results_service'; @@ -420,7 +421,7 @@ function processRecordsForDisplay(anomalyRecords) { // is chartable, and if model plot is enabled for the job. const job = mlJobService.getJob(record.job_id); let isChartable = isSourceDataChartableForDetector(job, record.detector_index); - if (isChartable === false) { + if (isChartable === false && isModelPlotChartableForDetector(job, record.detector_index)) { // Check if model plot is enabled for this job. // Need to check the entity fields for the record in case the model plot config has a terms list. const entityFields = getEntityFieldList(record); diff --git a/x-pack/plugins/ml/public/application/explorer/explorer_utils.js b/x-pack/plugins/ml/public/application/explorer/explorer_utils.js index 3fcb3c351e66..aaf9ff491ce3 100644 --- a/x-pack/plugins/ml/public/application/explorer/explorer_utils.js +++ b/x-pack/plugins/ml/public/application/explorer/explorer_utils.js @@ -20,6 +20,7 @@ import { import { getEntityFieldList } from '../../../common/util/anomaly_utils'; import { isSourceDataChartableForDetector, + isModelPlotChartableForDetector, isModelPlotEnabled, } from '../../../common/util/job_utils'; import { parseInterval } from '../../../common/util/parse_interval'; @@ -636,7 +637,10 @@ export async function loadAnomaliesTableData( // TODO - when job_service is moved server_side, move this to server endpoint. const job = mlJobService.getJob(jobId); let isChartable = isSourceDataChartableForDetector(job, anomaly.detectorIndex); - if (isChartable === false) { + if ( + isChartable === false && + isModelPlotChartableForDetector(job, anomaly.detectorIndex) + ) { // Check if model plot is enabled for this job. // Need to check the entity fields for the record in case the model plot config has a terms list. // If terms is specified, model plot is only stored if both the partition and by fields appear in the list. diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts index f973d41ad775..6e46ab0023ce 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseries_search_service.ts @@ -9,7 +9,10 @@ import _ from 'lodash'; import { Observable } from 'rxjs'; import { map } from 'rxjs/operators'; import { ml } from '../services/ml_api_service'; -import { isModelPlotEnabled } from '../../../common/util/job_utils'; +import { + isModelPlotChartableForDetector, + isModelPlotEnabled, +} from '../../../common/util/job_utils'; // @ts-ignore import { buildConfigFromDetector } from '../util/chart_config_builder'; import { mlResultsService } from '../services/results_service'; @@ -24,7 +27,10 @@ function getMetricData( latestMs: number, interval: string ): Observable { - if (isModelPlotEnabled(job, detectorIndex, entityFields)) { + if ( + isModelPlotChartableForDetector(job, detectorIndex) && + isModelPlotEnabled(job, detectorIndex, entityFields) + ) { // Extract the partition, by, over fields on which to filter. const criteriaFields = []; const detector = job.analysis_config.detectors[detectorIndex]; diff --git a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js index 45f495299bc6..8bf42fe54515 100644 --- a/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js +++ b/x-pack/plugins/ml/public/application/timeseriesexplorer/timeseriesexplorer.js @@ -36,6 +36,7 @@ import { ResizeChecker } from '../../../../../../src/plugins/kibana_utils/public import { ANOMALIES_TABLE_DEFAULT_QUERY_SIZE } from '../../../common/constants/search'; import { isModelPlotEnabled, + isModelPlotChartableForDetector, isSourceDataChartableForDetector, isTimeSeriesViewDetector, mlFunctionToESAggregation, @@ -506,11 +507,9 @@ export class TimeSeriesExplorer extends React.Component { contextForecastData: undefined, focusChartData: undefined, focusForecastData: undefined, - modelPlotEnabled: isModelPlotEnabled( - currentSelectedJob, - selectedDetectorIndex, - entityControls - ), + modelPlotEnabled: + isModelPlotChartableForDetector(currentSelectedJob, selectedDetectorIndex) && + isModelPlotEnabled(currentSelectedJob, selectedDetectorIndex, entityControls), hasResults: false, dataNotChartable: false, } From 45790d035bb5197e87b1539d1454f3544bca6969 Mon Sep 17 00:00:00 2001 From: Candace Park <56409205+parkiino@users.noreply.github.com> Date: Tue, 12 May 2020 10:08:15 -0400 Subject: [PATCH 58/67] [endpoint] connect policy response ui to api (#66093) [Endpoint] Connect policy response UI to API --- .../endpoint/store/hosts/action.ts | 8 ++- .../endpoint/store/hosts/index.test.ts | 3 ++ .../endpoint/store/hosts/middleware.ts | 53 ++++++------------ .../endpoint/store/hosts/reducer.ts | 15 ++++++ .../endpoint/store/hosts/selectors.ts | 5 ++ .../public/applications/endpoint/types.ts | 4 ++ .../view/hosts/details/host_details.tsx | 2 +- .../endpoint/view/hosts/details/index.tsx | 24 ++++++--- .../view/hosts/details/policy_response.tsx | 21 +++++++- .../details/policy_response_friendly_names.ts | 12 +++++ .../hosts/{details => }/host_constants.ts | 12 ++++- .../endpoint/view/hosts/index.tsx | 54 +++++++++++++------ 12 files changed, 148 insertions(+), 65 deletions(-) rename x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/{details => }/host_constants.ts (59%) diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/action.ts b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/action.ts index 16a1f96c926b..ac10adcda030 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/action.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/action.ts @@ -32,9 +32,15 @@ interface ServerReturnedHostPolicyResponse { payload: GetHostPolicyResponse; } +interface ServerFailedToReturnHostPolicyResponse { + type: 'serverFailedToReturnHostPolicyResponse'; + payload: ServerApiError; +} + export type HostAction = | ServerReturnedHostList | ServerFailedToReturnHostList | ServerReturnedHostDetails | ServerFailedToReturnHostDetails - | ServerReturnedHostPolicyResponse; + | ServerReturnedHostPolicyResponse + | ServerFailedToReturnHostPolicyResponse; diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/index.test.ts b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/index.test.ts index 863ffc50d015..f60a69a47168 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/index.test.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/index.test.ts @@ -41,6 +41,9 @@ describe('HostList store concerns', () => { details: undefined, detailsLoading: false, detailsError: undefined, + policyResponse: undefined, + policyResponseLoading: false, + policyResponseError: undefined, location: undefined, }); }); diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/middleware.ts b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/middleware.ts index a5378a02ed6f..9a28423d6adc 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/middleware.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/middleware.ts @@ -4,11 +4,10 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostResultList, HostPolicyResponseActionStatus } from '../../../../../common/types'; +import { HostResultList } from '../../../../../common/types'; import { isOnHostPage, hasSelectedHost, uiQueryParams, listData } from './selectors'; import { HostState } from '../../types'; import { ImmutableMiddlewareFactory } from '../../types'; -import { HostPolicyResponse } from '../../../../../common/types'; export const hostMiddlewareFactory: ImmutableMiddlewareFactory = coreStart => { return ({ getState, dispatch }) => next => async action => { @@ -70,47 +69,25 @@ export const hostMiddlewareFactory: ImmutableMiddlewareFactory = core type: 'serverReturnedHostDetails', payload: response, }); + } catch (error) { + dispatch({ + type: 'serverFailedToReturnHostDetails', + payload: error, + }); + } + + // call the policy response api + try { + const policyResponse = await coreStart.http.get(`/api/endpoint/policy_response`, { + query: { hostId: selectedHost }, + }); dispatch({ type: 'serverReturnedHostPolicyResponse', - payload: { - policy_response: ({ - endpoint: { - policy: { - applied: { - version: '1.0.0', - status: HostPolicyResponseActionStatus.success, - id: '17d4b81d-9940-4b64-9de5-3e03ef1fb5cf', - actions: { - download_model: { - status: 'success', - message: 'Model downloaded', - }, - ingest_events_config: { - status: 'failure', - message: 'No action taken', - }, - }, - response: { - configurations: { - malware: { - status: 'success', - concerned_actions: ['download_model'], - }, - events: { - status: 'failure', - concerned_actions: ['ingest_events_config'], - }, - }, - }, - }, - }, - }, - } as unknown) as HostPolicyResponse, // Temporary until we get API - }, + payload: policyResponse, }); } catch (error) { dispatch({ - type: 'serverFailedToReturnHostDetails', + type: 'serverFailedToReturnHostPolicyResponse', payload: error, }); } diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/reducer.ts b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/reducer.ts index 93e995194353..18bc6b0bea3d 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/reducer.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/reducer.ts @@ -21,6 +21,8 @@ const initialState = (): HostState => { detailsLoading: false, detailsError: undefined, policyResponse: undefined, + policyResponseLoading: false, + policyResponseError: undefined, location: undefined, }; }; @@ -68,6 +70,14 @@ export const hostListReducer: ImmutableReducer = ( return { ...state, policyResponse: action.payload.policy_response, + policyResponseLoading: false, + policyResponseError: undefined, + }; + } else if (action.type === 'serverFailedToReturnHostPolicyResponse') { + return { + ...state, + policyResponseError: action.payload, + policyResponseLoading: false, }; } else if (action.type === 'userChangedUrl') { const newState: Immutable = { @@ -97,8 +107,10 @@ export const hostListReducer: ImmutableReducer = ( ...state, location: action.payload, detailsLoading: true, + policyResponseLoading: true, error: undefined, detailsError: undefined, + policyResponseError: undefined, }; } else { // if previous page was not host list or host details, load both list and details @@ -107,8 +119,10 @@ export const hostListReducer: ImmutableReducer = ( location: action.payload, loading: true, detailsLoading: true, + policyResponseLoading: true, error: undefined, detailsError: undefined, + policyResponseError: undefined, }; } } @@ -118,6 +132,7 @@ export const hostListReducer: ImmutableReducer = ( location: action.payload, error: undefined, detailsError: undefined, + policyResponseError: undefined, }; } return state; diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/selectors.ts b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/selectors.ts index e16d4ff5d18c..1ba7549c00f4 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/selectors.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/store/hosts/selectors.ts @@ -88,6 +88,11 @@ export const policyResponseActions: ( } ); +export const policyResponseLoading = (state: Immutable): boolean => + state.policyResponseLoading; + +export const policyResponseError = (state: Immutable) => state.policyResponseError; + export const isOnHostPage = (state: Immutable) => state.location ? state.location.pathname === '/hosts' : false; diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/types.ts b/x-pack/plugins/endpoint/public/applications/endpoint/types.ts index 58e706f20ec8..8b401f80b2fd 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/types.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/types.ts @@ -110,6 +110,10 @@ export interface HostState { detailsError?: ServerApiError; /** Holds the Policy Response for the Host currently being displayed in the details */ policyResponse?: HostPolicyResponse; + /** policyResponse is being retrieved */ + policyResponseLoading: boolean; + /** api error from retrieving the policy response */ + policyResponseError?: ServerApiError; /** current location info */ location?: Immutable; } diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_details.tsx b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_details.tsx index ee1c7543d7e0..2ded0e4b3123 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_details.tsx +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_details.tsx @@ -23,7 +23,7 @@ import { useHostSelector, useHostLogsUrl } from '../hooks'; import { urlFromQueryParams } from '../url_from_query_params'; import { policyResponseStatus, uiQueryParams } from '../../../store/hosts/selectors'; import { useNavigateByRouterEventHandler } from '../../hooks/use_navigate_by_router_event_handler'; -import { POLICY_STATUS_TO_HEALTH_COLOR } from './host_constants'; +import { POLICY_STATUS_TO_HEALTH_COLOR } from '../host_constants'; const HostIds = styled(EuiListGroupItem)` margin-top: 0; diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/index.tsx b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/index.tsx index 017ce9a66f8c..5c8e1a58087e 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/index.tsx +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/index.tsx @@ -13,6 +13,7 @@ import { EuiTitle, EuiText, EuiSpacer, + EuiEmptyPrompt, } from '@elastic/eui'; import { useHistory } from 'react-router-dom'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -29,6 +30,8 @@ import { policyResponseConfigurations, policyResponseActions, policyResponseFailedOrWarningActionCount, + policyResponseError, + policyResponseLoading, } from '../../../store/hosts/selectors'; import { HostDetails } from './host_details'; import { PolicyResponse } from './policy_response'; @@ -108,6 +111,8 @@ const PolicyResponseFlyoutPanel = memo<{ const responseConfig = useHostSelector(policyResponseConfigurations); const responseActionStatus = useHostSelector(policyResponseActions); const responseAttentionCount = useHostSelector(policyResponseFailedOrWarningActionCount); + const loading = useHostSelector(policyResponseLoading); + const error = useHostSelector(policyResponseError); const detailsUri = useMemo( () => urlFromQueryParams({ @@ -142,17 +147,24 @@ const PolicyResponseFlyoutPanel = memo<{ /> - {responseConfig !== undefined && responseActionStatus !== undefined ? ( + {error && ( + + } + /> + )} + {loading && } + + {responseConfig !== undefined && responseActionStatus !== undefined && ( - ) : ( - )} diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response.tsx b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response.tsx index 8714141364e7..5fc4a9bcde33 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response.tsx +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response.tsx @@ -14,7 +14,7 @@ import { Immutable, } from '../../../../../../common/types'; import { formatResponse } from './policy_response_friendly_names'; -import { POLICY_STATUS_TO_HEALTH_COLOR } from './host_constants'; +import { POLICY_STATUS_TO_HEALTH_COLOR } from '../host_constants'; /** * Nested accordion in the policy response detailing any concerned @@ -43,6 +43,17 @@ const PolicyResponseConfigAccordion = styled(EuiAccordion)` :hover:not(.euiAccordion-isOpen) { background-color: ${props => props.theme.eui.euiColorLightestShade}; } + + .policyResponseActionsAccordion { + svg { + height: ${props => props.theme.eui.euiIconSizes.small}; + width: ${props => props.theme.eui.euiIconSizes.small}; + } + } + + .policyResponseStatusHealth { + width: 100px; + } `; const ResponseActions = memo( @@ -65,8 +76,13 @@ const ResponseActions = memo( id={action + index} key={action + index} data-test-subj="hostDetailsPolicyResponseActionsAccordion" + className="policyResponseActionsAccordion" buttonContent={ - +

{formatResponse(action)}

} @@ -75,6 +91,7 @@ const ResponseActions = memo(

{formatResponse(statuses.status)}

diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response_friendly_names.ts b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response_friendly_names.ts index 502aa66b2442..8eaacb31b4f8 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response_friendly_names.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/policy_response_friendly_names.ts @@ -25,6 +25,18 @@ responseMap.set( defaultMessage: 'Failed', }) ); +responseMap.set( + 'logging', + i18n.translate('xpack.endpoint.hostDetails.policyResponse.logging', { + defaultMessage: 'Logging', + }) +); +responseMap.set( + 'streaming', + i18n.translate('xpack.endpoint.hostDetails.policyResponse.streaming', { + defaultMessage: 'Streaming', + }) +); responseMap.set( 'malware', i18n.translate('xpack.endpoint.hostDetails.policyResponse.malware', { diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_constants.ts b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/host_constants.ts similarity index 59% rename from x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_constants.ts rename to x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/host_constants.ts index 5250eeaf028d..08b2608698a6 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/details/host_constants.ts +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/host_constants.ts @@ -4,7 +4,17 @@ * you may not use this file except in compliance with the Elastic License. */ -import { HostPolicyResponseActionStatus } from '../../../../../../common/types'; +import { HostPolicyResponseActionStatus, HostStatus } from '../../../../../common/types'; + +export const HOST_STATUS_TO_HEALTH_COLOR = Object.freeze< + { + [key in HostStatus]: string; + } +>({ + [HostStatus.ERROR]: 'danger', + [HostStatus.ONLINE]: 'success', + [HostStatus.OFFLINE]: 'subdued', +}); export const POLICY_STATUS_TO_HEALTH_COLOR = Object.freeze< { [key in keyof typeof HostPolicyResponseActionStatus]: string } diff --git a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.tsx b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.tsx index 026ba2ff1512..638dd190dcbc 100644 --- a/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.tsx +++ b/x-pack/plugins/endpoint/public/applications/endpoint/view/hosts/index.tsx @@ -5,7 +5,14 @@ */ import React, { useMemo, useCallback, memo } from 'react'; -import { EuiHorizontalRule, EuiBasicTable, EuiText, EuiLink, EuiHealth } from '@elastic/eui'; +import { + EuiHorizontalRule, + EuiBasicTable, + EuiText, + EuiLink, + EuiHealth, + EuiToolTip, +} from '@elastic/eui'; import { useHistory } from 'react-router-dom'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; @@ -16,19 +23,10 @@ import * as selectors from '../../store/hosts/selectors'; import { useHostSelector } from './hooks'; import { CreateStructuredSelector } from '../../types'; import { urlFromQueryParams } from './url_from_query_params'; -import { HostInfo, HostStatus, Immutable } from '../../../../../common/types'; +import { HostInfo, Immutable } from '../../../../../common/types'; import { PageView } from '../components/page_view'; import { useNavigateByRouterEventHandler } from '../hooks/use_navigate_by_router_event_handler'; - -const HOST_STATUS_TO_HEALTH_COLOR = Object.freeze< - { - [key in HostStatus]: string; - } ->({ - [HostStatus.ERROR]: 'danger', - [HostStatus.ONLINE]: 'success', - [HostStatus.OFFLINE]: 'subdued', -}); +import { HOST_STATUS_TO_HEALTH_COLOR } from './host_constants'; const HostLink = memo<{ name: string; @@ -39,7 +37,12 @@ const HostLink = memo<{ return ( // eslint-disable-next-line @elastic/eui/href-or-on-click - + {name} ); @@ -107,6 +110,7 @@ export const HostList = () => { { }), truncateText: true, render: () => { - return 'Policy Name'; + return Policy Name; }, }, { @@ -133,7 +137,14 @@ export const HostList = () => { defaultMessage: 'Policy Status', }), render: () => { - return Policy Status; + return ( + + + + ); }, }, { @@ -151,13 +162,24 @@ export const HostList = () => { name: i18n.translate('xpack.endpoint.host.list.os', { defaultMessage: 'Operating System', }), + truncateText: true, }, { field: 'metadata.host.ip', name: i18n.translate('xpack.endpoint.host.list.ip', { defaultMessage: 'IP Address', }), - truncateText: true, + render: (ip: string[]) => { + return ( + + + + {ip.toString().replace(',', ', ')} + + + + ); + }, }, { field: 'metadata.agent.version', From c0c7dccac7f6b1531b4ecd4d0e96dd0d122e339f Mon Sep 17 00:00:00 2001 From: Brian Seeders Date: Tue, 12 May 2020 10:25:12 -0400 Subject: [PATCH 59/67] Throw error in kbn-es when no reserved users found (#65911) --- packages/kbn-es/src/utils/native_realm.js | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/packages/kbn-es/src/utils/native_realm.js b/packages/kbn-es/src/utils/native_realm.js index 247ddc461910..086898abb6b6 100644 --- a/packages/kbn-es/src/utils/native_realm.js +++ b/packages/kbn-es/src/utils/native_realm.js @@ -76,6 +76,10 @@ exports.NativeRealm = class NativeRealm { } const reservedUsers = await this.getReservedUsers(); + if (!reservedUsers || reservedUsers.length < 1) { + throw new Error('no reserved users found, unable to set native realm passwords'); + } + await Promise.all( reservedUsers.map(async user => { await this.setPassword(user, options[`password.${user}`]); From fd6b63e9f29c23252f55eff3b0785e1f8363e15b Mon Sep 17 00:00:00 2001 From: Frank Hassanabad Date: Tue, 12 May 2020 08:50:48 -0600 Subject: [PATCH 60/67] [SIEM][Detection Engine] Adds backend e2e tests for basic license testing ## Summary Adds backend e2e basic license type tests for the detection engine API. Previously we only had tests for full security space that was platinum based licensing. These tests now cover the basic license test cases. This covers test cases for machine learning to ensure you cannot create machine learning based detection rules under the basic license. Instead those tests will return the expected 403 forbidden. Testing just the subset of the tests from this PR locally: ```sh node scripts/functional_tests --config x-pack/test/detection_engine_api_integration/basic/config.ts ``` You do want to go to the jenkins tests on CI and ensure you can see some of the strings such as the newer forbidden messages showing up as passing. ### Checklist - [x] [Unit or functional tests](https://github.com/elastic/kibana/blob/master/CONTRIBUTING.md#cross-browser-compatibility) were updated or added to match the most common scenarios --- x-pack/scripts/functional_tests.js | 1 + .../basic/config.ts | 14 + .../basic/tests/add_prepackaged_rules.ts | 92 +++++ .../basic/tests/create_rules.ts | 126 ++++++ .../basic/tests/create_rules_bulk.ts | 125 ++++++ .../basic/tests/delete_rules.ts | 118 ++++++ .../basic/tests/delete_rules_bulk.ts | 281 +++++++++++++ .../basic/tests/export_rules.ts | 130 ++++++ .../basic/tests/find_rules.ts | 100 +++++ .../basic/tests/find_statuses.ts | 67 +++ .../tests/get_prepackaged_rules_status.ts | 105 +++++ .../basic/tests/import_rules.ts | 379 +++++++++++++++++ .../basic/tests/index.ts | 32 ++ .../basic/tests/open_close_signals.ts | 54 +++ .../basic/tests/patch_rules.ts | 233 +++++++++++ .../basic/tests/patch_rules_bulk.ts | 358 ++++++++++++++++ .../basic/tests/query_signals.ts | 60 +++ .../basic/tests/read_rules.ts | 120 ++++++ .../basic/tests/update_rules.ts | 248 +++++++++++ .../basic/tests/update_rules_bulk.ts | 388 ++++++++++++++++++ .../common/config.ts | 2 +- .../tests/add_prepackaged_rules.ts | 2 +- .../security_and_spaces/tests/create_rules.ts | 2 +- .../tests/create_rules_bulk.ts | 2 +- .../security_and_spaces/tests/delete_rules.ts | 2 +- .../tests/delete_rules_bulk.ts | 2 +- .../security_and_spaces/tests/export_rules.ts | 2 +- .../security_and_spaces/tests/find_rules.ts | 2 +- .../tests/find_statuses.ts | 2 +- .../tests/get_prepackaged_rules_status.ts | 7 +- .../security_and_spaces/tests/import_rules.ts | 2 +- .../tests/open_close_signals.ts | 2 +- .../security_and_spaces/tests/patch_rules.ts | 26 +- .../tests/patch_rules_bulk.ts | 8 +- .../tests/query_signals.ts | 2 +- .../security_and_spaces/tests/read_rules.ts | 2 +- .../security_and_spaces/tests/update_rules.ts | 31 +- .../tests/update_rules_bulk.ts | 8 +- .../{security_and_spaces/tests => }/utils.ts | 4 +- 39 files changed, 3117 insertions(+), 24 deletions(-) create mode 100644 x-pack/test/detection_engine_api_integration/basic/config.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/add_prepackaged_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/create_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/create_rules_bulk.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/delete_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/delete_rules_bulk.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/export_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/find_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/find_statuses.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/get_prepackaged_rules_status.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/import_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/index.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/open_close_signals.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/patch_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/patch_rules_bulk.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/read_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/update_rules.ts create mode 100644 x-pack/test/detection_engine_api_integration/basic/tests/update_rules_bulk.ts rename x-pack/test/detection_engine_api_integration/{security_and_spaces/tests => }/utils.ts (98%) diff --git a/x-pack/scripts/functional_tests.js b/x-pack/scripts/functional_tests.js index efe1f8590597..3ec7776f848a 100644 --- a/x-pack/scripts/functional_tests.js +++ b/x-pack/scripts/functional_tests.js @@ -21,6 +21,7 @@ const onlyNotInCoverageTests = [ require.resolve('../test/alerting_api_integration/spaces_only/config.ts'), require.resolve('../test/alerting_api_integration/security_and_spaces/config.ts'), require.resolve('../test/detection_engine_api_integration/security_and_spaces/config.ts'), + require.resolve('../test/detection_engine_api_integration/basic/config.ts'), require.resolve('../test/plugin_api_integration/config.ts'), require.resolve('../test/kerberos_api_integration/config.ts'), require.resolve('../test/kerberos_api_integration/anonymous_access.config.ts'), diff --git a/x-pack/test/detection_engine_api_integration/basic/config.ts b/x-pack/test/detection_engine_api_integration/basic/config.ts new file mode 100644 index 000000000000..f9c248ec3d56 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/config.ts @@ -0,0 +1,14 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { createTestConfig } from '../common/config'; + +// eslint-disable-next-line import/no-default-export +export default createTestConfig('basic', { + disabledPlugins: [], + license: 'basic', + ssl: true, +}); diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/add_prepackaged_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/add_prepackaged_rules.ts new file mode 100644 index 000000000000..d740445ff927 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/add_prepackaged_rules.ts @@ -0,0 +1,92 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_PREPACKAGED_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { createSignalsIndex, deleteAllAlerts, deleteSignalsIndex } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('add_prepackaged_rules', () => { + describe('validation errors', () => { + it('should give an error that the index must exist first if it does not exist before adding prepackaged rules', async () => { + const { body } = await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(400); + + expect(body).to.eql({ + message: + 'Pre-packaged rules cannot be installed until the signals index is created: .siem-signals-default', + status_code: 400, + }); + }); + }); + + describe('creating prepackaged rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should contain two output keys of rules_installed and rules_updated', async () => { + const { body } = await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(Object.keys(body)).to.eql(['rules_installed', 'rules_updated']); + }); + + it('should create the prepackaged rules and return a count greater than zero', async () => { + const { body } = await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body.rules_installed).to.be.greaterThan(0); + }); + + it('should create the prepackaged rules that the rules_updated is of size zero', async () => { + const { body } = await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body.rules_updated).to.eql(0); + }); + + it('should be possible to call the API twice and the second time the number of rules installed should be zero', async () => { + await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + const { body } = await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body.rules_installed).to.eql(0); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/create_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/create_rules.ts new file mode 100644 index 000000000000..593f04c9bb73 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/create_rules.ts @@ -0,0 +1,126 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + getSimpleRuleOutputWithoutRuleId, + getSimpleRuleWithoutRuleId, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, + getSimpleMlRule, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('create_rules', () => { + describe('validation errors', () => { + it('should give an error that the index must exist first if it does not exist before creating a rule', async () => { + const { body } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(400); + + expect(body).to.eql({ + message: + 'To create a rule, the index must exist first. Index .siem-signals-default does not exist', + status_code: 400, + }); + }); + }); + + describe('creating rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should create a single rule with a rule_id', async () => { + const { body } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should create a single rule without an input index', async () => { + const { index, ...payload } = getSimpleRule(); + const { index: _index, ...expected } = getSimpleRuleOutput(); + + const { body } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(payload) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(expected); + }); + + it('should create a single rule without a rule_id', async () => { + const { body } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should give a 403 when trying to create a single Machine Learning rule since the license is basic', async () => { + const { body } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleMlRule()) + .expect(403); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql({ + message: 'Your license does not support machine learning. Please upgrade your license.', + status_code: 403, + }); + }); + + it('should cause a 409 conflict if we attempt to create the same rule_id twice', async () => { + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const { body } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(409); + + expect(body).to.eql({ + message: 'rule_id: "rule-1" already exists', + status_code: 409, + }); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/create_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/basic/tests/create_rules_bulk.ts new file mode 100644 index 000000000000..079792248b38 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/create_rules_bulk.ts @@ -0,0 +1,125 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + getSimpleRuleOutputWithoutRuleId, + getSimpleRuleWithoutRuleId, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('create_rules_bulk', () => { + describe('validation errors', () => { + it('should give a 200 even if the index does not exist as all bulks return a 200 but have an error of 409 bad request in the body', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_create`) + .set('kbn-xsrf', 'true') + .send([getSimpleRule()]) + .expect(200); + + expect(body).to.eql([ + { + error: { + message: + 'To create a rule, the index must exist first. Index .siem-signals-default does not exist', + status_code: 400, + }, + rule_id: 'rule-1', + }, + ]); + }); + }); + + describe('creating rules in bulk', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should create a single rule with a rule_id', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_create`) + .set('kbn-xsrf', 'true') + .send([getSimpleRule()]) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should create a single rule without a rule_id', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_create`) + .set('kbn-xsrf', 'true') + .send([getSimpleRuleWithoutRuleId()]) + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should return a 200 ok but have a 409 conflict if we attempt to create the same rule_id twice', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_create`) + .set('kbn-xsrf', 'true') + .send([getSimpleRule(), getSimpleRule()]) + .expect(200); + + expect(body).to.eql([ + { + error: { + message: 'rule_id: "rule-1" already exists', + status_code: 409, + }, + rule_id: 'rule-1', + }, + ]); + }); + + it('should return a 200 ok but have a 409 conflict if we attempt to create the same rule_id that already exists', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_create`) + .set('kbn-xsrf', 'true') + .send([getSimpleRule()]) + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_create`) + .set('kbn-xsrf', 'foo') + .send([getSimpleRule()]) + .expect(200); + + expect(body).to.eql([ + { + error: { + message: 'rule_id: "rule-1" already exists', + status_code: 409, + }, + rule_id: 'rule-1', + }, + ]); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/delete_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/delete_rules.ts new file mode 100644 index 000000000000..c247dc7514f2 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/delete_rules.ts @@ -0,0 +1,118 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + getSimpleRuleOutputWithoutRuleId, + getSimpleRuleWithoutRuleId, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('delete_rules', () => { + describe('deleting rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should delete a single rule with a rule_id', async () => { + // create a rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // delete the rule by its rule_id + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-1`) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should delete a single rule using an auto generated rule_id', async () => { + // add a rule where the rule_id is auto-generated + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + // delete that rule by its auto-generated rule_id + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}?rule_id=${bodyWithCreatedRule.rule_id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should delete a single rule using an auto generated id', async () => { + // add a rule + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // delete that rule by its auto-generated id + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}?id=${bodyWithCreatedRule.id}`) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should return an error if the id does not exist when trying to delete it', async () => { + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}?id=fake_id`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + message: 'id: "fake_id" not found', + status_code: 404, + }); + }); + + it('should return an error if the rule_id does not exist when trying to delete it', async () => { + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}?rule_id=fake_id`) + .set('kbn-xsrf', 'true') + .expect(404); + + expect(body).to.eql({ + message: 'rule_id: "fake_id" not found', + status_code: 404, + }); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/delete_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/basic/tests/delete_rules_bulk.ts new file mode 100644 index 000000000000..0945233115c6 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/delete_rules_bulk.ts @@ -0,0 +1,281 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + getSimpleRuleOutputWithoutRuleId, + getSimpleRuleWithoutRuleId, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('delete_rules_bulk', () => { + describe('deleting rules bulk using DELETE', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should delete a single rule with a rule_id', async () => { + // add a rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // delete the rule in bulk + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1' }]) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should delete a single rule using an auto generated rule_id', async () => { + // add a rule without a rule_id + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + // delete that rule by its rule_id + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ rule_id: bodyWithCreatedRule.rule_id }]) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should delete a single rule using an auto generated id', async () => { + // add a rule + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // delete that rule by its id + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ id: bodyWithCreatedRule.id }]) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should return an error if the ruled_id does not exist when trying to delete a rule_id', async () => { + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ rule_id: 'fake_id' }]) + .set('kbn-xsrf', 'true') + .expect(200); + + expect(body).to.eql([ + { + error: { + message: 'rule_id: "fake_id" not found', + status_code: 404, + }, + rule_id: 'fake_id', + }, + ]); + }); + + it('should return an error if the id does not exist when trying to delete an id', async () => { + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ id: 'fake_id' }]) + .set('kbn-xsrf', 'true') + .expect(200); + + expect(body).to.eql([ + { + error: { + message: 'id: "fake_id" not found', + status_code: 404, + }, + id: 'fake_id', + }, + ]); + }); + + it('should delete a single rule using an auto generated rule_id but give an error if the second rule does not exist', async () => { + // add the rule + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + const { body } = await supertest + .delete(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ id: bodyWithCreatedRule.id }, { id: 'fake_id' }]) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect([bodyToCompare, body[1]]).to.eql([ + getSimpleRuleOutputWithoutRuleId(), + { id: 'fake_id', error: { status_code: 404, message: 'id: "fake_id" not found' } }, + ]); + }); + }); + + // This is a repeat of the tests above but just using POST instead of DELETE + describe('deleting rules bulk using POST', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should delete a single rule with a rule_id', async () => { + // add a rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'foo') + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // delete the rule in bulk + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1' }]) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should delete a single rule using an auto generated rule_id', async () => { + // add a rule without a rule_id + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + // delete that rule by its rule_id + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ rule_id: bodyWithCreatedRule.rule_id }]) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should delete a single rule using an auto generated id', async () => { + // add a rule + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // delete that rule by its id + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ id: bodyWithCreatedRule.id }]) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should return an error if the ruled_id does not exist when trying to delete a rule_id', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ rule_id: 'fake_id' }]) + .set('kbn-xsrf', 'true') + .expect(200); + + expect(body).to.eql([ + { + error: { + message: 'rule_id: "fake_id" not found', + status_code: 404, + }, + rule_id: 'fake_id', + }, + ]); + }); + + it('should return an error if the id does not exist when trying to delete an id', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ id: 'fake_id' }]) + .set('kbn-xsrf', 'true') + .expect(200); + + expect(body).to.eql([ + { + error: { + message: 'id: "fake_id" not found', + status_code: 404, + }, + id: 'fake_id', + }, + ]); + }); + + it('should delete a single rule using an auto generated rule_id but give an error if the second rule does not exist', async () => { + // add the rule + const { body: bodyWithCreatedRule } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_bulk_delete`) + .send([{ id: bodyWithCreatedRule.id }, { id: 'fake_id' }]) + .set('kbn-xsrf', 'true') + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + expect([bodyToCompare, body[1]]).to.eql([ + getSimpleRuleOutputWithoutRuleId(), + { id: 'fake_id', error: { status_code: 404, message: 'id: "fake_id" not found' } }, + ]); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/export_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/export_rules.ts new file mode 100644 index 000000000000..05bb508e7f51 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/export_rules.ts @@ -0,0 +1,130 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + binaryToString, + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + removeServerGeneratedProperties, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('export_rules', () => { + describe('exporting rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should set the response content types to be expected', async () => { + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_export`) + .set('kbn-xsrf', 'true') + .send() + .expect(200) + .expect('Content-Type', 'application/ndjson') + .expect('Content-Disposition', 'attachment; filename="export.ndjson"'); + }); + + it('should export a single rule with a rule_id', async () => { + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_export`) + .set('kbn-xsrf', 'true') + .send() + .expect(200) + .parse(binaryToString); + + const bodySplitAndParsed = JSON.parse(body.toString().split(/\n/)[0]); + const bodyToTest = removeServerGeneratedProperties(bodySplitAndParsed); + + expect(bodyToTest).to.eql(getSimpleRuleOutput()); + }); + + it('should export a exported count with a single rule_id', async () => { + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_export`) + .set('kbn-xsrf', 'true') + .send() + .expect(200) + .parse(binaryToString); + + const bodySplitAndParsed = JSON.parse(body.toString().split(/\n/)[1]); + + expect(bodySplitAndParsed).to.eql({ + exported_count: 1, + missing_rules: [], + missing_rules_count: 0, + }); + }); + + it('should export exactly two rules given two rules', async () => { + // post rule 1 + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // post rule 2 + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-2')) + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_export`) + .set('kbn-xsrf', 'true') + .send() + .expect(200) + .parse(binaryToString); + + const firstRuleParsed = JSON.parse(body.toString().split(/\n/)[0]); + const secondRuleParsed = JSON.parse(body.toString().split(/\n/)[1]); + const firstRule = removeServerGeneratedProperties(firstRuleParsed); + const secondRule = removeServerGeneratedProperties(secondRuleParsed); + + expect([firstRule, secondRule]).to.eql([ + getSimpleRuleOutput('rule-2'), + getSimpleRuleOutput('rule-1'), + ]); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/find_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/find_rules.ts new file mode 100644 index 000000000000..6a4b6035c318 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/find_rules.ts @@ -0,0 +1,100 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getComplexRule, + getComplexRuleOutput, + getSimpleRule, + getSimpleRuleOutput, + removeServerGeneratedProperties, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('find_rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should return an empty find body correctly if no rules are loaded', async () => { + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(body).to.eql({ + data: [], + page: 1, + perPage: 20, + total: 0, + }); + }); + + it('should return a single rule when a single rule is loaded from a find with defaults added', async () => { + // add a single rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // query the single rule from _find + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + body.data = [removeServerGeneratedProperties(body.data[0])]; + expect(body).to.eql({ + data: [getSimpleRuleOutput()], + page: 1, + perPage: 20, + total: 1, + }); + }); + + it('should return a single rule when a single rule is loaded from a find with everything for the rule added', async () => { + // add a single rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getComplexRule()) + .expect(200); + + // query and expect that we get back one record in the find + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}/_find`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + body.data = [removeServerGeneratedProperties(body.data[0])]; + expect(body).to.eql({ + data: [getComplexRuleOutput()], + page: 1, + perPage: 20, + total: 1, + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/find_statuses.ts b/x-pack/test/detection_engine_api_integration/basic/tests/find_statuses.ts new file mode 100644 index 000000000000..3b9bac3ec672 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/find_statuses.ts @@ -0,0 +1,67 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + deleteAllRulesStatuses, + getSimpleRule, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('find_statuses', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + await deleteAllRulesStatuses(es); + }); + + it('should return an empty find statuses body correctly if no statuses are loaded', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_find_statuses`) + .set('kbn-xsrf', 'true') + .send({ ids: [] }) + .expect(200); + + expect(body).to.eql({}); + }); + + it('should return a single rule status when a single rule is loaded from a find status with defaults added', async () => { + // add a single rule + const { body: resBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + // wait for Task Manager to execute the rule and update status + await new Promise(resolve => setTimeout(resolve, 5000)); + + // query the single rule from _find + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_find_statuses`) + .set('kbn-xsrf', 'true') + .send({ ids: [resBody.id] }) + .expect(200); + + // expected result for status should be 'going to run' or 'succeeded + expect(['succeeded', 'going to run']).to.contain(body[resBody.id].current_status.status); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/get_prepackaged_rules_status.ts b/x-pack/test/detection_engine_api_integration/basic/tests/get_prepackaged_rules_status.ts new file mode 100644 index 000000000000..601876da717f --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/get_prepackaged_rules_status.ts @@ -0,0 +1,105 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { + DETECTION_ENGINE_PREPACKAGED_URL, + DETECTION_ENGINE_RULES_URL, +} from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('get_prepackaged_rules_status', () => { + describe('getting prepackaged rules status', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should return expected JSON keys of the pre-packaged rules status', async () => { + const { body } = await supertest + .get(`${DETECTION_ENGINE_PREPACKAGED_URL}/_status`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + expect(Object.keys(body)).to.eql([ + 'rules_custom_installed', + 'rules_installed', + 'rules_not_installed', + 'rules_not_updated', + ]); + }); + + it('should return that rules_not_installed are greater than zero', async () => { + const { body } = await supertest + .get(`${DETECTION_ENGINE_PREPACKAGED_URL}/_status`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.rules_not_installed).to.be.greaterThan(0); + }); + + it('should return that rules_custom_installed, rules_installed, and rules_not_updated are zero', async () => { + const { body } = await supertest + .get(`${DETECTION_ENGINE_PREPACKAGED_URL}/_status`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.rules_custom_installed).to.eql(0); + expect(body.rules_installed).to.eql(0); + expect(body.rules_not_updated).to.eql(0); + }); + + it('should show that one custom rule is installed when a custom rule is added', async () => { + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_PREPACKAGED_URL}/_status`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.rules_custom_installed).to.eql(1); + expect(body.rules_installed).to.eql(0); + expect(body.rules_not_updated).to.eql(0); + }); + + it('should show rules are installed when adding pre-packaged rules', async () => { + await supertest + .put(DETECTION_ENGINE_PREPACKAGED_URL) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_PREPACKAGED_URL}/_status`) + .set('kbn-xsrf', 'true') + .send() + .expect(200); + expect(body.rules_installed).to.be.greaterThan(0); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/import_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/import_rules.ts new file mode 100644 index 000000000000..ff7a9c259da5 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/import_rules.ts @@ -0,0 +1,379 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleAsNdjson, + getSimpleRuleOutput, + removeServerGeneratedProperties, + ruleToNdjson, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext): void => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('import_rules', () => { + describe('importing rules without an index', () => { + it('should not create a rule if the index does not exist', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(400); + + // We have to wait up to 5 seconds for any unresolved promises to flush + await new Promise(resolve => setTimeout(resolve, 5000)); + + // Try to fetch the rule which should still be a 404 (not found) + const { body } = await supertest.get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-1`).send(); + + expect(body).to.eql({ + status_code: 404, + message: 'rule_id: "rule-1" not found', + }); + }); + + it('should return an error that the index needs to be created before you are able to import a single rule', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(400); + + expect(body).to.eql({ + message: + 'To create a rule, the index must exist first. Index .siem-signals-default does not exist', + status_code: 400, + }); + }); + + it('should return an error that the index needs to be created before you are able to import two rules', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2']), 'rules.ndjson') + .expect(400); + + expect(body).to.eql({ + message: + 'To create a rule, the index must exist first. Index .siem-signals-default does not exist', + status_code: 400, + }); + }); + }); + + describe('importing rules with an index', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should set the response content types to be expected', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect('Content-Type', 'application/json; charset=utf-8') + .expect(200); + }); + + it('should reject with an error if the file type is not that of a ndjson', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.txt') + .expect(400); + + expect(body).to.eql({ + status_code: 400, + message: 'Invalid file extension .txt', + }); + }); + + it('should report that it imported a simple rule successfully', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [], + success: true, + success_count: 1, + }); + }); + + it('should report that it failed to import a thousand and one (10001) simple rules', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(new Array(10001).fill('rule-1')), 'rules.ndjson') + .expect(500); + + expect(body).to.eql({ message: "Can't import more than 10000 rules", status_code: 500 }); + }); + + it('should be able to read an imported rule back out correctly', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-1`) + .send() + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutput('rule-1')); + }); + + it('should be able to import two rules', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [], + success: true, + success_count: 2, + }); + }); + + it('should report a conflict if there is an attempt to import two rules with the same rule_id', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-1']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [ + { + error: { + message: 'More than one rule with rule-id: "rule-1" found', + status_code: 400, + }, + rule_id: 'rule-1', + }, + ], + success: false, + success_count: 1, + }); + }); + + it('should NOT report a conflict if there is an attempt to import two rules with the same rule_id and overwrite is set to true', async () => { + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import?overwrite=true`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-1']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [], + success: true, + success_count: 1, + }); + }); + + it('should report a conflict if there is an attempt to import a rule with a rule_id that already exists', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [ + { + error: { + message: 'rule_id: "rule-1" already exists', + status_code: 409, + }, + rule_id: 'rule-1', + }, + ], + success: false, + success_count: 0, + }); + }); + + it('should NOT report a conflict if there is an attempt to import a rule with a rule_id that already exists and overwrite is set to true', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import?overwrite=true`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import?overwrite=true`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [], + success: true, + success_count: 1, + }); + }); + + it('should overwrite an existing rule if overwrite is set to true', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + const simpleRule = getSimpleRule('rule-1'); + simpleRule.name = 'some other name'; + const ndjson = ruleToNdjson(simpleRule); + + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import?overwrite=true`) + .set('kbn-xsrf', 'true') + .attach('file', ndjson, 'rules.ndjson') + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-1`) + .send() + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + const ruleOutput = getSimpleRuleOutput('rule-1'); + ruleOutput.name = 'some other name'; + ruleOutput.version = 2; + expect(bodyToCompare).to.eql(ruleOutput); + }); + + it('should report a conflict if there is an attempt to import a rule with a rule_id that already exists, but still have some successes with other rules', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1']), 'rules.ndjson') + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2', 'rule-3']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [ + { + error: { + message: 'rule_id: "rule-1" already exists', + status_code: 409, + }, + rule_id: 'rule-1', + }, + ], + success: false, + success_count: 2, + }); + }); + + it('should report a mix of conflicts and a mix of successes', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2']), 'rules.ndjson') + .expect(200); + + const { body } = await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2', 'rule-3']), 'rules.ndjson') + .expect(200); + + expect(body).to.eql({ + errors: [ + { + error: { + message: 'rule_id: "rule-1" already exists', + status_code: 409, + }, + rule_id: 'rule-1', + }, + { + error: { + message: 'rule_id: "rule-2" already exists', + status_code: 409, + }, + rule_id: 'rule-2', + }, + ], + success: false, + success_count: 1, + }); + }); + + it('should be able to correctly read back a mixed import of different rules even if some cause conflicts', async () => { + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2']), 'rules.ndjson') + .expect(200); + + await supertest + .post(`${DETECTION_ENGINE_RULES_URL}/_import`) + .set('kbn-xsrf', 'true') + .attach('file', getSimpleRuleAsNdjson(['rule-1', 'rule-2', 'rule-3']), 'rules.ndjson') + .expect(200); + + const { body: bodyOfRule1 } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-1`) + .send() + .expect(200); + + const { body: bodyOfRule2 } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-2`) + .send() + .expect(200); + + const { body: bodyOfRule3 } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-3`) + .send() + .expect(200); + + const bodyToCompareOfRule1 = removeServerGeneratedProperties(bodyOfRule1); + const bodyToCompareOfRule2 = removeServerGeneratedProperties(bodyOfRule2); + const bodyToCompareOfRule3 = removeServerGeneratedProperties(bodyOfRule3); + + expect([bodyToCompareOfRule1, bodyToCompareOfRule2, bodyToCompareOfRule3]).to.eql([ + getSimpleRuleOutput('rule-1'), + getSimpleRuleOutput('rule-2'), + getSimpleRuleOutput('rule-3'), + ]); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/index.ts b/x-pack/test/detection_engine_api_integration/basic/tests/index.ts new file mode 100644 index 000000000000..917654e50cb9 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/index.ts @@ -0,0 +1,32 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { FtrProviderContext } from '../../common/ftr_provider_context'; + +// eslint-disable-next-line import/no-default-export +export default ({ loadTestFile }: FtrProviderContext): void => { + describe('detection engine api security and spaces enabled', function() { + this.tags('ciGroup1'); + + loadTestFile(require.resolve('./add_prepackaged_rules')); + loadTestFile(require.resolve('./create_rules')); + loadTestFile(require.resolve('./create_rules_bulk')); + loadTestFile(require.resolve('./delete_rules')); + loadTestFile(require.resolve('./delete_rules_bulk')); + loadTestFile(require.resolve('./export_rules')); + loadTestFile(require.resolve('./find_rules')); + loadTestFile(require.resolve('./find_statuses')); + loadTestFile(require.resolve('./get_prepackaged_rules_status')); + loadTestFile(require.resolve('./import_rules')); + loadTestFile(require.resolve('./read_rules')); + loadTestFile(require.resolve('./update_rules')); + loadTestFile(require.resolve('./update_rules_bulk')); + loadTestFile(require.resolve('./patch_rules_bulk')); + loadTestFile(require.resolve('./patch_rules')); + loadTestFile(require.resolve('./query_signals')); + loadTestFile(require.resolve('./open_close_signals')); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/open_close_signals.ts b/x-pack/test/detection_engine_api_integration/basic/tests/open_close_signals.ts new file mode 100644 index 000000000000..2837f2ed52ee --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/open_close_signals.ts @@ -0,0 +1,54 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_SIGNALS_STATUS_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteSignalsIndex, + setSignalStatus, + getSignalStatusEmptyResponse, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + + describe('open_close_signals', () => { + describe('validation checks', () => { + it('should not give errors when querying and the signals index does not exist yet', async () => { + const { body } = await supertest + .post(DETECTION_ENGINE_SIGNALS_STATUS_URL) + .set('kbn-xsrf', 'true') + .send(setSignalStatus({ signalIds: ['123'], status: 'open' })) + .expect(200); + + // remove any server generated items that are indeterministic + delete body.took; + + expect(body).to.eql(getSignalStatusEmptyResponse()); + }); + + it('should not give errors when querying and the signals index does exist and is empty', async () => { + await createSignalsIndex(supertest); + const { body } = await supertest + .post(DETECTION_ENGINE_SIGNALS_STATUS_URL) + .set('kbn-xsrf', 'true') + .send(setSignalStatus({ signalIds: ['123'], status: 'open' })) + .expect(200); + + // remove any server generated items that are indeterministic + delete body.took; + + expect(body).to.eql(getSignalStatusEmptyResponse()); + + await deleteSignalsIndex(supertest); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/patch_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/patch_rules.ts new file mode 100644 index 000000000000..85a4c0f1f664 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/patch_rules.ts @@ -0,0 +1,233 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, + getSimpleRuleOutputWithoutRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('patch_rules', () => { + describe('patch rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should patch a single rule property of name using a rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', name: 'some other name' }) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should return a "403 forbidden" using a rule_id of type "machine learning"', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's type to machine learning + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', type: 'machine_learning' }) + .expect(403); + + expect(body).to.eql({ + message: 'Your license does not support machine learning. Please upgrade your license.', + status_code: 403, + }); + }); + + it('should patch a single rule property of name using the auto-generated rule_id', async () => { + // create a simple rule + const rule = getSimpleRule('rule-1'); + delete rule.rule_id; + + const { body: createRuleBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(rule) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: createRuleBody.rule_id, name: 'some other name' }) + .expect(200); + + const outputRule = getSimpleRuleOutputWithoutRuleId(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should patch a single rule property of name using the auto-generated id', async () => { + // create a simple rule + const { body: createdBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ id: createdBody.id, name: 'some other name' }) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should not change the version of a rule when it patches only enabled', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's enabled to false + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', enabled: false }) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.enabled = false; + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should change the version of a rule when it patches enabled and another property', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's enabled to false and another property + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', severity: 'low', enabled: false }) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.enabled = false; + outputRule.severity = 'low'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should not change other properties when it does patches', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's timeline_title + await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', timeline_title: 'some title', timeline_id: 'some id' }) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', name: 'some other name' }) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.timeline_title = 'some title'; + outputRule.timeline_id = 'some id'; + outputRule.version = 3; + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should give a 404 if it is given a fake id', async () => { + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ id: 'fake_id', name: 'some other name' }) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'id: "fake_id" not found', + }); + }); + + it('should give a 404 if it is given a fake rule_id', async () => { + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'fake_id', name: 'some other name' }) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'rule_id: "fake_id" not found', + }); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/patch_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/basic/tests/patch_rules_bulk.ts new file mode 100644 index 000000000000..74aea542c32a --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/patch_rules_bulk.ts @@ -0,0 +1,358 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + removeServerGeneratedProperties, + getSimpleRuleOutputWithoutRuleId, + removeServerGeneratedPropertiesIncludingRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('patch_rules_bulk', () => { + describe('patch rules bulk', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should patch a single rule property of name using a rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1', name: 'some other name' }]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should patch two rule properties of name using the two rules rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // create a second simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-2')) + .expect(200); + + // patch both rule names + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ + { rule_id: 'rule-1', name: 'some other name' }, + { rule_id: 'rule-2', name: 'some other name' }, + ]) + .expect(200); + + const outputRule1 = getSimpleRuleOutput(); + outputRule1.name = 'some other name'; + outputRule1.version = 2; + + const outputRule2 = getSimpleRuleOutput('rule-2'); + outputRule2.name = 'some other name'; + outputRule2.version = 2; + + const bodyToCompare1 = removeServerGeneratedProperties(body[0]); + const bodyToCompare2 = removeServerGeneratedProperties(body[1]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); + }); + + it('should patch a single rule property of name using an id', async () => { + // create a simple rule + const { body: createRuleBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ id: createRuleBody.id, name: 'some other name' }]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should patch two rule properties of name using the two rules id', async () => { + // create a simple rule + const { body: createRule1 } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // create a second simple rule + const { body: createRule2 } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-2')) + .expect(200); + + // patch both rule names + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ + { id: createRule1.id, name: 'some other name' }, + { id: createRule2.id, name: 'some other name' }, + ]) + .expect(200); + + const outputRule1 = getSimpleRuleOutputWithoutRuleId('rule-1'); + outputRule1.name = 'some other name'; + outputRule1.version = 2; + + const outputRule2 = getSimpleRuleOutputWithoutRuleId('rule-2'); + outputRule2.name = 'some other name'; + outputRule2.version = 2; + + const bodyToCompare1 = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + const bodyToCompare2 = removeServerGeneratedPropertiesIncludingRuleId(body[1]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); + }); + + it('should patch a single rule property of name using the auto-generated id', async () => { + // create a simple rule + const { body: createdBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ id: createdBody.id, name: 'some other name' }]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should not change the version of a rule when it patches only enabled', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's enabled to false + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1', enabled: false }]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.enabled = false; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should change the version of a rule when it patches enabled and another property', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's enabled to false and another property + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1', severity: 'low', enabled: false }]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.enabled = false; + outputRule.severity = 'low'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should not change other properties when it does patches', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch a simple rule's timeline_title + await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1', timeline_title: 'some title', timeline_id: 'some id' }]) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'rule-1', name: 'some other name' }]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.timeline_title = 'some title'; + outputRule.timeline_id = 'some id'; + outputRule.version = 3; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should return a 200 but give a 404 in the message if it is given a fake id', async () => { + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ id: 'fake_id', name: 'some other name' }]) + .expect(200); + + expect(body).to.eql([ + { id: 'fake_id', error: { status_code: 404, message: 'id: "fake_id" not found' } }, + ]); + }); + + it('should return a 200 but give a 404 in the message if it is given a fake rule_id', async () => { + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([{ rule_id: 'fake_id', name: 'some other name' }]) + .expect(200); + + expect(body).to.eql([ + { + rule_id: 'fake_id', + error: { status_code: 404, message: 'rule_id: "fake_id" not found' }, + }, + ]); + }); + + it('should patch one rule property and give an error about a second fake rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch one rule name and give a fake id for the second + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ + { rule_id: 'rule-1', name: 'some other name' }, + { rule_id: 'fake_id', name: 'some other name' }, + ]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect([bodyToCompare, body[1]]).to.eql([ + outputRule, + { + error: { + message: 'rule_id: "fake_id" not found', + status_code: 404, + }, + rule_id: 'fake_id', + }, + ]); + }); + + it('should patch one rule property and give an error about a second fake id', async () => { + // create a simple rule + const { body: createdBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // patch one rule name and give a fake id for the second + const { body } = await supertest + .patch(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ + { id: createdBody.id, name: 'some other name' }, + { id: 'fake_id', name: 'some other name' }, + ]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect([bodyToCompare, body[1]]).to.eql([ + outputRule, + { + error: { + message: 'id: "fake_id" not found', + status_code: 404, + }, + id: 'fake_id', + }, + ]); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts b/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts new file mode 100644 index 000000000000..f4e3c2fa2ae1 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/query_signals.ts @@ -0,0 +1,60 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_QUERY_SIGNALS_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { getSignalStatus, createSignalsIndex, deleteSignalsIndex } from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + + describe('query_signals_route', () => { + describe('validation checks', () => { + it('should not give errors when querying and the signals index does not exist yet', async () => { + const { body } = await supertest + .post(DETECTION_ENGINE_QUERY_SIGNALS_URL) + .set('kbn-xsrf', 'true') + .send(getSignalStatus()) + .expect(200); + + // remove any server generated items that are indeterministic + delete body.took; + + expect(body).to.eql({ + timed_out: false, + _shards: { total: 0, successful: 0, skipped: 0, failed: 0 }, + hits: { total: { value: 0, relation: 'eq' }, max_score: 0, hits: [] }, + }); + }); + + it('should not give errors when querying and the signals index does exist and is empty', async () => { + await createSignalsIndex(supertest); + const { body } = await supertest + .post(DETECTION_ENGINE_QUERY_SIGNALS_URL) + .set('kbn-xsrf', 'true') + .send(getSignalStatus()) + .expect(200); + + // remove any server generated items that are indeterministic + delete body.took; + + expect(body).to.eql({ + timed_out: false, + _shards: { total: 1, successful: 1, skipped: 0, failed: 0 }, + hits: { total: { value: 0, relation: 'eq' }, max_score: null, hits: [] }, + aggregations: { + statuses: { doc_count_error_upper_bound: 0, sum_other_doc_count: 0, buckets: [] }, + }, + }); + + await deleteSignalsIndex(supertest); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/read_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/read_rules.ts new file mode 100644 index 000000000000..51116c6585e7 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/read_rules.ts @@ -0,0 +1,120 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + getSimpleRuleOutputWithoutRuleId, + getSimpleRuleWithoutRuleId, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('read_rules', () => { + describe('reading rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should be able to read a single rule using rule_id', async () => { + // create a simple rule to read + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=rule-1`) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should be able to read a single rule using id', async () => { + // create a simple rule to read + const { body: createRuleBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?id=${createRuleBody.id}`) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutput()); + }); + + it('should be able to read a single rule with an auto-generated rule_id', async () => { + // create a simple rule to read + const { body: createRuleBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRuleWithoutRuleId()) + .expect(200); + + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=${createRuleBody.rule_id}`) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(200); + + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(getSimpleRuleOutputWithoutRuleId()); + }); + + it('should return 404 if given a fake id', async () => { + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?id=fake_id`) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'id: "fake_id" not found', + }); + }); + + it('should return 404 if given a fake rule_id', async () => { + const { body } = await supertest + .get(`${DETECTION_ENGINE_RULES_URL}?rule_id=fake_id`) + .set('kbn-xsrf', 'true') + .send(getSimpleRule()) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'rule_id: "fake_id" not found', + }); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/update_rules.ts b/x-pack/test/detection_engine_api_integration/basic/tests/update_rules.ts new file mode 100644 index 000000000000..be64f78f1d2d --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/update_rules.ts @@ -0,0 +1,248 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + removeServerGeneratedProperties, + removeServerGeneratedPropertiesIncludingRuleId, + getSimpleRuleOutputWithoutRuleId, + getSimpleMlRule, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('update_rules', () => { + describe('update rules', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should update a single rule property of name using a rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's name + const updatedRule = getSimpleRule('rule-1'); + updatedRule.rule_id = 'rule-1'; + updatedRule.name = 'some other name'; + delete updatedRule.id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(updatedRule) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should return a 403 forbidden if it is a machine learning job', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's type to try to be a machine learning job type + const updatedRule = getSimpleMlRule('rule-1'); + updatedRule.rule_id = 'rule-1'; + updatedRule.name = 'some other name'; + delete updatedRule.id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(updatedRule) + .expect(403); + + expect(body).to.eql({ + message: 'Your license does not support machine learning. Please upgrade your license.', + status_code: 403, + }); + }); + + it('should update a single rule property of name using an auto-generated rule_id', async () => { + const rule = getSimpleRule('rule-1'); + delete rule.rule_id; + // create a simple rule + const { body: createRuleBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(rule) + .expect(200); + + // update a simple rule's name + const updatedRule = getSimpleRule('rule-1'); + updatedRule.rule_id = createRuleBody.rule_id; + updatedRule.name = 'some other name'; + delete updatedRule.id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(updatedRule) + .expect(200); + + const outputRule = getSimpleRuleOutputWithoutRuleId(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedPropertiesIncludingRuleId(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should update a single rule property of name using the auto-generated id', async () => { + // create a simple rule + const { body: createdBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's name + const updatedRule = getSimpleRule('rule-1'); + updatedRule.name = 'some other name'; + updatedRule.id = createdBody.id; + delete updatedRule.rule_id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(updatedRule) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should change the version of a rule when it updates enabled and another property', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's enabled to false and another property + const updatedRule = getSimpleRule('rule-1'); + updatedRule.severity = 'low'; + updatedRule.enabled = false; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(updatedRule) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.enabled = false; + outputRule.severity = 'low'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should change other properties when it does updates and effectively delete them such as timeline_title', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + const ruleUpdate = getSimpleRule('rule-1'); + ruleUpdate.timeline_title = 'some title'; + ruleUpdate.timeline_id = 'some id'; + + // update a simple rule's timeline_title + await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(ruleUpdate) + .expect(200); + + const ruleUpdate2 = getSimpleRule('rule-1'); + ruleUpdate2.name = 'some other name'; + + // update a simple rule's name + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(ruleUpdate2) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 3; + + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should give a 404 if it is given a fake id', async () => { + const simpleRule = getSimpleRule(); + simpleRule.id = 'fake_id'; + delete simpleRule.rule_id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(simpleRule) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'id: "fake_id" not found', + }); + }); + + it('should give a 404 if it is given a fake rule_id', async () => { + const simpleRule = getSimpleRule(); + simpleRule.rule_id = 'fake_id'; + delete simpleRule.id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(simpleRule) + .expect(404); + + expect(body).to.eql({ + status_code: 404, + message: 'rule_id: "fake_id" not found', + }); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/basic/tests/update_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/basic/tests/update_rules_bulk.ts new file mode 100644 index 000000000000..4c4dd9c775d8 --- /dev/null +++ b/x-pack/test/detection_engine_api_integration/basic/tests/update_rules_bulk.ts @@ -0,0 +1,388 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import expect from '@kbn/expect'; + +import { DETECTION_ENGINE_RULES_URL } from '../../../../plugins/siem/common/constants'; +import { FtrProviderContext } from '../../common/ftr_provider_context'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, + getSimpleRuleOutput, + removeServerGeneratedProperties, + getSimpleRuleOutputWithoutRuleId, + removeServerGeneratedPropertiesIncludingRuleId, +} from '../../utils'; + +// eslint-disable-next-line import/no-default-export +export default ({ getService }: FtrProviderContext) => { + const supertest = getService('supertest'); + const es = getService('legacyEs'); + + describe('update_rules_bulk', () => { + describe('update rules bulk', () => { + beforeEach(async () => { + await createSignalsIndex(supertest); + }); + + afterEach(async () => { + await deleteSignalsIndex(supertest); + await deleteAllAlerts(es); + }); + + it('should update a single rule property of name using a rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + const updatedRule = getSimpleRule('rule-1'); + updatedRule.name = 'some other name'; + + // update a simple rule's name + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([updatedRule]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should update two rule properties of name using the two rules rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // create a second simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-2')) + .expect(200); + + const updatedRule1 = getSimpleRule('rule-1'); + updatedRule1.name = 'some other name'; + + const updatedRule2 = getSimpleRule('rule-2'); + updatedRule2.name = 'some other name'; + + // update both rule names + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([updatedRule1, updatedRule2]) + .expect(200); + + const outputRule1 = getSimpleRuleOutput(); + outputRule1.name = 'some other name'; + outputRule1.version = 2; + + const outputRule2 = getSimpleRuleOutput('rule-2'); + outputRule2.name = 'some other name'; + outputRule2.version = 2; + + const bodyToCompare1 = removeServerGeneratedProperties(body[0]); + const bodyToCompare2 = removeServerGeneratedProperties(body[1]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); + }); + + it('should update a single rule property of name using an id', async () => { + // create a simple rule + const { body: createRuleBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's name + const updatedRule1 = getSimpleRule('rule-1'); + updatedRule1.id = createRuleBody.id; + updatedRule1.name = 'some other name'; + delete updatedRule1.rule_id; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([updatedRule1]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should update two rule properties of name using the two rules id', async () => { + // create a simple rule + const { body: createRule1 } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // create a second simple rule + const { body: createRule2 } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-2')) + .expect(200); + + // update both rule names + const updatedRule1 = getSimpleRule('rule-1'); + updatedRule1.id = createRule1.id; + updatedRule1.name = 'some other name'; + delete updatedRule1.rule_id; + + const updatedRule2 = getSimpleRule('rule-1'); + updatedRule2.id = createRule2.id; + updatedRule2.name = 'some other name'; + delete updatedRule2.rule_id; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([updatedRule1, updatedRule2]) + .expect(200); + + const outputRule1 = getSimpleRuleOutputWithoutRuleId('rule-1'); + outputRule1.name = 'some other name'; + outputRule1.version = 2; + + const outputRule2 = getSimpleRuleOutputWithoutRuleId('rule-2'); + outputRule2.name = 'some other name'; + outputRule2.version = 2; + + const bodyToCompare1 = removeServerGeneratedPropertiesIncludingRuleId(body[0]); + const bodyToCompare2 = removeServerGeneratedPropertiesIncludingRuleId(body[1]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); + }); + + it('should update a single rule property of name using the auto-generated id', async () => { + // create a simple rule + const { body: createdBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's name + const updatedRule1 = getSimpleRule('rule-1'); + updatedRule1.id = createdBody.id; + updatedRule1.name = 'some other name'; + delete updatedRule1.rule_id; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([updatedRule1]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should change the version of a rule when it updates enabled and another property', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's enabled to false and another property + const updatedRule1 = getSimpleRule('rule-1'); + updatedRule1.severity = 'low'; + updatedRule1.enabled = false; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([updatedRule1]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.enabled = false; + outputRule.severity = 'low'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should change other properties when it does updates and effectively delete them such as timeline_title', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update a simple rule's timeline_title + const ruleUpdate = getSimpleRule('rule-1'); + ruleUpdate.timeline_title = 'some title'; + ruleUpdate.timeline_id = 'some id'; + + await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ruleUpdate]) + .expect(200); + + // update a simple rule's name + const ruleUpdate2 = getSimpleRule('rule-1'); + ruleUpdate2.name = 'some other name'; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ruleUpdate2]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 3; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect(bodyToCompare).to.eql(outputRule); + }); + + it('should return a 200 but give a 404 in the message if it is given a fake id', async () => { + const ruleUpdate = getSimpleRule('rule-1'); + ruleUpdate.id = 'fake_id'; + delete ruleUpdate.rule_id; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ruleUpdate]) + .expect(200); + + expect(body).to.eql([ + { id: 'fake_id', error: { status_code: 404, message: 'id: "fake_id" not found' } }, + ]); + }); + + it('should return a 200 but give a 404 in the message if it is given a fake rule_id', async () => { + const ruleUpdate = getSimpleRule('rule-1'); + ruleUpdate.rule_id = 'fake_id'; + delete ruleUpdate.id; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ruleUpdate]) + .expect(200); + + expect(body).to.eql([ + { + rule_id: 'fake_id', + error: { status_code: 404, message: 'rule_id: "fake_id" not found' }, + }, + ]); + }); + + it('should update one rule property and give an error about a second fake rule_id', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + const ruleUpdate = getSimpleRule('rule-1'); + ruleUpdate.name = 'some other name'; + delete ruleUpdate.id; + + const ruleUpdate2 = getSimpleRule('fake_id'); + ruleUpdate2.name = 'some other name'; + delete ruleUpdate.id; + + // update one rule name and give a fake id for the second + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([ruleUpdate, ruleUpdate2]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect([bodyToCompare, body[1]]).to.eql([ + outputRule, + { + error: { + message: 'rule_id: "fake_id" not found', + status_code: 404, + }, + rule_id: 'fake_id', + }, + ]); + }); + + it('should update one rule property and give an error about a second fake id', async () => { + // create a simple rule + const { body: createdBody } = await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleRule('rule-1')) + .expect(200); + + // update one rule name and give a fake id for the second + const rule1 = getSimpleRule(); + delete rule1.rule_id; + rule1.id = createdBody.id; + rule1.name = 'some other name'; + + const rule2 = getSimpleRule(); + delete rule2.rule_id; + rule2.id = 'fake_id'; + rule2.name = 'some other name'; + + const { body } = await supertest + .put(`${DETECTION_ENGINE_RULES_URL}/_bulk_update`) + .set('kbn-xsrf', 'true') + .send([rule1, rule2]) + .expect(200); + + const outputRule = getSimpleRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + + const bodyToCompare = removeServerGeneratedProperties(body[0]); + expect([bodyToCompare, body[1]]).to.eql([ + outputRule, + { + error: { + message: 'id: "fake_id" not found', + status_code: 404, + }, + id: 'fake_id', + }, + ]); + }); + }); + }); +}; diff --git a/x-pack/test/detection_engine_api_integration/common/config.ts b/x-pack/test/detection_engine_api_integration/common/config.ts index 1e6600c7cd2c..a2d14820350d 100644 --- a/x-pack/test/detection_engine_api_integration/common/config.ts +++ b/x-pack/test/detection_engine_api_integration/common/config.ts @@ -66,7 +66,7 @@ export function createTestConfig(name: string, options: CreateTestConfigOptions) ssl, serverArgs: [ `xpack.license.self_generated.type=${license}`, - `xpack.security.enabled=${!disabledPlugins.includes('security') && license === 'trial'}`, + `xpack.security.enabled=${!disabledPlugins.includes('security')}`, ], }, kbnTestServer: { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/add_prepackaged_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/add_prepackaged_rules.ts index 602b9929485e..af5abef22fd0 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/add_prepackaged_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/add_prepackaged_rules.ts @@ -8,7 +8,7 @@ import expect from '@kbn/expect'; import { DETECTION_ENGINE_PREPACKAGED_URL } from '../../../../plugins/siem/common/constants'; import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { createSignalsIndex, deleteAllAlerts, deleteSignalsIndex } from './utils'; +import { createSignalsIndex, deleteAllAlerts, deleteSignalsIndex } from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules.ts index 43630d81e64e..71567ebc01a2 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules.ts @@ -20,7 +20,7 @@ import { removeServerGeneratedPropertiesIncludingRuleId, getSimpleMlRule, getSimpleMlRuleOutput, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules_bulk.ts index 7d406777e23f..4aee1c845aad 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules_bulk.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/create_rules_bulk.ts @@ -18,7 +18,7 @@ import { getSimpleRuleWithoutRuleId, removeServerGeneratedProperties, removeServerGeneratedPropertiesIncludingRuleId, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules.ts index 4902060f2c6e..6b4f5956cb6b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules.ts @@ -18,7 +18,7 @@ import { getSimpleRuleWithoutRuleId, removeServerGeneratedProperties, removeServerGeneratedPropertiesIncludingRuleId, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules_bulk.ts index 8ddb5f065601..770df50ebc2e 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules_bulk.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/delete_rules_bulk.ts @@ -18,7 +18,7 @@ import { getSimpleRuleWithoutRuleId, removeServerGeneratedProperties, removeServerGeneratedPropertiesIncludingRuleId, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/export_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/export_rules.ts index ed1f92457e78..1a22873d752c 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/export_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/export_rules.ts @@ -16,7 +16,7 @@ import { getSimpleRule, getSimpleRuleOutput, removeServerGeneratedProperties, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_rules.ts index c0356f877377..b661e5c56285 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_rules.ts @@ -17,7 +17,7 @@ import { getSimpleRule, getSimpleRuleOutput, removeServerGeneratedProperties, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_statuses.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_statuses.ts index b4c963232027..a6c64adc6c46 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_statuses.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/find_statuses.ts @@ -14,7 +14,7 @@ import { deleteSignalsIndex, deleteAllRulesStatuses, getSimpleRule, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/get_prepackaged_rules_status.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/get_prepackaged_rules_status.ts index a366c04330e9..2727781d3f10 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/get_prepackaged_rules_status.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/get_prepackaged_rules_status.ts @@ -11,7 +11,12 @@ import { DETECTION_ENGINE_RULES_URL, } from '../../../../plugins/siem/common/constants'; import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { createSignalsIndex, deleteAllAlerts, deleteSignalsIndex, getSimpleRule } from './utils'; +import { + createSignalsIndex, + deleteAllAlerts, + deleteSignalsIndex, + getSimpleRule, +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/import_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/import_rules.ts index ac0f51abe1c1..6abac5b90ad0 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/import_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/import_rules.ts @@ -17,7 +17,7 @@ import { getSimpleRuleOutput, removeServerGeneratedProperties, ruleToNdjson, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext): void => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/open_close_signals.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/open_close_signals.ts index 3c8c20646885..2837f2ed52ee 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/open_close_signals.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/open_close_signals.ts @@ -13,7 +13,7 @@ import { deleteSignalsIndex, setSignalStatus, getSignalStatusEmptyResponse, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules.ts index 295bd456eeeb..033c009b59d1 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules.ts @@ -17,7 +17,9 @@ import { removeServerGeneratedProperties, removeServerGeneratedPropertiesIncludingRuleId, getSimpleRuleOutputWithoutRuleId, -} from './utils'; + getSimpleMlRule, + getSimpleMlRuleOutput, +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { @@ -57,6 +59,28 @@ export default ({ getService }: FtrProviderContext) => { expect(bodyToCompare).to.eql(outputRule); }); + it('should patch a single rule property of name using a rule_id of type "machine learning"', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleMlRule('rule-1')) + .expect(200); + + // patch a simple rule's name + const { body } = await supertest + .patch(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send({ rule_id: 'rule-1', name: 'some other name' }) + .expect(200); + + const outputRule = getSimpleMlRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + it('should patch a single rule property of name using the auto-generated rule_id', async () => { // create a simple rule const rule = getSimpleRule('rule-1'); diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules_bulk.ts index 14c9ca76f6aa..87b1d543864b 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules_bulk.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/patch_rules_bulk.ts @@ -17,7 +17,7 @@ import { removeServerGeneratedProperties, getSimpleRuleOutputWithoutRuleId, removeServerGeneratedPropertiesIncludingRuleId, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { @@ -92,7 +92,8 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare1 = removeServerGeneratedProperties(body[0]); const bodyToCompare2 = removeServerGeneratedProperties(body[1]); - expect([bodyToCompare1, bodyToCompare2]).to.eql([outputRule1, outputRule2]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); }); it('should patch a single rule property of name using an id', async () => { @@ -152,7 +153,8 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare1 = removeServerGeneratedPropertiesIncludingRuleId(body[0]); const bodyToCompare2 = removeServerGeneratedPropertiesIncludingRuleId(body[1]); - expect([bodyToCompare1, bodyToCompare2]).to.eql([outputRule1, outputRule2]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); }); it('should patch a single rule property of name using the auto-generated id', async () => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/query_signals.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/query_signals.ts index 7c8bd8981db1..f4e3c2fa2ae1 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/query_signals.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/query_signals.ts @@ -8,7 +8,7 @@ import expect from '@kbn/expect'; import { DETECTION_ENGINE_QUERY_SIGNALS_URL } from '../../../../plugins/siem/common/constants'; import { FtrProviderContext } from '../../common/ftr_provider_context'; -import { getSignalStatus, createSignalsIndex, deleteSignalsIndex } from './utils'; +import { getSignalStatus, createSignalsIndex, deleteSignalsIndex } from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/read_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/read_rules.ts index 1ae6871348bb..c4e42c56376a 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/read_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/read_rules.ts @@ -18,7 +18,7 @@ import { getSimpleRuleWithoutRuleId, removeServerGeneratedProperties, removeServerGeneratedPropertiesIncludingRuleId, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules.ts index 42501c005d99..3e1a2382d7e6 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules.ts @@ -17,7 +17,9 @@ import { removeServerGeneratedProperties, removeServerGeneratedPropertiesIncludingRuleId, getSimpleRuleOutputWithoutRuleId, -} from './utils'; + getSimpleMlRule, + getSimpleMlRuleOutput, +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { @@ -62,6 +64,33 @@ export default ({ getService }: FtrProviderContext) => { expect(bodyToCompare).to.eql(outputRule); }); + it('should update a single rule property of name using a rule_id with a machine learning job', async () => { + // create a simple rule + await supertest + .post(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(getSimpleMlRule('rule-1')) + .expect(200); + + // update a simple rule's name + const updatedRule = getSimpleMlRule('rule-1'); + updatedRule.rule_id = 'rule-1'; + updatedRule.name = 'some other name'; + delete updatedRule.id; + + const { body } = await supertest + .put(DETECTION_ENGINE_RULES_URL) + .set('kbn-xsrf', 'true') + .send(updatedRule) + .expect(200); + + const outputRule = getSimpleMlRuleOutput(); + outputRule.name = 'some other name'; + outputRule.version = 2; + const bodyToCompare = removeServerGeneratedProperties(body); + expect(bodyToCompare).to.eql(outputRule); + }); + it('should update a single rule property of name using an auto-generated rule_id', async () => { const rule = getSimpleRule('rule-1'); delete rule.rule_id; diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules_bulk.ts b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules_bulk.ts index b7f998d4043f..27117cfff18e 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules_bulk.ts +++ b/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/update_rules_bulk.ts @@ -17,7 +17,7 @@ import { removeServerGeneratedProperties, getSimpleRuleOutputWithoutRuleId, removeServerGeneratedPropertiesIncludingRuleId, -} from './utils'; +} from '../../utils'; // eslint-disable-next-line import/no-default-export export default ({ getService }: FtrProviderContext) => { @@ -98,7 +98,8 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare1 = removeServerGeneratedProperties(body[0]); const bodyToCompare2 = removeServerGeneratedProperties(body[1]); - expect([bodyToCompare1, bodyToCompare2]).to.eql([outputRule1, outputRule2]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); }); it('should update a single rule property of name using an id', async () => { @@ -170,7 +171,8 @@ export default ({ getService }: FtrProviderContext) => { const bodyToCompare1 = removeServerGeneratedPropertiesIncludingRuleId(body[0]); const bodyToCompare2 = removeServerGeneratedPropertiesIncludingRuleId(body[1]); - expect([bodyToCompare1, bodyToCompare2]).to.eql([outputRule1, outputRule2]); + expect(bodyToCompare1).to.eql(outputRule1); + expect(bodyToCompare2).to.eql(outputRule2); }); it('should update a single rule property of name using the auto-generated id', async () => { diff --git a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts b/x-pack/test/detection_engine_api_integration/utils.ts similarity index 98% rename from x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts rename to x-pack/test/detection_engine_api_integration/utils.ts index 5eabecf96f3e..85c89cd499ee 100644 --- a/x-pack/test/detection_engine_api_integration/security_and_spaces/tests/utils.ts +++ b/x-pack/test/detection_engine_api_integration/utils.ts @@ -7,8 +7,8 @@ import { Client } from '@elastic/elasticsearch'; import { SuperTest } from 'supertest'; import supertestAsPromised from 'supertest-as-promised'; -import { OutputRuleAlertRest } from '../../../../plugins/siem/server/lib/detection_engine/types'; -import { DETECTION_ENGINE_INDEX_URL } from '../../../../plugins/siem/common/constants'; +import { OutputRuleAlertRest } from '../../plugins/siem/server/lib/detection_engine/types'; +import { DETECTION_ENGINE_INDEX_URL } from '../../plugins/siem/common/constants'; /** * This will remove server generated properties such as date times, etc... From 712e917f5e4a5333973c5f9c71ea316eefc37b75 Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Tue, 12 May 2020 08:27:22 -0700 Subject: [PATCH 61/67] [Metrics UI] Fixing time picker layout issues on Inventory View (#66094) * [Metrics UI] Fixing time picker layout issues on Inventory View * Adding data-test-subj --- .../waffle/waffle_time_controls.tsx | 60 ++++++++++++------- 1 file changed, 38 insertions(+), 22 deletions(-) diff --git a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx index 7f190f21484d..fac1e086101e 100644 --- a/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx +++ b/x-pack/plugins/infra/public/pages/metrics/inventory_view/components/waffle/waffle_time_controls.tsx @@ -4,13 +4,18 @@ * you may not use this file except in compliance with the Elastic License. */ -import { EuiButtonEmpty, EuiDatePicker, EuiFormControlLayout } from '@elastic/eui'; +import { EuiButton, EuiDatePicker, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { FormattedMessage } from '@kbn/i18n/react'; import moment, { Moment } from 'moment'; import React, { useCallback } from 'react'; +import { withTheme, EuiTheme } from '../../../../../../../observability/public'; import { useWaffleTimeContext } from '../../hooks/use_waffle_time'; -export const WaffleTimeControls = () => { +interface Props { + theme: EuiTheme; +} + +export const WaffleTimeControls = withTheme(({ theme }: Props) => { const { currentTime, isAutoReloading, @@ -22,19 +27,19 @@ export const WaffleTimeControls = () => { const currentMoment = moment(currentTime); const liveStreamingButton = isAutoReloading ? ( - + - + ) : ( - + - + ); const handleChangeDate = useCallback( @@ -47,20 +52,31 @@ export const WaffleTimeControls = () => { ); return ( - - - + + + + + {liveStreamingButton} + ); -}; +}); From 9919dff00499df0e6c347c10b5a77b218a55bfb5 Mon Sep 17 00:00:00 2001 From: Chris Cowan Date: Tue, 12 May 2020 08:27:50 -0700 Subject: [PATCH 62/67] [Metrics UI] Fix chart time range and percentile thresholds (#66128) --- .../plugins/infra/common/http_api/metrics_explorer.ts | 1 + .../metric_threshold/components/expression_chart.tsx | 10 ++++++---- .../hooks/use_metrics_explorer_chart_data.ts | 1 + .../hooks/use_metrics_explorer_data.ts | 1 + .../hooks/use_metrics_explorer_options.ts | 1 + .../metrics_explorer/lib/create_metrics_model.ts | 3 +++ 6 files changed, 13 insertions(+), 4 deletions(-) diff --git a/x-pack/plugins/infra/common/http_api/metrics_explorer.ts b/x-pack/plugins/infra/common/http_api/metrics_explorer.ts index 07d5fe59a971..d3a978c9963c 100644 --- a/x-pack/plugins/infra/common/http_api/metrics_explorer.ts +++ b/x-pack/plugins/infra/common/http_api/metrics_explorer.ts @@ -58,6 +58,7 @@ export const metricsExplorerRequestBodyOptionalFieldsRT = rt.partial({ limit: rt.union([rt.number, rt.null, rt.undefined]), filterQuery: rt.union([rt.string, rt.null, rt.undefined]), forceInterval: rt.boolean, + dropLastBucket: rt.boolean, }); export const metricsExplorerRequestBodyRT = rt.intersection([ diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx index 77147d1b3b2b..0e1195965448 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/components/expression_chart.tsx @@ -35,6 +35,7 @@ import { getChartTheme } from '../../../pages/metrics/metrics_explorer/component import { createFormatterForMetric } from '../../../pages/metrics/metrics_explorer/components/helpers/create_formatter_for_metric'; import { calculateDomain } from '../../../pages/metrics/metrics_explorer/components/helpers/calculate_domain'; import { useMetricsExplorerChartData } from '../hooks/use_metrics_explorer_chart_data'; +import { getMetricId } from '../../../pages/metrics/metrics_explorer/components/helpers/get_metric_id'; interface Props { context: AlertsContextValue; @@ -120,7 +121,7 @@ export const ExpressionChart: React.FC = ({ rows: firstSeries.rows.map(row => { const newRow: MetricsExplorerRow = { ...row }; thresholds.forEach((thresholdValue, index) => { - newRow[`metric_threshold_${index}`] = thresholdValue; + newRow[getMetricId(metric, `threshold_${index}`)] = thresholdValue; }); return newRow; }), @@ -140,7 +141,8 @@ export const ExpressionChart: React.FC = ({ const isAbove = [Comparator.GT, Comparator.GT_OR_EQ].includes(expression.comparator); const opacity = 0.3; - const timeLabel = TIME_LABELS[expression.timeUnit]; + const { timeSize, timeUnit } = expression; + const timeLabel = TIME_LABELS[timeUnit]; return ( <> @@ -255,8 +257,8 @@ export const ExpressionChart: React.FC = ({ ) : ( diff --git a/x-pack/plugins/infra/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.ts b/x-pack/plugins/infra/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.ts index 67f66bf742f4..185895062cfe 100644 --- a/x-pack/plugins/infra/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.ts +++ b/x-pack/plugins/infra/public/alerting/metric_threshold/hooks/use_metrics_explorer_chart_data.ts @@ -26,6 +26,7 @@ export const useMetricsExplorerChartData = ( () => ({ limit: 1, forceInterval: true, + dropLastBucket: false, groupBy, filterQuery, metrics: [ diff --git a/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts index 414e204f3df5..da6d77ef4b47 100644 --- a/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_data.ts @@ -60,6 +60,7 @@ export function useMetricsExplorerData( method: 'POST', body: JSON.stringify({ forceInterval: options.forceInterval, + dropLastBucket: options.dropLastBucket != null ? options.dropLastBucket : true, metrics: options.aggregation === 'count' ? [{ aggregation: 'count' }] diff --git a/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts index 1b3e809fde61..f79c7aa0d4d6 100644 --- a/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts +++ b/x-pack/plugins/infra/public/pages/metrics/metrics_explorer/hooks/use_metrics_explorer_options.ts @@ -41,6 +41,7 @@ export interface MetricsExplorerOptions { filterQuery?: string; aggregation: MetricsExplorerAggregation; forceInterval?: boolean; + dropLastBucket?: boolean; } export interface MetricsExplorerTimeOptions { diff --git a/x-pack/plugins/infra/server/routes/metrics_explorer/lib/create_metrics_model.ts b/x-pack/plugins/infra/server/routes/metrics_explorer/lib/create_metrics_model.ts index a7f393261a09..3a9abf525a9f 100644 --- a/x-pack/plugins/infra/server/routes/metrics_explorer/lib/create_metrics_model.ts +++ b/x-pack/plugins/infra/server/routes/metrics_explorer/lib/create_metrics_model.ts @@ -15,12 +15,15 @@ const percentileToVaue = (agg: 'p95' | 'p99') => { }; export const createMetricModel = (options: MetricsExplorerRequestBody): TSVBMetricModel => { + // if dropLastBucket is set use the value otherwise default to true. + const dropLastBucket: boolean = options.dropLastBucket != null ? options.dropLastBucket : true; return { id: 'custom', requires: [], index_pattern: options.indexPattern, interval: options.timerange.interval, time_field: options.timerange.field, + drop_last_bucket: dropLastBucket, type: 'timeseries', // Create one series per metric requested. The series.id will be used to identify the metric // when the responses are processed and combined with the grouping request. From 25a3fcea525da376a414b1e69b2d7a8d2874789b Mon Sep 17 00:00:00 2001 From: Marta Bondyra Date: Tue, 12 May 2020 17:46:35 +0200 Subject: [PATCH 63/67] [Lens] refactor to not filter layers three times (#66174) --- .../public/xy_visualization/xy_expression.tsx | 20 +++++-------------- 1 file changed, 5 insertions(+), 15 deletions(-) diff --git a/x-pack/plugins/lens/public/xy_visualization/xy_expression.tsx b/x-pack/plugins/lens/public/xy_visualization/xy_expression.tsx index ab0af94cbc2b..d069a76f214d 100644 --- a/x-pack/plugins/lens/public/xy_visualization/xy_expression.tsx +++ b/x-pack/plugins/lens/public/xy_visualization/xy_expression.tsx @@ -236,17 +236,9 @@ export function XYChart({ // check all the tables to see if all of the rows have the same timestamp // that would mean that chart will draw a single bar const isSingleTimestampInXDomain = () => { - const nonEmptyLayers = layers.filter( - layer => data.tables[layer.layerId].rows.length && layer.xAccessor - ); - - if (!nonEmptyLayers.length) { - return; - } - const firstRowValue = - data.tables[nonEmptyLayers[0].layerId].rows[0][nonEmptyLayers[0].xAccessor!]; - for (const layer of nonEmptyLayers) { + data.tables[filteredLayers[0].layerId].rows[0][filteredLayers[0].xAccessor!]; + for (const layer of filteredLayers) { if ( layer.xAccessor && data.tables[layer.layerId].rows.some(row => row[layer.xAccessor!] !== firstRowValue) @@ -270,7 +262,7 @@ export function XYChart({ return undefined; } - const isTimeViz = data.dateRange && layers.every(l => l.xScaleType === 'time'); + const isTimeViz = data.dateRange && filteredLayers.every(l => l.xScaleType === 'time'); const xDomain = isTimeViz ? { @@ -299,12 +291,10 @@ export function XYChart({ return; } - const firstLayerWithData = - layers[layers.findIndex(layer => data.tables[layer.layerId].rows.length)]; - const table = data.tables[firstLayerWithData.layerId]; + const table = data.tables[filteredLayers[0].layerId]; const xAxisColumnIndex = table.columns.findIndex( - el => el.id === firstLayerWithData.xAccessor + el => el.id === filteredLayers[0].xAccessor ); const timeFieldName = table.columns[xAxisColumnIndex]?.meta?.aggConfigParams?.field; From eef9ecefe0bc06392e607d27860f8eb473e43500 Mon Sep 17 00:00:00 2001 From: Gidi Meir Morris Date: Tue, 12 May 2020 17:05:46 +0100 Subject: [PATCH 64/67] [Alerting] Adds lazy loading to AlertType and Flyout components (#65678) This PR: 1. Adds support for lazy loading AlertType components and migrates the built-in IndexThreshold components to lazy load. 2. Adds lazy loading of the components contained in the flyout so that only the wrapper component is imported by other plugins and the internal components are loaded when needed. --- x-pack/plugins/triggers_actions_ui/README.md | 23 +++++++++----- .../public/application/app.tsx | 31 +++++-------------- .../threshold/expression.tsx | 25 +++++---------- .../builtin_alert_types/threshold/index.ts | 9 ++++-- .../lib/suspended_component_with_props.tsx | 27 ++++++++++++++++ .../action_form.test.tsx | 2 +- .../action_connector_form/action_form.tsx | 3 ++ .../connector_add_flyout.test.tsx | 2 +- .../connector_add_flyout.tsx | 3 ++ .../connector_edit_flyout.test.tsx | 2 +- .../connector_edit_flyout.tsx | 3 ++ .../sections/action_connector_form/index.ts | 13 ++++++-- .../actions_connectors_list.test.tsx | 5 +-- .../components/actions_connectors_list.tsx | 4 ++- .../sections/alert_form/alert_add.test.tsx | 2 +- .../sections/alert_form/alert_add.tsx | 3 ++ .../sections/alert_form/alert_edit.test.tsx | 2 +- .../sections/alert_form/alert_edit.tsx | 3 ++ .../sections/alert_form/alert_form.tsx | 31 +++++++++++++------ .../application/sections/alert_form/index.ts | 8 ----- .../application/sections/alert_form/index.tsx | 10 ++++++ .../public/application/sections/index.tsx | 21 +++++++++++++ .../common/expression_items/for_the_last.tsx | 3 +- .../common/expression_items/group_by_over.tsx | 3 +- .../triggers_actions_ui/public/index.ts | 8 ++++- .../triggers_actions_ui/public/types.ts | 22 +++++++++++-- .../public/lib/alert_types/monitor_status.tsx | 4 ++- 27 files changed, 186 insertions(+), 86 deletions(-) create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/lib/suspended_component_with_props.tsx delete mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/index.ts create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/index.tsx create mode 100644 x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx diff --git a/x-pack/plugins/triggers_actions_ui/README.md b/x-pack/plugins/triggers_actions_ui/README.md index c5f02863ba8a..0ed6917854dc 100644 --- a/x-pack/plugins/triggers_actions_ui/README.md +++ b/x-pack/plugins/triggers_actions_ui/README.md @@ -69,13 +69,13 @@ export function getAlertType(): AlertTypeModel { id: '.index-threshold', name: 'Index threshold', iconClass: 'alert', - alertParamsExpression: IndexThresholdAlertTypeExpression, + alertParamsExpression: lazy(() => import('./index_threshold_expression')), validate: validateAlertType, }; } ``` -alertParamsExpression form represented as an expression using `EuiExpression` components: +alertParamsExpression should be a lazy loaded React component extending an expression using `EuiExpression` components: ![Index Threshold Alert expression form](https://i.imgur.com/Ysk1ljY.png) ``` @@ -171,6 +171,7 @@ export const alertReducer = (state: any, action: AlertReducerAction) => { ``` +The Expression component should be lazy loaded which means it'll have to be the default export in `index_threshold_expression.ts`: ``` export const IndexThresholdAlertTypeExpression: React.FunctionComponent = ({ @@ -224,6 +225,9 @@ export const IndexThresholdAlertTypeExpression: React.FunctionComponent ); }; + +// Export as default in order to support lazy loading +export {IndexThresholdAlertTypeExpression as default}; ``` Index Threshold Alert form with validation: @@ -237,7 +241,9 @@ Each alert type should be defined as `AlertTypeModel` object with the these prop name: string; iconClass: string; validate: (alertParams: any) => ValidationResult; - alertParamsExpression: React.FunctionComponent; + alertParamsExpression: React.LazyExoticComponent< + ComponentType> + >; defaultActionMessage?: string; ``` |Property|Description| @@ -246,7 +252,7 @@ Each alert type should be defined as `AlertTypeModel` object with the these prop |name|Name of the alert type that will be displayed on the select card in the UI.| |iconClass|Icon of the alert type that will be displayed on the select card in the UI.| |validate|Validation function for the alert params.| -|alertParamsExpression|React functional component for building UI of the current alert type params.| +|alertParamsExpression| A lazy loaded React component for building UI of the current alert type params.| |defaultActionMessage|Optional property for providing default message for all added actions with `message` property.| IMPORTANT: The current UI supports a single action group only. @@ -295,8 +301,8 @@ Below is a list of steps that should be done to build and register a new alert t 1. At any suitable place in Kibana, create a file, which will expose an object implementing interface [AlertTypeModel](https://github.com/elastic/kibana/blob/55b7905fb5265b73806006e7265739545d7521d0/x-pack/legacy/plugins/triggers_actions_ui/np_ready/public/types.ts#L83). Example: ``` +import { lazy } from 'react'; import { AlertTypeModel } from '../../../../types'; -import { ExampleExpression } from './expression'; import { validateExampleAlertType } from './validation'; export function getAlertType(): AlertTypeModel { @@ -304,7 +310,7 @@ export function getAlertType(): AlertTypeModel { id: 'example', name: 'Example Alert Type', iconClass: 'bell', - alertParamsExpression: ExampleExpression, + alertParamsExpression: lazy(() => import('./expression')), validate: validateExampleAlertType, defaultActionMessage: 'Alert [{{ctx.metadata.name}}] has exceeded the threshold', }; @@ -361,6 +367,9 @@ export const ExampleExpression: React.FunctionComponent = ({ ); }; +// Export as default in order to support lazy loading +export {ExampleExpression as default}; + ``` This alert type form becomes available, when the card of `Example Alert Type` is selected. Each expression word here is `EuiExpression` component and implements the basic aggregation, grouping and comparison methods. @@ -1017,7 +1026,7 @@ Below is a list of steps that should be done to build and register a new action 1. At any suitable place in Kibana, create a file, which will expose an object implementing interface [ActionTypeModel]: ``` -import React, { Fragment } from 'react'; +import React, { Fragment, lazy } from 'react'; import { i18n } from '@kbn/i18n'; import { ActionTypeModel, diff --git a/x-pack/plugins/triggers_actions_ui/public/application/app.tsx b/x-pack/plugins/triggers_actions_ui/public/application/app.tsx index 63860e062c8d..ebd9294ce1e6 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/app.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/app.tsx @@ -3,8 +3,8 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import React, { lazy, Suspense } from 'react'; -import { Switch, Route, Redirect, HashRouter, RouteComponentProps } from 'react-router-dom'; +import React, { lazy } from 'react'; +import { Switch, Route, Redirect, HashRouter } from 'react-router-dom'; import { ChromeStart, DocLinksStart, @@ -15,7 +15,6 @@ import { ChromeBreadcrumb, CoreStart, } from 'kibana/public'; -import { EuiLoadingSpinner, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; import { BASE_PATH, Section, routeToAlertDetails } from './constants'; import { AppContextProvider, useAppDependencies } from './app_context'; import { hasShowAlertsCapability } from './lib/capabilities'; @@ -24,6 +23,7 @@ import { TypeRegistry } from './type_registry'; import { ChartsPluginStart } from '../../../../../src/plugins/charts/public'; import { DataPublicPluginStart } from '../../../../../src/plugins/data/public'; import { PluginStartContract as AlertingStart } from '../../../alerting/public'; +import { suspendedComponentWithProps } from './lib/suspended_component_with_props'; const TriggersActionsUIHome = lazy(async () => import('./home')); const AlertDetailsRoute = lazy(() => @@ -68,30 +68,15 @@ export const AppWithoutRouter = ({ sectionsRegex }: { sectionsRegex: string }) = {canShowAlerts && ( - + )} ); }; - -function suspendedRouteComponent( - RouteComponent: React.ComponentType> -) { - return (props: RouteComponentProps) => ( - - - - - - } - > - - - ); -} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx index 43955db97f29..7803ed1ac3a7 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/expression.tsx @@ -42,6 +42,7 @@ import { } from '../../../../common'; import { builtInAggregationTypes } from '../../../../common/constants'; import { IndexThresholdAlertParams } from './types'; +import { AlertTypeParamsExpressionProps } from '../../../../types'; import { AlertsContextValue } from '../../../context/alerts_context'; import './expression.scss'; @@ -66,23 +67,10 @@ const expressionFieldsWithValidation = [ 'timeWindowSize', ]; -interface IndexThresholdProps { - alertParams: IndexThresholdAlertParams; - alertInterval: string; - setAlertParams: (property: string, value: any) => void; - setAlertProperty: (key: string, value: any) => void; - errors: { [key: string]: string[] }; - alertsContext: AlertsContextValue; -} - -export const IndexThresholdAlertTypeExpression: React.FunctionComponent = ({ - alertParams, - alertInterval, - setAlertParams, - setAlertProperty, - errors, - alertsContext, -}) => { +export const IndexThresholdAlertTypeExpression: React.FunctionComponent> = ({ alertParams, alertInterval, setAlertParams, setAlertProperty, errors, alertsContext }) => { const { index, timeField, @@ -476,3 +464,6 @@ export const IndexThresholdAlertTypeExpression: React.FunctionComponent ); }; + +// eslint-disable-next-line import/no-default-export +export { IndexThresholdAlertTypeExpression as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/index.ts b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/index.ts index 983f759214b6..42747b9e85e2 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/components/builtin_alert_types/threshold/index.ts @@ -3,16 +3,19 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ +import { lazy } from 'react'; + import { AlertTypeModel } from '../../../../types'; -import { IndexThresholdAlertTypeExpression } from './expression'; import { validateExpression } from './validation'; +import { IndexThresholdAlertParams } from './types'; +import { AlertsContextValue } from '../../../context/alerts_context'; -export function getAlertType(): AlertTypeModel { +export function getAlertType(): AlertTypeModel { return { id: '.index-threshold', name: 'Index threshold', iconClass: 'alert', - alertParamsExpression: IndexThresholdAlertTypeExpression, + alertParamsExpression: lazy(() => import('./expression')), validate: validateExpression, }; } diff --git a/x-pack/plugins/triggers_actions_ui/public/application/lib/suspended_component_with_props.tsx b/x-pack/plugins/triggers_actions_ui/public/application/lib/suspended_component_with_props.tsx new file mode 100644 index 000000000000..563353793f99 --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/lib/suspended_component_with_props.tsx @@ -0,0 +1,27 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ +import React, { Suspense } from 'react'; +import { EuiLoadingSpinner, EuiFlexGroup, EuiFlexItem } from '@elastic/eui'; +import { EuiLoadingSpinnerSize } from '@elastic/eui/src/components/loading/loading_spinner'; + +export function suspendedComponentWithProps( + ComponentToSuspend: React.ComponentType, + size?: EuiLoadingSpinnerSize +) { + return (props: T) => ( + + + + + + } + > + + + ); +} diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.test.tsx index cdc187bc6f3b..931fde430c60 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.test.tsx @@ -10,7 +10,7 @@ import { ReactWrapper } from 'enzyme'; import { act } from 'react-dom/test-utils'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; import { ValidationResult, Alert, AlertAction } from '../../../types'; -import { ActionForm } from './action_form'; +import ActionForm from './action_form'; jest.mock('../../lib/action_connector_api', () => ({ loadAllActions: jest.fn(), loadActionTypes: jest.fn(), diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx index f3e955c97330..5af56f410ad5 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/action_form.tsx @@ -713,3 +713,6 @@ export const ActionForm = ({ ); }; + +// eslint-disable-next-line import/no-default-export +export { ActionForm as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.test.tsx index ac6c0e274977..4f5007949f8b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.test.tsx @@ -6,7 +6,7 @@ import * as React from 'react'; import { mountWithIntl } from 'test_utils/enzyme_helpers'; import { coreMock } from '../../../../../../../src/core/public/mocks'; -import { ConnectorAddFlyout } from './connector_add_flyout'; +import ConnectorAddFlyout from './connector_add_flyout'; import { ActionsConnectorsContextProvider } from '../../context/actions_connectors_context'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; import { ValidationResult } from '../../../types'; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx index c9844f4e1086..adee2e09a56f 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_add_flyout.tsx @@ -319,3 +319,6 @@ const UpgradeYourLicenseCallOut = ({ http }: { http: HttpSetup }) => (
); + +// eslint-disable-next-line import/no-default-export +export { ConnectorAddFlyout as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.test.tsx index 976ec146181c..e4a9e6e74173 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.test.tsx @@ -9,7 +9,7 @@ import { coreMock } from '../../../../../../../src/core/public/mocks'; import { ActionsConnectorsContextProvider } from '../../context/actions_connectors_context'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; import { ValidationResult } from '../../../types'; -import { ConnectorEditFlyout } from './connector_edit_flyout'; +import ConnectorEditFlyout from './connector_edit_flyout'; import { AppContextProvider } from '../../app_context'; const actionTypeRegistry = actionTypeRegistryMock.create(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx index 4a0effcbd682..6ea78f60c52e 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/connector_edit_flyout.tsx @@ -254,3 +254,6 @@ export const ConnectorEditFlyout = ({ ); }; + +// eslint-disable-next-line import/no-default-export +export { ConnectorEditFlyout as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/index.ts b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/index.ts index 52ee1efbdaf9..e0065c143a1a 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/action_connector_form/index.ts @@ -4,6 +4,13 @@ * you may not use this file except in compliance with the Elastic License. */ -export { ConnectorAddFlyout } from './connector_add_flyout'; -export { ConnectorEditFlyout } from './connector_edit_flyout'; -export { ActionForm } from './action_form'; +import { lazy } from 'react'; +import { suspendedComponentWithProps } from '../../lib/suspended_component_with_props'; + +export const ConnectorAddFlyout = suspendedComponentWithProps( + lazy(() => import('./connector_add_flyout')) +); +export const ConnectorEditFlyout = suspendedComponentWithProps( + lazy(() => import('./connector_edit_flyout')) +); +export const ActionForm = suspendedComponentWithProps(lazy(() => import('./action_form'))); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.test.tsx index 01d21e954bbf..12b6f9931959 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.test.tsx @@ -202,11 +202,12 @@ describe('actions_connectors_list component with items', () => { expect(wrapper.find('[data-test-subj="preConfiguredTitleMessage"]')).toHaveLength(2); }); - test('if select item for edit should render ConnectorEditFlyout', () => { - wrapper + test('if select item for edit should render ConnectorEditFlyout', async () => { + await wrapper .find('[data-test-subj="edit1"]') .first() .simulate('click'); + expect(wrapper.find('ConnectorEditFlyout')).toHaveLength(1); }); }); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx index 9267a154efaa..64a7aa9ffa8b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/actions_connectors_list/components/actions_connectors_list.tsx @@ -22,7 +22,9 @@ import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { useAppDependencies } from '../../../app_context'; import { loadAllActions, loadActionTypes, deleteActions } from '../../../lib/action_connector_api'; -import { ConnectorAddFlyout, ConnectorEditFlyout } from '../../action_connector_form'; +import ConnectorAddFlyout from '../../action_connector_form/connector_add_flyout'; +import ConnectorEditFlyout from '../../action_connector_form/connector_edit_flyout'; + import { hasDeleteActionsCapability, hasSaveActionsCapability } from '../../../lib/capabilities'; import { DeleteModalConfirmation } from '../../../components/delete_modal_confirmation'; import { ActionsConnectorsContextProvider } from '../../../context/actions_connectors_context'; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.test.tsx index 3d6493a5131e..bebbcdda10a0 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.test.tsx @@ -9,7 +9,7 @@ import { act } from 'react-dom/test-utils'; import { FormattedMessage } from '@kbn/i18n/react'; import { EuiFormLabel } from '@elastic/eui'; import { coreMock } from '../../../../../../../src/core/public/mocks'; -import { AlertAdd } from './alert_add'; +import AlertAdd from './alert_add'; import { actionTypeRegistryMock } from '../../action_type_registry.mock'; import { ValidationResult } from '../../../types'; import { AlertsContextProvider, useAlertsContext } from '../../context/alerts_context'; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx index 651f2cdba34a..004ad97083fe 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_add.tsx @@ -219,3 +219,6 @@ const parseErrors: (errors: IErrorObject) => boolean = errors => if (isObject(errorList)) return parseErrors(errorList as IErrorObject); return errorList.length >= 1; }); + +// eslint-disable-next-line import/no-default-export +export { AlertAdd as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx index 4d8801d8b748..39112a150958 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.test.tsx @@ -12,7 +12,7 @@ import { ValidationResult } from '../../../types'; import { AlertsContextProvider } from '../../context/alerts_context'; import { alertTypeRegistryMock } from '../../alert_type_registry.mock'; import { ReactWrapper } from 'enzyme'; -import { AlertEdit } from './alert_edit'; +import AlertEdit from './alert_edit'; import { AppContextProvider } from '../../app_context'; const actionTypeRegistry = actionTypeRegistryMock.create(); const alertTypeRegistry = alertTypeRegistryMock.create(); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx index 747464d2212f..fc1a3778bc5b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_edit.tsx @@ -201,3 +201,6 @@ export const AlertEdit = ({ initialAlert, onClose }: AlertEditProps) => { ); }; + +// eslint-disable-next-line import/no-default-export +export { AlertEdit as default }; diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_form.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_form.tsx index 3b7283e69e01..e956c8ecc4f3 100644 --- a/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_form.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/alert_form/alert_form.tsx @@ -3,7 +3,7 @@ * or more contributor license agreements. Licensed under the Elastic License; * you may not use this file except in compliance with the Elastic License. */ -import React, { Fragment, useState, useEffect } from 'react'; +import React, { Fragment, useState, useEffect, Suspense } from 'react'; import { i18n } from '@kbn/i18n'; import { FormattedMessage } from '@kbn/i18n/react'; import { @@ -23,6 +23,7 @@ import { EuiIconTip, EuiButtonIcon, EuiHorizontalRule, + EuiLoadingSpinner, } from '@elastic/eui'; import { some, filter, map, fold } from 'fp-ts/lib/Option'; import { pipe } from 'fp-ts/lib/pipeable'; @@ -36,7 +37,7 @@ import { AlertReducerAction } from './alert_reducer'; import { AlertTypeModel, Alert, IErrorObject, AlertAction, AlertTypeIndex } from '../../../types'; import { getTimeOptions } from '../../../common/lib/get_time_options'; import { useAlertsContext } from '../../context/alerts_context'; -import { ActionForm } from '../action_connector_form/action_form'; +import { ActionForm } from '../action_connector_form'; export function validateBaseProperties(alertObject: Alert) { const validationResult = { errors: {} }; @@ -222,14 +223,24 @@ export const AlertForm = ({ ) : null} {AlertParamsExpressionComponent ? ( - + + + + + + } + > + + ) : null} {defaultActionGroupId ? ( import('./alert_add'))); +export const AlertEdit = suspendedComponentWithProps(lazy(() => import('./alert_edit'))); diff --git a/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx b/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx new file mode 100644 index 000000000000..677ee139271c --- /dev/null +++ b/x-pack/plugins/triggers_actions_ui/public/application/sections/index.tsx @@ -0,0 +1,21 @@ +/* + * Copyright Elasticsearch B.V. and/or licensed to Elasticsearch B.V. under one + * or more contributor license agreements. Licensed under the Elastic License; + * you may not use this file except in compliance with the Elastic License. + */ + +import { lazy } from 'react'; +import { suspendedComponentWithProps } from '../lib/suspended_component_with_props'; + +export const AlertAdd = suspendedComponentWithProps(lazy(() => import('./alert_form/alert_add'))); +export const AlertEdit = suspendedComponentWithProps(lazy(() => import('./alert_form/alert_edit'))); + +export const ConnectorAddFlyout = suspendedComponentWithProps( + lazy(() => import('./action_connector_form/connector_add_flyout')) +); +export const ConnectorEditFlyout = suspendedComponentWithProps( + lazy(() => import('./action_connector_form/connector_edit_flyout')) +); +export const ActionForm = suspendedComponentWithProps( + lazy(() => import('./action_connector_form/action_form')) +); diff --git a/x-pack/plugins/triggers_actions_ui/public/common/expression_items/for_the_last.tsx b/x-pack/plugins/triggers_actions_ui/public/common/expression_items/for_the_last.tsx index defad2b80171..5405d96bb1dc 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/expression_items/for_the_last.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/common/expression_items/for_the_last.tsx @@ -20,11 +20,12 @@ import { getTimeUnitLabel } from '../lib/get_time_unit_label'; import { TIME_UNITS } from '../../application/constants'; import { getTimeOptions } from '../lib/get_time_options'; import { ClosablePopoverTitle } from './components'; +import { IErrorObject } from '../../types'; interface ForLastExpressionProps { timeWindowSize?: number; timeWindowUnit?: string; - errors: { [key: string]: string[] }; + errors: IErrorObject; onChangeWindowSize: (selectedWindowSize: number | undefined) => void; onChangeWindowUnit: (selectedWindowUnit: string) => void; popupPosition?: diff --git a/x-pack/plugins/triggers_actions_ui/public/common/expression_items/group_by_over.tsx b/x-pack/plugins/triggers_actions_ui/public/common/expression_items/group_by_over.tsx index 619d85d99719..33ca98de4c08 100644 --- a/x-pack/plugins/triggers_actions_ui/public/common/expression_items/group_by_over.tsx +++ b/x-pack/plugins/triggers_actions_ui/public/common/expression_items/group_by_over.tsx @@ -19,10 +19,11 @@ import { import { builtInGroupByTypes } from '../constants'; import { GroupByType } from '../types'; import { ClosablePopoverTitle } from './components'; +import { IErrorObject } from '../../types'; interface GroupByExpressionProps { groupBy: string; - errors: { [key: string]: string[] }; + errors: IErrorObject; onChangeSelectedTermSize: (selectedTermSize?: number) => void; onChangeSelectedTermField: (selectedTermField?: string) => void; onChangeSelectedGroupBy: (selectedGroupBy?: string) => void; diff --git a/x-pack/plugins/triggers_actions_ui/public/index.ts b/x-pack/plugins/triggers_actions_ui/public/index.ts index 96645e856e41..a72d8815c95b 100644 --- a/x-pack/plugins/triggers_actions_ui/public/index.ts +++ b/x-pack/plugins/triggers_actions_ui/public/index.ts @@ -11,7 +11,13 @@ export { AlertsContextProvider } from './application/context/alerts_context'; export { ActionsConnectorsContextProvider } from './application/context/actions_connectors_context'; export { AlertAdd } from './application/sections/alert_form'; export { ActionForm } from './application/sections/action_connector_form'; -export { AlertAction, Alert, AlertTypeModel, ActionType } from './types'; +export { + AlertAction, + Alert, + AlertTypeModel, + AlertTypeParamsExpressionProps, + ActionType, +} from './types'; export { ConnectorAddFlyout, ConnectorEditFlyout, diff --git a/x-pack/plugins/triggers_actions_ui/public/types.ts b/x-pack/plugins/triggers_actions_ui/public/types.ts index cc511434267c..e9cfd5b33db2 100644 --- a/x-pack/plugins/triggers_actions_ui/public/types.ts +++ b/x-pack/plugins/triggers_actions_ui/public/types.ts @@ -110,12 +110,28 @@ export interface AlertTableItem extends Alert { tagsText: string; } -export interface AlertTypeModel { +export interface AlertTypeParamsExpressionProps< + AlertParamsType = unknown, + AlertsContextValue = unknown +> { + alertParams: AlertParamsType; + alertInterval: string; + setAlertParams: (property: string, value: any) => void; + setAlertProperty: (key: string, value: any) => void; + errors: IErrorObject; + alertsContext: AlertsContextValue; +} + +export interface AlertTypeModel { id: string; name: string | JSX.Element; iconClass: string; - validate: (alertParams: any) => ValidationResult; - alertParamsExpression: React.FunctionComponent; + validate: (alertParams: AlertParamsType) => ValidationResult; + alertParamsExpression: + | React.FunctionComponent + | React.LazyExoticComponent< + ComponentType> + >; defaultActionMessage?: string; } diff --git a/x-pack/plugins/uptime/public/lib/alert_types/monitor_status.tsx b/x-pack/plugins/uptime/public/lib/alert_types/monitor_status.tsx index 66e61fbf73b6..65827867da5e 100644 --- a/x-pack/plugins/uptime/public/lib/alert_types/monitor_status.tsx +++ b/x-pack/plugins/uptime/public/lib/alert_types/monitor_status.tsx @@ -63,7 +63,9 @@ export const initMonitorStatusAlertType: AlertTypeInitializer = ({ id: CLIENT_ALERT_TYPES.MONITOR_STATUS, name: , iconClass: 'uptimeApp', - alertParamsExpression: params => , + alertParamsExpression: (params: any) => ( + + ), validate, defaultActionMessage, }); From 62434fef4bab09616f48af3f60775f744094225f Mon Sep 17 00:00:00 2001 From: Nathan Reese Date: Tue, 12 May 2020 10:28:52 -0600 Subject: [PATCH 65/67] [Maps] 7.8 documentation updates (#65502) * [Maps] 7.8 documenation updates * remove more uses for source * map settings * remove number of categories * review feedback * remove word 'cards' * clean up description of heatmap layer * Update docs/maps/map-settings.asciidoc Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> Co-authored-by: Elastic Machine Co-authored-by: gchaps <33642766+gchaps@users.noreply.github.com> --- docs/maps/heatmap-layer.asciidoc | 7 +--- docs/maps/images/heatmap_layer.png | Bin 358358 -> 417866 bytes docs/maps/images/spatial_filters.png | Bin 0 -> 515895 bytes docs/maps/images/tile_layer.png | Bin 769621 -> 508782 bytes docs/maps/images/vector_layer.png | Bin 478582 -> 490020 bytes docs/maps/index.asciidoc | 1 + .../indexing-geojson-data-tutorial.asciidoc | 3 +- docs/maps/map-settings.asciidoc | 39 ++++++++++++++++++ docs/maps/maps-aggregations.asciidoc | 12 +++--- docs/maps/maps-getting-started.asciidoc | 21 +++++----- docs/maps/search.asciidoc | 6 +-- docs/maps/tile-layer.asciidoc | 4 +- docs/maps/vector-layer.asciidoc | 13 +++--- docs/maps/vector-style.asciidoc | 2 +- 14 files changed, 72 insertions(+), 36 deletions(-) create mode 100644 docs/maps/images/spatial_filters.png create mode 100644 docs/maps/map-settings.asciidoc diff --git a/docs/maps/heatmap-layer.asciidoc b/docs/maps/heatmap-layer.asciidoc index 77b6d929a931..7149bc562316 100644 --- a/docs/maps/heatmap-layer.asciidoc +++ b/docs/maps/heatmap-layer.asciidoc @@ -2,15 +2,12 @@ [[heatmap-layer]] == Heat map layer -In the heat map layer, point data is clustered to show locations with higher densities. +Heat map layers cluster point data to show locations with higher densities. [role="screenshot"] image::maps/images/heatmap_layer.png[] -You can create a heat map layer from the following data source: - -*Grid aggregation*:: Geospatial data grouped in grids with metrics for each gridded cell. -Set *Show as* to *heat map*. +To add a heat map layer to your map, click *Add layer*, then select the *Heat map* layer. The index must contain at least one field mapped as {ref}/geo-point.html[geo_point]. NOTE: Only count, sum, unique count metric aggregations are available with the grid aggregation source and heat map layers. diff --git a/docs/maps/images/heatmap_layer.png b/docs/maps/images/heatmap_layer.png index 8d59de38beccd012ee40d87220186097cc2acd1e..87a45146f95a51f061a3596f7a7988f9448258da 100644 GIT binary patch literal 417866 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

6Udw7 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%0A|H;B3^QeRWpm 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 literal 358358 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 z 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
1AQT{-leA=*Y zkb|90Ro&F`ESsuub8-U@o($}8!Pb{ha*ZaClV}=&$8h*U|={f%;q&q763 z*sjmL{j*Y1}}8B}}|hTRG|TYWRs!**UL9c!ae5nPeC z$**aFElZHop(!Kn@Hlj5HZ#19I&~Z*bpi7|_$K;4w8B@Iwk2k>-SUrf=A71jh*t9K zXS%V;fo(z7L06S?YyRMkO%8Xn7J=@$d3kCF$K<+)t3`Epr2TGSillZ=Z>C&8(s>M_ zoYxx!++a8X-;rqr)bJ4dQs1}(?SIUPPjx+ya`g=ddOL;ElA2S^*=avREs)QW%a1T_ zMDZkI=zc&QAhGMN-r(Zrh@KNT3Z0c^3E?>_3Jdk)?BT%i??#jnODn`jNz;tm<%pbC(kl%3~FNEK)+4cAgYv z5N9sSNciKdH)d?tV!1jp>dFH-ksiPT9Jvvowwx>3yd*%T9}SuviOC#Fh$3{XM^20) z7{=?k{#d)eo|BC+_?2eL|NGoTGup)6Xgj2DFy(cI*0mZ!jQ)LP;P%h95ysmC)U$#y zaiVt*0*t==!|rbkbGhPB1GWoozowM^GXccvjWF}gb)@z7rH^x*?gOguk?B?#mdH3* z{Q2Tq1`2W_uA-{LH0@&cc^fr8K)u#AI>qV8HeJF7kHDZM|NFb4u*;kGldAGGZVAxX zIz0da?*WOU5T|k+^-U0n$P0ET)(R|lOdBx=F7V8QN$zTZD|4>#IkC{`pQ=&IWv#o4$l0?W_KU0X+RBsC*&V%AEtN2|q<*0@Qm3Y&Y%QQHS9c zh9Tc>3TswU%5HlvAdVOq@pUsecmN(lSS38fq3bK}$Oyb?3q(xI2Q3 z<;tS2+O`q$(I3Ru--fbo!MTRFnM6CmSZ1H$%4T%YjWBiiQA~B!z!d7Kv!=H(Bc_3M z+eVC9u+40%vwFIbYz|1Sk%^{KTlSM6M#BM`Q*k>!_ft0>xl^LxW+I}H=tY%3!HH5H z?Q26OE$~6`1^ro!Nyo$O@t!@A&Tbn;t1N^c z=j4odw!Dsn-ebPo{b_gWX;N*!vU3N2pNYnOtssnN!whpF*}df-(^-`nz-0u|I`~G! zaUWH%66SjSY<69=IpBs2YqTluc)6IONfZ^ab24v6r;sCEYZdnXQs~#Hqn`2X@@ub!O74d&O81?5Nt57i+Ua}o@ZD-^iQ&^!r~kL-RoCeZGTw~zum{p9(y z?QYR4j*ygI;bN>q+-JsAl}jS>C{6hSv;Bij5lfW}yV0;@gJvqpX}UWI^4P@kqS2i- z4y-2mGG|yE3-2Jx-zx?OA?s_&moG5VZhpGvEfQHYNoBD&pbxxe3ZJ9mu}FjQK9GFS zz&VLhd7qh=(gRi0mEFETTFp_#$KfX|s}%V`pCb1~qjf~kAI5tQ7k@pyaDd&B1KpSzb$BxGO5pvb*R8?iFg z{jlLPn9IgxM<}5TVR@BFa$>bO#1pZ44JOV$dPi+w$_VfQ7|+5JtFyAXr%_&KAD#Od zxvpw*bWtUu`g=4MiNd8saDSTxNmYI*C_>M@^1AVhsC%$#RbNNum(WiUl~8+o)xFlZ zcCA;)YSeuE<>w=u6p9#cj?lk@_XQ94(H7eNT+!pt2*JNxmIolu9pL6kRQ~;^{lVw0 zaIGG&Z#R9dSjg*mKrOof?9)4RRWq4J47}v^L_|6LL5Cwja$f$a>L2?Qz-??(!b}vR;!E5v2H;OwD+W$}fKIevP~t zvcP?j!lkMdm=H4#N^kt(;4ZR{2nThkNq!TXYj{7C1HtK}6_DT3-$M%A0y5n<7#>?| znUe@}RA+2bF=LcwR)h4Yp0!uvAK8gB^FF^DiNcaCI8^u|l`g zc8rY8_G_wnd34GzQ##%Vvt@`MP4WVUftbTH%BjKFL}3r0coH#%mtt(#{(<^?0?~z- zx#YjUOyKCf;K1QI7m%6@phDz?pY{DxPheNb1}v6KNj)#PETB$;S0WcvnQ8bia=W`B z#YfR}Hrk)5oMg!l>*?!}2r=e#MEn%9a-r(9N-n;c5xf3s>efmhE_kZ4i`Cw5 z8Jze>m2_MVZ6n~Q>n+k~{NTogL0;KWeS0#5Ewty_7)!J4ZMK>F>|+wO!5vFt}Lm%5E~nWue7 z1z)a-oktxDCWJq-Z})mB7-GK?4CYz01W`?;)tVz#I-%*vzK;XB&yp1Mu{=N7%O97w zP0DGC9XlsZK@tpim2apg`OP!pBXj~^;FSQ}eocJ9D^X)}xTEM*AbzGxe?4bWtvXRQ zMk858>dgK?oiX|(NFxgcDt`ubA|>`DLW{}(KX1s798~^WD%u8s5JEcY9|@VOiG6xK z)ymK{6?u*glh+0aXke+F?d~0cQoh6FMhS+nK_8blf|C8pg&Mk9to^Pe8#rOyB1A)z zGXWR27H5z$ifjtIReUv6rmY$pu5TZszyR%EQyYwthq0Mh5v2B|<`ytI|4kNK3nnEe z2YCaN5pY)9008si9p+{zcA}+;=W4gVnM0rZh5g1W_2;7xab*3gpXg8qL=p~E2X;;o zgoB8_+K5|l%bp2SX~|43CX1w)xTs}tNaYYd!*B-Ow;rwI;c*WkO4Pa-xIM>F-1qVndBkN5lI_DVOO+b*y=k%{ng1aJ)XWQ`u(3>n;h|vg3y!@2Y4pNeH0l zck10@l&k#tFr>X!hXh<&FZRhG`#DFJw{HUm0Z-fVtU2<;wsT|C1B^Q9iRznN&CG!_ zDpn;t0g)8s0p}r3z*)mYo?iNhk37S{G|AGwidbLADI2%H*80n?qc@CQWCBWXWnOq3vhIquUyrRN~s zH+Jx`%NjpF3X~+0%N)upS=ashV>x!qUCguAvgclmdn+!~BTj#I7W@mrP7gzbBAD3H zJwKUwT9KNi5>%vaV#SkeL<{y|ZG}0j7g0j1iFrfyxFGe*K*G)g<0CW(9hm1&otTu2GO{cD_c z@qX^>QU&0Lok|K{J!wb&f*!j;uwD+W{G%G!;cpJ=(;#5!k-6(uyWRQY2Hth{NBm=x zrqvh`k{H3Vm%q7patb0?9RKSDpxmKBT;P=u`wK1miNUeUz-=>7Ykwq$;7jvx;N5f_ zU+6|&KXS9aoOt2d{k6=iGnd+&O3GD!6n*qC_|8)(9za}O9<0?~{4!OkV!WFv<&=DubP$V;>MsV~)fg@IslKVnqYBRYHqki&l_G%Q>O6 zu28>AdNSyv`m#V1adPysn`y%PZvOCY4?~&6j{agQH6Kyt5>P+T+x%NXG6>d1c`m3Q z{zVCPs`PD#EcsU#V3L^;>9NY`!V^~e-Hf7&g!CB2n_53lB#z?GFsiqGmj%EKgQj|Y z+!c2ej3-T=gk(ZZZyMjr?a&rIIsirGB$ltsHDz-j@9D?5KfRLc9^Tl0%jG5ZC0t{h zj~8XQlx*zNu!00V0gV?rR&4;ct&ASTODHY>Wa zsqf~;qH`&ecx7wT`966}%x}T-Mv@kx-7R03X;{rN#U+d89VHy?t>Ub zdNx#x6nFBm0^!~h!oY@P_pn^_8o}51g zE(aqZb&642%8=?_u$Mma7Wm z-)0rIC>VhDSkX`OAC6uPxWwF4^|6=0L*5}6;(HZ3Kg86g>4qUYNj2oYk}nWfj~>4> z)2>+m7?-?c`rD{`O*3uPJY3=-yuWIDZQO&KwMT*uRo@R6R+5o4l^h@O5cZirKmLC` z#D6Z9$yQW9(3dvjg;Wy5idnd6h`SM`d<;vxStd?<&BvF>aT^gc5Un}nrS}0-H-7wD~W46&I zns8UPHGbJ~28KNk%_n6q7(>Bu1-v_{hPDsf_f|Q{qNivBcX1x7blAa@zntGe_1#8@ z*p&ofA9uDc_AK_+bvIJ+($CL;$UEvr`VOA{mgKS3W9aRJrR~u!6s^4Z{ruRmFMD;Zr(Xhj*o5YgPc9XBG5I|1db+B5`oP% zC>s4zOzFzURK8JTtqc*`UjN{1nm<865Ka={DdOu_0Q?4jbmU+=`x~(TJ z)LU`AJ{p}4P(UL+lz?gh2!qP+uFES9Z2sE0d1Rr z-`9m!sd){Xs#};hmM5MA!ylbCuX(1Dxh(VhL_g}A9XkfJW+u-WK(}zJ^k+)v#ZX%3&>ZqumAx!KFgqPG1ZQt>8Z!@!o{%FFvKk2i)(o@evf){ zSU-xCL)rg{iu#u9hv}A#v4vzv?33Xws+9#lA&+fsyndIKlLXrnD(E+(v@$fU&r75< zCO#D;?ug!# z;zRp-aeTh3dafO83kg>SjS<;PQC;y1uDHh}5>YNlfu`HST0cl|e-AU*vF%iCeYK1i zFki=0p6r%285-m%B(St@_xD(q=q6z7Gj>@Uv{vX?OcweO{u!q-TF`4cscoh6+>eRa zQ9;xTa{lTSM;mi6&s|F|HtT``iCdB&*Rewd!x2agz`bc~5mK)9z^HQig2=YoP5Ni? zao6a6z-kyc>xM7z+D7nVcFQ{CCiTljD2|}qfV)X|5B57Tbd!uD29zc^urwc5K#I*> ze5#MYryXmAb_5vi{oiTtCqgw0;M6<-H)7#5+Q@uSAydq~;SxDGv(l4@9lqby!+l}< zMOc8wc{eexlr2HLsX<9eFPj?>*Z1yqcujoZfd4ZL)Za7mpxA8}qyDdjd!)eOwTNJw z^}d?j^X_gYmv2Iz2}L%d9H^o(+DVfYwPep&sa?G{3kyp>Va^6EpN-@Y6zJ|s{&bY9 z;GfXUQN^{i0tCMTaMq!N!4y>ZJNS67^T&;rQCSw=(v%3BTOVx*`95E>zBy9`&u|3L zsBPbUt>2VWUXZa?+1+QO4qv|nviOw$0Z3KPcx{=wIS<)F)-TEF3S3eNEm66Oya|KP z)egKxgBiLE*dI7+H@GVmwz**M?)6+at+IT19Qmge>SX}Wuy+1@V6bWUTgT%8V8TN-pvM{Kh*DD@7`@1m2=`_RYI8BhR3%QyG$={`kgPrUGKpdf|!9) zOM7M*URuZg{Fn7w|Mn3)b$b%{$}xaNh4Du5t3TF#Ca~fseN}OZJxj?CC2lRhAjQ4- znuK&y%~awYs{RSLZyWPji^9$q5VE{lnT@MjX$j?8e^vdOhFC^Cxon*Umc~o0bj=O) z4|E~!N6-JxHPX3#JZxc6&pcH=n3@JXZ)AZI>CSUlECDs;f`5`$?Q}D? z7Ef|jA{OnSP>F>!OM?M53gRxh70E9NSQpTY8I4z{>uXO=t_V$=5oiI`5*>b)fY@BX zx8Lz@=%FmXdDKUC_0}%G`v=|!pz$A=N}uwg%w}X&_e8i}n8Wdj!h0BRjcm#3H*n_$ z0~e@DS2tI|8Lq@4`^%uok?#qk>1Ev4_Z~LwXH|K+Jn#v3;NHEpJWii-Vrxo3_{0^Z+heY0a{pbd zH{|iIR}7MXk;pC<4rA>ZyD}y#Hf$P3L^AKlUemuN-A}YzDXOvk_epsRE5li18A|qc zv$xMQq^w=zDD9^!U+@S7PVk-^mf)3K@V(UDm3doX4-Jt(1-0}=XJu>>yERlj7yxU? z1}~hIeMtJ3gjGf6v%ueYu9Yq**zM~sMA@mLMbYyhd_Bl72s=y-~eT#5cOrhm`Ey3UQTSim) zsuC-2eSjf&vHAe0W4R5M%|Ao1MNgKlWPiTjcimr(`E~Wba#<2j#z=S2(xqOh1gkR9 z{vm!5oaK3}3Al773tJ1$b$)sErEf(jh@)z9S`kOPnEVb4vwh)>&}h-)mt`%+#ew%0 z@((JlyJSDs*#B&sIMHH1I#RTFi!%ES(?p$7LnX%W8lNG_?5%2iG*`NOrx*c((xRi2{3xt*GXffxk6%RG_LCkPhK}^3NWK^MC2W_km7E$LZ{1TE=wJy z4l5C?-o-K3z0?*QwR@)DQb9TMuI!u>vcoZK$aE9o)$8g(d%jtnw!a(}7rM3=McWvu5&1oraFE6m(;l&c zzLiB7$yd%7(&PVX%M-425pknsX=~A)Z)=j!HzxS*j$xb#*o6(4M|*vTPcsonpc?ZX zj~3H1Rf+3c;4w5*tTqZ(OlEUb8+|9qeNf7@tI}Bf*Hnh64#u`J_a7T`GVD9eu*jbJ z`1D84W;FO8vmr<;IR=7ykBxyCu*GU%KC5l}%yH`JI3t98Yvz`E- zjt35N#D8j6IJznR+$V>>5!4zdgC*i(RzR(_-6Js|1}Gw9DIUh40o+(5Ww2Pl?44Cwh!o9{&~U=pFw{A2p%tMKy=j3txK1& z^Kyb=E2y|<_~$pnZ?2kB_Who{cKmtXP3G^F8LJhEddMMhvh&XNk$D(TAl0t;~!LOP#&}hRz0=MO6&KLLkt9iSUX&%xHk< z$JmSu;BrUxbSO`D0?R6lADs6vP-P3FPg(FT(Z+yUu@XOc7wR*cwkpC|lw0n7SLL}PjYeT~q>{DH_^ z@!}yOVM%Z{hPY5>@>x%W0RjL6Ql6gCJO*fCa8w7%#4F7$=~Y&r-80i1;>shzxtXoq zr*hODIYn!=+jttwSB8Q+*8CGy#FFs5nDm&hQ7XKE7Sqe{Db{C4WfvD_paumV@b{?r z%UH{w>ua*+xH`>dAPz}lkr~nN8Aa8F&ou;HdaFrEn0q$roAARdO5YSaQ@aKhp@j%+ z*QOdcqw-fw#MT{j~K_itCpfDTF5RjPb_ zY)-zDReaN*A3}Wj@F;iBGawS+=Lb7HNDtgh9p(gp_Y}uUvoin4vj0nA*14Hhu8jEL zscQwN01c5TilO8^U5=CQd({}#YHT8)_?hTi`t5zB65QIZg~s>W;hm-$xCompU{HM# z5SW-}ZZsegC*XCt3JNTVz1m#nj+>HUgL;z(3wEW3AJoQ8ooz@_2ncTrliP}Q@jc)2 zqJo+De8+Kcp~cjX>9R@4N7C1WBjU5su|>xMofcfRtu`4-GFZ^>oETpVn>be|PrBo` znB$-L35%F05g)r;{dAB1zf0MjyrG$^8q?_~Q;nCxw5=ZQ!Nt^>V$ zhjO8H8Uo7%tipLA@~S>L^)>6No`hLOaGZo2`Gq=2D0i3zG^sMra4eeg#weX{b)4(1+d{QWdxcFXzYpWIBJLS9w} zk`^cb4us-y8wK2IdIp8;b=^MJUBASRTWYMm-hAwwZ@!caG=1|W=l!CReejvU87r}5 z{crZ}Wao!-6%IEsb*bO+-uMS^u^k_C^xSz~J(O7gI3HdcdsgGpbeH|Z-T3`g9lT_M zAq+nA8sX?Ya7QgvksRDuLcLhwY@W;OT*H%gV1x6gPjzgXCdVi;6YeQw{zgTRQ2o{j zisN_#B9b^ttdnr~J-J?PTPY$_Z`wm9!T>?6){Mi+_-detO$nA(*YljSnW)#Ft9RN7 zM;j!dPWyFcafIzbyCNqWW!zy=Z`)1(lVu=`V5}#G^3LPSX(fmO*N=E#Pd12dXs*?e&HFrS zbZj}h4u(WRy^mwG9(;|H}>b_dKNw6g>fU9`0Vg1dQ(BXfVBvsi_!nE(&H4O)a&Hm=IG*anG$SBCVe+sx_dA z6~!l$U*jv`qeQ=HD2r#wm_4^r@1@MMTUY0@J+)R^ZtTR4wSth7Kw=B5yzRK zOc3Wx?#!K8Y5)7%O0=LNM4+GBc1{vbpa{&1RXV?ivlC9yor`Ns5UpX!kK9LoieE26 z0@HTtDZR4yKdHL>-0AES*>0CK_c?F#;NI|bz<5Za`e}{ZiJ^AyqoAKEQFR@hK{)kz z?f+Q2hsS@?$-X_FRqWh9<elpb=4iq-4hJl!g{U(!cg_j@C>&Bs*6y@nFkxIS4h8P4gDa9SXm3wk`kcL_oZ= z=O0#*_fz;ffu`mC>rU`u7P*+B{D-1He{9Txwa5n;#%9iN7F02W4xj+J+*8UZ?!uxv?R5?u-zWV)I$fOeUiaW_>NQF?csC<)3zlIoN)p}kL$ts02b@`>QeRjrvu930C zV(8)USHe6t15V$DDHuAiJsGJ!lrBia=5cu@)z5c7Nr-|jK}_ygFlRByFx4C7b&;f3 zsZ*8Cp<-B;_aPK?{;v`hS|;FnB3+M)?T-h(ceNdemfZ8bBXH-?O~Cl|LZtA?sEx>{ zSqrf;!wp z@~IW+bZp+CvjjFNGnq-eq_M}l;nG>U(xkCskX)COXO_$<6 zbb~)o5O0!6+vxU<0`4fCpp4g`6icJaltPRnNzJL3sUy;gG8$?fC^j_qV!WwKrFS4!=@gIY)lFF^g08Zp1f;b6NO6ttIODLyBJM|XwzNi>C!IjI~k=P73@J_OL z@ReM=uK-5PcYYoqf~6E3{C>R}4p{+C#vR;W^QYxrL!(9FeC(E= zHa;}=O5Q#wXHLhb{x7Eg>1M#?sFPe0kl<6RXp?~bV2ciHD^JRt>Ql&T8tzakkLDFy7cc-iydKs>#o0J6X42d_f1V^!jZFIo$=jWXhGFGrw6!z z>lhl4ORJF30W=-e81Cn7AsKmI*s`i>2l;&8z)q#i!gh(*KTbuWMPn_*4FRDC76g~( zYWH8i-xy(k*4zond8mAk-MswTStIy;GtFEhURzB}sVLH0ag!J}r9u5`yFtNK_93OQ zI`g+%F7MO4U%GlKx4-Zl)PMj6=roGw>WFY?PMnk3DUr;QrWh4uOsdv*g;ulzh!A7d zx-kjQ(rtb-aDcmw+k6$#85L(xb=x6Un7y}rCpgki_vL@S>7y;ioyrI-E}l)i( zgj{3!`O^A_Z+Hi8rAIcss8RF7=we;dW>%Zy{=V)1^TLqiFjkL~z|+LOH9%lS=V=!? zk`x05woZ6Y8TqV{4%vVYlMq0kKE-$kMmEHxD;cepF*?Dm6}Mb1dsSgMk$#h+_sgZMY#7jx{Bq6 zNJej>(R3*N3EGI)7>|*;8LYj2J;LXJoXc`h5oiIA+k)q1HFWqrI7ji~^ZZ{IoWCLl zoN~~{to-88sh=) zAa8uFa2iGOeWSFT&4s#ElSMwtxw}bCn9`by#g~ZcBQ^UofQkrKhB}Wzgqn8w;c3TZ~m7YltW^Pwx zbYk`4xP^ZEMk;MTx%C$HiEB0kGz9Pa9zZSS3NgU6OQIEc@)L8cgy&s3Fs-QJ%=il0 zmvM`$x?~M}zfDU2D?xTy#uV%a)L_xWv)d&#(vvg3q;y@NjgdAa4+3EM_VrV&>{e_% z3x~JqMZP(j5z}`n+mt*Nk=T&tV4eJCd38!2Cs6l%`zmxyZfbZ14eRACEcL*2_U6m2 zcFnK9vH*SwxNyB=Vf}y$afH1U^G!Z)+{x6RTs>RTR*}#~e5~j+L7#UT{bGF<&_-g= zTY1za(T-};j(3xTrP2A$yka2dddfL_Qlx5G%a_mB3tNMgDUen3?cT6?(#KU~z#fKo`@<&xE-uyN*|4J)}@K2Kj zl%L#*BX_1BO3;<9j^k}b*j`;Uszw&=e))y> zgzCZuTkVItuxUb6G`Q$ zc;|zWhX{)m=ceCw{e}_7GS5RvAq~kjq|5>ao=5Hoc`UC=<|@Bky9+jc_qDY5S|onJ z?#x#RkLdJ5mGai-*(^&o?h?x+)sKHywxa;y1fa@}%*>^)1Dja4tZ9#-Wm~wPD$X=+ zx|r9%G>w?r@wx{J;^oa}C{sMta2>jnF4~{SCXFCbQz=sN{Z)Dj*`Xn|6!G4?Hi$fW zj9@#ugLuHS4d(#jptq6ib42Bo!~H2;-aO>xE{ZW#SKoSoMs7!+I9bATc1ZHw#1u&- zI9oQFFvIt_HynB~;3MVvHApOU>a>(+fZ0sky7bydej6fgd6P{m=M-53#LTz48_obdRk#!Tp#NOBONJ$K?R?xVgUy;zc1&$tLlJpu0t z`HJd4Bk|sm6o2%g0D2;{?hd0nX$`jXQ%{^f?jR*+Q_qzs&Mv)Gk>{QrCFRQ68fDrk zdT?uvqaA!e`*n$=hlO31lqCu6=YiEZW=$_pH2&_c^ruEY#< z=R%8!jf$M`B{b#wyYcM&8F#)()@dA$jAQ{wVjF4?I*uqlfWkx4;_k*}|79*Ab&2NOWwC7EZOO zkM(;YYNP?b`6jRKTDX*5)GZ-g&NM4)%>78;+k_CO7jBB^1udoWxTXei9NOvsqJ=FF({@& z@~%odMY@RQ`!I={NDtm*6nVN{o%)y*D$*5owu*9D5Zvb**Gm)tW$CbR}ZVA9Q% zWV!oKtdaWDIqdwcpZ@AbO^%QtufUC9e}qsWC=7a*vMYLiem%&ta{bVa@>SH=Ko5q- z8-+*u7^L*j1i9&dwv{7MW6e@V2t0$+`PQ1`g`abNSYUM>=Tq-&-?=I8=smUAE2or* zd$6O0U!SSB(@+m;#>*F6T#GoGA2YlMcZ2ybdWkh{3Zv_AfscIx^v#Q=`Ku!7_at}J zoqxKH^inlmfl6-JG}^{wNVyc*-dzWN;gB^Y=v#Ta?H#T7h3iRF2WQ!_N=d`o4Y2jQ zTD6B>aNZ7S;kNz_PfU)HAWA;l{#o6VBK@a{I`O4+Q7U4^O zcCqe5AYDI_9ymuVE?=(aIHTd7N&EeM9=2_66UARZ=1y*yj}^}Kg#3ta_0AqwIxS`j z=2?fdtY|ti3wrn6Iqz9aU}}F<;#*HM?K>oBq`r&ujL)LP-}v7W9WU3A{2PGI2O{!c zLcSG`ci+%!Z|B+a&Kzd)^;d~07tk8X%&lW^o)NKSKGh~okPPWH?=ZauB1$FWs}k;e zsw~i9&DmJD%g%cGkPRP~eN3{%S)3PHqeT+?N}#prAX_9?G9So?zC0<4Brtp1XMZ#O zvRhXP2sHPg8iTc3+g47u73SIwv(O+)Lzgh*A3UYUl!rL=1$xTYcD3vKS zSD>d5zUh=1Cs5B^2j)CW9-yzoG7{%%lQ@L*vP=U>DCHa4^!lF{4ltaL@ZRwR+_V^+ za9B2a%k@4|FonmBFihM1pIAR?U`#w+>ipuAuy5zCzlt^uW}04;pv(M;#o568g_^3q zoM{Co(DeU2thn^Mb%>yL{Vz1*O$F1L^z5If^YvnH%iSBljWoK<_37{Y(boIg6$=A) zLf-UxU2MK?K|iHAr7nixL;WS zNSwBP@31DRyP1BHkF?L#{y{@UYWwsq&Sm@y!+JxKx4AL;(&T!&Pr8)j&APSx z=q4X<1Acxhk!{eC01J7kM|+F%vlBEbi0-N+ba;fzioqu=r@t}YwN8o`RhmONrg{7p zyMiJ0t|yJ)U8`9-*l0)=X_8v|GKl&N)N}V9c+g8T@Fb5W81-{*c3ddRBvtk%+12kh z;gmydW$4pH9(>)KbUg?6v0AO2_^e4~nds~;v4})>tQFYKf_+1=Q&DyD4%#yu!rN^s zZcA6dbnVsl5P>8MCq{n1Q>b$dpyfm!moet)E#|6JVqjh=s1)m##f1m`-N#5cjt~t4<(PiC@jwz5H<k2eeaMDoXrF(=)7tE$)(@S}Q;q!yXYJU0X0B$KM=&G@hYVESMU=&4-5p8= z#jCS$5_b6K`YNMc2bDhKx&lQRvZ3g^u74aQYk3Y5mTk{_j>9moicu_Zpl+;x7SAKy z_9pDkeIO_!^m<2JMCwK4vNp*#>A8OW`TW=ye(uQL+fCi~%BckL=MBPdDthT(d~D}RAZ*JHEbQYq zMdq`CB>`zr79H@wTX+g1E!~t71(~$vQ9Y`JgV^(6F0(@+p5M1X+{gmR!S{)#JFGCD z;dWA!YP6q&GXleioFfm`j>9?f@{C`@ZU+NQ7$<=)Iz242f+7&X?F%-4=OtZT?&m&! z%kt`TuUPRq{YY@6MJukHn*CAUX-g80-R>N1b1bH2POArGX7Mzy%ybzMxtNQ-vG&K; z3H)l7Y(C9p86GB>X~vS09ww!sh8Dfz`1Otpg#FRcWhzjjfxS^1)+5b1SC3tOoos%n zMd=0&k_rglD#Y(0{#boZr0#k;r!&d3XBtK9nIj^{E+A$>#l3kqvKgeEd_iN9@+O@^ z*uz>97d;g7rEHU65!+Zy~`F`7bLTEJ`_Yor&+UkA7 znLD~0B`^#Zb4az*Ou^-zv9HMKkK?YA>;5Xr8=~~pqhMzcB_HmyR`labBM>h8zn{EV zJWavELHaNTe#^NT>V0^g&i2EQJBk`nxI@H|9tYK!_3V{c=!DFYHYTO8Z@NFchYWWx z+6{y2bD}#4F_Jd^xnK7tj>(uOrT{k^jivT`kdqUl*DQkHIV4=FzR^)?yAca&6xy)G z+WkXJdReo~F3ZaA>N+*n0Zk#{@C0bnIXg%c1mG42MS#Sg zcVn8$oBOeg`lq(|a8VEFr;p(Hd-^>ViWoE}l%FzcwT*A1SID4qer3hC1n7@KzW^a) zZKgIvNPev6shpW0%nGYx60BB?=HbMF5|4gHAQ8$pwfu0zD?WZty7SR>989;))j1LS zE`P@2O7$jh`CO$P?|?`l0I9rvhp4z~Ax8dNc;UB)UyR2njGfxXk{lG0en3SFVwnSD zjaXyq^7G`io1PJKkr(iCuMdJa^QM!CINzeb*nm?Q)mk0n?{2GqYcNTzq<--0hG07Y+0~Fr7;r ze&u41KzA26qN3@EZORb*>!g{5GBu{*^!l8g!aj|N$78*QGAuxt5s@NIi8favB}8@RS@G=bNfJ&U z_U5w3Mq>4q=u79P-OU3`0@u^d>ug^ajRP5x)Nj98WG)o?Kx&y6+Mm&85eCz83dsd1 zl5La+k;q|O*wprCOElFQS02uSNtif4`MTsPTO)USf)kZXva2zE9Lv~uZFW>6g~4%H zi)3iA9>78k#x*LKs1SCRGy#x~3Njjd45lekmvfr;a>HLRz^?)IL8OI-TSCg!{6=Wd zTK_pDGtutP#!D9oMGQ=2#G<9X-hVDWKLw2QhdY9P*uC&-SNO&=_o*9}rOp8(>g0K4j||O_cZoxOElNRXoQ#Rm-vxTJ8LI~*EKL;b0Oci%|n6V$9E*0M4S&)Cw&x! zk4<(2Xvy!lJ7~ksjqa2_8Jy(5ri%^DTQuehoUP-0?x z?y;FSdoYQGw_8s)l$wUu4+ss)CNptM*6h?Bo z5q#RA+CUyBGoq^fxo`s|BW$Oy7>ZlOFieZXhl5u|#B2KJZ%S_qaCh_bX<%xt$D%wp z2>f%tZ_ufkMWWqPt(6bNhHL942#f?Ipgp0q;5?!gishuqZ0sSAe-rQj>tzsQrkqrZ-p&~v!8ft$gh)pUhdes#JdA+k zv^kQACi6e#Cvj*&13tm=1!&N?tXH^bi#y`v6_NM&wc42 z@8G#tyHO4(P6sp;zbBDu)HBAoLnPWe+*r#f)CQG_k{RK!tyE!?H%eb`@s|Dab5tUS z2L34br)PCXF{ok(wb}h$+mxT)JcjwU^wz01Ftl@(yc=JcNa$a}eXSiAwJ>*F{nvAE zP9&z2oiC5NXjTK;Dj&VJd*^6q;`S7Ky=}<`g6}lXyL{WGI%TU||N6oICgEy5>du=X zxG5TsOd%g0IbKAa^i6^OAs&@1o^1(+miny>(CRAg!?9_NR?GruAy<6=*@bQZc2vA= z_lOo&c;eTGHG0>pD11`RC5H6TtV6(86Nyql@tT>>P$-oL3dq`T)|s2>*N}gG2>ZCp z{3usC^9T=kg(SZ5OSl(8gA{ONM z1oDfjdF3*Zjq&<(5z_#=R;)w}bU&M~Id6W1@jepgdT=7DN$XvQ$Tm(#E9nVD?s8ND z2x!O9o=f)U%dd9PqsD1aO*9~IOMY+#1d-Z(5)#4t%C0tWFgE2J;irm^^SO*k)(+IO z=o_pqc(#{{33!1yZU*LZ(m|Ors8|m`JBzf~#rxP9WRU7wpHuw)Z)iX&vewCWgA9x2 zz~u{vSQkTG%V;Y2_wo(IKlxHsHr|(UKhZ~Vv5SB^9g)+mRs^(dl^wYAnxa|)`Y+62f+&vXoK$jko<7=1 zR+`fA*@rp>chb1DTT1G*P}$}@Oue~@Ps05;Qfd!xRfmPH;K=mMqCJE1pAk{$g6PjX zHUJor!UGx`(X`k6sB-2c8V`2mqOj=Gi+H`!)L_uLZH8cwl?YdKv9SJtne5B48qM*x zB;Ch)?{MphZ{V06jhu|T5zNY%a8ss zRBWuAn__p7a!5x@Xxc7&^;!k=ovjRulxrru0W9ixNmNkR#7ge3%slCYW;EhoLW@rI zvFu#?!;6myBm6dABppcnQZ~w4O8#c={V7rRe#FeCYotqpSb&;*uW866&mhO7PPSV~ zBHOzPQ}6P(u533CfG#FKAlm77x!U0H8%A0e`eMOcb{tTZT|*X}ReGC= zd7@GfSQ3JjcPJOxxgOf;x6pQo3r)!Bbq6RyWUhm3EMAIsG&v0;K^hA?7GzAhf=u&N zO(S|`DaJ1-T(TJo&EqGf;%VC5F9xO^k%X zy2l&6qWB7;DODeJX!%ay<(&p-_TSO>-Kld>I}VA}e*u2o+u)&a6BQr6$p5zWDIteC zPR~F31eu`b^RXx!9(13Am`7^rK=gGiIT-P^-0Peaai)`q@^e@M+^%QeY;w4{@K2y> zP{~_h-ZPUKCX6jTfXqkZy^_+$IN@U=5=HP-V8mX4-ojI)M7m!0dVK<4ZV&AMJfi~r z4@GRA;I+iXtERz~{|~Pr(Uc1|O_4*!p7M)Ap&IwVbpO9z0O2xx92~Wm{j==#zCSdE zEWiqwUum3qRPy7!2Kq@K8z5szK}GaNh|k=Z1>8$Q(DEM3@;n3fjrBL#tjL6FqQi1U zgs$<5rbbJbC0;`B2YywzbH^4HR1?xo7Ts~H)NKmLf~pdk^Cms=X*C&kWMQKhV;g1` zbi}68k*dRWVtxx$NDs0tPHm>+W@WZ{cmsd(TYt8FEM@-Cb?=%To|cq}dRMl#fkui% zf+Bp>L5f>AGUKa}_`1W+{W&yR{_28p^1 zBE`Ka!J}GAiz-#EVi?H%6GZZ`K-qa7VOb9;?@(8EeRzhmU-kQ(mx#R$<;v#84LiZQ!Pl2g z6NW)qpPlN(V7}oe@9#FhG_MSoa{WK9zA7NDbmHPe=SEi4%6eicF76bkJ{Zc$#Lh0p&W$Yz$f`zE>V(E?2ED?ZOS488+4fx;P|L ziQd**aOIEVYDduOXcmtA7`fhLon~Yi?XUsOCPeMO2(-G^Uh;U4GRAmgO5Ur(T2dzu zk_^QgITMe!?xhqoLWD8%n#k@%+j~|yBJAW5g+7xs%=qRr)}b*wXK5xep9dpg_o*`u zjtX8ruj+z}<6V02Ol}x}0VJ#|;}v7b8N%1}xEr+l&C4zX!NmiULeCjaOP@MM_>a~7 zT{=yhY!*l!pN*24n(7FzukH=8QNBQ&Eu%;@syxd=d5NL5*v`6ANH+m-I{+hI(AJ@MkrO>QVHmevNR`xc5{%bwIv?gVT+=3fbx zN6vwYzcE;^6>S@K1gcM+1Q)xa?{*1a!%!&Ni1s^Me`BP&@4$OJ7!M1$t46%82-rmb zRD7Dg`LL2n*U@pS*czC@9Q&#mwd-o{8Tgnvv7Y}2YqRe8>#aMQ+QIa<*|IE6aawrBo?&%xkg5pLZ=DXrO-EtuJaQ7A5?=n|ExBJTbs<*io?Rdt+Em z`~jOTnAebbSdQ~`&r@NcuCbQK*y^B`#7T30eNx8SjKvFU=5|{cx^O5EE_1(1c=BcTS6S z&_@WEx%`lK46h0#f-|eSwn~S#12po*bUdp}MzM(#SB4G#`&*cR@ZihGes^Xgr#P$v z8xBa_Os+vuJam@bQTS8@ZazN>BC|&VNq$))Qa^I`VXYt~igiiX-h)-t&^u}7?MOA& zSExMC62DDQD&%VzwLE#!RgB8k~bA3wrvXUQp0oezUiLr%CipIumzu1)tm zHbMi_8U@8wU|Uk7ECNpshV=i+Ex~Fix3Mep7D485TK3G?=D)s;6WpD)O72vpzjdSj1!$Y3+}6*45{IUYRYOcj0t;?iLd=8kQ6#=>TL@^gxhT&S@*6hwv9>&3je zaPD9LF6>rDTk3Cc4^==fS`e|U=tj`CAoWn|yf8AtZ0+!3K_*<7rBM;CnlA*;PE;9@ zPiTRj0~N8<#O#@vXt?vbyc!5ArUt}W8QMD&4a8L?v>;tBsDK$M4b$bgp|q)XI$Mh+ zaK{H9ds#WCwE`c*;Fh#M-t&LGj)zSDiCzFat~ENREcKNYq%9v}meQQHwk0k8T-0gD9$9dBEQg*4EVMaR!75qYYVcvQSCtG7wN6bpixPRm zauA&VRdPkJ=-iP`y883a_P8EF&)zVD%w59m>l`1{-%Z7V-jzQ?WJPu&=z^KV z;8(18nm;LQBCoyG!xt5Tq;VhZyBFZ?VtD)?bA-E(4(o1c2WU~_@Yi=1G=hcP^Ic4q zOI&A`o)SO9!hft=y5tdLzc;twP6tK=GMZUOF1wvVZw92#(o`JZC@|<$B&isChNeS? z1+G#IT~kWfpfU*uBNFmxb`KHyp1@o6oT<3(MwB0&+nG4;sfCykE&}Cf{P9vpEx>lWWbY#9BKwV-~BEnQIzwUj% zHAfOg`Hclw+m<+q6UR5J5Ws$(Md>})_s=yZurXHQylu4C09|-ka0X}RVTW1b_ynHR z;KH3X8bHa4%moOJFAF4}mY>kt%?(mwm;Wax-Z0&)H@EfW8oejx<;7nu8?BCbHi;=D_dmkoSU8~y$P-SkL>CJR<2%|Wx&n}7*TPX!^@$ly-#sI+{JPY0hG z=ubC;rdy%dekhsey=rkp%&!mWQ)9|zLbMqAONs^dw{^*oy!RwzL`J^v68!GIX#dNY z@#9ZYF5i)n#N-cYxGFUkWclS{z1CSTj9%OpFUW14`}hhyUoMqTT6Q8B6z=L^C3vJp zZqB-kLNc5>Oxu0F#zMU$E1r@OL;(T2%hG9>f#~mhs8B@LEr`Y$-R~gf6gGIyW=eP! z@b4D1ZUdevl4yC&axftWYp&o)$`VG-XIDS_d12&cxLI>(%!;s{%q$m3sG#!1sXM4a zifSr5%hwR`P`b({gwQ9s;4QM(I=D&Yd3O3fH(~qLz*)0s+}575$g^TQ{(ENNDFPU~ltIZ9B&%G#D2{#5p=kyvo@}l7rO7EVO44YTZrRCNg0NOFQed5{<_CRi>BX4 zaI&8mS;Z1UOJj8xs~|&p#LrgEWN{n+_~Ds_r6c$EnD)yEj=VP4T^tH; zU=E|Gg z3NT8Y=wj$^=Pi4BPtXuzVAb%MDuxWNea@B4;4>QHV)&^gtb#QMYcElPH@%z~W7I1u zW{fyb)On#?9^&$F$~w!Q3J)vks!^SW>grYjDg#al7ACeukLpn@+K9ju!0B06foHg~ z*!WFYVxR0GSheF0n8+P zbs>wI%!1$UV3kE@SRvv%A^_cEC@(lnbGye`fj*^LbP#1$mt^Ua*vc{oWT?~)6S+`b z4KXGI%cxbcgfg%VwAa2p%UE>UwS!d)n^)qYeT9>Y`T|?6O6G{J)Un+=T=q^_oJea1 zG(0kEf>h`?xdO{Z;3e{KOuYnYb7ZFds|R{Fc68OW(*n}^v(aqHQ=Q{c@VzN(#}i$o zq(AGXb#YTc<;)6L93gtw-3uUmJqp99;M$9?H10mmJDUs^J1K5#b9C^Jn>v)JdThNHOXBS4GQcy;jKXyTem`J-VLz};ZZg%?|EkISi>3P4 z?iuQbWeCX;1)+IDljGV$6bwGMNy~&#t<45f^Y3_QmoJ3Qz!>iBI>2p4HEGy3crYva zWT0$b*<7s%(l(zW)Gj&M0K(pb>&REHLIl_@Yh-`mBW?p4`uw1czhN7~GS(22?1L$% zT|?j2M~16EPzu%O%e9bu?zmf6zd*5OVS+NXUHKGN%(l?!pOeE1Z>EonjW<$@BLo>L z0Hc*J!0fQW!wlozOr4a0urBdiX`g_iBp%cCtX3UK9GiThI&9ZyfVA{lZI}fg=fRUUL+kZ3X7C!7g5k43p;<}dZAvk?Z zjDOzzD>_7>G1UrsQNNM`kf4mT1Ik1%fr3qj(rmg1X@5 zNC{t6>yf_rG<>f~hplk=FcG#1`!Yl-LfRe1TkN7N`NbtP%+TTGZpRxb|3mAA;e5gl zkIch692R$@wECz;3Fz+w4dZI}Cfm!gNi>C1H64)ACugofS|s+NbNb;cB%ibBd95K9 zK8CTYeIJ8cqJ>i`Zom%>jjDKXictNH6T*|kRWb3|;-hKV9gJ6;HEP z_pm0>ffD*cP$fRwH7QJ7k7DK+u`d*s!7SK7iO)G0{5b>kb?%x)ZwSI2eQl$#9E^>D zO#PWBHn4udH@EUDTQ5B!P2!~CO?T+&qXsT5BEt!J6vjJ+-SyV3l6mE`1*rK}$S$*W zorwCxic#Wr3QFJwP8f#TSK`4$lXGSYEre@AK0m%My-^~=r`u;eO^<(b`HGI~_xMYY zPo59JuWg<>fQ-{d!NaGwsQlzV zOqg)TQO3j?429-htDDPc3OTJ2qBc3Vpw(Ws4@|mwz<^uaYrFE9?8owC%E|S4oSCu3 zW$w9I!;zBN!T4_Vw&+6((l@w{Iny7)hmB=q3`WXk=QRaRX|(nDjdQ}Myq;@QL!G)x zl4)4QI9s4jis>AGhW@Iw@Ey5(A1WI5Cl;f=?vfxEF$a+u?I3X|V;QoWI5$2TJaHeK z{%Ds@mfEqH=Hfbw4_>>}@&+I>2&;$K;P||AmhmfcWWhPS#8zrW|myeYXQaTOGoCnd@ zE=N8{VT##IgUG8b4)Ri~T=z>G&hW-@n!k+~{z;ic-m_VzsPVG@P`&d6cL)4eKfpwX z*B$O_KRv%{CjPx=`!^XVSpN2cAuD|AEAbx2FLGLf8VO{i=CGr(bIMTKCG+we15ie! zQdC;^P8Xr)IJU)M_Di4QR|y^x`_=nNc>q|THq6QQw1CQsPZ*Vy-lDcyj?e`Se5%=D zf=jiM)$W8*NpvV7rx&(w$z|wz?nB(rEuMipGX?T-J~aLL;e4_Ca^+bsEnv>2+{^!1 ztYnFg%1PnJwLiAf-wFGXJGHFCJ+YliYtj4GB(8lngi0Yd~p}A6~u?BNH?~CBT z8!*FECxFVO4Ma}86g!QufZQ-~7UUDe1<)QFvh8QH9(}$ct?IF2$2_O>Dk?8!#gLq? zK~NG{@GxfC;CwvAoNFZH}EzLMFf8j;8N`Jq&6fgA?< zMFA4etSKrxh-{JYYcGOkXIXzGV%1^R6~e}Rq;UV1|UQU6g= zzFq^Lj)*4}WiyAyB?Mm!_{N_G73AEO8?}ZhwY_YlkC>ioi^g%Jo{ItJv0CHK_&??n z{W|@3wSPB*`d|~=DX$$Bq&%xAIrx@iUsd};5?#9}W)vGxA1GezV z&uzg#>bsy|QX%_8*|$-j=?|fzM zqpJtJk(^GN!S5*!zY;t-WZ`xJ3B%vLX%4d|Bv1EKxm*y>OO(NJz&EJe=A@I@d`T|m zIxFG_TfVS@gKJTaEb&5k1A6mfXO6noNYY2yk93(Z1&B`DMMukWXElhA#jY;l7@U*9 z8yK)g@QsY-H(3XN`(i_8iIa{IGQITBLH5#UP(>x9KVbdI6TM}+TQn1Rr=v5Lc($x~ zz^dzU1L@;&Dgf79Y5!*SqJ6M9A!>o~5P@f4^xUh<9p4i-1gCc^<$5$ALXc|9f%aAE z2ok1MByKdmx?;w%(dRcBOFz$$C-#%YnbDE{-{{n!6w2+uY;<=yZfo~tP{1AIQaU4z z^~UlQ$K4~r8T)oj@KAOHlH?BS88Li^^k^-gc=J31e3&A5K zmvMp9=J?@ep!sVfChN+Y%1uXWN=@ti$JH(Vng6!)FB}Bx%YH;Sr};KpOz{R=5{2tiA1}JMGu`U0XY8_v_R&9`?5?9ER|#dv6f14Wrbe>+anum64L>0)~~-5~G2*4SeghPbWOd z;hupqkUV%0<3&9SFN26`vp796vCzLem8&+g`;C&4^;Qp!X9(nTs#8tS);^LWOLAbIj+>JbQBB!yPs zYbc^eih{(6V-kHka4MEmqYSH2j}Qx==rgF;gd>^U`a}ML=Du2Z8-0pH@J{*jEcX076%o`|}(&|^q zhT#sXZ49v-%0M${>JLV*QywXA0(0U3fQCh ztQ&TvAbu@qBbvzNE5-(KWn`8_=olDB%xik%6`FeBpEds>{H!_CypWq+gKAUipf|hr z!Cr1N__YyZr?A8MeN^|x4WW;vpxjWTu`R6YCrH2}P3z{>61hPkV^}@MMP7Od>Mpyu zVk4`eW+jG#py_o8%lqF+^QK3it(*`pFTTXVDz1sbHKGVUU9*gQ#6Q}$+p9?R#`W1~ z{FXM<@9+O!8yNX)==)F8{_mWz@`s^k*Yo^Cz4D(8p)|pSQc2?%pJ|uAT(-E#>G;I$ zjo<*9EB^r21j?IU4m7Y)NA-^;$9+VHiJ-8qbY`|5i36Rk!SCG|IaR|>)Y+3KX|tuB zi^P5`DR3sgx6mVXrZyfNk$)QyuW_`{?)~okt^;V>B@x;^Nh1^=ItiP&8)wpI5mrC( z;<_4D2kC;k5P$ejQ{>tye)90?9lD_1ecUZg()vH@y!r^!U|x%!K_5giuwY^8Eh zu`@20wn`;g_=fF}1!862ivt?|(=!rc=B?*tySY-amcd+OyMU2Nyyzdq>JZ4B<>=tFN59<^a zxffyrmw17}mjD2>CB^NIwd*E1ZP83ylMSgS-5E;eVEw_7zIo4>0xH%vUSg{e{~}ZW zOVgbN{_ygR_(>RxH7diUutBrtuSf>VUIWEVou%NA6YlCI;%m5J9%0=gD>x8XL=sIk zsEWbr_*UU{#)kf7sP+8^|JL zKEzJ?{(jqJ&d408_II>z&#JXz3{uIf9rc!3;ojbZP9T zC`Li-*J2qbzRRP5A&cf($IYOG*Nd864Pjq$APnM$Gj62TuAdlI1h%yG^vW8cQR6w* zsLA!?eI|NBi;?6#26y)=eqk>5d>M4SGej`w0&x(8yo-Dys}-90|K6o#?`Qa1gKsOa zf5|Kg2XzYzfwGjps$V8=E_Mg$-Zq?Iep*1KcF2to(oR zJFC)~kPNS7DTh8a?ZH8j?i3O#9WCWj#s!aGdg!vaI{?Qq2aX$xSc6$wl-K}CqqA4sGK$` za&GeF;R7EK<4AH8*S-0ccXk^~AYN&)+6yv8dyE)wbC@W2Uyp4)_n~YT%8>cn-+@qkQOv`wdslq7A(ft}?_X@>WO$1>H*AeRKa}w*(7E4X2v?69b+#u2N##B>GGq2ip$+V4 z23XlJN%R6D=LN1>b^uPj|5Gy7PC9_g?JFfP{}UO94k#*?PZP|GU(VR%dn}o3!!)=} zJ8{`il9tCfg>c6P^4CK{KaCkRu;z6!tjfp^pehDKe&8^6=v9k4n3_Q_ClsS+t6M3GmW$x@3*6z^8pRkr=NpnO_jc2(RUXmKcS_oYOiHV@|<>_wNL_%X*OO^WU-Y_UKEA)g* zHYZ9a!3Q|S1@1fPwoKsAr?K(0GP3#L>eA zi3+L@hn~5Y2v#8>Z;~xU*r(WyS{KzeA>*x5?~7|jb)lHV55=e1&BN-+4MB>;3-PhM zfGsj=Q6kj7nmSpEO{@uz4AEM%f)n+@oRdE(HHURdo^@|tLB*rLx$J)`#~IO{7hp}g zhq_-EG$dEoFUMqStMVm?J-Bh%d(cTjoe=|T7yVe#nyBca7NOG?{zvUh$}=YC=Kxl| z#qSpwy)S4V+7Q3Wu}*4Ae)~AxabA&iv(|Nl571}~q;!v2v6=>x0AG&F1IsVj_z4z%scZ!P}JgecMklv9pWg4zmS zeMLl=-mxDceP3+I#|-4@Ru2_Ij+MYn49IR!XyI?nX-laYyIe@kkr>3HXcI1Ri&ry; zR_OoGrVsakGB~9$&03FZeJv!E>CM)rNm!;+FsnOgK+YAsLT15luBQ8B@3h~8Bs@X_aUd{p}uf0dB_pSXBv)Rar4UCU!Xj7sbqZF^Vys#2u!Q8 z=BTjke|6A&!G(pgHr88^SJvNd=RdIYDWt7W1mnB&8(=VIh2HG5U-v^JziM!Y-#ib5 zn)czwOtQ1PgpVuzbmTd@X)QoVpG~+Y$uwH;(IvLEMfOts?(0PINlU&6HiXe>K5ITy zXo3>9W^=C_y&^>6c)L?00qwg12`n~AncgyIwC#k#WuEa#8j0vfR=Xrxi97kZ-Fuoy z-^UD0HR;ivFP*h|3E8z;B8LS2O%`HC_gF%N4_zAU)1Lj*TzcgJ#2HzVVT$s+FLE(5 z!)xUyW_gBJoghT6p#gcHgQJS-M<1tV&ZuN&Ay1~9{f73kwR`7X(g*WukBzU;;e?@&A z*G+<}d$l{tM&Z;8qxj&({qlM;lz}AK%Nh(K-$zr?n4S%ofX-dT6r2mo`6SL=5Ax=J(RJ$(vsKY zxz7&}DS|`Frr5RovH@Y_tUF*0za<3^8=|QX!59lPoB6O)hQah;C7#=J0foY#dTorm z`a$N__~D61grq3OAM5-|FxT2YDzqs-G)@c$O&zE#i|HQLM0P-a{(|TrLr_lwgb;VV z@R--bHw@NeLrH*5`ot0x0%_?t@h!l~)brS;t`shI*?AMO{3W+g#^(0oZpAS=c*yOt zaOK+8mzx#!Gqn1(LBj_x*2Y&Rij@aB}=vyXq`#3M!~?2$b@$I!qp#VEzA;NB)4 zTUhna;@m$4$|*Xfk;ctY8%Vqn#i&zJY06gp=8>rnEN9k2DGZB!(<3-40nX=G+8IUQ`=uwVX}ix(CKzMDy;BBzbrdv zLYt+oKrk>-P`e=K_#ve^SxC8Q6oKhOhw%!wFd*OO$r`qY1RdvV0y}lyYF@Ew3K}l8dwmx*Kc$S za+2y=l2y#i(F&nIS%2O$*PVCHU+%5-X4 z3Cc9J;YTw-C$%>Du+&T%!{d#sFi>fo1Y4x$*qVAV=1Z%CN6*81N#(AR#E-w>lph6B zj&mB~N_;pNz}2q0B%d2nNQ*F*7JAb3bjL%fBiVUwb(qPqMy*_pWlqao@_y+&_#2|= z(n~RjY=B1WCi-BwvpITRkX(LSK#4mjIZHdgR=B4ADBtOt*0w` zZS53_DZ=3yDti@g1n=X$o)_`E!#apC)-&zHZ0GfgU?m@^AVE4RG&6@!68}u5|E=bB z1Pvbfa-MMa+!5k`Z=C-Vw>@ABuxq0WVrv2Z+PWJf9vJ`J)#_~tmm6jKdC3?U9t+JS ziY~n+IuU{PdW9pW5x^~Npt%KZli-n-V%&_4g?iYi7?m$0?wG(ikvU3*@ zcL}^Z^PsmC>PIgfiCpj21DJ%3+4T3_h(MRwVk)B~z|##yvd4*jG(AC*=O!EZJh_fw z<3Z(p09IOxZ1B6`-bA`x-Wnz(vQKApId(307_Fk5;RVz(9R$ot5O}I#Ge%h+#QXe) z*m#G}elIA3<>(U$9Z`(g3AI{_k$SPDVZJBfI77yNOJd$Q#kmjn{(HbFWXnS@(y!II z5Xb^!>MK`xj#*tT<13GH5e9r}!@|;U=|0lK`KY>k)3{nZ2Kuz!ur{?J(6!e7a>XgB z;~TL6Eo!osR{l+n@wa$%xeLBIr_H$h7Z|=RcG>{=q&z%wiaL|JhUYQz zyNlO`(;x={3j_`U)G=T>ym};r*qab}i~M%AzKoi0&<81R_k@CsGx3v|Amft2Q3__Y z^dQ@k!tL*L1d+4M;&M$379mGW&HzyuU$}>t0jh75yM>FB&%*` zR})@uKLQ!45VAwT%c`2|lW)eeFF%6LYc#m%D)DR1pLMV25QA)F?C`}({PGl)To{GC zdBU3Bow$mrGP!5k+$7)x#`6TtmJnAB7GK88RuX~6#?tI*@Qy07*8^LSC6%B};(z%= zX<7c!V;y&(@K`_lJ)%?{{viy0lX2HW5!O!U!%Ld5?A2zwr3KBP`Z*N8>kuHRxwmDS zVTXy{!ky|Db#w|s;N!K@LisUc^eQ&;r0OB;qt?<=6af0XM_b4oPW#pAr@_7U_g)rC z@%?Uz(jyp)emBo=|y`Fvjh-u zk^DbkGg>YDrwFS#n7me0iUHc}6XVp*@pv^3fT3?y(nh0T$Kc)^4x9Za*3?Qjq z^2qQT!_W4+B6lc|WfuimUAuv(X|h%mxfWe-Ih()@ykO7ykUM11eAGicKJuF=uR zs}YJD_OXeb`%Z4D;6vH)Zal(~w0rGy5k`8noWr$$|8MS8^8OW>`HAa4kYg2r)3I0J zak5X3prqt>Glg1}QATHUz#K0ezGjeD1lLV=Bzi<98N$)98sjn)m%Hk>93|`xaJnk> zB2m&#ZhCo8`wcit&(n$Hp{QS*qGZ>=X@Q%$e&kR(sfEz2HCSeqmbP)Ilm3fe|1t&0 z*wq_RjIrOOj@X_~Ug^YuR9X0&PX4Ky zFOMdof8gwtc+)R`YEi`@DH3yghCBljv`Ijj#n>kYwtgv-!Yx~J^OJPGgkJHLspQg~ zNlX)LDo)M()@GaH+XROs_uVpuTrMmsxbxe23*i>&2@d5NH0lRpM%`;Vx)B(6bGr$5 z@)HEV1K-~ngpdyD%1u!GZVXF32_;#Zuk9&CuOAujNb@QwkKuL%tEhWQ9#ORB)g646 zBygc04B}Kib*vA{)8VafD?OZmtc9X7K@~%)aW}!^-$W&_y|9BG(TXev32HcB)*b$r z(5irXvx+!vs;U12;d?B2vw{gsP=fju5O4@}@gppU&ROK(nNIfDW6r$_MHoj|<&Dri zi}*o#Jfr}-|p@aQCQxLW1rPg#@0dMMCo{RPJG?{%bq zS^5lu0VYe}2d;?;H<5K*Gko7N4dx!FQ^NDX0q?*>GTjtgTj&J$KBZ5(iv?uUSMrT# z1e#s>r2!Z-b^OLy)7}n!H|S8JUkOy+ao#T}KMc%Q^iUN+v`C@}9(T^KI%U*h0p{r& zM(mO#W_ZJL$7h-Gp;xcT%^c2!jZiQ#LbNr#8*L`VzXrS{KV!>XQ{%%f!fM(!v<+#$ z^iTqB1;0fvQEwdv3;-xgk}OS6^4I z{X&4O-(YGPMmt$GmxD3DN3KO(n^nOznwWdr3y1Sz<~QSaE)PZ4TD9xLq08O^F}|*I z
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�VSFpu;eOWY5Vm$mQ@o;GkVAoXhoR039~aL$ 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 diff --git a/docs/maps/images/spatial_filters.png b/docs/maps/images/spatial_filters.png new file mode 100644 index 0000000000000000000000000000000000000000..991e7f62962d056ca07d360c27f64160f612a62b GIT binary patch literal 515895 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

04uDYn`DF(OE_(N|yam#!mwyy6gLY1C&gKTfYT z)JK26bP>?&wBhdFh!4y0`xRg*ZCGkLoJp8+Ca$v7V#2jGLm;`8u4zeARa!7F0|{5+ zHhs2=x*IlSFRrEn@jTOb7bLcH2)22$Am1L5_?*{T4yn0~-uj^p{)s{4-=u9lvu8KF z5ek9yb=J>MmEsq95DU#(NM^c($()jr23oPi=Ros~n=u+a{>JVJ`C$k!hKOTnE6OIo z9`3x0n+R2)`AeLAg}8_a^Y?)WV(Km4m7U?uqS}Fzzv+c($@5N|Ej1FQFn%uZ`kQzA zJq;tT7cJB^#st4Lsq`mLc&Io{dzc1?b+L`|km4IRbR z@sWu+L;D7xRmRk_M;jjgN!=;ox-lWTaXx zs;MW#InX5Z=Q%TcNegHCag%Orm51*t(C>HWFStA>-qA#J>Z8Z|_WaNOjhbZtp}5o= z+HORJMZ)b>{z<)oZG%QeptU;{*E&v1GIi->Z(K0H=QS=jsAUM zhI8I+NA9yZOyTACd1GBE{6dfG6MBG{44TLG39tHmjX)(s#^cLIO6G_W-Jl63j&|oU z1cq0Lv4ISI=$?9>evU=@JaJ@us6>;Kk5G>Wy>3ok_+eRrO1O8OS}hxFFPq$x?8aiD zAXTsXKJQ}R=1uzA&dRDyp&Up(7P>I{?z+X#S@-Mv(_)Xo{hgbE*oQz>A)fq2fwz32 zBM%iA&zg~ta4%20RAvVczs}=^>Q<2?DmYaMzt@3|wYDt}J8JWVm-AvOUpQ9dN77zC zIWu0*`~K8VTq2{Uup~@%^nS45D36?zKW25Z1pS*0ubzHZ95B7fyR;N?v)h-oxa6UKQ(r%7 z*}24keX`oj+!6TvbbGqeHx=L;JI^NUov#I7m~HOqI$yZ5fF)Q(g#SQbJB4+J%GB9_ zyf~Q?ocQPfqePr=a$0H5h}MSpv^BbI97?JAN^t~l`4zv7!Bae{IcWSE0sCA*t75Ov z*m>=ik=w3-d{vgvp6P{q#&;aT=LPhDl_di{B@Et zAyGu~fgt7YKSDoz%^1E#7-xA63z2t+?Udl)>|U#*?n(hkLDG?fcca@&8L9z_2>8=+ zKQ?#(#1Ue*OwWI;b>7UVKm@oEJixAR&`^#Szc+r5)eHs>aHOW=hm1=~l2ggfSr-I>ujun5{>Aju6|FIa>LY{ zBIuQ~MPw7prpt%i-NzGEF=F<#(AV0*ik$u_B!`=pFLPC2GuPcUhxiyG-f?N{DST7U z)a@}Rn^=vzS$Vo5;re63Gp$aJxof%-NAJlX))gUyeii3QM=DwfcRf)VZ^My+paZ4Rkh*& zp*Bp&1{EWwWS+7Bmb(+$BLej^DBARq__1S(CKOywsjC}E%EP@oOtBB5ZNJZ#XSF`m zoLs&`<5VQ=dSKmEku(#>_KuQH61i*OP)i>`R%+(TF(#?c8BOGFgy*K^t4Q3dns}j2 z0#76{pFAt8DJ!-x`R*S52E6(Z$}f z&s6d-j)O|7Y$MbXw8QVdjZUfXg{Y40Fr}`RR#f%R6r>Fzi;*%^35xv2&hFFHNe#>F zG@`tf7j`nDkE}=8UM|TQ{L1wTfs@UX?VgCn@xn?)pXkiwF^$0NyzW}Gy9?QENV$xzr+s5Q` zf{~tgM6`y`L^>szzToVUQ}^ITjF$b$K(mg&#z$J`zWNlPLI^qZG6V5rIFGRNS{#zN z{ecik4r!o#s%7_W|Ahr$N?rwHDWWOP5o@+k5aL=ObwW_^$aAjZt}5-SjJy+pD5nrE zA})?)6@jZzn8Y80jQpFSB5(P62Ce{aCFIto&B8@iM=rG~29uwuPizGnD>474ndXRi zb8dGx`uRfIy6S$?Z~9UZ4KZBzpS5Xl>r86rBcZd{ub1sow`WAsghp(vtcc3OUJ)fl zgEN)qX!AIna|=5TYIuPIA}s#1(7FtB7mco6)R*ZFOe7-QM7e3ZH{U6)vYw1w3Qj&Kj z94)03PmoVHf(}1`pR4)Je|j#qmQHzo6d<=c>mvKQ>~o9FxOCqVsMJxl;UpijZ&&ji zm7^+#BM-^?=?587e7}ma9{IK-`15&ms%I^vjp=MCF~Cv7VZsnx4ma64p4(yt_TE2Mqkc+e zdcfno=-W^A{}zV74TQI)IIbFNzaN){#kV*jc&Y9s&Ggyki!KPGNi?ezy{LXexc0^&Tk~rr?n*llJnO5Lk#|;Z7 zXR6vU!FV?>b6JvpT{w17rz@kGZBjqox*HL_$ag;5B#~_q@`d?iq$;*s57+&?Q>SNF zMH>~Tg`dNU=i@_`O?6 z5EY!}I}azow=YsMYvk1R#Q_56zsA!m^`OR(6y)zBVLSE%K|&7OJfs_^!HmSHXxpyaygE zEcZW2cdd@^Fqv*3xV0`$Xw-}9As{|l>4ESvWB=F%e}f!sFmKe0tLJ!1VX(!T_mvd+ z8pC&w-~R4}(@1WvGjsmUqAF!-zO-!?qmo2tZ})?%+LsLk)MVZ2Fvk{@;VCV3Ag+|t ze9b*OIl{EcWCiz(lT~c5Z=1m}w`fR&0DNbv!>zQE_sG4(Zd@Kuc2GJC`eYN<Zx2D-qmmuY3EYEUm?3q!44&nZ2a5 z%IN^zeKm9&8q?ve?a2MLYVz^wPON=I{978|%KMh0z5UQ64$=^5I?Gsn`jmxAKV$;! z)mSb0f*3$MlnzGS=Y&`;n-e|+wt2@K_5IVL4hK%gB7G2@Ba-iBkoHdwH&lEPa%S!~ zLLKfyIvuBVBC%#_+WIW>k_O{`-o*Ry533=gxqIRmc#6-ZC%w@~Q>jc7D^V#M&qxn% z+bl?mXE6`@&zNendlH~Hd6@xGRDQ7pY?aIRD8IqTJ8j4H$|LvfNl7IgFAAurI3sIU z(rzvz(&X1SWqijpf3I#oih9PCsOMZI>+7Qklk3*L9hd-PF`+A8vB+W+slJCPy1qBR zcPP>C`7Dk<^fLvWaYbhQXU8Na1l`!H`J5rBm^OolGU^@AmtZ>Y`-pX1j$kG-enskL zJnY0FHe*`y64yb-{4Q=F|8}%&^}AA3LHO(UAgiAjDE&X*>&j7)3aj$hT;?BNUc4N3 zRWTjmkCwU(xw;>Q(eLO#fya_ae610RW2F0HV|cH&s9_zqqj_3?-7{TeY=&2up^7i` zQMjARqZ7A$E_dnw7t7}D{1)}N^9X`AyFLzg`gdCjtuPf3o-<(yHWuU9_4Bsr6 zxlvMllH)$wnm>ibVH@tNh_@bHlQ!XRx764S<(JT1PW*D7relXl6TfRc%lt7n)BVOE zb~=@o9XKUxHHv}*N=ptMyK8IRk2lqj2qHvXEmgf_h zWNKj>E-L4Det&$Xdc6&mK6X$|_A(w-__4sg1)`%W9j+s01cRQWSWR2y5Z@@sxG9lv zCOW=gmMDlyNKhp+K7H}{s>*G@V(4O;aW0}^yDp;D=zXYhBR2pg8NT;7PQ%d+ zb&31H>v@*{4C21AN#6$qBB*MK2`UnC5ZXUs$eDPFs|gW^vQ3G7nHvV>36z&Ke(K3m$@pDj|T1d?+vvLly7Z>X%Ms zw`9H}5P$sB;Iovi8{t%uI3-e|yGRT>e8payN+Szpwck1?;joyu1kH_LCL zp`XdioB}enC=TeR*|S@Z60`@1u&vR}(2;BLj|{Rn$Cd3NT5LKV8`S}aP&in4dQko- z5}Jxw`K|f5Lit`jvSzY;gU108iqHXdtX8SLdWyaf9g?hnq-w8}LMj}y4bNtu<<0bI zsB90*m*dmF88JPhoQK`)Qq-MB@jrTs^Y2`s z6yreLDJFa-r%!Y!X5&RM`LaW5>nYgHbQYl)Np3MtB$qE3=^&Un9W|zdFC8@484KBX zT_PA*W`l{WM_l|MX(r82Txe@5K^eN6PaDK+{Opj3m9o<<=o0}r*7m3Xa%}NLH9u}c zs~oMDCSxo=A2xFWDW)N}Hv%MBgImIv8+l>%ZAO&~rd1?=>`q+0sS1A-{QE8}^*c22E{XY8L4;b*f(9=^$cx0>?To>g!y;yacMBuGOQwU^>Ugp1ht>RDW z;DlyD&g#{F>AvQB_hs*NBM$NXl|xMcfCD}IODUt_6K`Cy!Sgh3XO96}D3bKxV%Rr_ zw>gd0bUJhy6A4O|zQ#WIH_6TC+wH0;D{vLhLCuERCqs5J#z?a!Sg?${09Pz3b#xSp zN?}ZOMHfkK_a=3$l-k;0!iA0M-pg4EQb`a(Rgi**{oOfWqnML?Hl2e+;)Sk3yKaxD zv#A*l^<&4&g7)v{vN?XLM4>A!ihi#TH6(deR5F*xY(1i%;|1OH*;LTq4Y#+;D-T?j z4uxZ4DpDXV!7P?P(pQ8@{c!4^8>Kk(Q6iUdEM>4Ce(py>1PA z%If~dVNDHN(nu2*5^Ws>O2ie434Qg)xH;^d(8c*W=(MCOFc4cY4+#|P$H zZMC4{_k=atYQEGdH}b+ko45ht-4U;5XJyu|8zzBHr^=_khK${g+ZJ0#1HY^6lwJ<} z9s;InO~|sQ96g}kxht5|E@;Fxj5_hdRWUoPkMO^TjrvfbLQQ}1{-UN-B2`h~`*4f% zc(VJo*QGIJ;;FISz#iV0oe4|3nXpe@P%lLD23-5+eYp|m4UMlS%dA_)yd?IxI*I8`;`p{LVek?k35FL3h6kN0qcHM*ZpIDWb>lDSfgL_Jg?d?tLU&QDHzRy-I+R z0mXX3R#?-NgR@3Eh64!jQnE{ zlBh!oDU>^_irx`cfbg4*lhECBYBi(LbP9{yi@k=DN+J972=0jcKy^d>n5@V>j2!$%KH zB%*%CSj(V>gS3hI?n$4d`{vEWXsJ#L+;TL@Z584vq9o_bK@s0i;yHD{{1&%Uch$vgD+QD7 zZA@`bG&V49Z!eK=&(Qw>JIW(+zwRFSh3+=YY5&FfH^-RzqJ0O54JsSFWq$ zrp^L(wn-nk9~KZjp7a4YrbmK;4IB4mKI#4^oh&*zET)nu0Ivj8T$zc@P7|6Wan)Q2)72;5pNVkQ;SPV z1REVZISR>P>b))!-^zrKm_NkzF(A4YL~aPz2)YaC`B}2MZgL?CcAF7~4u2-k33u7h zibgFHcVRnA#wdh)H#57p^m|JY6pTLoo9G|jc@c{Zz;B18^YWrbP%IHBrarelpn(#< z^hlB{L8Yui5AF&=bao*$1?bR-wUxDm}W1pA~jTO!uTKDI+PyZ{9JO&&9Kl z#Su$Q)~KxY*JwEa80W+3@84E%7&&Yqz9BZ$S+3f_1dkXF&t3glr4CRyi|r3}Ay5`! zs)5HGF`UkQ2VM%(5dFl6eJ>jY3j4PXcK^vi3m{r`&5us@oyhWne5RiL&gxnBwWx6V zH!o4Yh}TNk_cY%|H$K$-mT77FH37$eUsCJ663GoH7G`VftC*1=p{q@Eh|Bj`fh``K zwUNX54DLRRZzQRsqbJ;zC^0nCf?K%wCZv<2$9;3E^n;__VL12)%*@z1+KOvaZ70gm zZHl&*B4B5((z(Xo=lRe6^HWDw1a(J63ExJAjx#hMXLkbilt&}naUelSA>rA|GAd*# z)d7Ii6pEt!6_i&S*xV2!$}lO#P*o}ph_~we6jK(})5ZgWrMZtpP%&vGU!|SgJmgNX zq_j!J-Ay{#h;=MvKo4JHq^A+Fl*V(acSgfbi9S*($t}92QLEI7OAY>_!+%JRM97V6 zX=(Xeuoc?6dn34T8|?5j)L_x%&HUYBJba+B$=3UrloB&EAS7N#%d{GzIQLEe6D}7J?K2Xtzu^&do!veH;l#K8CCdgD z*Fk1-lovD-^qAL5`sh?A$l~Zi%^NYDuPSd(ux^HvE67sC{83CjCMd{g)5%C;fHZE; z7JZ|?Uqy%cdxDO-V=gem5JM%6$E$Ttd9^}Q2f5eeV6BJI4cDb8y|k>Lj4ZwA^

~j)3SYB=7*Hm2k?8PjbeM7Oo&AMLmy?{Ga;le0N=!+`-#xEmGhu+*D@teb?B~i
zyr$Qb4R&|<=*{7%lzR>|p)q1TAqqoopkb!CW)juU;>
zaZ}rvPrN%zjwXGPU!;A#U3~IWRWGVQQieH^N;NM31Py;W7&XOa#INRCu0S23WnCUF
z2cmQy=Po}bW6^?Red2WoG{G=nu20mD>^xHb
zRaved_Ub#dQ>R>@y@}rUOUAQN0T($z02*a{vf!gYYVh5SAk3rq=yoi?15}gi<0o=t
zI^d~TM^lh2x!m9?^p{?O9=5Q004#dxf54=t6zAU4QwyO~Acl&uZq
zjlg?AmQDk@(^?F9g#M+n7;@cKd88qc!U6X9>EDLzT8!+{G!MkxTXa8|N4>1r6!7o!
z@hTJ5O3PKL=j;Fk#ebs_4D6*1_xI&&BWY-MJ!l|(Osi{^Aod6Qkf8Rm)K!=EFTf_c
zjT$f}n8)W>g0F6Hr2zDdGdFv6go^`RG~<5`Bf%a~H0xdUc5i&vJojya
z+wZC7yA6E2%@w*~LPz`Te}1zKd)Nc*LKAj<)2YQTmQup%P^$-FR$elP+E9<9joYMF
zpv;NR=0Raaz7Ns9xC&w5g;_QJ@s@+#AqKHX>S=84HNSY9j_#;$WbgPH<)wlp{2s$Y
zvx9cOcJ-{;h=4LBBE}LI29-s^I+vleUnF>{5OS^iJlho4ln;s_=M0d(I{jVzp}yr-
znM(X3W{m>E8mOy6TaCk0r^m#7TRF&hCrSBYm9?%Zhpu%dgcDzU%4G~w)UiIvEd_gw
z5{sM%iISVlydf&)m7_-{m1hffKOyzvJ=Jhr#{$L;O$XGHydLY||Aukt3yxFr
zYVd|rJ~^VYB`tgmFs}W(k1*Nzwq1$PsrsF)j~ennPr5;Hjn|KRYE&_wG@&?cbB{YZ
z>L#P_F$A*?@Kd;M>bPe)rYq=c{vMS@OOtLA0si@SZt=`2+nEEE&)XBbR!BCCVOJRy(71`vr{Az2&|mp3F-L;@Y^Op!hxvT;o#{w^vo1Ir@VBhFp5QfQ
zBQ_m}%-%MPJ)LsfIY!ct_+$@7lmp9iJe89+CVXrwyxGp!&bM(bzoL!CCz6e@90y4!
zHN_wyM}F_IKv5_kQ@lhq){HuKaD`n0CjvCD1;
zhS74&t&aPYv}0WIU6U)RiqZ#ck<8;clS|+Avmetk1sxx~%t#>#LEda9>v;t5OTJhY
z_Kku*O9y9>9{_*}n3(``QLr-xgVvFhI3>Zv?`+SoGo0E#EFrRlF-U|iP_?SWF^4s&
z7boT6^WuMw`dEYl=KCD=&uUx7)iae@#y!!`%|caERkQ;30)f<5h>X7^%I(u78&;1@
zPm3nMnY?{x;fTuYouLpnYsPE-UxdANP+dW{_K5@t5(pk#f;+(-g1b8$Ah^4`LvVKv
z?r?Co;BatvcXyZJelt_`)i?LOQ|tfTUA=2}ueJL5J$s|wBzwZnQ`r0ORhA{6ATPjp
z2?XPu<-s~EvtZ6UQk9jgZa-ZfJH^7l&AZWp51eSCPc{s2v!%*kKfB3zcy
zpfndT1pMRuOsUg)SS6c36_~dA8g(hpiTeoKkuCd}tbUDKo4d7Dwv3%`ZGiYfZ^+5Qqon
z)5-O~Gt0y7-zN)s`43Q=&e+PcrRS7CEk8&*LwZ(S)}^yRhU5un7^Z`LoM217^os*t
zIYYFpH#^d493I`qxRI&Gi~8E`={{&Ut(ek;nNd#Bw!I21UeS)PuJW~xVM40dK#@l$
zJ>TfPibB2jf@t6Dw*hv`+oS{9F}nQTtfZOiZN&ec6)a|js;q$Yy|{kxb;U>jv1ZTP
zme^#tWsR1pgBV8@RmswxWhCd+iq5f_=tFn^)K1}5iBwny060$=rP9arM~CW)-JyL-
zM|q)cA>0ID2r?$oC;TT4;>tdO80|eUte*M3110zPnL(cR+3u7U*TaoT*Ukim-o+QW
znWKu(UKuaP#o2OWDorj=9q_Mz<8p%y6Kgpx++z|-n)l7g0$3XYhUemSS}@)D<7L!V
z>FnCrd93G)XT#juUjGR@e0&hiiSU9zm*q8|STfJfjrf~|`M$ERkw64f?7M)&o>7r6WFdpGs5D{^06r{}T*kpkxoJ9XmvnxjtQt0WiFbTa4v1Xy+ti*+x|wntl8
zMyKSRB=@&oEx8WRiP6=Tc!ILVbvReZ&L5a#-vSTl{_VK4_OaG18>E
zL-_As#izJCrrTWbvL5xdZx0B&pZ)$2RR3SlrW`U9p8&w!Vc9<3a_$2D{w?nK{knw8
znhM0$z&?a^rowW@{fc=_X}K2%6M{+rekniO-CeR~PoE(VJoVtFS;cX0lX0~^8A{%X
zvu%2Fo86K&H9el=bP=0ZC!i#)$ok@+etj^%^Jqid0|9vlJcO6{Mp4}^d&$jB+RhM5}Cm?X)@oIQ+D@eOb-x{Bv
z%W8a{J}Vdm%HH#O>MZmg$vrn9y?laFChOtImU#7`Qy#IOGP*9R2>Eg<+tQ&R*0y(a
z)Qd=heZD^-@zj5zpaN9IeI62D%96kcFx15QM>;4hsfL
zc}KccAy^<^ab~VUF^(jG8Q1+Ox@L;`SM1Z0-oV`0dWT%ob=G^}~|j-s@uE%a_Avr`Gwg
zmwz++PX(hlgT;<@nWZzz>-pe(Vao=uVyE#rcYO9c$5p57=ZasQMzT25CYC?f&I=~h
zxpZSLyrfaUkF+OKTP?`kvM&|Dtl*kbP=~eFe7t&pyN`_aSanJ){hyJe>U+&u!hKfH
zjHmU>q;YeX!RJMDf+8Q<;x|x&%)xPkT>-9hQW+G1{q)*8!U2Y7MkZO-$?@`=(b2-$
zv_@l>UgqiM?YO?_VtF2(Q{d;nN|bXnkj`#7_u>pI9R-PI|VJW&{3h&(@h
zrq)GM0hE=tRCm&DmGNwi4ulg1|Io8-%azVtTv`SxgNhUdkCWAE6Nmi
zJP_8Umai@Iunz31%^Z{iYcXHwm3s{?3<4Rf1Ic&1QQQ~i?@~2Esxh4xZB<}Eo;UE=
z9rV&$(LsoAh>}dVfWzm)bNcMv&$fTh%LB*+Su=s_2dDAWmFEGWl;ZX
zERw7?n%qyX#~lY0hN&C0n#4m@rD?G$Ke8Vdds^;)nP~bN)K#cT4|WlHt`_sEK7m=D>hDyqMH#+3S^JK2{-AlJg0EcA)$opCHELYBO
zjVZ5N6qB2VG{Amz&gXl7OsiFyhf-e@^d{I0E`tFU0rOTC&IqBw!4UuaOU$jrbj*lx
z56KiSJjY543RX}zAtS1DAWj)w4L{`=zkdhJ5{I}y*yD)zbi^TxSle+ppCK$)aw6N`
zo#&_Mp)Va!yciknbNbQIz#K)*1^&NY0RNpXT2A_l4l8YCX$ua$&95%nNEwuRcH$hI
zs3_U56n{dqvL?3zdDlLfT$t(67IdqOuKk*|WG=|QKvsl_O%%G}&-~m!;V;CQ={h@pg=CC7YOZ7
z^g9LT%QQF!oSdXObL-ZMP`n(hzaz(%F+}#C8eo#5n`AzWH%PA7SMaDptQphyQ{yZ{
zfdM)tC1t{hC|@%zHf|&FTFPj^DSH3wXqMypQUcso<^1k18zO11yz(D(n)`Qp`X{qFcLHu?X_Y+hGLi7(oGSEOmb@kD>snD~}(Mk4Zsd3a~n
z4c5yrf0WdJEzX?4vX$&UkN
zOqc&0H!fIq`O0W|E&}GWKWX?+LKEq~N@nZU$a}7}l)95k@|mp9&v1;@I^}+hdz2MG
zF+e}P5Mfv}b7YdvR{=KD^ju|_urF8B?sl|icA|f&~sikKK(THS!1X}u2cq_xmT(m
zoHVC_?#zInNMfV#Aaw)?vg?FS57CY!#)I$sR8cVVSw#GRB!t2KKNZfmWKe75ksi~qQ{?{(
zl=DS{dLP>QAj6ka(SAcar|kLKxjF9;GH(6oOKQcv?wmr3mSF-%nz?f3=8R}#q!XC-1
zd^5~zW8APaVUYa{v5cF>kLO~tVZlhfJ~HM1Y}|qPUnAboE${DRB_^ur3u^t!BmFr!
zJ4;p&y_y!#Z7<>n*BW5v;)(jr0TVOjCqpAPRJcAPHMO{v44KmNU2fX>H9p~>w4GMz
z{)_R2e||~1rJ#{f^X*je+#I?g%zw9WeHv$M8WB&D_hdC=H^2n5LC-H6`OR>yXIWEW
zJc-w>1_sixwC3*^`B69{Ko!$MJ>%@08O<)i-$FD^LXS?^eXabpRjdWhtg^;v^F)T^
zcjqDF3{w*t3i-tsT4weiZr8r}`*HPG)}wNu4syNH!WZjAO7RZKn*&kXyy@
zS*-6gjE3E}$4M@(E6H^5;*1*tjp?euq*j>b((qm%W`pKBv?w)~5OVTdb(M15^e?=P
zOwi-(kM(V;l5M|?_$H7Z)CbDn=kFccFzs>l&*G}?XueR%8yI8kdbv=9;O`r;v8=_O
z0VX-_JC)nid&6n=f>qUN$pvxDdERwZcjVtwPj8ABhw6^2vxR@QtO&KvEoZh~EdSxd
zV>+>)wo2V5-!7*UAo|BjHEN8T(M*)r83Ko-m6RD~xn*1+@}C@6HU*IVk>On_XnzYs
zDQYQ(a`3OnzVN~6uf~e>4F=_v%~uXROf>CorY{LISqXYINxCAsi+a23exZ!-$-3H<&g=2yhb6S36anlEop^SMK`7U;Hf
zlhdmeLuOg~ph%^~=ia*$m*w7e0S@iS#o5!+z-=p9a4WTL+$hahA?tPaT0vaT+1Wnp
zuY|^=YBhE$O^deZx&Vsl;eysGZR$dzrZ!ZDWd^DsRlI07rlbLO8aitEhEOLBEDd|w
z365~Ha@S>T5V9!urTC1i
zA5~5SC%eY8-JH2R)iz`iTEsLerI=Q@&3)??ZbCn-Ejif`;h+cC&#aX7(#S6##%i3;
zjNbgL@aVYUX(NnoJH$cGlLkB25Of|Ja(P!)zW-~{)At(n_{`r7^_n{9qfVQi^RVvd
zloD^;v6)6sqF-d>=v-UJc9O1N$J+@O;{soGU1p$8zE0kF~Ox@+q*YBM;F_d4;
z_iKoMCy-D8XocgtB5wcbp^8v5RwU}Pc*L#g6pS}7_-D|Nq-1HJ%t)zu&m{M5uLyPh
z^Zz)H{B+{rVL6UMF^ffb?;&iP8?jI`Z
zVy6w}{hk^LUnOY7v_lJ66#?&JlVKcz`0dVF~16J5<8$=M+x%ea4X0#FyH!#X@&(7^=3sbLDNN_cMlJt1>I16MV!
zX}AKaYv7$l8>UZ?HsTRVt|#%!p^y=_Iw=XiTwG-6!&%?o3H7|zso(PIc8=Smt;b
z{_?3B)+}L$jp0h4&X2VWsrRW>bmP5vpw6(&GAtyVM6v$IXJ!*D&A|dwAs5(r+r^;B
zQ7a=8liZ40Snqf=Ma9%8#x9-kUQL+8tk|%j%kOOZ|5%Kr5glu6*2M71-5Hcci~xWB
zkRFdjRL75;@?=K+u&|UdN+ktg+E}qI;Rw1-w|+les)70R9fEWo6Oxb#6K7g0P9hK1
zkkvTj$_!8C)XffeLcGX~4E&^CM1XyqxR51-jk0*vE<0GPaKUlWoYNBzEzaV0x~u%1
zzNxRqgDxdPSO~P*w}GPe1I<;PkZf$uhXmO9Mqt{qq-ZMcAIb@X6`@(q6Vo@s+!!#!
z{By&1H_ka>s&L?GpgYKtmujgTDW%EDF8YA$fR&-QvvYtu>er#~4ObJa&)=K6I8}}C
z*klW@dN=0y=@8=dDiY9;0l~AT8rv0HZdYSxe#@t}$R-_=;5V$+L!?DQtF4OV%IVMi
zWh)b_2uI{UQ>MWDk4=LxBzTK*`3E5#BE6Knb~^kq`XWoo2cCw8VYB=N7CCpo1pAUX
zcby&y)vP|z35uCbcXr3iX5K-@#ac4ffbv6dWLjxI%VW{iLF1w4U^_tP?~Yfsvx-X4
z@=n*8mRq?M_Dt*9vqtQT-JR7Q_SRl7Pi#DHOfyw0fcH;crnA788MA@bZ!fXhQvvmz
zipNZP=ael1BV6gBbJ~tan(~4WTf+}@C`hIXT@D+1^Lg3JI>`w!h1!VBCJIPcjB8N^
zK3886%|sa1XcebWo#-p(I9@YhQ2|~z$M?*)&wv?gb2d5N|J1kp{^gZ)bL{Z(yYcVa
zojEvW8#`MWyo7-1Yb}hFxtyT)MMj!RA+)$tj%)#>3t#u|Y|b{MX<;M8Xd*nwjcop#79gh-J)Iksz6BLb|Kb*)k!WZaYh
zprR^@G%Dh1gN}=MDg0D)%Lx4c>YG9-%*|zEJzz9M+ZObN_X`-{E-pfG6KG9vbG3^k{|c
zZ-Kj983Y8i^^>-)e!H_!5b`m`birYLb7ZMrl
zokK<9bEj4pd|?Oj-m5B8X{f74zj?ZnatOdh=)JHIdfZ!MVDD{z_}n;JtplSf%dxi}
zhRB$J%a
zmd|<0_`<4o4kFgOec$ds5lrsat#`exlQX!fX_dfY!goymjdtwNrpkdg6oK%(5$@Il
zGYW>S4udP
zlDsRQOVNq1+Z*^>b)CFdUG2JtT`qN<%oeoTU+KrqA5x>fo
zKv`MdoPKD6v41MSB59(We|45YD>2~tnA>Vix#Ao%SvenJHneKZ=||vT(N>Z4fPP=K
zPbwR8@TGb8_FS4%ly0`vh;IJ51ZS&Jt4@}A0x<((*Hps
z`(M_FS)$$c(l``2shd>9zxhD*$OrO7LH&B?!T?1~(w+d!tKI^5@LWrV{od10W-2aR
z9u%xU$A>p4a2^mjCs$!4g}y@x
zj5w*v49$GwxxA`19%8KOCRbne15gdpf;xh44f12P=YlR{6=s!r^74A@gTj_3lD(^j
z=6*i0HQ%gk2zfXl@#nc%tv8^cG7mTJFIy_6G{JQ}o_D0a+&H}67Ym5E8B)JLEn5!d
zTYH*}XGb88XGP1@KIO*<2-zsYn2hGtYtDpslS0)LeX;F$N8Z=*K_|rxdwe_i<8_dI
zk$*d6VzsFE7qzql6>~X~{$ydZ>f@QqX9**eXw8Wl76sQ2Wy2d?I^%B~)2+;^%Z@SY
z3^xWU>reKVLjWD1K9fO_57{VXYkuXT=a7V&HB692&^(8Pi45)G<9INvaB1Q+*}L{@
z%G#rBrsuv!!DPi+v(KBI-2p7dKxF@g?=4^9!FfifWL?+IcP;H;1JkU)qZt$805#~_
zqB$fuSA4;bS&U`1BKQxF2cnWF$-%^bk{YeI$}00}`6NtO34_T0)WIplG}gSG&O38q
zg)C5Rlu0?=CRQ2^_(XJ?2toZj$=WuezwN%QySqZ-CJf}{)y7M-k;ON_T90ZoIxlK?
zc|K~)g``&yq%zwxNd3Ccr}JR_1btUTMpd`6SI)c7ds7US!!X!5Cpny{I^WiE%SL<3
ztX|!oMbg)@qoSS^-R}N*qKdd)fI2-98&7!xxDrA%9~jqW=iki%^*M+CZ@x++TyU|5ra{W>El1(ev`~@PVPo9B1aTu$e$E
zeF=VfN0|}76_rXvB=V`nR~FmIh0RU1HRfib`E;5oXXE
zQudE%4nja6eV0x2QPT+O*UO|$`|~mFS805|)JcWN3>W00D7+x~bzeL^o7Irne};B*
znChg|3>bP|tzUs&od{F#(Dr9+>V^^@WTI3z`oD!`xv*yHF7Jx64h5`utMXqTzv^!V
zG}V}#AWsXMtJh^qSZOuL=y39S1ktyo(OynjWvg5Ka3@p;Khr6Yh`x
z2qq`$h-veEqIfR68(ejy*oyG&2%T846~FF|Yu-OD7m9GXgda=aXtu`to%gb}YzY$9
zLaSub&k5T^K}4qHZ^FM|c>S?g|3`nLb1jws0AZBJw}`Y$la99*yY`;3*Ky(tbdwO
zZDv!5&0!?n?uEehkAwvj9~^M|EGF6TaZ-q?1UXL?E0=0`BB%3Q_ZTF_>~id$>bgbu
zMVZL*YH;i;3W~Up5I+_X-(N68Rzy!8TB|L8ce^__En4Q;S?A6_NWxP{ms4&jxBfq7
z7L0Q!Cu!$i@>ktr-l~|L%i7V!dU%0nJPu5rziIyT1kCD>btRv5=Z*FM;9`O`zI{*Q
zk5VIwU8%W)06gt}ue=QV%^7zBf7LNNCQnlebTxQLhJM^U`70
zdmmNos*F)4HDazhjN0BGE95P~=^F-V^h
zJvfIQJ-~(?H86MUI@WJ!H`87dc7Yi^%Rfa$Rb%qg;y$Dao{FYagygLT^uY;GP|6+R
zOb;s6bQRT@Cet`wzl0(5HpV$`zTpWoryEozst{uvyYzmq5ogw)e)^=$Zmw27yo2sz
z8M})S0iq_3q&^aTHz6p%!FbgSj3vxXggni$ez$GcE};*2?9E2YE`L=$uV`qvhaFpa
z-e^?Q@!rY>oq&zEi{66JMk0+zd3>sv9{KYQxD~9futGg+Ve8M)Uv@m3Pg`wCxZ1PB
z4&dyjRGX%(KK$JtcGxUjp8pYKgq1J|I-8UDe7us5rn!C-BWK;b69wicH#(PEf9-bW
zSPNN?;(8qHk&n&fN7(3mU>F5@GH>VWKCT$X5PNkSt-9aLJ)Y#p{8`Bs*0`N8RluDl
zYFhK+(>kVAoS5N0$_ok+&E1?tKIOK<&mr-OZeBFS
zaM_Ql{c#`8Ziakose4RhL_U=ry>22?YGI_(gdk-fOMkdH;%XM%w~qzHAgG|hx$Qwo
zYPdpi%9$7l-R81snJ%iWt1W&lyZCfx>Xv4*vf&2SU9{%}E(_9G8j@o%df_2<@&9!k
zPZ!d0MLqXC)gA48le6FDt@-)w=L}4
zG5%sci5xz}L=S#jY5F5C#&BP^MvKy`D_xhigqpC>_fvcqA^N-r5#$?wGtQTg9sC31
zbj|JAx~>-kp!r1(BWXc@uyxPvN-x8lX&de<-D-#{7JdFnCwvUw6MLuoLPu&UZlnP3
z6I$F#K`1QoBaYtFaNFbM39r}3IuS|E;rGT1F8#Ox@WT$=!|N9k(Ur^nJj|i7)tHU-
zk01NGu5b)#%t&4CyVSUkw1ch2hzi(j-#K*LQPmjUDd&x0HXCgLq3P|yCAq5b=iH>7
z0vd8Fd$WdngP?qpUpP(c4lIDjHzGSK9+ae8x|mca(NYZ$dv`J$dr!;NLTNNm#?%-;Z6KHA)~@P<~e7~UOUIO2FE4-^?!2W8LNJm7uEg%
zGH8mvTySjGEda$OfVs_gA(of3!k^GmCEeCP1eYp56R%EMXw%V_L|E03?Wtmb5Wt5a
z+jHCX2kY6NRr?(;UY89}O$@Bz-(M)CKZ_-jc$%#VzPYI71*jSDUhO03uzq;lqEPq1
z(az^`UVJsUg8nZLbXm1-DSKehJ@VaPaV?NvP@h&!
zDa6r!$gmwrdm6uW9nVY?I3$D|>!$M6c=$ObMqT)hwS4M-%ues>$Xr7*z;wD1gI^U(
zVMW*RP}C5=I8Wyp&3+g%e4;>dvx9B9yK}Kdte%}j+vQUV`zBpq&oK+e_IWPSaom%7
zD#uHfG#1Uzv^twYN1=;6&*rDr=9OpAOJF#tq>6Q>J&?qdyR~Ap?Sr)ms&90W{9{pT
zrNbj{qZLoVVSpqZ%kZ=Wy<)`w_z>0ArJ!bVJM8;z-sF_~;b!Ft!>)V1>)li_6?I^@
zJV~{*7r=we`5$9c2^k5#dF6t9GS&|dk2;(X8;=|=W)95w@$l`5=&F0AfOD|ziVLfYke9W!J@C=dGi6grjim>3cx#1
z2kv_z)^mN#Z)b7CIeT}@4aKE)^UB#wUaFU9Rxo|67-K35)A{(yUIRfJB&KjBcQVBAHo#0b^>5OX-$TBO4GaaR=#tpBzb2m2fRbOjZbg@#
zjvcS}x41RCT!QHMWn_qzAOOZNSG6ic(kE2#{cdnYquFGb)Z-0S{EFHyezz{35}
zmne?^(r5uF@YB|Jkig-A??J+a6oL(+@51APzVZ7F4Xdv
zb&>p3${ZiBO`+FvA$*-c^qTOxRby)OuNKDR*>9`lxfiz)Cw;NcspWQAdpCPbdUsE~
zk>nlfY1;ck+~*#&5x*hu9ElO&%C2UGq@bMIh+H!3*NWO$!1M8JINf|8`IJKRrjpK0
zN)GMu*b!nKiS2;qBtIdM663oKuC-cHg7Ioo@U3*J;gG9dtJgY_;uk{0K{-wb#mlt3
zmw^>rlZPpNZu$H!31aaDXi67@R$2^0Zz*;WRTjbb^ecOM6U|VMcaAdaM1(p_l%mn-6A@G@#F22#|dJ
zi`+F$r`9~5j@K}1)oIS-=4WRlT3h7cm-MM)npUG$jbX7~
zXk4RCuBz24tzP&poGptA+|_x4Tv?Z)Xo_9z3dZBn!`7QeXn9qdz1ce$I$Hqs?k}K9
zN{l7$c1y-I$jyMIR73d6hBdk|jrN@-&4|vTzIWyG=)Qc9bWF(z(>TT_7glllrmu{rI!@_^wY`E9*P0gncw*bWteBVUqB3Y56AJ4!
zBPD}wL8n@xs%N7Cn;}^>!tsT%t=!@;)-0&F1_H(zrV=4{&
z1JX%}1S9VDmbIjR5z2fWuvB;A%%!p5j|hoQ29+}uk6FIgE_*QCpQ1}e4w3J@7Ul4G
zX^$4yVY}tP3$TD6zP8Z0$3`*V-5-H=I5ql4mXfjigl(To$N)Mu=cE~=$spldr?PEt
zAQIHdCKGW6|LYZhIV$*#kjNdYy`sgcKE-^c)ae?d!v1N5J3G-{<0#Pm13C!3n)Fa)
zGqtFr13l#*#gO)jUcBw=ro6+y!j#{#BRCLMxgh**cSG-}Sq`DMa7I|{CsB!|cw>ik
z_k)o=g)=5b4&gj>mR)b(n}yoeFUP7j&n5Vve}%CS8_jVFjZQ7?k6`&>M7ZVM@fDk-
zL0^|HE70FWr4srhGfPnbiS9S*!{>AwbE|=H=tC-saZzHRzPdPEw_|~%_r>hexR+~v
z1GV+B+rF`XBkLnQE1mdp!UIWHOKeC~H2dD^ji@y2NNsMFlH9B_xLCjwxaxIAz73tK
zrxW|LO>c!11dU%99z5GM;I}hIA5Fo>*q`v1I{hO3Lg|x;JKc-$RjB^fP=__^>f~7IT)t!djKaV
z9~pz-a-TmXQD+V?WJBf_a)Q%Dzrnz#Rd0u#J?z|Q@;|-gaK+TP5LgRPB9VzwnN)6v
zS8on)nAjGXA?XOz;%iTjrk%u1Yi?|UQ$}gPluDm3OvCaHEPl+kO`QKd
z4n^vUw`7DWmC^oEDf~@PsD^;=ZPam7J;TcVDCYXnP=1?ikVJpP$%$UHVB+f(w-_BI)^poxb`wiTyqLS`2{O`sYmwtbb={ic$y
znOQIg^bw{4og?=*CLsIO!b(TTSX_)orRQ`;WPS1emz*X(3{@sv)7!Dj%)cH1+H64&M
zM``bGAkyWZm}h=Xk&u_x3}md~|Yuco85zsG^BqVQdq=7Y>e^DzsVVIuRB%
zZg_oOKpE-!tmO)SWT>EgyvImoxFdtA%r0|?bo7yY$hP{1;$bx7lXny7N?^5=l7q)2
zW`*u!9>u@6V+uYbd&_PIo<9ljwy1O4qnV#%OJyn@2K;4k{Dii~FOA4=_SQzX$w8+X
zmCUCD)Nm55j>JEK;%_g!^`P9m+lf`g3i
zhOUBp?Ttd^YQ6gub+~e+Om)pB@;@Z#jPG+f7!cjrM0`VY00ue10IKfym
z$uWk+6Z44R1Y6B
zC`KQ&#@vLy0mMSs6Hh58=Dn1VrtU~05
zB6th%lVh&2S88OE?|dF38fxNy0~|hv@Y@9gQza2azVQw_2BU7te&<)9dZyp^JQQLG
zTeW*>+k3b5(stq1rt^FtO7RUsh)V4HvUGDibKPUflZ*Y7nh6(v9-qltGJFYk?Q#L}
zcDYoxLn>U=={*(oJ;q3wIu)(DovbPO?(SS)ba`o1>BLcADX>?z^vZ(_DExfp;d+%V
z<}|(bJv1N47--&l-lkQx85TBNQZNK9obhf=#VOFnLk%>)2)b7PCU9dEWL1&ieckj0
z^PD$JUr%peW=(o$$J5z%ykfiKaQA7~Fgp%^yGTNtecE`v1aST6KvR0+5K@2g1)Ch6
z1N@#R*yA9)j|LyCl0G42;XG|xybf>}kNy2~m>wNFv2I`0njz2PG5>HTK-JLT>~Pkgeljr1=End2h#uQL
zo;W*;@pB1(vs8?5D>Q>)wLVOGIPT*nTz)vl_XzR})WxAoCx2q1ek{J7+LQo7?`>e!Ke%J6N*F2+aL&8!vQ>ttM~T)W$I*otbB
z#9&b|uYwFoLnffeYlr{1$jV7(C#aDKBgO#S;g~y^d9zYz}_9bW3vNFN<
zeR;unW-mojL@O<`#YsruKto%0ja87%eIToHU67{+(p!eX7xxeo-!sR?>Z}MVN%v@c419Ilk4Mm#5B>_
zr~al?#6~0+4;O!2vDA{$DgkVZ_}zi09($jD;t`?7YuorOJ3n289f+h3p+hnP2_PDP
zp7-u8r?t}6Lh<>&F|T{}nKW*~<63oE@=}YJ`R=tAMud{6K1LzJ#~pw`*L#Nw#wJYi}B?
z#PWr}JQWaf-r?xD1s?&_6CGxCWg=Cd+wzGN9$lKxNao~XJXkw7x076Q;FA!_Qs?%7Rvbs
z3L7b(($}L=Cn%{LWticqvSo_l3_Y@?NzHW)Jz9DKzOrAWXf%k?oAKRhhwcmv)FHF<
z44bFt@rL5a(zFmbt>mQMh0x|xe~&$e;j-{cNX%_2)Tv)&N{(}aj5!K4P=vFDb)*m=
zw#_8ci=?p04m^Jv<{szDYvq7>cz6&!rtk_|dQl|jkxIE0k-hKe;~|rXm}{=$A+^?G
zP551I3yk(Bl;N-PLm^XtbKJN8-X%J65wadMXf^;rr|2`pl9iy=q}<0f+%-(z;A1kT
zJ(U_(C^L^X+#4-G^p6T_Ik02qIrnFh326t;GUa6p|oZz}k
z@e$cdq`qES&Zg0+kzEqqN%^z20A-WsL`g2KNSL!CSxrQVQWDtG*s3I_rXsEO?ln9t
zqpVZbR;PDm7fZgnpZ@!Z&8pgoqiVKQsN)uu8^1mLp)IP&svd-wWeq6
z8|;Mx$$rtPl&PqyNh*1SvK_ce=WI(E+oGxY{(TuP9hTb
zVaZ+a%AT)GFH3OP)d)7)$C5A*s)D?Mta62w!5&?TA3j{h%L63561~4e+-*;zt&Ngt=-K1b6g|7a(~PjN3(f7-=S>)A
z*uX?3M+1goE?Or;6N&gkz^TgQu<<97%>@|12oGln13OJKO&s>)ZN4|yySE)e*jZVd
zXD1%2TBL&RSDyQ6;;m~Oa~ewfcItA(jkWru{&OI*Os+qER(m0z}h-Uj+Uwf2#TNLwp6t=jkEYHH(C
z3V0pLy1%Ge7JM%=GE9z7wTyyxr9pSlKRjw{5ibRG*GRBEdWym774DIJ>1!2eGr|)gt^7?|}
zOQl%)G&$p=GTwDe;Ls0aipK^4(OH>$Zjr||1>k@n`yvV-SKfk&HcQe=`iQvPn@S>dHk+rk0*FsD+RKbBm1(rAE?q7Fx3m4+BZ?Y)pTQ!k}_g69)
zf5urj^zot|v2Z(u#T*m@M0AKl=Yp}e#E_}bwtI;9HW
z7Mcsl=$@h|Gu`>&NhSs%i%ulhbzDv-11o>N+4Ju8q7x?e`98H2lQ-Cv($Np2_|3x_
z-OkH`1#F*wF^(qe)ij;TxXoS&zHO?1@%`!E^E^=8vC5o?$0hWj;P-+GalU$s3$com
ze6(FVBfv-I>*f-=Yf2%dEML+7@pci{eoJ=PL@6Fsv!Q=Nq^oHP-=zd(kMAe1Rd7e6
zqP#$nM&b@Ec%UAt
zn>}2I`Aeiw-_HbT+vys-?EzuNHHjX_$3)Jc*&6(bo}*yxnwawy^h(7-+Hs6x0UXg~
zRKP1)c5k)st%LdrP(LGP4TTwS@kFl{C5R_9L5rbH>`ewN$QC2j_7bjT4_DP{cPDj#
z+KGleai7I%#Z4j(wq@>WY8XuQnni{4kXc_t7CA*BSD!z;;|cn&ldO_>8yAr~e*Z&s
zn{j@}+LW90-<;2QDc>Eo9)w`M+7<&!`EUqLdyNGkwdh;Jcf8X#QFnKfpFf>6zm`$e{oS21kWob+3fTl9
zaQVi*(YPKfpk|S}C5wLvcNfS-Xvbo#Z_XlnBOA73esetTR)33k?MWQt)aahyAs}xB
z^nXQ?TbPGYUO@f%J+ubS?C#(jtJS*fqQ6~HD{{Ri-r)Y=J`B$7Eli~R-+@I=uR0ez
zAdwWuK$FcIEA-V_;5#n+=H@rs-bKpZC>T4U=%RZ_|Ju5vOG#Ilw>XMHyktfW(IF`B
zp5Mekd=ldE_9Z7ef*ajP)5EDO1C52##aujMiHH=@nW!8-A$J?(#Vc?~lhfLaefR$m
z#5%}GrM+utOgXSByn@HJ{XO`ak%q5xu@=S42vT!J!p4FQP>F01?KuS?NM5VcDPH)`
zKQ#DBCXPl%!a{s)_{oZJ3CT+Graa@P4N)@F{m8sEs$IgFyPDd`L1=ihW*PGL;G1w8
z2O$R)ta8m0o?XLcejz$H!3mzoM#7-bQONGxW-~NK)EM5z3HGU+_guCS+o6Ixvdh8)
zggt1jNSwp6-36pw?RnYu4e!-R^9$a$rF(+IJN%Ne@+m4Jq?f~uX67r!g@X_J92XCv+P1%^aAY24
z*(Z3B_S1)xII4Mf=2RNfwje88hhGxi|cB0?5&hsErlPG_d<1V8>~2l;Cnuhd$42U
zZ(d%M#db@)^ul?;Z2+DbNOref9#@Wu-h`4e^Y?s70L1_0G6w?I2>l+Ck9D7ZDV;v2
z->e%!UvSq8+$bJHs{BKvpuXc_*3>wB^Q===?T2?^QLS#|_)k-lI0Vh9ZI`E&efgbI
zSKS(pvZK=XTzV{o!Y2a^fjM6bu6>xLJY~-Oe>Fh8U`W7OFYBO3HZJki!ge}BXY401
zO>+m3RUc~LXeK&oq?}J$L1xP2Ed#-qF>R6tb+*p#gtbo*>~7Br6aCF|@$|=8_nob_
zzGuk*VOB|gkEhkLvs9!j;pt@~;Lr5r!2Lk|g?Ef8qx`F>yY=BLp*`P%o+9s7eN&nHph_S+mJb#OqUw^Es>t75`K)*37m
zv}x0(uaP;w_0+v-vFq9EwJtULYIojk<&moCI$cd
zKT8ZS#|5md*qSGYjgHTO$<{nC`x|LEEGYCd__Tf|eui6HUFF}C_{!z{pkmf+-*toyZ0hxgqs!2avLrTG+Ve|;{%BR0WPvrQ!Su}C5;?V;IiamcW
zb`U3DWSb2kkkEoZ_lJpo@$vB)HK-=xQ9>+)CK0Q@6+Twq8%)NYk8x}(yh*JE94!PK
z#2wsz9f!!6$gCmI=dB>nCmD}WlIE4;%y4fV
z=IAEiuOj`3Rm3l(^48|zI}Rnm25GbB??RAnmPSSYQvny%uq6U*xM&RHyJCp
z^7cb&PU+Q-;rIBbUk|V8x@`u7&@2E=Rh!D|HpR;9bHm_b_C|t?#xWC{W}kMX!;zj*28&!zG>ISZsA?;DZT$DG4s|kT-chUFY@(B<2y
z1TiwFtBG+61{V4Cw3LDO6;C4fH%nXF#D@>(jDmE+Q;VkDlbrEqk!_c0cx`gj*`C4i
z@Bn0wTJK!es8r5Mf(XEZ@RQZ8xLdX02Qbk)H}5UMOdnU_zNC%`oEUkUir-McmfEZI
zhPY2UV#_YF&W@!#ZxT~YB^8ylgc@TH8g2$*0$acXN1249n#?$rzhgwT*A&Fhq7P$K||7O>P$kyF{
z?Ps0hcT(!e3-Bh1)NB;G(U_zZ11NXnKlj_F#-P+Y1dBS&j+JC)t0%=L{UZ}&jYC%!
zJRzxTG+w}C5|{lAi4aa{|8NS98yIHAt~fL>nI_Ca8){pn#1S~gm>fXSm}js1%*-q^
zP!S}F9VIrn#|Jh@9V3(~U=)>oH8qIVVuXrKZEMm`c3*0rq7m}nBPLUr`$=rw_Y1~f
zhQ~6?@@llLM~ZGDN)6nJt6m0stn`x4$gi@(_tjNBy&uq>abhmF1T|HigGX03?0`vt
zv$z@hwoX##cd0M;z-QVW=%J#PR)W=8ng-h51Q*xW<81EnK;FR6*|~w{rm(L8HPE%Q
zarS4jEmpJ3^OeY<#~&+@1k9bw4>5E1!(t6cO|Zs@?jVi;VnYwN{0awSSxn5SYB~HJ
zwt#ejXsKGiEszLQN3r@;>f?_tgW%2_GA|UU`vKQ@!TDkqqmC+@8(D;bMb)jaY;6c>L#J~~V3T*BsEG2|B1D$#1rPJbre!q*Dnr3m3n*dk=3}49
z)VKx&+AL#W>r-K2dtx~L5m~H+^WX9wID)c?)0Qb>B*Xp;m;OaKOt)oTvK0^@3Cszk
zydtvPfo-~`Tm-s>JJ0)pgk>Q_1J=!dvEGSo3B`kH9wf>h#wdZ1L?K?y(^OQbubiMa
z#C8?-FwB-D=SOHcD}Yp*g!EUb0#(PbJRg1bBI4J=T3EXPm2$h|#9wl-j0yU%B55ZF
z`qBtB69r*OU>a>8j#O8DiK0I53WGx@u9hBSLIyU?dNxS{9Jb$X=zN{mB>D26W?g7E
zQoy4dY-8BZs6uyeoM>PNlsd^0XS9~ar)Ry=tV1yaD+lJ=Lk*q~@fX$Ct3p5W4)Q;C&kjJ(;z`giT}bBU
z!W)i+@gkp|>D!h)*~Db+3y;Y#LnV
zrR{NZ&OHB-ldzY@_pA2q8ww}}N)FbqLdR&|ided})F~4-YqM`~@I=?u+ew>4(k{f*
z%SJ3>4Loam1DW)reQZBn&jZGyj#`!l^}SH|Jx7)&E_eO&|F9?-x6?q`6OzJfr!W~%
zug71{EQgLiM4?1IlXzx?+ot9#99#4GrgLCYD=BqXH->gDshDMoHDs0lKHF+Mu{5
z7*?!;uc=pJ&m+#i5Jo+IeKe-OQXJuP@8PRPF!q*Snbei40hdDW@d_Q$?53G
z^XkmraQL}+MORj|i%hqTwR|4FJs)2B8Z2aa6n|2Cf5Yoa>W{=5R@cyDQWW^xawc43
z(0!K%$;!ArEj_~DLrR1TI8mH%BCqV{hVZ5z*a>J6tFI};b4SmoMDdg_+PzD@5;H~r
zC**`z-sGL#?f;mipzq_-+tD^(_o05ZuUnf6ZPbhFkFG7c%k870hfD12ht!LSE}QN9t=Xr3cu&Fahfy$zpAk%~kJ0Q!vh$l_fdB+l-a
z1qPIGfRenB!(h$x3COkLoU36iRpwEwoTW-NxYE%w6DId~dW#0cWj?D!;Y4@Pf0ln?
z1i-MCOTlzV<9$*@mscxzg&jA7VGB#Jbg
zZeNEoX=>A<-I#Tsv$8{h+&;j;BqWs^31}YftaNuY_tUCHp=-Kv@`%!w(z;Jgsv#(f
z12uk!Y1aeNb`=@&TFi~S2ugZd`s^2n5c4VmtgWGu4{Z^G4TkuuD48rS3V(*Pou?e9q{nh=0`BtMi(1fHLUCnm*n;zH_^gRmQ}w)0$^|M
zW)&HRCTlyYs&LQa%Ei438;f{rNPCYHA6!clPB}3zu7Cz;z3-TK6Ap$4j(Nc53<%@H
ztc0K8S$7|=jOX7ajC*w9Gx5-O0w0q44BZb@g=esSEa==9M4ynsSTa`1BnhkkGo{3j8(WB-&BoInc)}<3
zu(iL;&~L=G#D}BLPCQI<$H
zTobSreK#{$_s5chV>liZ%B3lCx0mF4dBX8%$qdS@InufN3zr0l?fP&9v8EFn`c2L<
zsnLCXAE2W{qW^rN-U|7fa*LyXlM~MSNqtk<-TxND!dwXO5{ZOc-cx@o*j5ibdCUz}
z+|EiX$K=1#2<2xkg^|1;SF|WD4nSuf9^U?d;=HzKGFI{NljjAyefqNOaj~S*Kg=mL
zet0;U_|{G=wPBPKHL5%*^lGEk0*)`-$Cfs7NLSOyPAbpv)bhKa)@pG7*+)|(rJzt{
zdU$YZ_WSk#C!9q{@A5SxHJg5!*JFm@Gs}4z2&{1M5!SlJ_Od(ufuq&hB_c)G>?#Xs0|WQ%eqKSRmhorFZ+?
zIh-fwH9-pJ0HIrh)p*Jk+#9XYMg+W=UBVH3iSuqQSA)v^SiEOBFu?Q!)ewYHpr0nW
z-a!IoObFEz_Ycm@{log-pe8Sl(OiagB4BvfU+z6A+YcAZX;eLE%)>#aLI`F%{TT7=
zm2>IbYeG~5*_ma(hxoHPK)toUkM)({B7D6{iUe;&8iuB`?zE5@Ir*CuEZCMNhDRQLwzyeN
zzXppO5*boF{Lbs?E+wS6%87FDH{@TO*>j{|Mn3BSIX(#F?iE7a_2ENWg<~Ou{mR*i
z43XDKL6Q6dfTe|2^39M{pUlivN8
zG1}x2!46Rw$*hR^(jQ9$&hhoAalma4BVUC>UR0Lt8!_v97J84k(4A9dLUPD%kI9<3
zahKHb9lrmAMU{4y=OW$c-lb*g^X-l4-?!(wLy1gh*`?T$D1cU4Obx=YA|RRcTJdhjUyi1kyHZ`}jkqh#d^|cBqW6mFEgb%Tx^R
zD-kqnk>Nx0DZL5RMu{tqlN;c2%j3(eIsAF=JL+rx(2f*v`y9nG`@>Xcg@4{F>U*6=
zh}Z5r#hZ98xg=SWU=8o*hz;1~&
zimZ1C@h&e>c>R8>`{YmX$ZsBGv~Je1Q&g6OC?mH;l~J6dF!~6;0>#5Q2lp61n^3l#
zNE?|#R+GXLV^1ljGD>1es`Ffz3@#h<-NAqw_Pkp>o1Ddpiurz%q0*gnV1uxf6VqvW
z?oF|*P?LQg<(c9^_>%^0M;SLr@}+ivwBL~!@xVXk+UAK>UY==b>*stc^y!Aut!PX@
zMG4)~lfkE{cf^ZdWj$*CdUd_wNy#Piin5Z`Ih}K(LnRc46(H!|R%Uo*Z~E|_S?sLI
zi88ukvk)%@R=`s3=c{6D&*};5Kd^4P4(I$YePeGek}KM^Cos^f1}aP_^3r@oC+{tn
zWwJcfTFt!ZhAp8fc4N(BKMy-Q6)Ldgf!;8Y{0AY1ulRMGFR@^@4@DIpKy92&5D{vn
zn6HgPNFBX6YR%IboL6LX475fRvnUz?I4CkacK|d`;0<-VK
zHkZQO+O$Znif!mV1E$vTqU|rvs(YRC*Pf&I=-46xv85hG9l2mdR)lOyv5Oy#RLxxV
z@0b9sds$F3(H`rRCMZ75S
zea%IK_r$XCU!C;jtWF!~BGYFd28NLEY!RFw3v4m})F^r*;gDL;0ZpruM#A0CXop|S
zrjBzWdJUF0I1ktHeQrltUBG)`Uty5{SW9`ba6qNf{!=az31?Gj1Yn
z!EOXh46L{NbmOtIHVcma*5u_0+b^X!sbaUooi-H%6^RH~TUO+R3x@{^x=K-~lsRfm
z^a)2*C*M8~^ub+KvAK`%V(?sDkjB6|{e-p2-DMLW9Bj*aBKjMc*AcMSK90W(1;f6@
zW7M>DN%R&&te`0q6SwQX?@wZJ_IjmgpG`a>Bmn>N(9E$KB@(d!9nloxkS%MJ-Q6ie
zF$HvAoOt(tor=!>=%~eBDXGYRh-I*Gtj}!(33s7wjAbn@wYzhi+yh4@+zX;Puq&6(
zCZq|WF%fx0^hAJaF!<}m*QKaghGo7ktp4{Q_p}V3RW2F@>++CTL`*b&;byUn9j57W
zUdvx83&y2x4w7-CaUy3e)q6g;E0})KJR?V
z@LN#gvHmhQX2WM6eYWnVnd4)Znbm3@l9Yn8O!l(Z|9gS;Qq6kHg~N9UdrY^IW>1i2
za?UIhIxl|}SQfd!ldpZSrgAgtOdl#6YErVw(iISDX5*qqn0ov=-^8gTSi(Y4&uXT#
zq087-Ft*EJc$1JRu4{UWEr(j@$BR(&cc)8@^Vv*@`}8}E+%H1SIbPf(Y-Nr)?Y@L9mR-DOh2O
zE6aGF!4|^(SShX2OHbmt65Hr6wKgSVa5E?0gvN$}@iKGyp{_?xlLG?ydSoSasu?A8
zukNW+YL5QzdTwq!3$p8pe3M4W2ggkm(dHzBvs2C{tM!V$JewWVPwS_LXCG2fIxKEI
z;V2Ip$s!7K-)2HUSJ6P`y$6`E`&_{U)v@6!zxh5e!iQ@ZE|Kdp=qMO%NB3g{0tXmS
zj+LK-3V@iDmS4(;-pcPRMVL9kl$wL(Ry%QGRagc-8R2&jajXX3;cKPkVvAgh!x0Bz
zQKh42*(C4Y!%EHs4oAU@0A;hboDX~WWd#WQpQWK_=f`PxIf-FS17=|rg%BH*gjoWv
zT|!z60Y*P`V4$LqipvpNp2~v%L{GRUVV{0mD>v`bFV;x0WtLmlFtOy>r3HW3y!H%h
zbyjid)Q1K;Wl9r=^ZNGu=im~iy+1o!{7qre`GDp}?jp`45
zs4>e;P-;k@O8sf>J5*EuT;C3)Q9MBLJ0?bZ=5b23=0fN~>2-f)pzFQrTg}hLQ@Bo#
z%V);KD0E;!Ts>#61uL2>mzI7>=qur5$DEC|acXU})rJWL(g!Cb?BKYky8!t@fTpK(
z-Oe%dYAoOGQJGqXOpIKU^kc^V@M|_d^BA@qlMpD;iMuF>uxAs*!*0+m8T!WHyC@)R
zE$Qj3`bWZ(
z4bI)B_u{2u4F((^K-^c1j#`Qb4_U68+vhB`I9ccl!6(jse`Gfu46B^{oyOm3v>gnn
zF1fb7XB#%RaNt(?s`-Ek27;Dn*DYt&oIJ`jiN#J(Y%}%K?XD_ym)oQMeATjXo_`
zcHrsw^QrbPwsCXE;vw{MgZ&xq!bMSAc`hi(K*E`W!0^dW{^#&m_-eyIi}{tWzOwozo{#?3}7xE64cGZJW$1=0}IB=-4qI2m5NCJGBT?Dc?0?Q
zx7Ad)X*lMIh5u#r6H>Gg|CtAZV()JJ{@XB*^uZ6<>GDfBRiH3fhhhbz=<=WlH4Elg
zaZzhv99qYq0Ad3J-uuI0a_Dace7!!B($6?gh1XI}2rN!Q#xYU@4upW7eSc)Ky>lw!
z^$*mX^KuXaY=lQqDMn@azoFsTSG_psTCD%D=4cDW0t*8!?eHhPWAD>;$w%{0^7zkD
z(-J{bKAzSDqd~<@jT*+&=ne`?)4h@DwP4Z1xsY{{32BdK{#7}cwoK5N6*!mTg)u83
zm}vBSZs=U_zq;xMS;kC*CaX550)HRc^CsI^ZdmLLV{iWA>p%lSoCrwb=Hb}c0o1F&
zgc(0yO#o_MHVpjPE%j(k=e0A@zciG~O=B*KtqJ~i1+n*(-)@QhK9Y~lI}k9aS8CJY
zhpxTFMu{Q+VDn5n9Lc4eyM3C-r-h%WsiBt*I&N(q(f9S+9lqREi{mRyf<&8bUdK_`
zn?xzs9otMkZL8pg@nWlWTU{Zm3NO|UrE9sUD_`4}jj7&g6r2sBR9Acb%3PQF%LjrJ
zuL@wU{y#&vSGx~)h%1Os{26}srZd*G#IL5-
zuiiaa-BN0!2^s$Yv~fVvCK8!bB9ueH!K{3LPJ>7_y85WLjAh1%<+1%YQbK*$+ZIXR
zNY6_C>L!_p!nR#&&U5Y-lNZ1O0$#BUMPfza4#?L+lF!F_P%ove6f_&dyD#Qi5X&r&
zzY^ThJyl(hqSb(g#4mO}b|bc~-FsF(xv=VLUOB2O3=KV^9sM{Iqd>##NRsIh3@z^o
zF1K!ZvIl>)nr
z%c@G_c4_GM`%^dKuT=*g7pwJd1+))s-Y<-SBWP->&jca%e6p
zY6Gd>_5`F_RW&#~6!qR|h#W@9I8?x!+j*S_&M$U4Q5BK8X?OPo7;&2-!VB_51HO13
zMtDaHwgQTAvz+c(?Zhr^P&5GAWQ%~2>nT?UfD?pU?*x=J7IL(uW^qa6B`ecZk2d&1
zrv51}vaRa%WlX^Tt=OnVHG082*u~6&-X1|WDdcH;Y1kq0J#hLLg0IP%^MM*#je@e7
z8U?dd(Yjq#E}`QcGco#*Uy7tM-vL)L7C&i}kfakof)13ThO6=4wAAoAg+8R=3#m2O
zK1XP%pD@;k?U=VxGA)@+uu~+LQL@Jma(6mwoZDGk?(Mm>7wk+EL?Gb!#fdO<
zaeqqmUEeRY2^3=J1LR_(N&dNArak=|Yx&UZ3s4?>>F{cFhBC}+A2!68NXpULy
zX8l9lHU^jE9DRFhri-EVlUuR)BkQ5a55VK~fn5%eO^Y3Oj*q7m!t7OOt?MgF3{Q%i
z?5L2WEQMOTl3hyG;-oeDzWsW;qCIi-I#KAu^b360V`rGjWAP;_Fy>Y2xskKox#I!+
zX6ycn5^oM9r2GSIyw_K!13p^?wErCI3n$qsqY^=SG@RYsLM2PE(hL970)|Oup2K%-5cnPZ2e9Qp_m#
z?DR`9FODAmNP!DRTcRfMn~zSeDb3w50f=u@nh;NnChzqUR7gh4B%jQs6Z>R#@14sD
zt#;V6C!tzx!x$6Hmw{N6iXt6hBc-j%B(MKT_YX5S;*kG`0B9dFy6UbYRTHQprp(S;kCd_MRo4SJVSXS1ZR5uo*jU!Xfv4pcSC
z>IK_SF?ZMI+!Cfx{hJe#)>>>2N^yW~c
zAebpK<-eS)p~pWbZX&d+RL6*b3{QRKZIOiCwCVa7xKI3Z-iN}w*9_af(?@2OjSja|
z#mR8aWbE~nxv^2?!p|Kc8e54yZcP+U?05M{1>646{evm1-RIn_WR|MjhObbz##pdU
zS>S<~+Wnyq#Q;otKm02e63WKP-t-ee6iKfs
zONLi%&or78$4D@29zO@S1bXikn#d(fE1S;JU}C?P5|+q%dwg6@?aM6FDcx5!C@VtJ
zc`Bu0x1Cf%9*kUvGipXWSr5&M1<@ZF312;+);-uxGjYse1`9foIZ8jOh#;-Ws9`Bq
z2(0>=sY!rKUg#h#>e8ejP)18a6~I07i!aUY?dvyX9|@MbT5%fw6J==!=p3Iq+tth$
zJtFR^5Z^`0N`t7wN}kUTZ!8HkV03KZxWv|bGW+4z2yavC}ji-^Rm$fqbQ=r0`(wM%oy
zi3<}#m0`B!oAZT6vu3VHkjcRvK?bO(RqrL%0*?fPF+VJ|;W=?WTdmIJC_+?JJZ^8a
znodhW(fq-IUrhWQ%xE=&HSbsK(ho@9AB~O0DYqFkD{ZJ*_tJzWS`9j^T?LWXTH3+2
zx6H2N8@&t;-T2PYNmME7W5O5rFH_uXc9x}
zqKIBD*lZ-LFg$d+kFm>9jNgF!j@9I@$D?VmRY)d6K{R(eO_`Q8mBp}e;M(!eQp$iY
zSB`6;+i;PFW<*eKE0xj%FnLuS8YkMXHISc5hM|!_<`_;!#H%3|RH~F2<5yFkvQ|ES
zWJ!wd#aPb}d}iK&#?Fidsh$Mw#5ftza3C!MNHt
z8sHW?1;HA@>`RbdXAdmk+?x9y4@$RYr|IP7Se5e6Z12Qfq@bD1I
zQrHduX0&Do8I|`ifW94iIUc8}=gq3Ulge~JH<~TQ5GcgXNVEgSIPKofvP&%A8tYSF6sq$F=qvTF
zgkl0Ol)Imh{2u%YcAwAo@VX*=TG4m;PgOZy9COS~a>t_YkJ3O{Uv_i@1zBKW-}(l4
zdG;!6o#3(hf=%2f2$Gn&PtV^1E~claF-eFRe5CB9p%qt+>}J>U-;v&Jb>-16Q+%)Z
z=XGi^=%Tjncgq-bn!HzPr(`85#-@RFkpkO-pB?Z)zjdNL#U?(g3Qrt4gN&fWcuO8L
z{1R0MnHxlfFU}@COA*J0JahWWH`yj&^abXuHcekePFd+xt_TzULwULI+wVg2=oh?8
zE&0J$1`khWw=lV;#(zIA(D7kx@l557Sn@SE>5JmzYsKXWuS_w>Isy*X+vr9_CdOpY
zz@k84Y+}dJpOX_pSd-H|pK{yC>WB6z_
ze`DuS`phB&lvSR(fA@DG3=zFWW7hMfrQvh@P2D^?VCU#e(?y^OfUS5fuPyRxLSP)>
zHsH2-1IB?Rf1AH9O4Xbay#@x58ZI%$H0Hx6iVMWCP~>LgbM>-SezVc=~?=Biv799h^!v_we`*`1$fU
zIP_B(^=Mf-YSbelkR9^N;~g*aF~#x**RyToemrhZe)kg}oXM3{WRhfM#UgZ_fZ}k2
zb*5oa$D`j!K4;`-4QV%bCk&Ky-Uq`
zYKUA~nrhyn2oF3KkK?zG8fxhWpAGicdNI_dg%y?^AX#O0hN~%ZrJ(uX#~iC<{DtC<
zoN;g@gDv+UUh<{iq+SWx7kQtUrscFxmviQe*%%@w`-jAdiIRO9>Vy1B@&GLfjq+nN
z+&9vPgpE&_Zwa?ul?r}PqHWdp$HXlf&d)6sJZFc7h6d3(LG@ELbdj5-7EoDLS*q~+
z@ubptkV998xXkE?>21g%!z%6P$q)mc0dFAyZU8}yCDmR3bcR5
zloS=ECU|dBc%o!vi15<#^W9gaWQDpM*Nl(=ocD>d9C06ipcMpvdxkLGSA0>*i#CRW
zw$!+<>BxbBM*>3S_aKaMh%m$#W$T0&+d|^+Wh-@=lj{9
z?t}qv|6@GPK6gJG{Xtm^?tb)PeNY`XX!rz*wx(-AuCxVXY9>G!4|fneOnsk?yKBjU
zhws^dr^xL35=)AJNd_{2rK1Xbocla+1*i0E11%B>qmhwh8u5)pGXc2~PAWGNPgN0R
zkqbS%V8%ZRrS~hYZQIfLaVXj&XSzWe%cQ`2f`S4+tMtB@&+bbyD1(4XP%j%33w?(W
z5P2(A3f#V~gpd`I);~#lgj^P6km+a0B#ZIJb&m80He${&&}mMQgjKzFOyP|nk7}Z8
zZmd0#MYhzK{M(W2j{AnrZBlBGgyq1@Hy$`EN9BAS)lg3VN|`^wQj{(QXnT>U0Q#Kd{@BTCdBnGT)cCthCavgD9Bl81x}56->}zz6E`ab
z>D-ql0#^U;MDhc_a(kvbUol$^F(T)LN03m!ePZU!AXJV+QiQkx;bgWM{)6n=+8!`^
zH*FjCRcC?x?{&f)=!hi-0VEIkIS@9Ul}Mww^Xo2kuNU~DL$ZqX;hw}ZsgRLN;4aN2
z-^4P!?4uS?ANndeXbC!N_*jm8HG8~RcRZih=tZA3)cvI}{P6Gj{hx7Gd4hFytM>7r
z$reR;PUQOR9B2bLOV!yRQCfS;0Gab|m0_Z0dA6#h&w|W;QkJ6WiIw*$oSn`jvnA0}
zQpXJufStNLQ&OjkS9ZW>sY&<8a$AG4Je7_sA8;M-+J>zC-A|i%hW~>RxR4Arw>Yue
zLnYQk5>(#wy;QYZ4-lPAoa^yPjMYNaP+~8nh_jGQE3_f~lcIJ5G}r*TJ1&8dBiFcN
zH!I*4I_BRR{#Aa=ax2<<7{{H3fDA6)mWtPgt?7@Bbe4D;6!EESD`JTE$BKG&=I2%r
z)$RdtufyZr%mGhKuo1no*axt;k2&9P7OOi(|1Cp^9snN=!S4w!1LUWCbx{z16e
z(bMPOU3D|2=KSUkS(@*@-7PwHSa?n^GU;6^ad`}Na~%vw?}OHnw9O`=x946{`s>Ui
z51MkFR(X!COmS%3-@)lE=C&2s3jdciBK9PA)KT2P+O0zvYP90bPI5v_BQ;vk
zZ+$>Sn1!8yfQq+aQKbbf{Rpq(P$zS`^VcVAZz|v9gDeM=%*sJ7jkSeQxQ^5^i6j1T
zQhY1ETxd}(g_ypuG;8=fv;wz?bBLMt1{4{IndSVi!v1{uo@~5xSEE{KK1S8EcK44@jCFI_+H!zBG9YCMt<=OtguUkaf-lRZ$fW-g-a>LvJjaA?;N
z8hhf7Bs=G-QIRj6-6MlTyy+I
ztI4=X;Bn3*uE#!=Vn57uH}w947zc;+u5D#&m5`C~qxIn>lZvK5LP5-d$0dos;A=(Z
z77eRL7GUcGQ+z(SUq(}#PZD;Wc3wi-1EWUMEAIn5AaB~_;WEW+4Tr1A{l&LGo6lt}
zbWqFbnqyex(|ROUzwi_G7Q4zwbD}GPW9(Qw2j8X#eiYks%R9qYE`HLv)NoI?o#6Js
zyCJrfBN8<=vz~_dwM*@eM*wFwN>!NijOgAOh$ok5YU4Nd(C@)?%6qEMLr8vjQL72~
zkz3J~n1m#`;9y7yGCUwMk##3yCPa=V$-DY72pgJT-IV7q42XrZg
zy+17pgmrZ+o||77-tG5Zciaxi9VJ?u(+(bK%)$
zGw`-prS&dB7VM{AS3K_gp8=#5am{%VCJgta@V~%Mcb25e2K=?mpu?<262n
zcCMkTbGB#Af>W%Nw8QhL?w9HP(fILL?kJ{wKd|MGV&~Exg1CcmDLH^fjwG=r!w@=E
zxKJa4!NEZjDB6^_KwUaIy14QaPr(CuB;M+u5i#m?pz+d06SO4{=VuftOQzB2xq@kd
zUt@I&Q6VvES1JDpp^{YXJ!SC_&QlO|%|j_xJL0B-l1Ova$Dzc*vbQ7NNxYWvr1N!2
zW|AW^M?GeOwEfg$2{!S`P=!R`5hI{lGlu`6Sy5y^cQqUiy2eMp1-j4&?6J5cL)@dgU7jIzUztQ~1>~%)s1hd0EfVNhfOr)Xgu
z!mucAxEHV~K>P3hHW!*$xI*Pv*@xt2s`{VognqN~g~z4AFqWba6#$*Iucztz2a-Cu
z?#|b~x3pne0aFfYp<}JPxg&Lm2C!K`Dg|pJl7W}(6n|bkdLU0vO=`ux1N-VmpI>^x5r~x&
zFu;L}-uE@qu&W{(QPCbYAhUBPjJ?|1NC5uwjyI0Sz5#j>nuv`*BO`+lv16mcpLY{*
zL;k66)8#PxCO`JA;}fZ=sp(L*+Xgwh@S7JxvcdZY1MLx1y7GGA)m(
zY42^l*pP)aERZ}5+&3>%g*CPxNRBgTjBcnB+8AG+Ee(a+YjV#NE~`$Nly|rjaAJOw
zAJGfdvBlG~XtF-u^(}ZGMv~==_%fR}ch3wNetof@ck{pk3u)#KWg}jqij2Vktl=Xe
zDQ|2=gJnt^gZ4LxvITpal39wD*En5E_`4Nje`aee@paEFsUm(zBKOl!m6pZOm?oy0zj>VBFPgo#Iqg;I*^j&mUqLSifg4?1>h6=7X6EL?uW(ch3~0*I
z<_!FLqZ889$!z0r8M0DY4l9He-=>l3;I{r<@ECNj6=3Z$%pVw%W$lKFgVcxT#2hn;
z?)1{EIhA^doIdB|6{zuu3gzIFPYpVx?LyS#HZ<|l)xIVgjIe((6=JqGi+50%vu}U!
z9h}x;M4F&`((^tno1%oefD?-4anuj=04eM;4I;qtTnA`Z+-6Y76^qA_v{mPue+R#
z75H-LwF%f;KK!8Ju({=*90GuEm21wcUPU#fN`EgXfT4zvM97&8Tgi{q*Ul%8*8PLb
znwSfffR*#rCUNjK#m#l>KZ90+3zWgFS>i`kCX{dlm!)l*#l>KX+E4j=3>
zj&N9F;brd9h`NRb)1j>W!^7dOe}jG_UYky_*tiquQMKLC>C->e8H_8>xqBj-0klru
zeOCmQhvh1vnCzo;;~KWuY`;yq(mqbyyFc)DQGE*c_MqMK!l-1SS>y`j&h4N7k9
z3by`IL#~`sk=lDM6`@4@80JCgMxEHsi;#inu7#zyrAKhCNi-hw`!cRV2SWS9
z{~8qlQ-r@nD$se&TbUY<6&bj~ab_{jPH6ZboZV4u9(@~@V}ZyCH>noD`iX?mjf(yc
z0HQ!$zv>
z+wZsoI@qDt*cT%^ckNVZb{m$u*6nG_BnW>H)aLl#iKhXIFm{0!)8^ci^OBt09J%S{
zn`P0Wh4R}6AC!08dMoZF%8?bzmq{Wf=c`wIR`T-luqn`tJ7S)KDw$^_JtI@Ha_6Z8
zSXpU_oBmm8jY9xq+ZQNfg0oVIIffyygv3aYwA41O(`!*EkLHbw`S{_(};e=a^*
z-oy&(aGH$Q?8E~|J_+e|g6pbouryMIJh%zYQkFv$n;rn_;{Fdb0B}ncwMXI}UJ8Fjmta)mjEE
zOz`4yrx(XDx*3e!oa!=Y7<>Z*z#tOCWXzJb8*^6WGf(CH=Z}9Rd-v{>!e9ML9(m+Z
z1>CQ^@(Q`<&Ku>JnIyUWtem;2WX!PpYRs*pMxaU`)utS#7u
zSU?+A;+!f>9%%0XEYS4X_URC?!*YtTiBZSRSHJpIT_`m)Hp&CP{lhQ1+iNe;`Z}{TT
zwNH1izuLVHfruyq4HuYC1YF1eFiDvWL0+_HYT)SU+I*?hj*U*@o@&A{Hk=LOo>R*K
z%YRCEMNOg})2aQc(=|2I`Uqx5L;B7c$ANG-!10S{^Q(wD)TUD40eP^
z!2vVBL*ly<#
z@wh{gMgV0%i}V^tS4$zOR4doAR!AzXxjb
z9#R2?&~rG=iu-XKm_7~!8cI4gkuJXEA{Dk_X4oFJT?X1Og@E?&KZuQ`#r=5=HO{i0
z>mMlqywz87gmM
zA~uI2sU*AV&ooDBtD#GhfO$SH!{jE9H7q5*auG#I_Zp~>;Za0R*jTQ7@@OoN3vVor
zQnw>mf6~1h^c&m#dStdZ(;Sf^-2zOEr{)M1BH%HiRGjN1^XGO27@CkXr
zpKXex;N2Laghicoih1T@gy4<2xRGT%He>3QC+=ir+>?Z}hR*@^-voGhsUjs~lXwB*
z*o!;-gk8uG95CZN)%$S5o{(TB{UHK6C&vNhfN8%*nxv%_YF?5Pbu6b!uuyYGj@lg4
zvof<}?OAI<1L1&nw?oJ1lEsVU)_2?@zxnM$m_PXBp1bdnf_d|>U~JW}q}K)2F{`1c
z@!-Kj^6LkFBe&i94%LNBiIk(qj$vWC9gEZ$1=Mf2{yLSAzvu3|pd*724XDpRyf2*uqS}J`v-69V^^#9p=4*<)K>dyQ0d!2Jn&Z8OS
zh(-w^gd`*+1V|VIHpT`6#@I#}yf%10W4vo)FZSp4E{hY3*fk~@Otb+54hT#T0)r3=
zD33Iw$)S5X=dl0Zsavmazj-~=-7}qUb-x=b-&0kmPMtb+&Szzyb=alkH>|(iF5B@e
z<+sxPszktFrF5vO8BiP~@2|P$8b1QgH)k#^JrKyKfSE3kpkAh4Hf1XHj#Mpz9ARFT
zvD7)3k7*S)RG@hei_X1bqi9GOKORU_A
zIy>84IuGHJfHP;eDzUF2h{9=)vsY<+sy~j&hJ_n1mfv<6`{gt<8$pau&{|A4yS2-5
z&mgb>AP^TIMROC}t*C3g5JX)4Kg(&No~xv3
zlX|>2{_>mbPyh5!tbd^2z9ZFpXtmh5akIVeegDh#za#Pf;lKTmnDdDgp68fdG6*az
z2r&NW=bScOuM?}2x%=;bQ0s#R``Mp;g-0RHWa|>olUR!5Q%|pfzl10eCApY>jHI9t
z6OT~d~b0)z=G#U*Ql+kk^V^O*z6SpeVrB{Ya68aM`1L-_qC)f+7hBmf*6V;
zhP(7{;)ny`c0@)u(L>21W>9##UOL{9kU)Pp$1t|8)Ph{`iA$O~g|C!!MfX6?_Dh%M
zq0Uh^NEa4BFk44#RALwOKM2u|&R#L&`mJI0cB@aUv~v7|@1Xx61wS&ZkI0-u04WwW
zM^L50NrNHjP({l9hzy3Fxw?du`vQVn?04X#>dbKC0&1DrsY;lKgjXq_d0-o5|=n@H%t(CP`MIQ*n4m
z>SToU8TW$&eRky)m)Rv3U*vxD!T#P(+qz|wopHt%ZORS#3AoD2N_+LIe#X_(&{v0L
zG__1BXr=QvGtsH0a#-t%_RRWGpa{t;_!@3B=P
z=6P@H9uj>sT#&R`o;@ObHDnoRoHped`#?AtdkA98hoc6EMe}Zwanfxv20x!tk&B`|Y>6@WBV2;f@sVb=Tim
zpgo|co+~=&!yoym>wW*1fBuTyb=TKz!}<;ORP$4=(c;(N@)kQ^f(Ab?1NHab`vd#M
z*Zs2n+5h|tJNv9{cK6-il|X@{BJ~ZE(QzmEge)k7z^p@nF-PCT_UOO<+g-_eH3)q7
zX?^j$YoBXpopq+vN3QXHPK9Ecl9f|_K7JXu8sp(PGTXy@**70L>UK)Wh@CO+;WujC
zJ^i+(vD}_>@#d2GM^BjREP`OP-*LwscGXo^+1uXsHupPW1(m_~9^7MxIwa*&U+oJX
z0Kh~}emr}n@!$g#KY&AbUT}mJT=1Of0H0~PLh;M!0kC6CvZHszF5i^1t*gQ+2sJX3
zEktNbHLEk!e{v|q@21+iDq|BwRNf8ekz4L@T|TQ9b=H`G~^ILR>{aR&Q)d?B9o
zf$>gEd$B>n1_&yAIKcpfuil<_0y}PgjHg&QPqZWYEs=04m>~YciJFDNyq?4*4t|uK77l@K$Z7G3qaLw82O3w>)G}(yGe6SDeA0KGS-^sm
zdIzK~MuyFe3k3pn8R$(;U>=jo#GB5^
zTT=}xjY9h^lzL|MSbh-jzNyaH+A2v_8NT9l(A4qg>4g_{0iVV3f=Wv4EDQ{dTJJDM
zkK^k7^p>0DmOuW-iR_J^&yjQjXX0T*DLPIK$loBma%@gZ^jn-=tn|rPSs=
zZ^ss;F3K>Kckv_Rzh4YP+&C>Fp#ljt)X0tubPGS!#^6_{6Lv8T(!S6xq$7`rOL&Ko
z&z&?Fn#A?=^mu&IVU(43!eTh_DJyds1Qsd;um#oC)$Mavs3YTe)W-$=I=YkfHzM#Qr15mgyT>7LW^O9=omtLHFBNOVIvKMX8Oz&a
zM`a{c?a-?Q<=O_RACZ)Lsl^CQMmh|lHcE2(kd6jpfRh&U=H#wl7lfLayfw06;9-fs
z2a4k!^Ql!hhNF75`03DMs8<^R_0l&^*|EFm$z4x(uS=}4m>wJMv!Q-Tw8_XC3+SPN
z-i+BE0hPJ~XJAPiZPrP%e(6r#b8N)!-92JgY=xnq_DtF%m2BQ0K?&ZU^nlSkcd;YQ
zd+o9coPG!dqK-+@2}Bh@b7yY;Ai!KY%#K{v64Pn~a95nWmSm34?ba62W9>7J~l;<>kM?Bu+f|Bsy7Z~ll(-2N9>nYN+EH*tPseH_b
zd-UfyFy+mvMWbwNmLb*#48n^6FChU`;kEaPW*XHIQzdhQpEP`uhi8;s76b$sj;xoU
zTM;<8Xlgs58@(O8lQt#
z%y!Z{40D+1#V#6;kKf39^h>8992y4Zd@0B2!02K*q#=Gx<7Ft1NEgNU**$~6LV^JO
zl>UqzgUOutWd)wJFDK*Ghbv>7AumVznAUZ;XHjeaM%lMniyaOpx$
zkR&OC(u1QW+86NpkcVpO0qOjLxIQ0INK`;dWSEYd#K>-^83KSFUS@-s?rI6Cb>aBn
zsO{J9I!U7=5fqz`d)l#pfq{zzgoGd5C?^IvyJZ*^l`=@K6DK+z3t1%oX!KU1zQY8hK~B-?wMP
zc5Kc&JYzdA6j+5eM#?Z}RWc|Q@W?``T~?3N4FSe(zz0$(Q(ZZZD^7PoS$-#lK)|Cx
z!naE5Jc@DuNi$gH5!l3JiUWti6<@Vc{{mE+h!3
zQDh3hPhq0M@a#2Gca$~MLTaI9Ul(v`rPRsv3!k=kblZxS#t9pV^93O0e%9)okd=H>
zSS!p|WwLTJ2%H20zD_(zoYKKz{x6k2QU-y;rqn(t7#OKZghzjc1`u)JuSId(cj}i?
zbs;r$Nu*6;ob-FC@KU9w)5Ltqk6${EQfV{43<3)U0`%254ocN&I(^xPw2xyhAzuW@
z-MPPL$?+E==uON=kb@%#Jlr#+IoXxUvD+R8-O1v6cv3_xGYncnBC4903%;d8k}vY;
zrDIIYsr1{4fL}Vr^7U17d-tG=REhDur6q5p>R^u@9P)I9rpx``98Q-@xq=~SMbV%YOu%2n!!
z`G6=t)Zp}qp`X`zZu)CZJILHKH#r0V4?5kOwBS5TO!u=^=lvAI(?`+GIC;AH3JEAn
zr!U07L9IpBzVp=*b5kzu?R`{Itr$(shV$IOy;Lc2>@lCC&MBKuOF`*)zu1RiOgtk)
z)er0&wI>gwfMn@8`UIPyot@n}o-BjsVi4iC6vr*?$9F-xuyKu$0?$Z)o*|){b61OY
z(j3bCx)j@bG521^B=k+Y)W{5pUcFMM`o!1N8Yi^rV*a+Q?n?&((6`XKH99540taLQ+c)H$>Hn7IrB3lRb{r&GhM9n!0VrzY|7$ML69-|oCN1&r50J{rfa
zZf1sK2Aojpmo7hsM?c=vE{2!7$9OS}cb+*3$USoz1QrVfVjnJbpVl|{m=*sU9=KEa
zVH}f3c!%Lmq~H?_=V4QBt%%^3Qw_;sjwI)
zyUz{;BFJTz)EA2|yZeX6tfe+*-GgP4b{~_KdZ~Cw7Lv3TOmp6M%3$h42hDc1ib1A@
z31vXp
zGLI{%3nb}}Nxv#}!WH^cc+IXU2r!4jEP(00TBp@$uY)q6daOq}@Fp;>#Qcr6#@aTs*g6+TZg3FJ7j>`*U<|AAdIC|
zI{03%O~wqzEr15es&INCP=Y>VzAtug+B_-)B5~o#xnMqCJ&wZ5JdQ%SCz+MXGv<@s
zGYDi5m~RM-k88$l9LsTxQ@dP@;>_&Ga`eawRbYZ5X6;Kt`AI2`WI~yNSO|zHRx4Hl
z#N&&X=)pZ=qnJnhuymX$J}(qPWs23E^Ju^xM)}dM5nES3X4@pGwXJ2$R@F*xuNIOp
zU@^ekBy}^Zq|=?Ih|P1fM-oGQYGY;6P@{#n@(I%JWzxT%cjG!R(P_p*GNyXwiZa{0
zB6l29oI1dO9}wf*`-0wM8N~o$L0>OpLS%e5+~X9w
zO>wbH?_B_l*XZ*tO^lu81c(Lrt>7;X6nGbn!Hmx<1JYo2S$1T8}kf~T&RQRgD3wC9O+|!c&Lwx-gmM|)hdop=~$
z<%cfSeeGhvOWIwUW(s4bR9?&35AXtO7NZ!eg}BG~+rDF?u2N{B04@%H79jmP)sP^R
z<=k{j`rG69$3X6&+8bPux%q_vP0%m(KFrIOD^a8|0I@k`Mqsz#Ri{
zz&)o;mPZeb+F_}efpJt~h?dM}Ha)!!)e&Iu)W~S+ah+l|3(xYNa|qDh^gHyHR=bhh
zIj_RJ7U*a%!CAn;-&LddJYSVVr)6als1OOSuM2-oEF5L>dA%#9fZuX>y#ki
zbBKfq*z`KA)0;@P!)%A{gy7VF=9W1G=pzf=jjEEPqa%Krh)vD;t~29?wZg$Jsqob4
zX4Zm>0E`R0nX~%MGXx6E_SD3Xdi2^A;!IN4NUKLeFQlKCOQZqgeUhv)?+gMN1m+k5
zMI*IPI(+NGSk}OectFd%luKr2pA6@EMpSte>6N4&%+TXLUg5ZS=kB4p@F6i~>PrYn
zR;wjLCqymv;`wG6t`umzkpM5oPW!bu*(>SrfsrzoNcT1r$T3cumqF6)QU`;>9|u!B
zHqA;Mn}_(?*%lb--sDOvTG8WRh&3{CkwWhokX~DbZx4#K0OnTkKbPIWT
zVMUk5#s+IWcEAQCuC%`+=SR3XHVkv0#np?vS8m|ov4_oDEg{uvT1V^Yzb}fd$x&|@a8^hK!?F6%ZsW|90T({I4
zREyDGsoe#b@6ms$eCMft2jdyzg6KNlC7KA@#%UsD93U9RbE$G-xQFQlbO5at{lNp7
zn;Zhb9_@25+gp1^>?%pNv+1>5neD)%;M9p?KPvbw!v|k?3J{CoR8E-)0hsNaGIL|9
z^VD8(TpiK+ZI^6xIjvGu7y4GZyA=gzuNeep4FWTxOHq(_>r;<;pJf@Q0RN{o%O|0K!>7swU$F#-wlZ6+@
zkMA*EyyKsKj`7m>6NOI}hCeRCHM~vjI$55iK2g}za-TfbiSnK-Ec(a$VCQ=>?v=6g>>^4S+~S21SSpIz?Vi(}J~;S=vL6;_Dp-mit_(^_D9L^6`|oRsZ=RK`5hZg!-5%=Sy)
z`m?v@3~4|XLKr>e4&y%)Z59QWvVm5z7&Yj?ph#C27I&#)Fb%I-|MFwrFF(
zjjo1INu|slOF;lgb40W@(d7=lS!j-SM%pKH%LD>yYTA4`IKGn2NSNtJ!}8rhMF-CT
z0{DSzQQZ|cI_C;DK0i}0UoFg4sf)K9Z!+MePhhgMhf)OV@JcrHbV$Q?=au#7ye7Y#I#E~RM8a1z2_5*nMb0E
zwES=}O?b<$z%8vt=4#QH%Zb@e|M531d5r>62KM0#}f`~N_{d+#@N}r)Gfzu9&;Z8kVfC~RqUyG-fBYs+j-7Nd$
zMFs)J*~#5_ob;SaT9U)@a>q@RyyO$*7x)uyNZx5@JjXPKJn+;e?{p>7&nN$o(lL_i
zPkC~fPMOn*Te^1RzBA1$ri*uSOh1p8aB5GdlIMxio+#|pYJ6fioUGiFg`aBONPoJ@
zNavG&E-Hhyw>vG~3b;W-miaHt$ziKmtji=`95sp*T|^A=eKzi1xd~+^l~jEuFyK>#
zhYv_T(ES4>!ZnGQ4xS7l`vc$3`U0jy3wcJuOLwRrNVZ
zk&oEJ`$z2Jjd>HzUeZB~k)AFP=P=%@#I)xKV!L##hhvCAg-xrBu2zeYkHOA1>AWSb
z&r53KK|OFZo4%jwQeG|{AAR1$AJ)!OwV3n+id?Dp3pePJlux|OofrbZ2$-|+fiCxQ
zc??RQKYj}VexVM*KwouLbBixdK}&tZ^}1?EzB;7Jy)Fhba<y#U@2f`Izvp444W?bA6P%N@H(67W#|5{bPS#?B4jYJv4lsK?TXmd$%O6p@r7#^aCpJe60HzCvKQ?A)Hp$il!0j12@3H%4zk!s=iFd
z;mzqJ(nbC7)PTGroy0S4sr0+>H7CCUYrY+0wOxYq5eZ*hrIU`!f!R(!!O`YU{ptcN
z_zf$pQ)(jnMAHrGWwrWIRkCSI_;Pd1VFQx<0gr*dnwuLm|6-3~;W6E*7kIb5z02#0
zVQSvz#i>~6ly>zcgrlH8=x?m~SS#S#bed$fgsz%v^1jYN8Z
zmNtUPGc=5(cv#5o=_s=`V!l6eWW<_kMr})SJU6xkO~Q}%>5#NJi@&@q3XF;w&f>gM
z3~?CkI$>=+{Uc)T=XB&gZ$~9Lzo&h~wyn%tztq_D4UYPv;C$(XU)z|oYHb3*e2UKd
zkMcvZ{osKkHd@teZT;o8p<&cI#E?3FZBCNfFyBKRV!G^pVhGS~NQEKcKCE^?H4i^@
z`$JIEw)5ozo{$b?Riv-4-)d{CCna>|tBzT@rw;=3MF>(PXE{P$S4VrFzWf(jPK+(a
z7|iw~+JIys%Pc;i&B-wChyWu=lI=QL{)12!i_hpkL=Tl
z(w6EmTi>LeTmZ!{_KyYGs;9qFj3aOvG-TY+Z*T9m#>QHI#|U&BYp1{TspshZSqPv<
zYP)*-2CN}5nmY9yW+7(MSJ=FX{jRfr)EY#CaJm?rwy8nuL~SO5lTaHvrZolR41E&^
zP6OxR3b-k}X4eb?rvw4U^-NqLUBrb&`9#K>clr|+Kn6)29KY&XDGs`JaQRz@k1CiA&Ms8E}
zs1}xa9j%rjRps3=;Co0?H8W~gY|6P_caB}7vU@^vsZW(lvHMXSX>UE&Z511~xg=PH
znESXbExAHn+#|b883ME=##51|t<|C*G_nv}TmZrJtE`kl+{`U$2r%C1dtpIbzF_*{
zYyh1h22RAz1ro0?+asgR;gA$coH2P2e`K`G_I8fhdD>tE2g9tNZO6P>DMou@`sBMFWa4?TjhK(SN{!41PJHBK=;&R46~Zi3`0H;}U1DRQDYe(<|Z=
za7ft9BbTM&_;$V-VFBz6b%+7DP7=1~3C{JxjmOcCOXIUcf6%wYO$Hd8U1EgN2fFpl
zh79yK%y-(Kc1Obf+*OipSARowV^Nn|B9IyX4Db`Zqxd_KWXJAAZ*QMyj4G?pIs~Ts
zs#VR3I|q~Lcoj=OsoETA@9P_MeB0Dm?X(Gf>MfQR>Odtl39G^`<<6|^_2Ua-MLp(}FXSJYa8pi{MVt}@Vyl#ka9UB9
zw|z38xvOo&uGo^7(Jx6dh;iN}M*KtjM@4Am{fKnAnB8j|#E3~ss1`xb0%%B#p}1&7
z6jn0joKIx
zPiR>zCW>Kls_!gHG^|{W1*$B{Y6D{pVuG-R;sVJMd(uLwRaTGF3IUoo>2piHrTI+8
z9gGuHA;2VIuEfP}=e0`YJ>SUWjY5^`?pR?7%xqkX5iSLPK>Ebv*6{4=0TRsqg
z)`HoNzT=LLZd@$Uj1^dL>lQuo?
z`VjX^h&N%AP5v;hpr?WhOvWu@hSiBF57P^W>OD@-IAbi8S4gw?uHYhI#J9Ies-3=i
z>H0F;D4`3&mLjv=TT&P3Vhu|_O?pVG8aYAXdjHjov@g!*l;q{Gn4>FeBnTteOz1ly
z>XN*&VNXAxU!)yt$6+lnI3-3H8;HG=i+1Bji!cg0U^Y{#D`e^AKqu_nv@&3>r|4;vJ*&oUfocK
z
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
kGBSn+>+t%qKcpoJvn_`G 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 z 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
dhqp>?j(^)e+!mExe7ruYh$z5zd@e7> zrZqtIjMat~0nYEgSgZ#c%}*3f$@wa`53%H%%r*;tghDd!b7ZYHEe0pfX$R#I(%kx< zDg}5kLv2|vzVo`oaBx^YI9l7!ZjKtzC9_qBYy?%~#VL+6bxSuq>3G&OD^2jd`S{`u z7j_SK?G4gWK4VJ|?r?I*+Y@vd8@#$zHuzenaXLdm$Dk!*+ov7%KJ^FDTkmVB6Hl8m zdtY9HdEs~RO?_qWy(gUXTB6`11OIzX|3ATChq92ry|8AoyZo7!4&-SBBIRh;mZxRg zS~lSy+8??@oQ8HUKIxSHNTPTQWTMm5F2B}0g1$?>6*Dp!MY%>CqCN_@)12+c-Zv4Y z5mQ*G)K6?)!pPci*;s=tie`p7C^E%NEw8s@vW{)Vtp1&cqEG~U)ug7SDW#OD^%009dr2UB*dcv7n!)|!OiP_Mlc9hZjLz;l@3?K>d>+;{9WT*xrTW9z60;ajvL zLYY3lRBqRc6EmD@m<%~a((GI5Q&m@9!enh7J(}l%tSIjr#G$G)=Rn`*%q;!cR!Tb| z$h9QG#$p8?RxvZef6dNtUBwv3z%2D9I3LiPkt~yi%+dR>8~7y?9;iCfvQiiI$Vx9k z95MSIsf3D)2zug0@5pMEz)z7y$WO?!axszLBCdLOoCXBH{!^T!V`Oo=@&9g5Nub0` zosm)C-K~wQq2gpd2;Su#FuQq-3b(n?oma@cp5Ru8 zfS(!KJGFSVAHOUY?0n&Z-;#5YcU1roAZq6s35*knulz3ue&Q+1#uI2z6$N9P*5|&WG5=gnv8`U9(uFq&zpVA z$QiK))_WtJ)SE_waAIOiqd%WBN)chj+OX9=O`Y?0zgEup#Sims-EWXt%m6QFL=HTT zFa4Ar-_Zp!M-%@5SMGlSoGDmdXig6kdpdakDP+{01|;t>Wz((;ACWkp@uHw+9gSE2 ze@1Fa1f$IS_R(LWv$iYmA|uh?NHCw=qX$5>8Mr9y$DoBk)N}IagNQD9&~{ScxiJ_1{vceI15l^=BR+t%|r$s zpdjA|*S%F9p23yxJ3nCZJxd=X3~3ySaZ*2wiAHTd7tC0&VVg7q(hRk^azl-@;88Km zloSv?s;1`LhQ^2PCk7Y1xm8`FH}gVIvAp3hHp@%x$G$A*AwV+8;?~V2RIxW&LV}Uz z5~Cvri8K)YmeiGGzoqXN(IYycyQ1BGz55?7+|rs6W%Wr>7nf__q4+9Ga^3ofu%qPX=0XE^MziU^EZD$2dB+&Bblk^SY+8=7 zh1F@2IKivBhdYWOfmm|8-?wXaI}cM|h`h@SG~;}2941v!8i~(rZFdYLhk-juNtQCA z2Fv+8Pvd=)n4+}4ySQ%lY`%lif9#>Ls1VU4wvfXy9O&90?Uz#(au(2QNoUQaayDPA z!%$7nC*|0L>yf9NLD`L=P5&k`tXII!x{P?R&m8`=XNu1%<%&5dFE# zdxSl*Yps7hle1>-Jyaq{ybfJH!T0q0W%u~?UFXd;Qe9r7JNJ>pF4aA)x{&29UW9*; zAN6_G#yJb9>7=sP^-$45zS?pcXy=ecE%v!|SI5(^2Um=XrF|@*Z#Fw++%QBCbVjX)vrwQ+Rze?Yj3>=*+T9X1aC@_2vT7yYs3%=A6@ zZ@*F%GM<_+_^15uCXy_frX&KL`SD0!$zVA;6nU0=K9L~M#&s9}tN&i^MpZV>wT3=j zro0>$%aLKapdU0|$!PZJC=k6oq@q_Is|cQ_2ZG)ydH{4IhPy!et`DI9^GK%v(d}mN|Qk@|g8=`@!zJpg67M!9O z+!%U1!lbi2GoQe_r!L%iX)NRhPm+u-DnzR>lzKnr^5IbbJI~+Yt)9ij_2dyNqg9{k zDA2^58L12=V8CFr9^AMv4^PX3bq5#Qd(9L-(2dAFZAmZTckqUdnPG1_iE;3Gs;s2; zLbea#@IN{E@Zr6>w@pJ)u$!B=slY3UVjhmHV&#I)L@Wvd8b4XANT(HR0rP`uA(x97?VUEOTqV8rb_=_kcx`~3A;k%jeQu`Z zAetDG+;CmeP7rEuh{1_3SU#>Ga7HFlzl}7ajwqcd%B97C^*6&*O^?l7;9KdI@FTzL zi@}Lrhj5kKpaf-CkbRa80ucg~M#rf$R4Q6XVy9QNxJ!N~_1s?N;~+2xn%a*q3K%!6 zDeRozKb^YeMewddeW6Yt==vO=eRW|q%!K~zs0(P(@0-+YMqR`Tn|**bObs~}wUtv_ zE6~omOif-G?KLu;qnQuEHJ}Z&_AjoE2LM9A*NFx2pQ+yQ4VUphRPuQF1^C>&@s@%0 z9s}4H8H6HW&bWl~NN5(^_8IDMG-G7a=)T@fG9Th%2j;Jdn$+Sx3%`V_gRr!;A;CjZ z5@4fQDr%;}AJX9W0rL%RV?RR7X9yV|NjZ|Efi*5``>Um#1$`c!TARC_$#r^ z8-kE|;hH+n9Rwb^COBV^KoIV{3LaPQ{6NG<`Sw5z0^?jRe0{P&r>TuWqh&3laZaf2 zMn=>`T(%u8bRRxPTLj+tma9s3po=x(03=%+6~|WBKd@x!Cspm9AOLVAi8L%F6z^T1>ktyHkVPOX4rY zwoPUtxBG+A0JKJSg?FWaw0cc8Q&s}%H@nxHH351IiMQxR^3Z(3X7ELk8n&&U1ES+K z8dzIQ%f|4=u_oLv2tLk+?{8+Q`7e`hx8N4nI&IOVJo|@akQ6ZHNSie>gSwpjyp)?5gz0Il0{Z%!@#>)PC!QXtf?p65E5Y=qC ziTTXoywEW;Ed@dfMdl zxfS&M$lo=toMpICUGb(@v zn#dt1r;e337adB9224-N zK(K^I&foDQ?gBcN#{N1N-YaAV#^sZv|9dxK0)O;nup}lMaWCeKQ3w7cMUHAFb#KE? zjbm{Y*CASi?F>+P-!iQs)x$H~I&QvuVYJ2EL$ZFnSr`gM>6O%V=lmYryi;^S@!fTe z*J^NpdgfV?Q)`TH$DS8uwJCANQ5qcIlmqdXDql6cCtw*Mx^&K-GV{=xs`pWm$MiCq5`t7S5N zn=<$>&&8vS@bYjA*V5K3$gIFTa2e9yT5@o@`R`xyA-9cUVNc1$XG1jv;UtXm2O!RD zZ^h&s75;6PvgIrs!2}qnkBLb4FL!tA1RDLJR?dwg9>883ulI`d%=IlNO63%A((-OiY5O%LcJL6U*9x&1n>J|Bk3 z+vqSVhi29zUlaYzI8Cea!d5e>KKo^odeYY($l?ok!J*`f?pzfDPV;N$`M$pCPhfy_ z8pD66qn4b-Ve_rDiY4lccMpzeW+GhcdnRu=C);C2)uHc3M@`SZU`e^2F23A5kL1TXKXgfCWikkS($O9pF}xvPmc zOMb7_4bg^fC7ZmTR6UAy<%N_0EVzmnYsBEM>!m;Q18!3fYmln^l7!KeiX+wf37=SF z#*RQFT{oOK_886@dfAALGbyv$+>BnG0uKA4zmM6RXQ>OME$19-OX4hB6OjtFRfAnj@KqCX zsLY-Z&Fj;LPjfDy7vAwZX%(UVP-iXio*klPn#6lDEahs6gZNwyN@0xehOux`%QR(X zoG;$ztjhRq^1VjOeBy>!Sj4a-hw`A}_X0{f6pW;U&%MC7%EA7P%<_;%MxubOj*-Rp zZk5Qyh~;ye?V*yokZ`TD-*a@hVNvmU+)h+^^-7(@slrc_0~ zGzfUrTEE9Nu`(n$P&6^HO;d%}+|L>JjX$<<#0;hnp88;4J6jGepgdoEdw--1I6V2b+UEELOarF?mv-yUW1|v}ZuN1qSs9oc1RwA_Je&Y=Gqc>r%@woy zE(~#>$+VKzoOOPIr$>Gx`z*UT`^PE6!NtgnFXLo4A@KE0EzHVkkMHa+a=gr_oW7lG zD!nG&$^Z>6! z9_f5eD_LLC4MK8k2(GD+9_F`9NAVpl=~9zQ4?wHT?9OUC=v2p{`-pHJ)p*Vvg1%qq zv4Z6#IL4}sjqC66&gTg30ISkg`1n$D^emDXle{6y!aKt0C;g##bR5=BnS@M=Iw@5o25OjUf(U0#WO>^7On@3sSL*^`6e3FyZ%HVoeo^u>B z*nU8LiuVd)(Qr`|@-~{d3qgZ-Sor)USIFw)h6v`c%T?g*Yr}o9qNl}z&;B@cAH;`4 zgli7RRUq}JUo}bJQzrkre9Eb_v^y_<`--WwwEGRtVH}KN^%Z!EL;jNQsQ4tSo)Ap7oU~L#Pa=jBcKXxu&5^7?}m`hUOqnqKVGkHyHhWZov#85BYI~} zF!~#(0tR(_@M6#^I}Evn24WGr zM0Lm(-br64)39=e%$TmAV}(+HY89Lj1)rqH0((2U5H7y%bG3 zU=sL%C1hYgx}p-Yhgc;l%>S>e1@m4X{zPVN*0yaetmycq_$H9>ruHC}$JlWj7PcMK} zn{w^J%{9yGwlGyGSE;-6`P2OFD4a9l2O9V(x2REwy94Xt_r^Qskw*4@*T{;C#C5{W=(*%&Rl?^{vN^q_{BP8! zZYs-Jp+|cXjE^-nJyA-e0(HAQXY}YvTFX~sd3CkUgwCsIiLc0MN*_nK#djJ4Dw>+e zjz((Yqs%{7{w%wHc)o4yY{Eq?h~)`O)vH;U*3H`1sulP8xhS32x9P@V+`d_iAj6;P z@FA{8|06>0A2iiC!2vVyZUr@(G5i`ZgDLm`d9V*YfX=$SU=2SBqxd`@mP5;`)4XFA z7=S<688M^kJ!xe+CE~KH!Y`;oWjsJ&v#Zf!MsI9i(!=*22DYktJlN8jxZJ+OVktH# zvGJgl8p0kd7*Q$;j)aHv5zz-R&R{kc_=ArEv)gtd!LfQ2TBkQ_U{;gXakH&`W%24;})8fqu1fd=Pw-;0)RJIrb){={7Z9Y~Z@1jS=}S zjx(_`=+GPdo|(QcrP$DxZ|Trp#ggugzU@^NsB`dDM!wS4sYOiW{FrL2$N%pyo`g$F zr6RZKiAxK2zam@GsV%qpK3>$mbrCK(GfTOy0iQk7m?xFgKG;rE>|VL9GlJ8uhwz6v z+ssIk_y}&BaSb5ov)=o=kiSpKPX`%s5@9Z1Xj?F{WiYfl?wzDr`bsSrl)k|IIZ{~1 z4yHS35S>*~HqIFI+4E%}7z{2X4K8#DP8+0$0YEf)v^I)yII%^`Blhjc!JzP7c?A0d zNLyY3gesR?q!G+1cA>rWUG5`eUJGwnumL+~v?Ntt34ocovy)mbNLMQ3@l3~f*w@OU%ToU)AtC6x#ZF@f$a zRoHlV2_;p`@-p7Att!tP>sXuHysR$%c7EZHmW1u~>mL1~6B4gZGWR=~P!#;3$JuIy z2>HHz$di9U$9vKTcp=R`wE1oE2<%uU-?2e^XSg}Lf&`10{p{MSe?T8#@u`t>;P1%l zSMwICx$r?X26o*Zg@A}wm{79&A+K80sJU7dy1}bZBOg*+BgA1*# z#kuBwiZnaqrMI3s@p05Qcr%Y6T1ce;-`1pVMgJR9Ya$HZv`wi>_G#BzpC5DaW6E9& z-P6vId&jY*Rfjukjrf)`1!$F4VsmXG8+iWM1L^tInT;`WdyTD|^RmBK@}A-7#^p16 z3?+27Pvf!s6&57(Rtcq1iQ?Aa2ElpVyq{t7C$rB#JQgo2cKvtRz4iUm;YMCI)c)h6 z_PfSz?>&-0tk@!~Bp!W%x7cb)rq6G+pXTqPDkfPzRpgL#hbc@5vY+BE6tUAQ)qdOG z8-yY-W%9f{sxKLAkY7Yp2X(vyju zh@uywU+sZpDOH34 z6}W~x_}$tAXqT&O^Qu?ZL4jNWsI^8L_|KMDh4HGDi%o(-d%H`Gh^ap0qK3XXrj<6? zuTysbmWHBsi~jB*5&cm@yRvigSyKYa09PA0l;Yzl?W=7Ha-zTD-5BvWkp#=m=m&X& z&eilo4(7e$x%Z0mnPVkN_-G@h6#RRcZ-iLbDdDSRCceo|hUoLjh=JacZm(-M$@S>N zbY5$<=AnM_yM=wLne?eIc^cmKCY&Gvuk4qKpK85=$2Smu2kQgQqyUq5?gYFoj4(J< ze|kI{t9h;CJV5<3`i=={f6w2)`LvdRoxJY_r*~nqQVyAby}}Bo8tLwG-cNo@>b1`2 za!r9`@$B;ps$+~!aI6KL<<60&-p-V_w|C*R>;6yKoWJt7cQ4rvwQBPtegr6|5^}vf zq^eN6_&JR|=w9SBuZ(-phRvtrg}P*~jUnx8q10m>eLV9s6Fv40m*ZdB7$9>sT4YGr z-NERJ64(#({*fa^Y1|ff*9fG2@9!n_OTI_-tm)Sbr`cJ4sWMf0y+=UH`g9jBcIF<; zC5%M6=-*Ub-HlbyW1K|ZL(9ff$4&NmAP1fK{__NsP{)fooC^{ zqWHBr`GxJ>;i(-OJ|c#bllP#DRnwH~YD*pn<@99bxCHTB}7 zw|nj1H+*L8H3I|WfKWt+A$SGuPHkhYsBKncBRMB@`x}rKd?~da#{16;V7KvdWDbbY z4f!m}a>1yQEw;7#xc}x`5w9=^CF;yr*-#cV+kzg~*5i(+<2M0%)q31dx0;r5GF~os zMELAvK3r`sW&c|D6D!tFv6nQ@TED~pqgGZ^BWkK;$#fVrJ>HyD^qT%uU(Z;{ZQ+=f ze_)zY4ig_aHWHY)1uCubIQ?5zs5>&+rR3B+z2M+H62a)gP8@>j!XB*9ERn8aFm6&D zV4ALnW>pQ9vs2xXXtcI6tKe-P9@|UTE38`{4-XG=*_v-%WE)dzdvgRW`J%+d*Tqci2dmI3#(wu9;Wm%9}R zhOsY|5bTBnBJ%w7N^|7<_QA|s;pL3Guj^;fMUhkCC10uZ9sib+t>J)AEfsjo#As%T zF-KSS*<_)m((r$$izM7uk^gR&r!Rx-scP^zZHS9NpyWYc*Wj>|eem zA;*7TphEkXKr}@Sz@|7@G?@0h6-S4Z0yW(#ox2YvI(uluP{*T(xEd7>4a^N)j5AnJ z>+S^bK&eXK8k74BS9&5z<2&$Jx9Ym`+~N5NL$>Vu?aB#)*R!3;cyS(*;r7NGTkA6d zJ#NL9k#*)1tlV_Ke{U3nj|k&(u?KVE+x8DSX#qMRx+3zYwHPv4KBGvlw25|IVV{HB ziE3mjxURR>LpU{!v7INq|A}oHJ*KKA!Dp*{!@L)NRilt2%oBd^KPq@T*({?DZ^`m* zgATk}nro81_qQJF-?*!Zca!>f+RRi{h+d zbTm6N{nHK~fHV0v{iyH=Qs9BIPXq~7TuJ`6%NonjM?jX0i}bPIU_{EbY76qs5j(X= z8?e%aN#dP`q}-PE6|Y>@dnJKcxW5}@-AQ_4w3-0K*0sZK+Jt7bKQ$bl%M4dww<7>C zn*H5o+WpBz!lv`aHzSNyhlrg{gf_mw%3Qs?O}m3-WS};!@!`%Kf2?82!3=}4VD3Qd zM_G!%2eEc;;he6kTc?5FF}be~D3HFXDR0kzV`GJbO1TPeEO1$?@hruN*w{Roc4B*N zYVI^`lr+lBkUIvaWc-yOKT=^R!TtdINb1sUe{JiAq{>|NI%nrva(JTP1g(gff+-XS zgtbO~!zM9@8OX4aIq1xMvTp1UhHaFbjjeHN`=mzyA#>sIk+zgg?F=;el=kDcf>r5^ zx^LCgz_{~5?2UZbML~8E_`>tLzfs%<4ZA@GLSKItJ=N8Hne5S+VF`rVK8~asqwT%L zehVPUEL}ev41UgQ$rnI5O!beaqV zz2NFcHz9Z`vS9aW@TR;?Q2LPbCrg$R)rWN_aYSq?6LJzdJ0O&OXwA_x2;R2*LKapn z9;6-&+m}q?eII6tc%u^gCamd?lffGlDB%?vQaOZiw=|39{m^v7vIx2SEOc52ivpbL z4Fv(>L0IBt>T0lf^eh4~K2P;Qo2;~IKsg3@u*vaIjk|fe2vX+m;lf;n0t46#*Wft6 zVk${L)t0s}!5Nuv`Fogh&udmiV?Y;;tH0n+SBmO#AkB@*0)#?TNz3tXre3R&E>cEvm?3s@&iV%CB{)nN^~dCv;?6Q=DiXQJ3ZoSS=NY|xWMNb&c5HjM4n25QeKX_pBDgIL9aO7_{Z4> zXBBptIv|$9uC8^Bov))|zkLAra09sJD986(d175S#lw6y&AgIe-#-TzFM5~5P0Z$k zg1A6qj|{!=|5;o8H`8DIk^v&FQY6GOXX?srTB5azxns)I z*!}4jlb}iux*DC>2cCv|8bRxr&K9lTvPiUj9bhu=cU#4=pq9@gvqK!bd0bsX_LOo~0Lr z^__IqRTztzWVN}n*zi83Ovi}O$^Hz=wYm+u@B5IuEjgxaBzuB1CQ%DjVWzek^DWrf z*e#+X$zIw9@BIA&pfWc+Ly8|CVz-`|113K5&1$w0L#UPIyN)7tp6rcN%rHFK_=3Wr zH7;a;F?two5O;$Wjxc*$i#P!|ds4@>lqoOKMETR_646AKvu{0#EH0n2QJpmBQ5il1{HwCK!PPVDoo5Y09>eW%$4e8N3AwB+C7-XTj*mj1u(clm@6wkC&WwhT>xGmLoA|C5V z6Djr(E}K1sR2B_CDjWqb`ek;F6HLW0{%RE?RRSkCf;Mt9QLzK7w(V$XZM-u`>|EW&v0@PTv4Kmv=o86H)v4W?dF%?xw$7o%eUFU}q=bZLUgAQ4^) z+mmS#E2qoaBBxP(fjh+ah<4$gJ~ICI9z$6{3BirT{EYC2F>O^&5P#ybRY#if7uxSC zlcGD*$RHg1r-XAW=pR3m?!L_K^9>(XVLoF)%~ZO+q@!$poUk``87yEoKHy1i8 zP5-ZVEFQF^;3v>OJGx+@xX|J7(f6`m0z5|M%Z%uR8OxvIopBn z!!~y{d(W=vxwEkb6IoVnnRgJPpSZm<`t-HtLl6(X z%`~Za!YdZx`Gve&fC!ze>Zo$$LBMfiU6?)iW6@WFn*^mi_Y7Z}>5duRJJk6W)TO`^ z%<&`AY}a)gB^-M}I01m-fq!7#zk7nDWI6O6Pq<}rQ8(qXwC?+qT9uc%hoYOY`KdR6 z7PCx1MSR8VAMW|BEb6w&e9`Z2?-~u)43za7d;1kO>o7igi73yyeC4Z4&mk2czI`v) zWYjQwTvcXQ_QP8fjCsx4=x*i{P4yy>xC3zse!N!S;bmIu32g+_*6kzHRv`GEu`ei@ zPcaXzza_`dR10|d(7;Wf<{hWK`|kwNTJ9%ZS>9@g5omJ^jl@4qCi~WE-3Ny2RCZ~> z(m(%gY6m2Jp)f-9PL2SAQefIDA8x=<$B)eozgS8@?mQIZ3dL^bG@rXpWBiAV<6E&8 zD{ec)FkG3yNY~3MtZ8wSbp*?VdFcriAe4*@6=dhQSDmDmVv^h32>H&IbqsCc=d0jR zN%AqCd9kBq|9{PTiFr9<0H;TE$D3yELr-^RJBiksdb8Ss(Cs22kndh^qg0SJ*BNXs zW{wl3(&0pV7Ex>I-iFmY*= zG=BX#TO-z0nlNa!OZldZU(5_T;3j$tYj+^#a50faxzPCav5AwP9diw{1fkkkd7>8- z07Ym2lCvYh7i&zatbBj}sdv7yygA}-R`tamXbsu?Cgt_2LTj9Fe?&}fYo&^^$JN1} z*{ol8CS9gR>(!~R!>c`HUM!r>ufH(ufe9?4DD(6z`SNVU$DVYcbOZYBNSN`NE1=Ub zk}>kIWksr^Ak#~4pWNb3Hi1?FxOPx-qna0NJGP}PcN8!f9`LjdZJ99+dUE;#(|795 z?s{pe2}_){%JJcc?HLCN9GV2ej*U?wp3rHiUiJloGGjjqWf1Hi%%nG1O@l>)hA#Zx z%I+RVw7WC9E(JCeHeSzKW;iAUGuNO0kwT(s{E=SalN$CK2KTqz)E z+%kwb%fVFBSwa3SApFl~^%<(=!#%h(5!5}l|J3sMENhc5XK$&$!+TqG4buGhZ{fL; z@ro;?;I_@>j!}nFoMRJv!5>TV#V>b9udBixobIIQtsu0zEJY-NM!e2{6RLo$Q( zYK)y>gf4PEq#%H&D+w4LKS4+n(1dB}d(w${FAuN#(vKDuUnQzA_5QvhZGwuz>x%zJ zzn-s62KAKI{s0KMf9LTt;DP&wnH1B*Muc&2b0~ENg!RryG_Y}=RBKQVhw$2*CI2#A zM4ogq3-EW`ysb-2P;ATKDWx%7vh)Kze1_iBNCLBBOwTE=GaN7S&SlSTwVrTI$ zQhDgFze9IWa~%%DoNDRkUG3bS^vcey_n*&{oJ;Kz9B6k50KCwe0y1JilJJiL-5R+M^e5$V6IBDhz`Hd4Wr}#L@NAXlQNrTq#FoM{NLIfW8)3L*W#?Z zGxuNI%;wpC?>D`3xEk<9*)c?BtPvFz3#vj7R%qe;w(v?WRlSbQ7vUBU;2}bJ!J5?z zP$$D>xLQB@ELt5Sv8}qFotp6Wh|Y#^Cj1=!w1yd(c@yj&@qd~EPNTo4DT7S zEIXvTga&)-5sC=;b1IP@B65S}22{u^JZ*%J0K0<#VSQZzE5L<^%(B#mJd3$V_+L0; z+n8=tUhHla5^|E@*De7p@!LGSX*f}L=mm?x18Y{9F!ZLOYyb_##=Gd3B|?PeK=5_LCeR-g(;V_9lYM@1t}xz=xQWxa`~I`Q!A5688F{PBzR>rpv>x z@on?B0<-!UP={)WiMOLEy@zH5z(YDZDT3o3v%fQn3#`z&A4j&~({UMS&;`+pC8gmw zqy4Aovu=@L@Z;%W+1ea5{v!z}UXoV9llo_+wDSHnT3rlsx2vu!hA=}2hNjkOrM7Im zi1=*tE+GGP-W)Z4!OeP&kPxeu?35$RE)#aSW1H`9c7MDvuUo&V7mofY^nT|X(q!9# zvCNN%SPo;=n{2_H^5~MHrqfydQ-zYv04KwLeCnF*bL= zF*?EbXGUy5-r@}g{m-T(s}VHE=~Yf1eU($=Q4t{07sr6^o|u&(w~ffU1RBzl0KMSM z(LBpwIsu&{y`0Q}s2ScaeW$PzFAPfRB5kE7iS;L9%JJLIHl?L{%kFXF+6ISxI@YEI z&*e`lj((UFiaW&{H^gJOS+*%Lr0bqwa-N=1hFi{Q0Pt=bmE#@FvWI$G=vRv5FmM?D zEo!sUA@KWVnuzhxa69MOd4Quq!&M62{Xbyc)Ls4S-I-(`$a{dNkEr!i)e=5*Esgph z;5xv&)!~RG*vM{I-CxVsmU>%=Yhf z4p7G$C2KLQ|__+!p1@wOY$R`s4pF|qtX?Q5b zXSzNuWvzJL0M-Z{Jg(Hutc-}u6~y1n(%LO%!&xxg+v<>atQ$yk8T#YrI!9W9LFtKj z0h{iV6y3}*V3{FGPjyHlCB2QgdFePW?$xZE<1@W^)ORX0pAaFpYv<(Oe*<$4dBx{K zcE6rmW}gi#`{Og)SA}(upo95Kdfa~=FKa@Me);X&2^oHA;nBs@?JoCS{`z2VjTEn8 zc@At{qGCy=NYNgeQWpw53yGAbDU}B--o*jhZq>(gq)i~~82q>Tz4sxS*fozHtUgF3CkfkIX6^X0);_+WLCQ2QH;;OO{>)2rO9 zlk405&8ikB?b;(J$W5Cp$e-d(mS6u=PGX_;!mkwE1Z_%zSnX5+|wUUx3v&QmpVM9ZN}7*WE@kWX@j8f z&lEvUjH3A8Nvl$K-q^9gy^iZiSD3xvLW%*-O1!cmCJr|Iywy=2)AmyL{+13u^3a*F z%bEw|cS8w@#c7|vwl3Gu0||K`^T2f&agvKr#Pnre0qt`0%0`D@9lGxRuVNEm2wU#xAX-?pL38tJxA82viaEZ2!CWxfuFC18sUWGpU~3<~*)* z98D>khC{FFn$+Wx-!Wtlk5{snT`qW0F(Z>Vu1MP%+=Tr=iOM*XuU?HlKHj`2+GcZV zwo_D;P0IQMEXD)u;Xii_Z7S!QkSpRSWm*M$Bz9p_Ztss{l@k13n`15|tiKkyUY75r zUax0#i{W%6SfgcTszRvORHIpqpSfPK@xjjsj^WSb1w`kZHMU3ge=i^>ZTxcdjn7eV zrEEq|J-ZRm9GId@cHi=%x!e_wz#6g{*VxOc<4KQmTCNW8!^ z!fRZi`)zcodfu%RpZ5M$T_UtWlIPEyUe0YUT5QA+MMX|mrg z&XW}$jOzw>ZGNa(f8CE6Z}Dzii{BE2A1pt<#rapaR?>UIIy&fnx>t;m0-ELc7@ zb5)S)pO2wjK_}w}aBBOxXonf_Qm9uo{QH;pQf3WmTEg&hZ&<4mJY+AG+Qutj#X^ z_6@Um@26t7gY72JL^s*2cMSm7-z_OSosdCvSGYo92+Q0!&Iusq#Rr zzprIN44~+MkEE4gX#btomsk4`%PgsjAMLIOib9j(uw44!u6l0$hvSA~E05Pho;5gZ zR_W=GIPWmC!QZ|>0gDl*kYp}%cy4G99vm#HM3*zQ>NG1 zZ|nDV`+zs~%5I(!b=}7nb~Pb0Wf&{`bJRiCF&OS3?b>!ynj}=IDqVoS@WlZ0y0*`1}(#~Yw2g=F>L3s znR>V`XX%oOJp5tXHY3>)o~RX-tEdCGBU?+%O6QMR{xNhlr~1coVO*7zGz4=y0}qqT zVCNNAnF1w_5w970wH?a6X}MY7GC{vMyYsp%{Q;Si*15T~0>LK;jndiSr-tN^T5{}j zn6&NOqIEE+J!qOgY&gV!LrdcO95FIsqeJ~M>RSq*-L`=d>#~lV+cf#0^k6U2oFWyM zvha&;09BD38^G}|8!>HXTB1B9j0n`@Xei7+!z$246c7jeVgD3y%0B+SaufCKUn-P&`*!W67%mEaq;UX) z18F47)igAu!@KIOD5l&zuW*RVfO)4pYgHNdvk;PAsyXBL7Wb`p^LM5$E^N~>p`BmcFgoK=XTfb51%ov}SWD=Gu-Ek)@UX)k@3aC0 z;4q{+MSFaND@1HqQ&GKloNxy1&WeFu z&oPEP#5^Uz;1;yq5`&rIS@#~b)rSkkFO&yL`WftVV2P!O9}<=Y%rs%Da;y^QHIU?C=_8`}TW{T8&H24fF6+PFCftBE5BQ($+>lHNSEumv29AG^ zV*td%6*?CHe2Kz`gN4`vfaD?%^U%D&Qfu)~q%)({zXolRnM;MG>FlM=+&@em; z>hRZDwA2}Rh`bn0`OPURa@z)Es$jNAr_9`P3E9`WkdT7Hcs@n85y!i3_jIm6Z;uA8 z?$d+4=7$UJf4XzZ)hj_W^?pb&$WB`Qaiax!x5N3N5RDz&Ed z!iA_H)j<(AnURvOC`E zrmqYqO?YG`FmSkdj^EfOl*Ig)eG@6ZAbT4zs?rBHCy?e%kN&B3Vw)>>`qNwiIb%#P zp#oh6=qk1kec<97{6A11yk?YeC|1S?{ck8;uAc?gy_C_dcR?pGcd;X@u=WIqxf&X#TO_0qkK*wpw^kA2c?^_ zsj_tK*RjR37$wL`qYWlT^JYATmpitP$U~Pl#?J~PH7}aMXln_|zSs>Gun4PWz6~L3 z?PDfvx*y&_7V>0*3)kY52k3ygVJ5TfeFg--iQ&f#Q9LxjB?yZoAjFrH?C`k!5J{)^ zaogjZ$2#nr228^ak($>JU+8pBXzkyzoDvvSyZ;xo3iwJ4AgKqL#WW+?;&!e=V5OOW zz1M%UE|B1!jDWUOQeGFxz0zPJGw6A$1U5YUzAO>Df22GPLUi-vLt%g`hTvYO3o@R4 zMw0pnFKf#yEPDnx3}L0@pkko>!YY0y%v1}`2pw6{HStmh z&fe#56n-zs$Z^DkM`J{-dE6potBz(q+2XQW2a4R!oHk>6wn;B5(}>Z`%m}o|t1YCK9@#mg~ zU!G2cphSs1d1te5I<+ZRH zZtf%<@n!QJ6PsTQX#F%(h$&s$jGQrdK-QalR_K|{#HoESC1VlzQ%A5bGd1Kl>h z_yru3g&}50HTUX}V>gF2rV3@`YK*CxdEQplW66)Qk+9srpX8M~^Oz$9&i+1UhQx>J zMS|ifEKI?D-Z9;XfZw|lF zCHaEgQm0J~4Isvo?VV(G+H7jZYntl6?KXfCB`JTwRg2F;v{bTOOzX=(YE0g)p8MeC z?4GPrfMAk8zU&6{o%hZlqO?pyhNh5pf6SMP7G5a}f@T5qtQ$p?k zl%O#FpNc(DnLS-seogrefDbTUot{OLhzt@UV~s=6pxIn=aKGBMR+VxT^HBd6mxY6Z z$?SPBZ`6w3#-=vW;`JR@VWoCchjMV0`sy=15&sBHMKYl*os)y9AG+Ij=WDFzLo-`v z{xwm@{!mN%V=&CqlzF@Tysg3BA?F9A)ODqx z1w{knY-o&=HOSCYfIUG69W))amZCP?sM9f5cm<}xQd~61;U=tDB8bY1kI#+X}UH)cN5Sfa+;|`N;R3>l$@A7u~6alN|8kRNWNi zA1eY4^{8gW`|O|`gRX%9~h1=OHl!G8=d7)TLs!9knrGMR<%*J6> z2d+HG9rOAz7zqcOk{u{456?iyJY0SQ;h?+MI0;&O(K1^UNt_wv4X#_v#a%8u_fn`- zbU;pfpB~`txn_Mlv#+Ql|fe#d&m43(GjN)~Em8db5 zbk)&<`LET;x%v?p0c4BG;w>l2&GoHhgLt?NmQ{U8=YBqLVI?-xRHa^y+yT#H5d*|P zk&i9Uo#L9FqaXJCr)-m!prjCw{;*5LTFse3mk`w7XUk#U`OF5jB7=&BZ_@3y4p9;v zda+cckyA=wlx3hN=b+MssiH3gxY05hHjWF3@)ojKw5q5s1k#r%(kE@%XYv8=C!SCQ z$|VPl6eX@Bu## z;TnZ-utg`R+={8uRKr_E5EhS_HP=Iv%kA1Z?k$xZ+~)dUAH1F+?e-nTom{&Oa12*o z8x$--Vm>Y9$l49=F5`W-Ud?}co*a5II8Fev>e+x~Cj zG^QLyzVmV7@VbO)E7J=xpOs4V|L1|)J+B0U52ziFT`e>{|XTbm26JZ zf^}%arnO4z7wgJVr4P*xY)IOWFueV*ymgbZ1zk~)FIZ{K-=>K0aT2es_1;=rag&`s zp;p(%D_`KDG}MP+!IyEgd57MXrhni4QilX1QDyS_)Wkr?`pxtEho9c>OAS#SoXXOW zj(cxi3y?~&nXm=Kqu#o^SqKSqWIbKvKJMQI zxovaf`$f{m2&gq9#lVZOU9fAlJBugm6~eS1l?u!=$rUuSJ}j7e9aec!fyUpsR%P%H zx$UoOQAPHZxoRW8P-$bq__-M6b8Z02#ukk@7w3=AlC})J*lJ1aJHFD@9HAV%t1yJ* z%ums;TMq(&8$3522bF=ZX8%AD!glUu!(iRwwl$$_CoJ;R~rR(%s>-x(wiP&qOo!fD_ zO=T8}w$*P3JHm@NB$U=pnU#@@`RUu+OGmY6eG%%E!gejC2lXv+E7ZTG3xHjE@3H#+ z7#}Qo&UHmu5gn!ie2G<;d%Ks{QW6SYVCx8A^kTYht0`uCuhA5JW9rSH`Bl;s1K@<#>5fdGapE3({P^2r4g2>Bo-OH3=IcWg_$}c~ zsWT~uoqH}Pm10jDYzPLAXNj=Zbj;?n_Oi1=_dWRGl7*^V;!y0!I(3JcFnG(p>rWA@ zp%4%Zy3i98j)AmYNa!ukD~A1<^(LM9X9qJ?(EWG})YC!wlVA0IW^~}|mE7CvsErZF zG~AQVs5f<)Ayd;-9AnV__>5EFhI$V%yc*X0NdIk#m3F6fwLp)!{06pO8XejTK3!0a%TMbeV!mm91&ikq7QGsU>sN>CLDhz&#D%Q=n!`g3-0S-FA4<=U{zO8|^b0HM zbsh8t+PLs>qf8aBa+MQ+(dls2TpT0^5+&vgXG4I88qoD{T`~Pa4aW^b8kGx&xftb^ zJjdF5kJ(>MM*aGqsqS!|2zX^iR{9VnS~VHISv;{iGr!i7EtDEDsJ)XO=dsaV7WZy| zPgwhag+$W1f3YtEB93;LW%GWLh~p>yCf&2oc}ln({*;0#Yl-T( zlS4sJ^EFzLnRR~lG1QT|?$}v;F~+y5=QIXj{%S0q9B>}tvWPf+)z@&CJ0!v@h}_wZ zvkYZi%@&wWx)T^FNW2H#mQ|7YoaK~@ugD}_SB#n~|IhgJe>XK_I>5JUPq%{|tZfOM z$n;3pGF7zOJ)GJ{I;8HC8)1$ns0{`1miu4mqK&wbWk$9OwVYoaKoL?gHl(nV;FZvp zUr?T_a`h#Grn#l&?<*$PKKy=)gn+_jo{rFbijAJv|LjZ0sJj;8M=l(MEr3?J4DDed z+qk^!9ZT^j6fTYMMb3&A#JLaiy@othCvB8txdVFatZqMemn^l4hS(_M7Hh9Q&pY2vC-K{b6Y;!nb-nd`ktcC!5_SKx2moEZnv{sgolmrQisPPR=p) zqGh=Q4FX=}j{=@-^br(Etvdi7RFnJ;L};-7kekFg!|x@G%~#lV-~qsGlXa_G=a4nk zM}2X@?Yc(oK)S7n3l0|>mVc~Ts8Z)F}(y@jzb9c1KmzJtxj11U{>F$+t*)2m9qRY|fta ziudnG-Wsoj;`sIVw~2{_n73uD&ca1M8;&Up#7OyYkEx(m-xvxG{A~}heOT%P zzV{Hq-EK)*{=L<_8pTocg&eJ4QXGEsAsp`3*VB(WYi%93H6>W=Z1j)e&t!Wk^6Z9GVb`r-86KI?jSM&z;uk*Ic8xHD{!N2BHURk-HA z`J!73LGN7ji#(tnw4+ufrO(&{CeY%{eBxA9^i7yZzT1>t$pzP-&RQ#(Wi-09jT7+T z-g$IZ^TVaHq$#|FLJTc(RpB}6;+jibZI|cnZSsv{htRu(V4GAM*MYYl1BU#=wL#a+ zF5MA~^T|!boHP!$^Ud27Fa7x}$t&cBlFu14B6& z0p^Ko0Jm$QmoMb>>Z%|LA4ownHhMC=qgA3(wPdy9&|!_#f-&FNbc|Be6d%>(^M=0{ zc+e}OXMj0O5UY6N5I{@9dv0D~YJcOY&}C*shwK4FyD}s{>OgT`U48Zy-=_+3J4-?N zh!@KfoHo)g8Z9q4l_sFkd4ku#a;bV`PfRu0ZkI{(HJv_*xi2rk;<68iIi{{Et` zNrz}8C{wUY+F`{4t=oYni)QydcfwIGgy9~bi-&or`~KY+CT~C!u z=ByRsDd}J93%K`8G9PM&v62?Dv>FA3Ns@+zqAs&?R2`XCnN}lS)CO@Fe#}ZG=(@!% zX|^3tYq&1+ucpllv2AVOn)~a4b@2`(Wl^OdUb)bXG&SU*m?*>yQ%@Do_*O+6quQY} zcvVtQg&_qZ9TqU-5JvRYxi~#JX~`WtkRoK;Eet)}HF*r_p$7Zfy_7U4)da^Y*z~0B zf|6PkY^4=_2(;IqOicx;nc{3!Xj}%qd1F@24rH%j#;#1ber=D>HFvTTG_$1NrbXP? zR=@#8vGQOqa@op{!U6l zoSB)Z8gz{PX6Vu$GSYwf&DK<8S!p4CBP|S>U--jn$G*Vj??9KHRTQaZHr?vN+HT`; zY1V~8z>Lz~c#$BlXGbJg*mawI`%@RQW~i(TFiJV5>v4dm+1BcR3L%khLIJrB9om2P ztmzQ>H8HtPY61!H-^Vd5%6ARYQ9~=<13@QoU7$^s)634*xpJRFYW`bYc(vdd@#}j~ zN%os}{1dna@A!s|i_!3O%}oz?F#1lVXymgSPsciAU`$3h;6yi}6hG2QOgKvbp(lZe zedJuEBXPsge#>K9lr6rzss&J?|1NBDbC`q)e3n6QKtv2dKEW0uU!VdoBl9EIm)dJsexyAskkGh>5?JmFdTx?Yr6s@#L`l=6+=i(tZD0OB<}SgPJP(ypsEVc~fz zS*Ods>s;!f{B*sq8s*XaTQ?R!b@5r1(ju-;e;FX{hrEEL!1AM7fKKBf6U=p=AA8*2 z{|nV#n%_doa&P9exOjS&hzQyZ1hYvWo9#A#%9HzPuj76Q8IQ~uC(dEZh&VYANuaF_^`hX zp?5U5Bnj;u{!4L-jwfLT#;h7Cw-Hf-Z9s?m0Os8s$wcX|SL zBwz>BPHJ$wrED}xe}ne;JB}cytHBt`EL|%BT)U5x&Hl*P9`8TdmWcinaFS;_wmZ5N z^xTWvk_93(r%JiXo4tR%C=>=kw}R{_YaY8UTg-MtgILjOS}1eJAKi``xW#@Fq)L6J zuk^)gP9|p^o3(D3xwR;6rCR+LOVSJD;X;C`C(*SG1{pZ}ZC1nW%Kl+Ge=Y`;Jv>{$XaW)UyXtS0=I8O+eaHxH9#fvNtt zUm36UMZ}mxZ_hDD{*Rk%l)~iU`{<)B$8Q&V#F;$CruUGv)87gQ^CyLMj96T{lss5M z9FeVTVQlu}4y56B>ge+1{Bvt8Ri8nv2NvAR-`!4qxP=juRCI)W?bu}Mkc?F&2g6n6 zj>cAMkz@NlaXfLR@CKUCm?yEg?TeTdPGhHYSOfYT)8X~H-cyDI^EuN|s-}^mg0zqQ^Ien|sdd`W`9d%m6-!Vluy%}E zI28}s;0WUl@?N>kpNNnv_Ou*#M81hZ-BI9?UE~Itjls2Hcsw(xA#AM`Z|#Z?SKD0= z%?9&nBl{ttu0YuDu>|@Fx>13J@kmrI=>0Y&wi^?bmXFs5{7+Exv(Il^ZW@NvJ+=NC8 zX%qGHwZva4H3DtdQmi5&jBn6Djuz>UI0R)umrkfdR%I*bj&#BRUPaVs*F}Sp&f>O~ z)RnAOkg{&Yh}5ZsC<{|0N?@Yl(;}v-FL_uQk#4bm`x>Gpo@l)H0BzUC(C+nf(^$%; zAr@JG7M{J^&tH+Q-&jN=XJ%?(Hx7Wg3TtDf4(uaPz~@vmop{D)oZgn~ywyf^J9M)G z&ijxO150}t7FKn{o3t3vZd@?`Ew>#YXBbL;tW{sD-afk#)7ssgxtr89#4Y!9Iu-o7 zIMaKGXch4uUCi>1oOR-lRDbDY2Ni-+PV3Gnm^WwC8nf#}2!46Br?*#tFPsxpm9d1k zH~_7J-=$Ipo%fyAjDh<@vEm?;*)(DaJ6Ps;lVQ$3@j0ROOe$b##EnwvsmH&-Lh~HX zGY_yZBSCWti%`tp;*x1ap)Y?Y4nR(B1HW?np4^t}IYfFVBBn;U^JLF-!R5V}C?qsj zV{%ZaxA%pWp5fe9;?Te`*b8;vx z2Hz7J92sUr?glTmars^|kg&Df-a)>e^&lkxkWrP4pIK^gus0^h+vW@kX6f*G1l<=251gKVU+)_kX-W#VfuZM5P3vDv(K8~wLDEem zGS0cdERx}(*|aerT(hDjiiw9Vq0nU8pK(Xa|^z?qZ{7xH^}@@$-u;z zuSnyS6yx zBXnWRNG=uFSGVP*iN)6=;(#tV)vKZrWh&GgT%a*sF&9UqK0vTN9YQy9fmUHnUy@i3 zt8m$qz@1Tq>39d%oQP&y9V+fHR%YZM@xmO7&1%288)%Ia+tnG*V;8jqF6r!IOX!zH zhdF8Ay+M?~S}1Gh;Tbsm4XgWCU3I5_cH@&FzU)lGyHOYG=R1?o$IHJw{0*_%`Xlb`fkJz3+41NIZ;>sp(=0_$5U(gCM86v^k!l$ORSdX_n@J^bGea|_S&^y}( z1E)62-0pz}Tg-2%99k%q!s*x1$CYT9#rggTk{UTQv~OyBO*>nE+G*_ryE@B#ePdG-aSNwm*&p?8=@a}%Wy4h$MACnjLcSZ4dOc9MK;Hyv( z&L2D;wRf>wSQ`UEzW`kL5ml|W4jDtX#v`a_qaS_}ZkJ82kzo-9Iuw6P(9l<)6nT)c zc6TH1{R2{#Lzkq_3)V3=%PQlUJY`!;OUzz5)BG)?iiL=*lX~(pYnQp7iG4v?>eV1V zBswp9u!+MdGRoEQ5ec?2jNAvNfiu!G0)7Ox+_wwG@vbsRa~_D38s5z8tZ(hC8QTln zR*lE#JResX(04*zz95H$f{sZNTzhZ+I7w2_hmc{n@`P&oj&npjYJFYLN`7EzC%ukB z3|91dzq%O7b-Sae)d@P>RaHlip3Em+Fe)OOTK(35J(>;45`1AR1!33e_bMllW$;^n zeqTw829~1MYgM^UE>n(%O1y;szlefHBFsk8_2d%@n2+vjq*$~RZ$@j{p8`>$>FG*= zgi=jW_g3ihv-YXnmA?`Tg6_;dk@qN2T`S0 zW6p`J%7WTEa6(6yI7(FoL-kBeY0g4Jzw1d`xF_ixFht_%yG6so3S?#5LG?!Mk_in9 z`eB63sW|TUYOT*zD)=#B@fEBD4=4X)T)@&z$lnG(Upo^lqgu-FL>d6ycoMn*Qv-ku zc`avD_lO;65H<-5WIV)rH`0XaC}UIB7Gz$=L#a1WZo<19wspfwS7YQGPzM6Q!C!Q3 z;$>;F?oW;(fN9lcK!=_<&~t?-15`BYE!xvN->mO{%FB9R_oPj?U9xUO zMOm7OBD;l4H1IB-~A5OI;`db{k(e@deebGY}DLJY^em< zFX;Wzw#ip{!CvOu)&xkt`vW>f7VeWF^Y8Bn7ijh@(p&vigPq+oigsUF(NY~m6kxS; zIGq&}HK*Ede>WX!KM_?Pn`^+yX3uK7im&B3drXh<-S4ZzZ?z<^DQOYlAF1B7NwVI^ zqPvF#xJ;cgcOH5F?Vghq2X$2qKday{uS8is;>_d-dM>vH<@QylIV5G{r=VQzaH#x6 zo~f@E{6G4-ng0S3^oR0WUzp#Cc(7?&hB`8Lw!rvWfifdi3E&*TGP3 z&h>ONjtC}}43qnUM{FVGDN@1*1=}T2?W2OvpFFC&R!HVHTdq0Aj(@A2`HKx{8@I+_ zH+hnX3J9YlAOTph*eT`1#vz^&92HlZ$qEQtX)0n{vuW0dE3C==)M6mKW_Gm zE1#dABL)*o5Wl|@A!r|0#O2~OG!XXz*VkP`Y(`J3kHHQFIsupau4kLyU5^lqNW(f) z(1$H(|K*TQ|5QmuI|aNI{Lt`pay^wllsvim;(LtC_QG6yJ`cDmL`>$FAi~7&Ud_f7 z78fJng11uvXR?6UMTGF`qd$yi2rvkJ=q8<<=Prb26d|WrrQg9q$TYk%ZkQ|eF-!g_ zR=fgOnlAN{nJQwgT_SDb0*93=B$olZt+hBX`33EQ9*kLhBm#;GG}v5z2s^e3P2TTE9t3cW{b|T#*1p*H9>rZ< zM{QL6RWtMA4G=Nzrjl-T7-Wgf&?ny!}V(B1u%<%Zb*6f3P6m z%GnSQI3-y`!Yi+EOE3m*vA-8f*P@vDa>08xyI=^pK4_fw`f6f@JLIaI?&i$=&#Ggv zx=c0H)wL2WHtaE9x|xSFLZm`x96N2)r*&%$edCOD_V%b|p<{dPx{YUq-~K$+nA~fH zS-wynXn(V~R*-8?($;#Vsz7(`7)gr`&pEhY4Lhs*f7{Sf6q?S=^T0&6`O25HlUkIA z<$VVue)GKXKdvyXei=ky`K2t2&O@{Za>Z6*$8LlTZPX(H)cQc@s17yABs)Rtw>6;& zmo`uBK_GjdesBAqk>(lKZ{nWIf4y3T>u>=H?=69vHiP?pcROh*I&rH}*W!00&7!Ol zLp}3NO|HA+IdGxLV)$CZD4$&z)k;rZ*yQnZ&#FSenaYzu+wFF`HD38q_R~W$Vtm)? zt|s74WpZG^(J?e8Dk^^#;v>rXw<1~vrILm7JoDI>(Qktis`7jj(~-yyX^b81xQ8S- z`I#_0j?Q+ZJ#BT|)bI!kr}y2mXZBrOxZb@xeSSH!v<@AcWh|W1cgPMCZ_awU`0v9v z>(~g6=e-Jm?`+kVHg0tPY-q9>w$Ko5kV`A29(G_)rJhBsKmk?y6D9;9cNyGN%){{( ztGWaLb_e#An;brlE?r*4m(c#4WvnRBsW6b!fpdI!nkP#EW~n@1TL%5TZ0 zzr_P}*uDp#h(BQ9F?HNN48iu)VdkCCUFN+IKoXKj%r$PPTc!M0oV5a;FzM#O5PM}w zjGucMlimZU#HgSLC|{Fdr16EYGx&WaXT zsB+;#FW0u=`f7~6elSaihv4ixd!H(96ZT3cQwPH$^gqVW-gwzwK z3+?X+=(6#fdF|mHOoP4x(vqTWts|cFbajqKcgCRk?rf{W_ktMD17E^tA~Q?qLlQ*H zU8qgOow-fG{X-^=;MZJ$BhkqtK_QvQdpf4_kb1U67sCJ~W*vLos-lf|F7xfyz0C7s z$@@#Ha^ILHvg`HB-Bo_cQNBi18{mI^J^`8Pt@A7lBV!R}Eh1r!4*MsuDoJl7G^D@& zwQu+gSj#b#)9JW0I<@1R*Wq+YI4zkxX+xA8Y$9h_UovddG#!JBSC|(p#gy{_HB$4V zWe&rFx$pFMQzl{tb@Z+Ffk(?*J!5Qm0}!pJGg}WSQj|?CpTn(wadt7i+@bvEi?z&Q z@@7zyNpIlI8J9zUy=i!o%<94z1i2$d&^9BO$~oJznIjQ53o_~5mNF(JQTA_XPUEeO z4W$V8g$rOHx?8F0HiJYC`Z@7AAWDN@l*y_}&N4%>;vf{7XcM7V-~YozhyEC+61!Rf zT~_-veXJNE`V{a+Ap4l_W5de3IIoporHgOgJBTI_T195<+KQjgHeRUm6_&dGkLd6+ zY(mCN03CVI{rn*R-ywbsO8AIjJ=QP}c5hu+A&H0Tl+RKQmJI3uQqe@{CkHfD`^;ic zLf`cm9fs;bYzdhU@I|sLNpf|nQ1f%7FI_@P)$y3T{bP4i^$!)DoRhL^aJ$jxmhWse z5BZC0*5%X>K7HML!C9%;KGF1vb-mGVvnGtmUEOWfFPfutW6rYAwS8uix^>Bia6)mu zM_ezyb-i{soCqtJV*d6uSb)NdV&{ARm`T?hTH|D9G?if5wiBNqH!d7o^iRO;e#fVc zjSW>?oPw!Bl>+F)I;r&!A5sp8{8$$yJChjd+xq z2;T>f2@#uzh6s1=5($v`oeR~n;0R=DP*6z$%l!lji49iJ%qA&TYJ*O&0ZC;i8rQD> zd=p*S=rk51_ZtfPk&VPcdYeGwSBZ3{0Z<3;gW>s$Jle-MqEEx|Nbevadq1xS%ps36Kv)kVYM3$Uh_toGHm25Y63MB=i> zqUyGgCTXB=mz8AhTO+G-yWAls#qF|cFTOl=+;R&=6?6^L%w?kz?+U>lxHeZL#A0@l zg0sjhn&=|OsKeAD_Oku$Kfc)n8eSC9c?`gOdSK&vek%WVooQ4XC_7s#zcq;Ld;RiY zf;~q}X&7^r<>p2AOo_p~yIj4Ng-e*;TIFrjU{g>I6*Y95M&s049LKx=_A(K-j*6n% zIv6{j$QtSTp!KE{{?Q8??DfU&tybmsm=Qacz3Ml)HZ6fUso1xwmiH<`1wuv_pP1~1_m_L$FHF?vkRo(4!s_dS z1smrXD#QT%SXe4hCj24wch0vS#(wPI3|D2?2SMcZJr$zbl;5hj{(Qm}yk zsfVSGc&9Z#_+QwtxJY&;Z4>BC)+P4xjCcw}=gKNS(GZiBj}^qb=Du7&RJ++#=>?+T*lknBgh3wMv$ylc@75(fYH=+GmLHDTz6I^ zzSGq;2s|ng?yI_<lblOMA z9AVz{Q?W3g#U*Tor~^ClQK%|Ioo&ruVETL%8a2${=ZCNCeC7{cEHYl`ce}L>w$}e$ z0S$4m`%d|=(K6Sh#IlSfPf^8=?~l|D!b=%6AN$jNmS^WG4*WVI@Vz$hIN!m0-a*A2 znp#lZDY_$;P|)-MH#2ip4aft%9_1vR!j5lT@i2|hvUELTboNegxE-Baef5CP9@a$* zgsoLNq<;ePxHoj)j+)|bzQBf@xi09T_l&Fp8SGiH z)=2{2l&t+zThCVNi4?v$%~x)e1qj``+fjQ|oB-=BSWt9D<>Cb~_=9+KLZvAx%(tYs zSL;N&R5r+F?@@Q0#Akj+z;06QyMccR9dZTS_j!xoA8;cO zg;{SZh866+3RT3>w1#8Wt_|g(ck4r4J&<6ZheQrPde)SHoqZ_2!oTdN15!2dVoQ_^ z)ctTH@}xpVyNXNRW9}HyB>!uV_E(+J9|#?@v!Phz=0-XZyR7(I?<%wR7eR0X(xf(| zH4v)b-m#*$8BI{_F`0gks2@VQuj_58Z@&C1I+AWGWB^U~8e}*}cwB8sm(H zsjN~Alrx0{7DfMD zXD2ukwZF4o9*+uRP~1N7u(Yl(j=PZd?@7{Q@B%=QUk?I!N-! zOEO~QOxp~mCl@EW6kW`>50|Gr*omy+D;-@b;2cy(rTS4VN zz3g?-XOW1u#^R($V`B6IvBw+e)0Ji>sCNWmb)dU))4^p+RebrVDcy+%NQjAzHM?Do zms;Szj9-&F>Y%@B1P6|7x*Q8kGRwe79gUpDyzj%w_oZLuWBF=?Xw#& zt)#VTX0TIyU!bjya8w(eJU#@VIf~HqLZ!$FnLnNWE>ag;LC_IyQWn<1MQq2cS^Jc% zCxc#C5e@x#o2SKl*)Z}G@%vx>t&nnJ^;Z8ve{v>uSa+{6H6B`Dirv zk$?G@*S6`djKqcuy&b*!|6~EkG`}ue5GF^CZmXXe;i;>P12uTr3s!wo@sQ5GF*yr` zyguXNFI)8aQ_)^-YQ4=@D{X+qEYR#aCh_GB6I32^DHw&yq1-R>_e}u)=fqF{=~y=j zZ`XX?ex2=x6Rh4&-=uM@^pwaOW`CO3-KY7$9G^t!+4-MQ58o3#@h{8Ulg|pUHX|xF z3ut45*Hh`fqsrFui30q_%TYy8Eakg{)lR0)1g;Ny=kU#C@kI%=gNE|T*ov$DA|$zT zhM09^=@06O*@MILp~sXC!WS<#_4Bqs!;vU&xU4!8Fl7SJK+* zswz?#5(+@Is1|t?F!(HrM;{Z3lTVuELlKMANku0O=%$N(GnY$Z!J+Lp$rd~(yP&k3#P>hRyXZ}ZD7Kw2VXN=^*5VG$VLZqa!$`^Od%w&WW%)xP z<^3%)n~UCtW|T#yYMj(7A(XyjPWtdHruKBP)$6caYm{t2(@Uj-rt0F=6nyrWQD{dA zNO{~oep0@Rc|H{{SiNrxAme#c0{F+#>d1~!Fc#7U5n9KE@f43QUqz8$M7IKm$F zC{|I<6iCYI&AnTFYBxZTt74smw4R6F`M>S&(yJ1C6 zS?U8?2Mqw)(N0^3iZ2_Cp`K4o7drt@J6*3h27bNFemDAKlj#@$l_L1H4YB#hLNn)C z0X8r5yRQwa*f1uPo8pdxF^~LXvLj?Var7c`W$JBwMM zo>x?s;Tx7bHZi7wLr=~wn)Oa4jP&b8R%P|!;@j+cJ)Qro!n*V3ZHRYrR?cO*;KD z>JHCznvB5{h3Y>dvBn8Y(~~xU2>CaS4Nbc#>Jz=-2v5QCc2vjOKU6iDLdMHEqVc-o zV}Fsp{4p)c`!O@%Kt1%un<6ab5b>v{zXvD;_B%@omz7W205qL_9pYgB)&Sdj;;8UV zaZhpK1sn8-xJa63n>vK}@BSvtC_!puE@99_nnulSSo;D+6{&bz+KE)mKa%Yk)CU}X zBH0+O7bX$?9%pW_nY7xb^ZV5ely3Fau06vmwKEa>=yZ|>oYa`Fu^d=^Zg-1rs-q9P z9-tEKy*C&T35XDm8$=`k=Ps>IDo3OVHZ{%*aG{P|_#`}_8B4C2#4GobRWdQq|A7yI z-*klf>)>_&*T?l6MDCdQSI{3KWV?&J z-QO}-%1Ca3c-As&I3R0mPRSDVWsQP2?vlN}S0S*m+)~ye6niZ;IT1-(LSndQf z4`WnmH?pfz*?~L@<0Re^hl?z%%4Ak<;O*by5vxs6mK2Nm3$}5(|ENmqdSqw`ThHth z+779r4w&p|Tp^wX|0AC*iKL&^N%Tw=8?4&p&O1q0i*%|8Q~V5FTy!j74029()k?@< zv1vKkaVV5R9!AXADNBG~*Zs);OQEK@rbt_~$-8X%g>wIjV1JNxqblZBuw%$2nFvkx z&Xe8bkbS461HrXVBbsjn0969=NDJ7KJcl2sN?X~?+5Mitzc(QCt|;5 zSXG3QLe0Jr1ob@4vPPNn`rUs_-*K%uw|YvY|9O_6NHC1S{Pu;-GWyRpg)bwXRL1ny zQHAh?Yv;-@0zFGv1OFPyzfuZqan7e`MFT0@czylfF@6Y6Bh`4=jl%>h|3Q#Ogu)O) z{CNxd59fRf;6z#(d)1!^t4V*x6@tvW0dPEr{ruU3ef8v?*TTd@&+l!F=bLaHS*$8? z0xrh_uBI*+8EIl@E!Z~yqIx?1(vb&9xJe{n&2*I^9&xGO0QbxsTL{-A>nk0wI}O0f z{Uv&Ml$(kx`N{#eqyb8XGm|QNYn& z7`5m{Dw&#uOvw8NWw}^JvDkdru{+sOdMQT|QfmHB#k!HdYy%e>CtN!`6Bge4U$qG; zjZRhPdw7w9eax(w+K@Z$eqZjN)Wm$f+^887p$4=Vg(qD)R}F3X;29Zq9`QT0lfZwT zqBLtJL{f{t8bl9N4H)p>$A41$kEc;9Xid5U?3VRncAn8&S=E+*tph@?NT&u)RL9LO zuIN}8$d9p^3^(<}oIQCSCmPxlR|KE!nUFq=-~xn9!nwYhyW`bsz-pV?U_yZJ*|LDU z0($A?v;J-h=)NwSBK6L#toW!BxlX+-m<8-SxoiTmy0(zQE)g9Af&2A7>k}xLQYWQ!Zhi&vv;&tKw1-d{*ziC|`vTT)e z1^|7pflTY5Rb|fmQxoa@%mmiiT3QRmqK~>b?m}@zUF9_2LHVZz`ST;k(*S+!_)qx?==()u1qQ_9DkN=9tP#)M^EIeqLgT7orseeaaWzn zPVl(f$87+yDxbEQ{MJKG_I9p0MvUh@*Fcp~Z74rB;Rx?!oNe>>E~h|hfZS5f7{`+# z^Q_@ow|hb;1V>$BEb)Fru#Wu8JxNq&U{U$vRT>K_r-X2-uVpk&wEwI;E#UvL!RaRY52s`_$t^)(5_uzw1dS^ZmPj^UHMN^keDJiKlo@LT$9$jx${qKK9AOCh@Yq z54HpxP&cg=4|avi+LaP`q$J?8p~ms$5%zFCtEU&GvBOb(KffiIx>Jk%{^H~z(Rhx; zqdPw<8d4HV@Sefvhku@89Oy-1&k3qUl*0YhHcl62UnN!c43}r5`70kbS!(6$L6gA# zF5;lItZYvyfl>l@B>^9ZT1Qpcj2-F~K)I{r4@_hq^0q}_L7vl|nv@5PC;tOe%llQ4 zyK9%5b^(r+6&xo58ou=6^YH3+V@bUfV9`3@%};**i{R}RSo;P}Hb;gBgO0!-U|Pg~ z=fD0HK+9(O!pkoM8utef;KskRtBMt*KbBh3#1dAWJss(T^KYapSFQ#x@e9wL0~~%P zI!7>B3)S!bx4%zEj~)q2^&jF0a{Ssjv@zX)>R(EO{Qy%~VO9VW-gxVLx^neO`rrQ7 ze+y8Tt?+HfGPE<3Q`2b(;Q6Q2`=@{o0yfLE@7brH!3umV#=(z&_RBPO^k{rvBTwUG zx*@F%wZK%48O+KSh51Kc0dRTEb~&zYyr0LK@eIxP;~GF~08U}0nDY!^7Yo8uCy%Am zCy(=EHCr$Wu=w3ysVWwf=`&BBrJkE%(R=RcC)2Y}JrU(tn)QG0{SSkZ;?#-bSV;1N zSc_U@`}MDUF@QAlkb-7pcpx3(RDpcUw*84Sr$R1P_z?ZOL0W5f7K$4!gX>rwTbI+P zPDKBDZv*geUmpA8PB1OE%pcfUnW05>XX8{rktQnsslHIB{c1%?c8j2`auBGMAKS`y z17h_t?zQNgT*tyX97S#ia9&Ws*Rh9I=SyYf}pBdtrv|Igl=KpXJ#^)b0#^7b0)Tv*l}V> zmSoAc9Ld@!i4;YO`vwBU4!nKeSG@WCZodW|DNx)15g@yO?|uDsS6AJ-Ro&J7zqkGu z5W1_bF>Qg<-9oK8r(6lpFe@PH%Z~}B>Pfz%y)$j5JjaGcttnOn=vlr2FZviU2rj5A zx4OV=HP?jTsMlbOE6R>wrtCjCF%lm4%AK!D5kwmW)PHi|bTWXb-sdJ@_wY2I!)Tyh zr1vnzHG?PmEbWxGNltb>)Gf!pou@xf0NmfuvkiXkH9C{EzE+;RkJ${be<_|0_Mb_o zXU6fOhV}&+%u~*_CRjK{{hESG0p10(HNfQod9Bm_iZaO~AYKF5>`DQ>I*h_in z2FMq_{fv&oeFoz{hWTwGt(oHpWl{X z9>K?m^eI^`w29dVy?ic>uEPpTkI6ah85WuLhb8 z@D>z5r|z;$R2OY@{DcnZFN3MpbMKv|@8x-SoO|7L5h!+gY%#{M{pJb;6k-uEw?y0l ze^W-tx>lz0syBo5wqrbz3T1)ureQ%KKkkdPQQMT`MQ?t~Fvf!S6IWpjW2D-Q4lV2D zq--qN&P>lQ=iG~#*L(E$zx9Q*ZQHi=zW3Y~eQJyjfp^>QYMXK9;<52b=BthX+ou>u z2A-8ue-1;4aRMq?0ij{gAloae^ec10rcK@HD;Uv#;ZwT+*h|yb@A)p2VDDgsPeqzy z{0w3oGFC@DhE|PSbBh|)H)2emL@%tk;r`(?SkFqG$;r7?!U~I4R+)_gx_fOEsnEd1 z&_Fhp7-&3aWT_Zi7elW_8HENerUrbJX@x3uXu`NgD`{U(74rkDr^a!3z$?9$RZ^3) z%QzFbf)l3`PG;n!n;N?BFULGJv zNCysFlfHZRw*xTHn_U3phYvoS1_t^AY=8KX#{!uD$cI0eI;i8TfANhdQBd7+C}@Ap zHP--60{}i?kbg z0!E8E;x~H9+TnF@UZ?rC-}&x*pXZ(5w|+Z2-(xvY@!WGfjwdT^5d60t3wZ7dbW4>X zC}VzseUA%JsxLuOfp|ZH?f3ui;q={m?oGGdb}L@-fUN*@j(PiJ7VuPne4caMub%Xt z&gJl!K)%#6Zs#ptq(1YS&$=~uELtbuS$p%G@iW_ZesfK3y)rY}kSxQGp0nrA@Tak z0PZzlmGkB9#7-%Ky&WVK7}`V@5ERD|BgrR8P?;ra+tiLY?mJVL-3>P znXEp|6UX@uS|UMq$0v3Bk!ELt{8RLUL2CtLv-ZH>P8}7{m{^{mu^!!%7z>vG8yDfd z_PbPInesFwR?)_NZCznBkZ0b$m4|mWBnR&LHFLp;O1w;}|~<;_d%f|LOEJ9}O%9J)K_4KGI5l_PVH2Vdx1>G$t zzbb7z|D$gEIyhC=%J6_?SeN-cue-4&ZLV#M`-cV__j}JVDTCm-#)~MI^8D5_+n5UD zP-JbXZ%%LBu_yJ^V65dnre^iBw`^0$nQyG^@mPM{c#WAe%N-eBQwsXx4)B)96g%8`t@%TFnclrSC5QM zaF4G{fAobfrMtg-4{Zr0-BhZ(o1t-+RMZsBOOe)jz>d zGZhAud=<>gZg6ozp@HXXVC_D`O@W(5cF%Zzmg0AzfkFeXtp>b21InJuMY@yqEJFxSARO-nXZC2PQUQI~lM zw%6e?cqJz%c-!NPzAw1hEBxzq0?*p@Qd<`w7J89$`rYq(M>=|ZbNc>$KS)nKbufMC zgLehsHaXRw&h+*sDO#2Qw*+hj3j|(j@pzO%p{dazg8-0AIS_@K)i)1HWsnCqKuau# z@yy&Zp6Q3v0-lM$9s!T)@!88cX zihS&P@&%y7v1&jvx9v~cVe-2M@IjiKTBuQKp+l*ysZIy3-j^PE;g}*IZ;I2dxX;ao^+4fK3@0zS32jJYHf!@>$ zAGu(13FAq5W&r;l?LP%?dS|+}duw{~%*iy#zA}JYgYT9b^b%dzN4CYX^xQ3l=R%M* zyiox}>j17#;zcc|yWZ}@gQw4VlSfmjD_5O{l&;pU*gZHo5oPF=ZV*;i(ar%ZPeZpN zhk4l=fGx-`NE+#U_hrBHzf_<{v`IMyJO`nSn&lcd_+{?(?s2<9FjSzlgllPALrYN0 z$V=bL{wjidTFrC1j2-?Ca32{3(@z2gFHGrIqjt~1OZ@=G;Zv)@Dx`3bOlJ{Sa?`rQ#jZ-yg94`2_s#-kHp(JAv8y~egyYFE=Dk{- zXx4FG?5CBs^Fk??Gn0k0Fk)Dq2G{)9h0eQ_`)r>EpyuWlD7~&tpZ)9~r9HcM#r z3{FA2Q@NDhbL-9N_y5ZuVhmeOzxeY%hn_a1AKd>yP?ml81Mf>iBV+0Je*X{Bp1pfn z39_6N*`k^hV#)QNdiWn7RSfd8Fc*2`V}sIo*EX$TZI=rRmtvY`T6MP6y28HF&@G z0n|TsY8DE(iU86pd0sm+vWQ~@MtRP2KJ?LcWSU^_9P=4SnweYn)KaIvv*(gGgu;tP zz9BSl{w?AS(cGeug$4=@ypRU^Cs)$;rVZ)9rrcXG-hE#v`(?l1hlUJr&j6#>-D~5z z2CdtCN&O;cwE;A*JFp**_I>I9`L*T~qPz@jw_v@W z*P|Tk>y6|(>FI-q)4foqGe0kahHkSdE_|^M@nm|}JKvV7SQamJgWl^du{R05Sgt^i zU{Wmr!tUL>(?btG5`jne1272OWB`od3m(g~RgZbSu`>`Rin=2HXzZx2stCEmL!I_q zPDy?G$x^_7msq^K{pafvlsh##9ALXtBc_mvtQ7!wg4&0M`_o&iccxuFC7=R65yUMQ(O^V@Dge7V&d;B1fb+3#4IX7x!K zZ78SCg}H3iNzT1KkN3IykSe4bLxb`OHuqpec;NIAsE;ZGaLwzs?^UYfu@W6xzqCc6 zm_J7HLY!U_I&WtGEyiBF7E+7N(0eVe^x zD?VrNUm3OA=?6cJv9yer^23Ausd>Y4+SJ&Mk%2i$qk!fH&QW$#wyka$GF<2P-1k7* z4DHso&E2tbC(jd^e}aEBXwDEXW#{(oF+b_8uA$huZVDrrL9!1Wel{IrUUVf|U430@ zf-bH1%$YFw-FV}TtO!|5hmRbMm0o+Vz7DU!748$Xov~9vEQg-0yHMCd%$XBYGih{e zEZuzb+wdU7npaYtHgDOM28M>iFn8VcH>R_tRcU;h)gFxR&wu9k)3rC;lx}@p+!zh(EQtI`uP`=)6+RbKSnK%G5!g zVL0IBh@YB2n{L}tgR{rR^qr?B1LTj#D{l=7Q=~!zuM-UvPg1Xwjx3r{XyBD-Am%h* zYLya{Vf13 z0`iuZrHqC_aLaUVcXsgd|BJwafcDAxHeDWK3j+FZ?I#c~|1$3Mn#}>R{I~n^Jbp`~ zlYO%M9*^_Z&dq4?tS+S=_8m))oH$B64S-VaUUGk1w_v6E zb-e2j?0$UJ!^_<9E!|2^L8Km0NOsPemg9W4*L1c7KtF>=zo59lW_Zfy^{ky^Uh9_D zWJd0KjA{me6eRUij)A~cB`4vU?;~)mUe1;!^@r!FSCRj0r9gH~XGR1saJc9Jf;~r_ zR^i<(xLXfct8qgB-TS!5q=hMCa&lXlBJt(+M*49Bx;u_X`6yH`g6;0N&kY1>pSA#e zYvgMt*2Fd4TLR1$^tZepmuLd*IRB{Z*pc$3im@VSY#T!!MdB0X@x1`WjrBP`l!J^x z+jEwp1c5!Tj8zvK=*tznjaQg}?L+U6dz#zvD(i|oo;we4U&HDHoYNy%X#_0A+rNS_ zs+YK)=u50?1lZ++ds-p^I zo5h2@lKyEU__Fy2*dv>vMWLw&b z7yHW8TxzdvNNvrnscoj7$S0_08sp!d&CB3C`_hvtUs48i>$au|Ggnf(Y8-u}MWzs##g)VK1pAG2a41l$|EvHQyaC0i0Xv|OS z&w2ex<#pSw??}gwA5Zt*dv6$#^;}o3H{WQy>DzaIhx`9hs%1sT2F7rE{YDISt7&NFY-%AUM>BKiz!Vfd^Vy1=VdnCZa)J`0 z+i|W@gB3@jJEbSHTQzWf>=VC~x;FKsAKZ6uYIm6$2V!jh#B@|t^v2MD_Yp7jA{81a zG;q0Tz$>!~eo%SW4Px5SsFOoVkDr?3xe13nG6=@Y*}fUCcUPoIF(V*fs_~cOOYGZ@ zce@~b@0#&;94`3Q`qDJYimU}zM_Wddfm5NS83BNo)7|%mMc&`ydE|0aOd(I9fmfk{ z^DaBDqLAX$LIZ^cu3QcH=sUy9S`D~VQ?{D1w-=Tdifce?%dJ1A>I z0Qv$8dbEGwgC9(X4jqOQ{!Mu7&7?1U@yqdGw}1b>bS)sf{U}hPH}}tf;%D)gzb}2| zzkMzCUC*-oeS7z$ef#(G{I^PwIfJk6Okacl{Z3@-!dt$xt2=Gkx+Tt+-#G`^ZIt8w zN=}#K18J8bL~u%t+wsgi^*DKqNq+AhF*>uEgl zezMK$0U&=1NMm7D+nz~ej^`!vX#AVyzE+PRBOfC%ULq@?Jjbg5W9QMElrYcH z%kzrMe|o+kuJkx=M?g=&Xo2)CjjicvIN4Wuinc6lGbHlx!YDXw-Z1vWH9(8_R&P?g zU}pZGnfbE;X`hV0d^qEzeOW*AvyHQ)hbN8NV9}ll@_Medf?145WDYGlt*^ zf<_6sp#|bXLp_|}I9txV{xvFX#LM2Xa+Z(Y@y2A~z1{|-!=wFa;L(TDo|cYu?8Hex z=H|4Y`QZEa-k&DmKHo~fXVdQ81QBg$VCB|P=*orwoF@qQeO>Bc?#kn3M8-?~2R%z0 zD9PP*p0>(jTs`E};#>NJ2++<~Z3 z{pitSY-iVnx)yNX4p9G=H@_+U`+xUasg3KnwR>k8o|t7!#NfWv8Y;>!G*D=u&_JPq z*H8m7y>h$PgMA1PTt0RlD*`D0<{<*XZ>}QN8?=NRcctF|R5SAc=VO5Bdp1=u=bYtv zggK6hTJU{_SY8Hy_gQCrb|rPPzo`)l(5jMjq@VY5yxy78aMmywtIw9Mfa963m~&pk zQBYKUDKxO*dk4q8zKT?6pwPe@Py=54&TB){01&)V*2oB@vR9a0CI>4kC>$m`31ZB{N%hm-WGayf}h2VAo0)hfn z0DOK6XbO&nmnKNgM$VlFEYu?}P!+*a&a>Xgv!-VOQ-2HkRIPzv^0a53&l%`upg8Mu ztd&vj954O8{0jog9Uqhl98_lW3Va#hQP9vO@X@b=U2A0sQn}<_uK6jJ?tkWUpHCnB zz+I^guRj699B_AhOicm&FxV^cTvkr^73r00z`m%!3-{ESet7%)SYfaifVML9Iy5|* zo;`9R?b)* zhwz|gT-jFwgpRGAo=xFleVFpg=Z6?rb7{4tBDJ(Oreo8?czFUCF~%*&{x1g%+-MnG z0D5f;W8S!Vdy-fE2|3sSv2tKiZA=kt)_|fldS4p^ltfW6W-U*OkljttAwkXZz{w+N znHP&Hfd3eq9cg&l@)13Tz9UIKF4Z4S$x9{O)WGo#Y z8wy@+fn8-n3@Z%k0QFUveWnNf z0^YrPR||d{fHnfn<^`>Nn^&FhYG_N_0RC+MBmF1S3X>IwqOAOskOevQl-E<*YyX9k zKs60YH*5k##<*jflsys!=iB*M(P(?*=|j+fOs3rjt`39AlMgPKGg%hjxlFD&7+|uH@4{c zZhr{whiu5HA;N8wp7~XbvA1m536Prs_JZxFp%k(n$NnVuSnr(;fW@(z<797o|6AXg z4jw)nhNMkUfqnh!-$*yya6=eaAAjPhG|Kti7(s{O?;pWH(}YpU@osQeX;tLhuVT#1 zVYre~#z`iB@;DHCz7~b5szx!Pg zl>2_X!hikO|CjXNzV`K?W%=kwJ`8o*ap=wtrcV(+glgm76a5gazBGUAZ|AR}(XqIv zb#=A{JzFXJo;iFJ{ne-Lu8s)see~Fgh-2dXd*G`5=%*fo!YK!R+QPlgIr-3$<9N3> zVqk1U@65$CWSRbKtf|0Noz-WKv)Z;aGBuCUt}0EB4PbCM%zd&pZQHpgRaDodiQ&FD zZ?&?SzUE#!Ie>8z+MlNOG|sU_sIl6(PWr~Ar;7iVMma^PZyXJ99jtOsDOs3EtL2Sp zrQ>?$GH!51Dl|}N;Ihy__E>>;dOHU6DGbAKvg;_J_xjO+g|w@)5|CY>d}Dl`>E(Hw z$Ew{>#rS+B54)W1(|k8WH*;(VDl^jd_DY_Em(#$+Qo3e~s~4es9N{?-Fn&{WIpF(z zs;4eJ-_0Z7PO(KQH1N97K;hy3y6MWIA%zBBxdt}!GN(n_i8BWsUU_Mk$C<(>*^Bh+ zblRrRUP*7M6FuDh))P^~#2nnd0?&HK32N(6x`0<@uD_MD*{BdWSS3#dK(!!FKzx*= z*QI&aj~&Z$Uj-hx*Lz6=b^_7{I& zjRp*`_vqtKrQiIUe?R@<-CqnZPJufC_Paj$H_~_h_&)+Hb*2X&dNlp|r~gs<@JHXD zKK<#xkv4aCh4JSv{^IU5Gd-RD_TT>1^yCvyr_cZXXTm%Fm;d@-#*ng*zVz8YPBnOh z%Y$48$TxWEbo$l5^VgtJXik6q=l_TFsb9P!HPixZjZLQye(0`LhXLT()2E>T0f=HK z1<=V@s=>RofpP>G8*1uee6ZY3dv;_`s z>$06*kJcv-eFKyef}wg=mvO8eikv3uIyO24kUJlBn>S>R0`i7t4aj#H98-#(-l=i8 z@G~!PD{Lb`YFF!~^z7(hQ1M8ClGD%RItUP+>$w(C-tq)|^@d+&d@W+Q&*?c14lkC)MGwAY@50&*YJnFMoynfH{9~ppvF3e zcku`mC2gG_O_g|ww^QXdg0DXL*yE{!@(yg?o6bD-bUIGo%@BY*fOY!czA<>{3V^a> zX_fn6#Kd5~lsKz+b!m7JV0N6HnI2D7qt&VDEJoGAfmGGe7Bobbq-?qV&0CG(qJc3k zb&K>y3uRTQA7e+A#zYi2AvKuXtG1i->(G~De-iI_sd^fq@Y%q%qTVgr{&ikxqD*yV zT@&QhvpqN9L?5v~jHJ||(V(`SAiUKER-+z_T6Gu*3}oHTYNq;zx96x@g3Zrw6_5yOhcD^`>vd zL*4#!{xz-eebv5QalJc7qI?3TZco==b5)E>$HzR^{MOCgkw2RQOVU+)cZI%Z=P|M{ z9}Y}sD;}nBFsQ4-fI)qevx{-x8Je7D0YZDa_RYjspp@x30w3cQ-&ofcH=8Mbdq1mh z>|#uug#us_z@!<2Nh<&egPU||wG&kof8Gch$On=jyGy@{k@ZIC^`ebekOrIzeKr{- zu18Z1t3Cn1^>lZ8XJ?{t532QeGiyp@AQxfdX*Gcuw?VHdnG3U8Xp7%4i@m>uEU3wM~HJx@_3%i_eM-PSR+Ux zkF$Wc9<3{a;pokD9)u96$^edhpXX)U=M|Wrm+NzV9S$;I>SuV!>YqBB#^>;g1a#Tm z4tP#|Q5Kz{_ujd>&les0GH_f6)%AIvE1Pl(%ovEyV6EMoIsvsZ&>)v9`xf-TdlFEH z(a&eypm=V^;@8X30BRK6-Fjn22b7(ffw{MC?F7gZ9?gEg@2=Z|uliee-|MO?j}^1zu_dP%BrV1!1hVV-)Z-b6L;%>(H~ZWZie$YXM$cw<5x>lU20nk+rLPfq_1g5>tp#8YDjv!bMBNSO-hkIE5P8&7320uA=dKhd2KPKRF%sPM zu>t|{ZJQs1%Wfr5s7404_-im?GyoEh;IUs12fO>!f$|F23myw3OY_n@E6}_~E0ZhU zav6H_7y)}4+W>6|bc@%#R4le%BS{nSCUQ@I_c)00L){x5M_9tNn@5{Nn_N`woR!A!;EDJHg{s^ zI7zVC5x{m09tH}QTi-tLEcI5&N{l%G-7p-%g>G2_+Ui#WXb)xP)H?<^WqJsG#aNN} z2f^)2J@37?T`@Jo^$SEFZFYQWuwam+!+mGcso60A@4C=!4eeOs{N>dZUf%I&V;s49 zN~44;mg2M4P6My1Y=fsRVvMat7n6)>!TQEc4fF>fK484}bB!6^LtM!s552OwZHy21 z8xUDavpmJMnE$wh-;Sx=z~Z(a^|!!^E!*br%1UJ?2=VZ27%LUW{Q~XzwpafmD;PM! z*dy>RbE>NqckV47Fzi&iE#FQEc> zddo!%&ufO=(KhFNKUePi&(BOpJ)AVw^spdI@(w!Pn)EXi3dpb|46#fz8}d{ z?06*_$N|Ci=dR?25A-gFaW`I@@+^P;KYte9;Op@8+#Nu%15qQ4ps3)PAhu()0!obv z=oO@2m>L|6?{;{YV`T$iod6x|92iod=-|O!aIhN6hSjmzG)Gx=4Yk=lp|&c#Tc<}S z(~SqN12_iw1K4&|#}L#nPvI3l37y3%OJ*TlN>7jWrS`eHw5zovKw`aY1v={ibz1;w z1(@{)ma2oRXMK~;ZI=Ti&M#zuVE#hmZAnjdLE1cEWFCY#zR`g|=`(|U>8j4|p#BKT zkGxcLvVQF6yZv^*pu2$h=9bp9>1=ZVk9sbvOOM${>(6%^wIRzII1VWJEOiTt>p@)$ z04%+ZIO|z-tk-lSfVd#1?e36p4fuP z8TWdok2&OP0UU1tSibMrp$OQy%8R7u`p&osO0EMKC}PzBa$hKgagYgQKRnk@J@7!> zV_Lg=LQYxGrKuT1FQ)+gH4>5P_WqZP}89>xm$g0=^>hX6hIF#AJ( z^S$WxMYs%O zh<$IepB=+B=vKpHPDx{(dPmm+hVARz9I*gm9MPvyZqyn@gbZ$}V~s8gvkPI+7^nS9 z+~*IE!?C^!n2%T6GlOT++=jCe10Vo+&U594bF+Z{2J|K!P|3#37)NDcm{2#$YPI>b zp|QZZeVHJ!6BvQK&K(Q25s#oE9e(ymYG*aViIb<`lpl)n7oeVUMU>^K0fG0dJrTLaD^P93Efv-LW6 z&T&d`{*_amsWavXFI8z~K?6=^PP9&dEd)$GG;}rq_ZmE> zu2j%Ho2Ug|@dV?gz9zX;{=63$E2w$-2JGPOSII-e8+{V@!O91uNb8?&F2eZAi-V^z(xtO&VWt|7JGVS`?>oHIM z7D&4F)|=B4k3XIM^v}MYwn77;7wXu`Xk-&a%Rd60OL)kb1PDv?gyma<3OyX&wB>L? z-hKCd>G20vcoA4mpZw$}@P4mIvx8%)vx=a;0ID<4Hmq{t_l-=YjVmPqzItyEkeb5N z^!}62ra3^rYUFT8hQu5{foJYQ|5EU&cQ>{Kz$|#GTmq5;*%bhq^DBDxthxLsEXlUY z={^ToEznnE@Jrra1l9zXSJzyG1QadPf1YDN)Fyz`nX^mj=+HpAYSZQbOgWUjiMa7& zE*!_bZ4=CQTN$HV!MnU`$NuoJuAH1pZBUI&(iigJ z&jJAJMch@_oVIPogio!298V&@$$HwZr-^!^lU5C-Ne{v8iTvs zzBA6iG@kKIth(slxhviMd;d5!|Lm_tpNV`996teF3UMT$%BleX-iRSVP+7g(uX;G! zuVG}NF2|3@_`^rnV2=Q9Myo|v3WD_%d*Zcoj| zOL%)zhWoug$M`{l7`yrX!)nNX7X6iTosO=|hgZMX@Vnpj&h(9Mek%$g)*v0g$4=@y!IM!jx_LgH(css0kaEdSpm4nyBaIlcvtIcB)~a=QHS7QmzTY% zwv0LVY-(%Rm`)AP$NaP2M}euG`J3k|%5{En%61NOj0Nk&{UMplSG;onM;AGe==i1aty65Ohdi#!z zc<5cBpgV0jKPzX`vy-*EPk`l(;iTC+el~4xNa@BcdSkvpUsl)jBnY85o#5o9d~>%a zpp%V`a2fp8rjpc*k>^sR055-R!I_sekALAoEw}T90LUL(L~-z(1_C%+`{lNe#rAA$ zbMa+ha=wbf>kWW=aw>Jg?fkKie=z->pZTlltvB5mh98glbnfuXliPadhKDNOu41si z{GI0&kiYItH>4dMH2{ftNaG1CD5-~WCDbpw+PVU46U2Oc?7_4Fz&4VF^EooqmuB(8 ztp}XgnnVZ+FkL zuBeu8?=5+9zZ5+q(^KgwJf2Gd>dQC6_YDARFjj&+1T~EPW$@6_RXoAz=SR;Rjo`9- zYw)rMG`*^8OZwhdzmj&}{5ArYZb^@w97;!j@YS?q%eGVv0N?w}GwJOg_$fT_XVN|2 z{zlq;^|h&@zBHYF?1}Uw{W?*JCl#LG_HlS;GXdz;--NNC7bC+7`gm7+XUHx^N(G>9 z*N&ZO4mtHM-?ndm=x6heZRw_ueLBE*%jzVE>M(seI69KbkhKi2?HC_4Jgx`yr$;+x z;GkKl1UMHI*Vws%7y&9x9hWkGyn-Abdd2VBzAJ6py_0b>3r{^O1_&Zs22Z-+y#Y`C zsCRXJu5T$P65qc3Y8;8{ik%ui4B#8IG5pT^N_hnQ{XK6W*?CF=0nceTZP2&$@4N#nvfon?i;rhgGNlEwqOaAsx>z`dS*YX>eM zT{sYMm_-FYCf5Z{EOr$dcr7&GAm?7dtLICld1oC))1 z7RxPCp@Az!1I3JYrSw!GXQ6>htO3x`8=3$BKmbWZK~&~VmgH{)Sjs^6TX&V>)s}fs z`SN$Aq)gV#L$Dlg)&Qgs-bsCmcXz*8H3#Q1&<7NCZnNu+H;G4|>OE*c$jpoGQi2aY zD2bUkrZjSFY9LS^zoh~B$&W8QI%ub9h4yJLE^Ovd4X5~4~DJ+Fm_fj9Kf*y`jQ$v*99sfAE3*@Kh05k>r3w-CYT;R}icI7WK0m@RJ`igy4Mshm>T;fqKSPV1{ zcX&qt*aEoG7m-iMm_A$sVg)x#Xq!|sCkVb;!hTl-1mLWAg_)L&o(9mn7F{+G^wyxN<@80@)iOtu1X~SlB=x?7Dhi7(#M7mhDm> zxyl0FT>a+j8P|ZtaBR14>PVeEUFo3{N7C3-wn~H2LnnSyMU073+Adh_ss};l6~>nP zH2Q_%k8;asmt5?6nRnxjJ%<?&y2ku>O8wvpl9(dJ_hu(*#hJ zbAN%=2{U-#+jGu&jvZ-l6l@xP{Ayzb&@bwKWNwC+>S5FjHy8=ZjC`XPw{Tfgl1J(;6dyHX0^*M}C297PoNRju4 z2BJuotDaaLWx{lToQxG>G&sKI=UKtPHQCHcfXALZn1+Ui!h`+(`yWVGU3C?!RkC2< z>O}d}Qz`fT^Y@b|_OkdB*BkvdL7WNYtcM26e!NhMKIT9y|L6O{xh`~Ov9Hj;YpnrB zEBAvU6&ffs@Y-s?K&5p6<`rcn=?8~rFt%&_ChmzI=uPDTfPd%Ubb9ml8e+-lFtD1A z_AjJXywT_Ig!kMnZI!7P-gX}o1<>&a;8}y!@__K}GvCm}a_VY=B9aHaDpmmso`3h5 zne>(&JmcV5Z=HJ4cj8TNz}AMU($v#hkp=+w^|*K2sc;m}_fnpbid1OeO4C3AxL;{K zR>)gu;1X&;FuJ{tWn!bt>B-)e@Bnwh^kwc!nc|$3eOVOJM@|QD=h$_ppyl-NNP76;C)4ZzbPPPW@5BQ+_{9PA z2BDaEj9{yyqvPp8xVO7DZBDy)Zi{ih1b{8L839WL0kR^q+X3Svyw0h^>q4gXQGm%I zC`o!J$I?E6N*ZKU0CNMV`1Y0#ymmLHK0sSti{pBtyzbiiw3&dOdi1seU<%fc5oC27 znwcuVzeVUha>^G0caz{GcPO?T6>$Zn)1$-b6rAddT(6GZYCMj+32@qq2Yz@{$C$cV*~!-0Q-QymM?g_1lYavnrqT<-#~iikw*f& zRu-=z8WQCxYzan;va^EJ9?h`1BREcL1aq=+tIJVW%IUeK#npDAWH!IUK@^!sEhCNvy_8;_J8e0 zj5h%9_SL4Y4$g<_2&2|J-|_aeWpg*<03Lnz>ER!8BA@-7Z->CI@gKWW6*^`ko&@^P z;ON-Q^>HB)Q9Y}9vU4wVyx3Q0;PTS|gI(|T5?95rU8F(-g$7Tbq(I|TM`zQm`)YZ| z&Yokx{`h3t(T33*Kz(pxDZOPEv6MLUY#&Y)+y?ZRcaD>4=IPUOX@3t?e>|gf0?t28 zxzm)ZTs}uRM;5n?*KDX16~9Ui6oC7yRA6y>p@G+n24XH_GIdhh)VMJn8d-tz1K_Hi zms=45Gh6{FCS~OGWp#b9K40$J>i}+uS2wo^xBwnAj+c8KATZAYS4#6PNe`f!pGd;7 zAqJR3$^OXu>L*h9^C}TA6U2HgQvg$dZVLba??4d0Q-dR80qp6u+1%WO$LEIdoD~=f z(1iz1`^n$gK0RWyahvbY+meGxIauRw+iPphdmhN~7s+z$3_q_hd42@W1Q`FdfAHz_ zXMgs!^zZ)lZwJ_R!&`1hAGqs1slKizK=!)2+SJwE8FI`6xb5D#J$>XaeK>vP%YP0i z-xh|lZ+!E+csDl%IQG4J?oWT|qaVn;-SL8b(_Oa(0BV~QUXSo=Zn~C$iN^ulm($4j z6x0=ssT;53*49=$?5ETH_dggs&bI)>?b*G9psRJ^fh+iC`+?)qa;{KyfGWZmC14mH zv5psCLiE~!ZybQ{Nj&8bbo8WpxS|DH1qKc7*#^DLG9aHX33_tZta&UiEOOIP$CP<` zd^Ev)12|iX2M}N+Ae&h4bNfu$0D@Vfdjhb1j_nQ9QOZ(XMV)|_W2FC7+5^zv(*(CX zJ70MZW*r}6l6E!%koOyW6n*D1WjS1_Qo>8uLTZ90N3hf5_J4Nn#^B07%4&ddsBqMS zU}p`+fl5GB1yn}!3*v^SF-D4PFJH7vDwm})Kxcs3=wo!<+t-^qs_HP*ETl2?K0AFN zwRLs`KfB=k?rW}2fBqkSJJqzbha9aOd-D7Dq(e_WjpurGP|Z~A=!#>?Y2R3@ATFB$ z@UQBn&-NL3+ecaPu*5O*)R$GJZS5FS(0v#R*k?Zq94m0_<2?0Zpxzq!(OJ=<$wV&p zJXudRX0!99aA~NnWw|t9IQebI0swJ)MQz&G(GA#L8*+MnRxgGSUV=?|pICfG7lZ!! z7XUvMW%|WypZ+`0wK;+T4+36m>@fJQ0JWfZxpY2!TdL=V2Ri-4uC+SX#uPg;(7ihC zY3~Z7l0j#4&;QK$6{5u->yN9GGQBQ>_up||fhmDi36-oqm}KRLb;e2vbYsd)FSKNB z+(>Jrp}|!EArv~|q%aIj;)Q>0b5BqWX{4yHtxhehNU#*ocjbX{<#akxfk$oJWt6zR z*d*=)TrHOH7Vs+)( zbBN&lsnMnMp*J-KIDQIGcaP~zHOqXaKidsEYSI9l@Xz!T#|Y|2_vul;r;Bo_-*WYO zw_F|IoSqHHDrfvVpttcH%aU$JS&LL?;7Zg$0k~g@y;jIvXy6iQz==)_%OzWz2#E49 zUhV?YZFSiMdYQeazK9llVfB?idm;5X-xu30O)kT>JtgVLFo9p{GHMfZURhK5#gNwM z^9Jh+=;@LJ5z!lKFIg8u`smzO^e3Z~5kL)u?-iACaZWOT;{6XklD_}_@29Jw#26nR z53kU7-*#*2Xlnr!mdCduz-B=`|AJ>rFRk(6MVbvowuZSyzQn4 z94a4sS=q*P*L!bEx4!+Y0iGLB^pijTu>jj`ho0)Cv`uh)@17m$pZv3b0Cu0hoQ@cYhT?<_xk=F3qKuvii`WvYHy}>(1Rv9PZwSD&Ubf zg?^D+Alkai1l;j-SDuUu+cpUpl9{gE2r6NJj*-6>Iu+}WcGK|S0Y@)KMhAoDrioyq z0;aFD4?{reR^IlyhBN@D`8YvMs{u$&)@#y>+c&B$ZLI)*B>}{`KLg_Dp&dDy=8;!w z5+5?{qb1Ir1jM%NdcadbU%jr+()S(@!v`DAF)J7*)JFwlM(Pl~&(tmGZXauOnW6mSP{Ih5+cp8=@!9b-)w_`PclIEY^hUfil79*h{=SK^I7iLY za!uL}TO>FiyyV#wWGzvi-s4gN*>>e9XB^q@uCg!)ZBKP$x~^wy)T53}_NO{>EZPTt ztY7(-9P?hg>??PChkQcs0?o!@Ss@U5ecImKp2m6!Vv2P3$voDb@}PUMhVuzCQS^bj zG46n6obzHQn|$uJRiItzlq(w*Y-JnlVH0^waX#D91qH}YAkgK~Ox_YL-J~3}cRSAF zk1eL=@NC!Xn*uY#m%8A-H99q(+RD+@mhGMv$?{`m!`koA8~HDbg#7vH6?LO*wib0V z9x(pTVIWv356U%09Y<*A3yAKl<)XB)Imd!JzARc;2vKO@MKs_*W#DRHEj-*`L|4V( zLIamp1I`;AP`Df&U?n()a2_w#C}mc0BFWw>MyFSZi&T-up?MLYm-eL+u-y5}m17fd zxpy_-R00Leq28$oe(HSAV;yt!a@ve{dO4uIlrzSO^9~?C`@}5qX#n!a;B@yfKycr3 zea1PPyp^1SD!^`g$Ay84LAuiuL9s~ zVDjCN9s_iL=PvlJ*)I;|@yj{oFQ9sd$-Qhs?2y}+RF|>sXdxI(V@Y_r+opI5@cT+i zHZ)rH%7o7J1ZaX%76G^_D_OS3+kXZGys|Q1?5xXY=wNUG#1X{J`0E8gUQGH+b6i+y zh5(Ome)C(>?eBUA;Nn7h_|eDG7ykH5>6btC$p|<&0vGv_qsQ?OuS+|&Z;gl2p%G|H z=>Oine%er;_Uzh`hK9$&^IKrn_Kc3hpG0bFZAr&ZoJ##rt8DJ+4(f$zfSjPr{#S08)WXli$ib8Q#em$n7E97~pZ_ z%Kog^XAVSeB%`3F`K4Q#gr|G)Y-TjcPhDYY(fq1JHr|uZ!VSI*(7G{z>`LBf)PcY& zf}}yfaRK*No0P}42^i~TeQ2;R_`GeaR4Mierkk{#V+L{6_^`fx$47?36JIdd`$>LW z?)Ms20*p^h2Gxw-(W^`<<)s;4d8XB@uN&dx7Km0?)zIZ^*f^K2+p#Y-uJMWAM9@o* ztzd}Q%D8oV0kC@e-d%A^JbPB)buqQHx1{E_TjIFJmTJKGKB$0Zp{H@xL7p@?30ki* zU(^yjwVdlI`iaK+U0PC=#xRQLwZD&`x$34Lp#2#F?VhDw-bcI@Ps1lJjf!CU2F9IK zI*y|_h+?ItS!Hr<#+Wfro&~fiosLN$ep^Fx+R@s9VJI_5xIch(>R6^uQ&9a-nQ;dO zC&yFo#AsSz97t26$9*T@`X*L8$eC_uxgukjv2hI97XYM{#u^3Dl_!jJv@uK2&Ctgh z3d%XZsfKIn+%d;?);}70TB>T($+__eGAspr+3@v(7sjcQkIEC1|ig+-DaZW5#4yg>!!m%n+AUDbGvl zhoUfEX5Q`Us7Qqdt{4q)-ACdYC{m$;LIbaj1_aMr>PmUuJ)4dXEu>qoA}$VI>?Q-7 zb~U?lQ2?Ijc|6N|T3NZrIfwC57n~RTwhXCbjt(xQ69YI}oSsj6I}Ng$&Evy7uXaLL zvqC<%cLT65@yt=i^Oh7edaO$qBQ?!oC}#3<7x^vVf8_WA1_Aiot4raAhYoglA!NGH zy!hH^v8c7sz)RP_#=rbGfBhf6^z22>LIZ^c-Vhpyw_cWg0f_WYuBO&%gQ4j8c;T18 z%Sk6r#`%P-2cTd`{!Z$C@ei%bMy0`e=O>uEP=&^u|Ci^=og?p0PQ&6cr*Q&q%Qney{*@a zc&*!i%vrCGL+Ud;Q30_85?{+y3Lth2FkFCf%jT{Ci8pWVNsm4LM9`r~rSRoH{Yn7k z$4{I{gK(8^-?laV;b;FSJ^SntXj3+&AO7%%c!(^esj2Do)WK)c)%*7b(D}tL|7mJ( zZwH7UNe?~raOweU|K2_Krq(uSH~9Cvzx%skl&XR&xgBq1sZ$(t`FMLJdT~qzuowdi zo@hb7=am^?6CmCCBsgnczr7;upX`(G%W?;Z%dz!dx7j}Pt)#_?q4>s~lzIj8&wnzS zis!b^whI19ozejiIyN~;@Y5O2GqwR`@`6wf2-yHlOg>gTC&mzES8z;ka6z=Vl-Ams z=ka@eQWpZYQqT;;<1V->AZh<=>6A-ckZ}cI4u#;!PY_s!=mz>`BTIFa)nJs;a9EC& z>JRIyQrjBecHB3Vaec)vV_TVhY0_i5l`@+vt5YRh*~(ObberJ?Z-<9I@+km$1%~GU ztxt>(LywaM$Ib62ArJMN$NTRD!8l#n;dl%6IA-jB#<0H)IxBeWc{9+CbP*)Ahv2D# z_t9GRXJzso;jYg04os1x#jvIaBZJYg}xB3EJ@`9^TvFG#8I0N=?9d)?c#JkRR zc>TNU8dDSc?SYG5zV)2G$hs|0p!yh`=|=#}&j7AFHV5(ce*!9@BjZD9YIz}63#ge5 zw6C84slx#A6BxM0G2#r9_p$zyX#&GdsRjTPayC{?5Vrss1+n$KR$tL>RJj3J_rf3F zcmacod6coHyfU4E=E#){8Z#WjUIX^g97ZUwn@T+B9h-BE*A0xF1MQpPW^Iaqu^ME` zxOPrrpgD^dn*o8t$Ynbm1j<2qt}HQltg9@_QQ@_nTT%~(fc@LAN=;2|y!1O}ydKrq zkEZAEHgC34;JJD8^UZ&5d)>+TzV&CV-i;ZjmgI6oHjso z1EC7Wcek+8mP=UA_Z{u56s0TydO`JC0;;y)rS5zyM|%rpOIagGFStL37yG&6kV)EadTs2DE<^0xC}LrnX@iK!3vQI4HO!9?KI$o#(OoB zrXGkX^#i(hL&b6>OmxcaLxi5&22HK5&ZsAHZQ2GOB(gtQn_kJ|ep%3b0Gt5`=+##N zC?NHN+k$7lWSjJ;70eb4TEer^^Q7_+NRYN52YCFg?4| ztN(tL4Sn?jJgc892fYMu)fTwNr}2CretI;*k>0J=)k7r*fNblo)vVvJpX z{k7@sH@_vdv^1x?zw_Pno;z*_sDC`o;te`Q;6T0CJ389a=RWuObj`Kbq@6pqr$dJh zr~4oHVS4*5H>2l`1Q&c;YHeu(41!OYG5YFtZGUIiRo+PZG4I#BPd&DN+j_HWMqQjA z7dij3fb8>AlckI3uV*o$HKoO;ac@XV8CSg&5PqX5BDa@3{FlYJIC9}Oan zc#fM#8I&{5;afRtpvv$iM4-_;egtIKRgqV9?prY1z^PKU%;4!H!ixrlDaH zS@iCfpMC*w4oo-NDKH7d3jN4zYSjCCO`g1PflnK#jF#p0kCP=o@A==BYdZ|=sZPd6 z2h;F8h6ps<-#3+N@$TN!*2S{lMsQ?}CwTB;ppZvCy!Y1%v>Y)Nd(;npy_83QOqLA` zcxU~~`0x#o&jzfadWf%3ufMx%8q!WyA4Hqh^uJbg_C@)5%5`BMxL2Ne4I3uCvZVoP zM8`L8-;2l9Brl2Fb2%okY(GdPqu!pIEGgTkH@f-exX%k*3pCqT)*FdzZf|7FRPe%C z32(iWE}kCy(4$71Fal9eJwSU4t5)*yuBUhoIt#XsF$Nwwbu>+|^1(U5bZTgnN=jnh zsD-M@njL!@+|*|UAol>&J(H~duB_$tYOq!q?XpdSM z>s#=UZ^FP7<2Y|y)Sk7^HW|0zty^}d$9qp;K$+E=LOUs&Yoc`{D?~~G+6k2Exb7^k zNqf3C5g=G^HYs;xB*H5nuzx31H;;{+NhOpQa~{V+oBWA;A>~y_Uay&=bl|hQC2&{~p*6F_JE9Lhb#+=_8b{dHrQAz#QX? z`NQd2T9-zEZ?_F-s@J;w>*XxB8U@_e^Sl)=_${qvfZYa!hw~j;80lXoIag2gegN?f z0C=A(1lDt|bZ&$IeX|4|S)O2(9{~Pl${m?nVm{2vm8YF&NaQ#@LX03} z^ZDA;H%9O^((@iiVqfv6(7=_TfdX*95_+kSvCzP4pn;f_c{8qpe{Fb%<;xhCdB+40 zxXdR#-$+UMOL6w=xql!+r;i;^Z+iPJywI1Y$A9>6+O}tR zs;;R{58rox8iuAr&*2+xxg{Mu^hD~w6SKm@-A?0kk|9jt0wSX>r z4_rm%t7#NK<=|tF1*h+}UAxlOojZ8hUkI>$49bwle)wQ|)7x%IHFebi_Pn^n7tUe- z`tTyaBM_54$oNw9iWL*Ug{SM?s4+oWgPbnJ{t*1|I{+u^B#&T+`2&^W8oUgDu0Sy`Ngu0)S)1DUR^av`s66mZMOTh{N{ z{=);k>CDVTcsbVr5Gu3*C8zKxmhPoN(4DquMsmz5z2)n1{CMw4%7xb*kggK|S^zh| z?ln2rf92y}Z|nWglN_YpDU53B%d*uBg+VU?(7onuEr>3qjL^Bd6%1SkES9fYZ*VRU zf}GX_z&Z={iFx!+7qrd6UF&^0NnHu90&(k z=z?Qj_hn_7%}&R_PMvYSpbR|Jls)bkqQl5 zAsSd4+zjGX?g=qhbDhPcaD}v>5VO$0>qP_3bp|7qTivVBxNXiq{o^=|@!NUEXN!{n z-`SPR+{eCYyxL8fxBG^mg%MOYlk<~#J!U@lTc-O2-Ps+-mX@Kyq+Snr%skI8SC9E= z4ECO5xz2UUT%dI!2L??xkBzj13v)`IMG#N@g65Qmpr45)c_wqfqGv}75S9x z%WnXY@%Zp+N__6Q>SQCp$dQ8w(;XlBaJu)K-$=LIc3b-5Z~y!BD}Vp*2Qc^_|M5Rg zxBl$Urnde2BcR`d-}_!_1_=G>U;I@1=AZm&00`IK^wu!Tk}pZ=Hs zBGm&19X<5@^q>FHKTIG0d%u=`=b!%5^ghnH^}X*2u;zj9elLCC=YB4I?`vO8Z@=Sq zK!cg*3imR8WzQ}dJpexSQNB8RMG2({kP7q#APCSPg@PWhnTPHI`{nrs$N_M0Uj_yO zz~NzOKs~7;EMp1uL10w?Qb5tw0Dgix;+4wxBaPAxx4s=?^se{6 zH#{tB0XO&U-J7nyY9F5LbAU@_!3i$_Wf`8AgMqKM;g(YchrFQh$k=2W92};|4N%*( zq`JD=bo$I-fc=gIb#HRaw6->HIv$Qez{W z+q7qBXe7qW^7u$vg`2*irH%5c!sB$Pe>i9^G=McV0N??n$?tACme)Hzn)+rZ@!G9L z59fKuD*y&opuU*Ks4)XrCQH0xGKBu-0A+nWTGgu-An_33 z{V*Uid!V|JKBbQ3!p(6X%*TrIyjZdh$Ard-Cwot(MV=HJ0QCKBQvMobpGS9(51a}E zLp9*7MuciSrzZi@tMJ;lPGy`|*EGcQybmm(!zn!U>i~nXtspJQKjaZmraRL%xXisr z2;8dg=j+f@)+baI*R%Pb?mL}E;rX^K7HN?(!2T$7Hv-vvF?3}7`PsN1otcV0uusFF zN*e@L^J^lbAi>Z=Nv=j1!2lD*t`}f!+jA<&GYhSX{iu;5j4$>j?WfR)39u776g|@A zg*Q;E1xni^tx;!V6TGSeX&j?QJ>Kb#73Ez*uO%oa#$XhsQ8TL;-}ShzrR9;XM}B|v z2Pmy_NRA8J5-SeW7bh<!c8@a-@Paj#!gCE9nc=OxTpFCr z%Y2o_*g9p`P~e;~H8qP@zX53l$uZ*0W!I;_{nXY~g{QhJ;2h_!f-`=FddO6}srV*(Y=RIu+293+gu$&i8 zIruP&1B7M1lyhFVwBksif!9C-%&*+Uh+Tp4Z`C$18-~%IQKCnM{*7| zN&Vuy;{4(>M;){G>t@@PLU; zpJ^kl<KyUvrNU`LIYQx1`5Fa%ImX2;z9#I84Wngk(?Zze0?dr5>oaejLbYC z%mYN#)>boFXTa4(lb=ciNB{R<{-t#HAOCUMx?@M$v}@P7cZX&?hsyyA$_1eS&~Ccz zw)741O^=VI-lIp-$N%bI2~i%yYx(E@?Qf+Sc%z?v`e3^8ZEuek`2%;pH@)xUe<^iu z-=2Q&H~)FM>DIRg*n0BW!|7Xp`X}k|6HlZYp#)KeIN=pHETi7h8?zD+JUk{}!CSn5 zid@D|JosoD?(0kM{n$s+v(Fq#kHQyz*U$ZII`sIH>B%452fzc>0$z!?yzkDmW&5`D z=mQU>Z~W)~lz!%a{&ec<=>mLTNZGc5~XXXIJ|3&wU|Q1su5X+VJG|A?)HL zJ=~=|-D0VYUPSeSiA1KmRH`?tczgMBpMo z-|MftCX6<@I@F6s3IVpwJ)6?l_;~8syqTb-O+2iwrdw})XZq&1zMakh-cLzmTalV{Su{Wrgp?)~hS(%=1me=~jXr|v+`lJu>+?@9mu zpZ%X{*G*922-QRqzWSk;M_8_ zPZ6{dpx^7RZjI8#d?r1DRscH>j}8Rb*oK#OfTiR;58$okMeiOHgzN%f?Obh&{?M!Z z6x`S=(-@}6<9T`sSMogvO^C8Bb3>NyV;-Qk1dn#Tc7J&KXtc3@EpX}#py$}wU~rWi z=u^Xj;O0xZf~ZS_*BJU5S(r^#7%pc zD#o&2((?o`Edgn?-evk)y;T5kE^yCTg)&9Zon0i19|ER;&<*8yXp=Ipc>C!kNsS(e zIfC(IlobxOmWz(gm5pq*TswU;lc{O4CIXA`%m7rkJyobD$3 z)s+LS<<)p_*QUYgNvMeNCgX!~|*P*LTX=31@<(1lK(>*+2HVV>YLoah~<_BWX=;3wD07T)}Q-%ae85K0obT zEB1}6N}^#LQ(((hUe6O7D94brtRa`}Fg&o|`++Cv6+edox0-;<^IWeBP{%00W3|4% zCfevZe)O8J_s&5+^&k3_m>DVy_|}vWEOARcYW;R;jQ?k z-}_IzH)Q;=c`?&?D7(a8>W3{mwg=$wjW2&W)#Lfvvuzu}5f{@V_uiY@@LnDRWYud~ zz+K=pf01v5GGv~hcO|@_^q)DI9{t+a(xxq2(htA#m2~@uK9siX+K~Ygd8M!5JHQtJ zi&xvVmNSR<^yJ7$1~>p(jrI2dY%is2-}0uQL3rpJ-$?KOxt~e(jg8^KeCqJw)Y!Qx z9Y1s!z#VD{^r=r~fI1iK0>ItA-8Ak=5$@CxwoOizCt>MM~j3&xvs};aW5a`h?;Ig-4hVXV;H!F-@}qZRECOV@uUwC5 zK*|h!w~nla{QMlQbQt;~qZc&{E&)X5(o|7~faesv@;J`op^w3cdxb_l&lj{*?;2gI z2xuwaczIb(8h{d}8UTNXJm@y?0_ogdHrC5Fg_rgUE=|gCE>C`b>|`%`TLM%Uke|jw z-1Zv`^wh*i8easI_I}12oGV@oK3fgAJ4c{Pb>ylHS6LVU)(cR8{w%+{+M1#q%go!K zS9_svWm9hg#u11Xu-vhzPV)Y=pQ3N5Ynbb*v!N-#c2^SAVHC9<0d4{JWjN`jjZr2+ zVuOG-5R_VDf@SE1-Ut8waw&a4oAin|>2+zUk7YkUv_*2YMzmx=2_yn*Gm=Gf&pGzFgC5%uVq`V_2;rF z@$4*1(%Dx9x4iqGpX@iU3xlW{Ja&*c0ky0|@t$PL4FFRZ?Yaqg+lc;_=f>k0r^eWy zBN(YkkX-}2224Npx%ZSj5Us!Sl?%Cy=F|8Z;{*M_niQ}QIsd6eWRA_^I?$+4HOzEH1L8Nh(IblABXk&1#?|K2b}zwx?@r|z?r~Pw(la!NSX5h z0MZxS{(%psXTE=5`itNA4PNG5?teCo_w}Yd*Ibi!?A;6X$6Trd5Z%6ifBL)s-7lxT zaJN@NU2)`@XVTI8?n|B9wx-Q{_oVy3{G~LDr)U|${mwjdFdgIbncw=Ybj!y+hDT@( zG%{aH+uro1)C4t6^X8uP;63+5JJ-L!zmgVuz7Ihrw_i=tSWpglC2}CJq1^IiSK`sy zfbpOjJ=8(zQBhf*hWZEa_#aO<-*s0yb?8uGhky?+QLc(WoW~w;I*=w zHt*+nBjZBPenIxVSM5#jfB)^Q`Z$zMo`Tz%LOVNJl0wf~y-=b&Q$^muS^Kh}FHJ$B|q>H~N+d8w@*&H4F)t=1uETm#_Viih-i z&S~>SRZ)P(0t^A@)1B6-mvjj{)KaxLrmRDtTUr%8xTR9b+6ipS!Sym&Btt01gsq8V z{1MRi_X{QSl>(j&0zN-V8y~^5{XxFNW1NE!dL+VK@?C=Qp&Bmo+6Z1+iLCaS_hvcW z^_JGFe1TxUyP@N0CZ8Z|uA3LC|J;5Wq;90J@}p;V4yfjNvTNP8MeE=colb+$@6>v~ z;(X^h^;2VTRf2m8#LfepmjiNct7}fzY}%5f&C%Oij{aRO?W}r$HU_;qKKyuWhIwIY zeM|70>kYoWwH=VU46o~&)Y{O9F-7lwgKbuXp(!6-XzX|j zYM!GL!)cN8Heg6Q%V%O`F+JXYit#*lPS2bga-&yrzjxmYC68I> zE{sA=1W1*_X%W3FX$<2Y=I>VGrtHAr;q{yuV4b(1RiX~>BL*xLZ1-DFcT>jWE+rX3 zQITh6W}Xj5AnN-6*?SLY&93u2@4LPCI`>ZRgWf>^qyUfDnGX#el#RK`1qusnJPXK9&jP8I#`8y}V}DO|Jg~Da?%h@sFP+L(^;N@k?*t@osjDEk=>h>) zm!hQ}sWzB-Tibc=<^kjQ0INZHsO)T%Y*G^2I;wca<9;`U3?jGZ3T}D^RW&fG%z24@ z>c`JMH%kC@V%2}V(V_5c|Qf%xye=M1;1z8wv=fVjJyB(mwqX}e&78GL@5JI zdK3`;8vx|5z3^gu^b;SCy2eI=q~0HY8IAV?_uP}ZespL!e)6yUckz*re}dqP%2h1H z@ZeB%5=5?N&%XG=r#=;TKJrNX*oQs{5H-U?OIiHKm#Zd#E`}9KS5XlVP$3dP665+d7bYy z(f8`h34q_en_!-RTo1hWeX(o*-uNuKzn+)I-et5Nz&}Bjn_tG&)y~UG zU{$;1Njqvclivl9X0T=U+ie2znJ%&W?ZXv7b+`L_k?$OpzGvs4B@AOWPab2+&&jvn z=%@J#)CpF8@Pkjs|NiU$IR55e|GV*X|JBdN9wS4i0O zHkC&QB=+}y@PkQGX77PJ<8#0N`*9rR{DTkP8=HH&lU*bwJ1+=wHv)o=O^+qrX@S!V ziLdHhFM*mh0DueR3IuxLXEwZetlzAQdgU|pjm&m|$}-NMUs)s=GIBnQ?OlM19=ASu zZI1!~pGISR0tUN%U&6IGPd^GoT2Gw@37l4n1t(Uefo0ie-=|N?^BAtQ1lm`@@^+u+ zFS2izI@Pkx!nL)@I&%nMbN0|}(<@;`C#eheHscr+FcC_8jX1iefH9Od}5&7GG>$ymt zUJJS0iU92#<6rPrAX^kvHokzrbz2YayNaL|hm?Bs%&yT@-4I(kI+$l!xxsbn@z!s1 zOB=Evm1!lzG!8J^C0o23XHOS_bFGit)aM^(zt@DTm;}FN^2_pE;l zJ1!=ePj)r7$Ii~4R42=vXHN9G)LD08=xhw)#L6UpvVL<$Dkr}s#_N&c^JxV~{hC8G zosWczd7FprQCdncTRXg2@?4Ks_x&y$8|PRZGR8e`k(CApmuixG#C1_pKo9SnUMp()qhbNCPw!a`HDyUUrUM3h zTVr_~>7NAzuRB?#doS90BqvDNymu&Us(LDv3GITdu!}k1cv{LlXBbdI3NU-;!; zN=!cGA_T6N0eU|1-~3{_6VAe%-323l$DZA^)1~md-P=*um3V>YfhXyCryK3{-D*8c zPn1E_LM(&RLi2!_f;^~aH;Ct_-3B(a2#96J$Bu-;#I;pO-+Z1?6Sb*3{r$=vmO zTAAS!B54sY{!Vn_w{|r~#oS=(+Zr4@A9(+hv2EMt_%`tZe&;`aGCukfAB}x`cP1Gb z$EErnJxFB8%AN(xtcGC=B#`p73>nOV!o2{jR#MGt8OsxZk(K2jXFjpg7A?65m^%m1 zY1@2}kPUCrDWd z!Y146ThI#aNay6>x5r#dvR0ODo=rGU`e&z@J2Do%`Ap7ECtY-diIxE1E>ph=nA!s1 zjv+y5ZIbfgc>8>bF*c8r;y4U%gmri!VbusMeZg{%^Z53L#^fNFXS}EK0gMIE1&>qT z@O_57W^lBu>M)~kTy?-gYQ}>vso5$J$D8?9;Dj(ajShN6^loOs>rE?dU& z0?@49eA0NQY{7OVhLR(O)iMI|vw-#9KTNAQ8sOM8IJ6#>P#0t+1oNNliZg(S8D(Qrlw{u z=(aoecqz*47jXAJro@gmyqcu1TX&Dwm5lZLni>Tl-`-LhTlwe6n#V!rr~4h}opo&E zg7mrMG+OTy0QEcDoHHynJ1+Ycaek6jbL{unD>U(Hs#+XVSYTsVpe&o0Hb!NNS`-#2 zET9Fvzo$DWU&dyZqXV#g44D{ipXqsLIS~YqhXV{her}FupYqt5i2UK`swtJ3#+?!)HmzR9`ecyv!a;C@9MJ?}Fv|FPrp zcXLiC(oMC1&m%mZB%9yVjEl_PV1exE{tcUoAB6=93ltW>0^IF2t&gOQh@h zp20*L*FwHr%Y+-`CG{lB+73r)2~aO>vx7+2 z|6oE}C_i6j;ZH^1$&+#5!3UyeOE2w#)wxm%E59q=_wkPd zcrk_md7eTlr;}}hq7OgyV=;klw}8rffA*)N9&m4(;GT~>{d8h4%H+?%!)vYE<&V$W zeffRG*6X$aV<`c_41UMw-7wSl@7)#q_wA1V^}qig;>jl;i-!n+yCBt*app0Me6CAC zFf{vL{{E}ciX_Z``sDAWcmTEab!l9jJas18V7!|sA_3Uh5C3K${OGa6@$^%V$6b52 z#^BKxqJ#jKvf!Hl>J7%ad)M~()TjR-Ui$tkv4dc$2^i(N71XOi!sE`s2crl806+jq zL_t)p&GGuc*_fVlRYnH3dF@v7eJ}genD#ocuH7)0M+RWvt^uuHLy1|z;Rk3uy(ClzF+;cycxjc6+p>Kq*466x{UP3QbjED5~Tq(dj<7zK2**^Af4)@ z+?-NIW>(NJSJM%hkFHHPTNe}XTLSYtfwde|>OWq_V)9*8q#bd7&98MZc&rx{ zR3m?31shVIN%l8sYaA)gKLX^7tC>f#%R zUW!r}>PfGkIw{wsJy%@q!130l2B6z9wt_Uu^u$zhh}fQdpY`#6<2D_vO2nK)7UpQb zvRyT?chBxWB7j$C2X zTdU!)ASt^BV3+ zvfSs{K0dnw>)lnBJXdgUli23*e(!3khz|bM0?dz288AItN!ZD@^RVA%Ij)X<**UCu zBu~NificJ}KAZAq9#3|0&$>DNc{RDvZP)Usb~RZR$6R880&u^?AjQwZ0)+)K3wXoz z`M8o7NN|=oH{mjRUu-w7g{-eP_esE}W1~t7RK_^0GcXEXbxGFU_um_B14g*?MK%XF zv`+%$EsvBQ8rF>F_WU6t2PX30>+{R^Wq@RsPoBTOJl5Z(fJ8T%5)7c>ZZO%7B>q>O%|}PD*)X_C#K`M=e`@;>En*})+FIj4yczH zvuk558y6X1D1bbGoYGf6|K<3}kNspk`D2eI7U;<6c>Ev#=%2-lYqBymuzo#n5m1~j zYjtA;^SugItPJ@wq)cY}`=Vphmgpl+z$D<~md%?IsOEUI4qjIm0$nn01@W4YhPtxRm@SY3NDF+ZhRRsh=!_e zfZy{iFKbKY%qy`R*t!OSU0gw`2S9LdODEu;P#^nfFaKXiW??SbJdlC!%{7_6^di@Y zO#QnzZ;!5tW|+2PFtKI%m%)Iqi$QEPxvB=cjzi{NGR}c@i>QS;J_fs5@Vl12%O+t1 zanmlg>&R%rsWJn|S+<(VAzi50C10##DrDXE_1CQ5b)Lw$z7t^l(BQemuAilxGIhP# zS4JPz;()~hNt#1I*I=M?)UN@AbdGv00Jgh5#US7)``+JkB@5))ANSF3O39dCUcTQ` zO152RTsBUOj3vf&9WpJ8^rvH>7G3=@0=L?KN|-p`&B#ax2zP84zu}%c?u+rssW|$| zYq7h&EwSu}aI`87;|d4I))HeR-6PWY%Brw{Egd%{4QQzX)VjYEN4d#9b_JF5u{Ib2 za34F{4{%+}bxIl7YKk)V;2`_qDI0?V*XEvSrwji7@H5}+i0u3<6Yb--+|G_MZBz=- z?tR|lowIXq2FG4cNTaexi2C=}bNs#)%n{tvRPQQe1aq87nAUvcE!*U3V;@SziXT zJ(!ztF5r+d0Nv8seJih5Zkv?lT3z#P9&@Gd9-r^?dzPF_FSkA4Uwjr8xDg9D;?n@j zK5rze;@rXlg#~V^1-y@Xg}R!3M^{yneyPPPERcQ(M*GuuHYUcqax%)z96C#!DQ<*n zv75Xn3bG5N3#xlB@%}4@;IrgW@)(#{O00Js(;hbt3B>(X+~0=SSC@jYW-Bn)uc%A~ z6o1|_3)uHXdTT9k<7mxWTfZXr!UBZ_-bM>}^EK7ufgYR&n1H0s3T|E;vzu$ScVqqa z20sPh?n6Umsmt`K-}<}B`tLVT^-Et?*Z*GseSHz@x3B;1G3$S?|DK<}e%t!*`Tpzs z%s>+mp>+C<=Ii-tt_y6M{GI11$dlOn06+qS2J`a?O|WAb2?aq38JYrdZuh)Pwa8PZ zH{p*k%|%I>i=f0!$ofY*i+sNDA^h2IemnlfKmO;@*xHu*`!D?Mzlo;$Rva$bY6UOD z6`9R2bp?iAJ9IS8e(#ld=-2*EI?i#_Lx9uA-t(^b`j`JGKK#L_V=F5rOe-)@9V6+w zUMsW?nU??X?|ui?^iu5YEQ$C37eCGTS&Gm9!5>6Dav(Zw+6Z9z5IXJxs0LKd$7afl z%<2F_19SYqs!aC{vsX!Bn0Buf=v z_eWq_>5?JjrVI>RCh(dAw;ZP)dRhU49LXfQ?o<3z!ekc`FRzcHpN-6nprg$%g&FU) zwLtj>A|F_8oSWwTsJ)Z4mRpHydl>tHP}1xVyFZmJO|1P~;T zUiwn)^Ff?s6Vz)E8J-1>^BT_bkhP0^4vs*J$n^1R2to>wtXv0qI~~^mb{^>7lG=mi zQdL}yAlR7!iC+H~YM8c6z4cp^(Hbs1GnBN_4T^wtcZ<>u(%sVCt$<2*htksB!_eK` zBQf;QL&L}Z_Sxq;|G>Jg_lI|_=YH-=@7yU@S!M>N*rEAFJ)8-A$L|0^v+iR}t>UXEE*ng#i5bF#^x{$vO)#G&#PU7m~$x_R=; zcQWC~5qCqD`Nc~|KFoohr@xDG#JmV+LhjmeJ%CFfd^5xPaz{p-%?|94ir~v&_VI4b zLpWTyE3)%`^E&=d`qoYpDEskOTH)I8Ww{rdPLV@mm{F_}%L?(90sZhJKXb>_-)-A9 z2lgEX@=iHPc#|VH_u}`hvV|-HA7epJuSIkVS$*fd_s_I(k`)nX}HnQfm-Q6B+=UfzJ%YCv$tf% z`^C$chIE7YO@QojmLuWx#EI~`M4QrFD*98w;G286tK|k$o&Yluu&)UZd2XP_G{&La zvhQ7#`$-G#NhOlb%YMicsZbeE;-}){?IntZ=vzdOGp1F@*&_ClNxfR{7qz8YT6W}J zW3(gtnXceC#6S6WbG92q-UC8`f;sPgmwYx2!FB+yPvG5bV)IM2@Hu*P?DK2YQBcy@ zpoWjgJ97`lFhG#wtTZ~FJ8Ly@Q`45A3cXxcs zH&UJ2cyNQPuR0flsXgtD#_t|39Qe<_2Fmlz&dv84-`fR=Ndw4t0ieuG@;_zyq8>Gn z>I|5Q_|+$oyTQjJJ4KVDfa}#a&j{vR(8HmGj4u=L_rc@yrAmN6PT)DZmc%TbPr^&{ zX>aGvXlJbFcBI9E@8=V#M%cpB)br>!(bhNsRH0|!PibKory+jl&2HeEFWz9Sz$khw=ogl=OX1T)@OmtuW zByyaA8kh2=BBdcXcj%A_sr!}eOI2&>j125rgvJR4V4sj9FJm2~?h`c;)`tZc_o7^^ zM`=l^72rcn8{oAV`nrSVQKH=+zQKH<>pW3pYr(lFh9Y33yB;?dq{&0gnDQ2CZD^r2 za#;mn(SBF>vmCYP!4RX3&+Zx8`>8$rXq<)RRFI?@vz#8ViQkn^q59$-$h zn@xFsfdfTj9A3Nlb%q>Z9A~xcqtC(84#pk*O!HvDA306@WwhhC2SOOk{&@GxPOuG4 z4TZ-V+?^fsr9cnfP(FC?TURSrf{qIoNV(5W0Gz@^T-#*iHcYplVt0yoTwLA=T}&^C zk`nb@g%t}1;=rak!)Lm-Jn^})TXi5mLF<(!a2CUxUXZl^WRvICG{W-E7jHiu_E)d} z2UJX5Ab6wA3%-44k_^zhsr;pr_eV$zEAQZjE6AZJu`bJ#X(xYng6SSBMIU{#eUSG9 zIk;P*?ID%qakiLpK$Y5@J9{E<DaJ>IV!n6|4!L~i-m!&mLtEoM%#j=4%)YMHxGFMBQkPZja>akdaj@o z%E#UDzSBXQhnom7P?{)p?(^!23>r>C?#+Jg?(&D9;&*pV=Jzlviw4gb>*OWx2*N72 zr8{>Zhvsi_DaXN8&0d-sCFuc%Eh;VjBU|N_p8KMRi~bA6xwX&e12g25K+zcNDy?akIwnbLa&(q(3Y@FG6BQ7Uu6 zzk!}n<8)XpEr$tSKF22a9U)P(AkiskGq9`uFuUx(JQoY5z}mgPo2?DiZTtCRctI3@ zhYQcL%#<7P>s(2+V=RgGF7-^niuG=4e3s>B`ql2al zi&y_sKL{o$k;^5OEj#hb^KPY8aG@MP#fxvzP*M1X4+~2PqD5MuwBm5re67L1wFTJ5L05SX&4PfqGxOkvC-9ZT63QpIk*rkC5c%WB`wE?bOeeN zp7oKWq1F>RJ8@T+-d50Ecu^?6n{e}W7Z4DoM z025{Tq;iI2;!%iUgjg=Zkxq6!ue-^(_ zWKtCRA=t<{YN9HSsnq%QlOns`(L>%UTpzd73xWlTzk4QeQ0?uzuVV!taN(@tm?7Cn z;}jA(DaPPlTrba%2oWx?tmHo*EqPyq8UA2*+`YM4DV<=Ud1m4-C`y^{W#UIj(v}g; zj!-ifOSk_JDk>@}HrMd7cFzZj*9(k99w3(q=x_!n&hk}N(uCCVsqE#|8WWLdXXV&$ z^BToS^#r$#zZqwhpXbq@-AXDMjj?D^Ck8gwzq3K6VK#y9VoUQd|mLOoP1+oWpy zcDI+N<`tMvcPt)T9#h6dHfgr7DmqAfQNm+VR7Y;*yfL&3l+@RKU&D87LB`8;w1 zsh(Qar*l{I#1yA2R_uM?OA8vmxx07V9Jb*ZR4SHZmj%j`6_b-wE8u;)Q=egK<{#yt z;W80`+nbW(z{$%;u;B~8)okLsD+>3it!Ur{pN6qRXYGG6q@%-sm?TN4Z(6^u^Z&?B{q?c8WKiEWQ!GUjN+EYphE?lUk=%Q&A0>(}fHr2*&$y z;oG^235h>JkbOPU31tXhR=KA{dNgYr-mLo(@o;V&ZQDBnd;VL47x3y>J!2m^ksy+I zX8s!0Kd`;CZce+)wkHhJCp|*ZH*rPjDGQXvzvEL#-Iv=9YWj)dkHn<@pXulYA*JjjsNA65J?@K$oFEhqLx^*)KNVPjA z3_-U<)dJ?zn=+EIOg)SMnl0Sh9H^9vu(iU`Bqf7?EH3X#B&XJYB9qkQV@w&}QXT%^%@Zb(@YiuN5-5l}JS=L6h0c&X-LXA93P)#w)OkD- zC4kPE{R7k9q4+cRj;^0Qu}AzIQ}78xN7ngL_$Ou2GIU$h_%>0rfpeE^IZKGy1h@X7 zU985i1+ri!@ttx%R0IbUn5yF>bhueJlPP6Q$8Wp#0(tcwv>kTLp`pf}5Q@Q}D9fo?kDHIm_LVfc?E+CCnnlj=n z%~S*aWlgm30NPigNOis$E}ho92=_=CdKW9n)E$3>#I*1o{euiJ#t=^V5;24L_)p%CA`xI zyT9nwvkK0wDsso{SnQPsLyt`k*A&Ak$4Ti7P^ZMG7{XzMf zSd=ilSK%nDTp|tF`3j@840hBVW{VynNo%$Bry*C4 z^+2k1;`uN?9!~0lCdVm!>I^o%2^_*m zB%fh>r}5@5$#(u1nG^jQDqsdGpM|YU#t;LSA1`uW(rjd=z&*p0n3KR=;cW#Lkk&?f zx4&eY9BAjfz411` zyhQX_wGot(V4MBFW8184R+K=a9|5 zI+g=T)CXQ7`v!~B_-xlSb}IkHLJuBn#GRfogZ*tJ0AfZC#TI<3pikjv>a|KZi-uB! z>+um7OH$5!^0y=>wO{+&n0x?V?oad{vbU4qZ{gQCOi%@H^m)VTo&{fWyeQ24 z&}pDWV;$%P57Wg#{CaJzuXrNG{z$L|Z+ms#8i+jivG>KNcH+L~qU<<$Rv*{}pEr2J zF^!|}tEfRF-$ijWT0zx^z5mS5hJx-?%w{S@Io_?{M_y$b-?;i;mrXbynL_&e_EziB zX*#)-^93K~o-f;6E}_gWSpk$CnfW-VHq-N+a>R9wSH2f@7=W3xv~Q-wXd`_N@C!~x zar*mgYM*_CLXh=`K#2N7M`H zl1AX_ZAR*eM*V=(iZKWD4-)|ISj%bQ^6Y zx^b15-g?ptCs5wHpj1)gahzZW)?oXuNA{J(bFc( z@aW;Hzkn_1#ei&>&QX;Z-Z)~lz^70@@#JzPH=OEe6ZCCdPfOm8I`jfvwYVJ7Ds7=T zU+`UkO^^eyGS?(7W0}m)$NOpHQm4FV4i_}P zB$AZHUN0H#wbDRZbl#}c!O6jsbZ5`4cQ}kZ1|{Iw*#4APIXv`gmOP60Yq!43L3Z^0 zs2uI7ksRfr^Y~ydqI<8z;njtvS^w<-q*O_1n9VZby`IK>!yNDX+jOgOhh3pTi{^Uq zLsWl~=H#C>4WV^;?M0l!WycqzHT&M0s4oJcjm%f;*%dc~l}&aPe;T=$noz%g>9(ej zOYzYnnAL1C0u2#mrCZ;l`zrca-`{OQLXdi$N+Qh%V$3z*rCCiu8#(R)SlF?>G(r!% z&JFvm|i?Nq-P<>FBKfl()pxLi+%K54L@%?Cs!ra2t`ufnhzvoq*x<+W9}|+dTldK^LBfrP zR&4)gnyIt_8n*_l9XPT?g3l~Ta!1ZiJv|J&eE3hf>+(i1?2U}G49Ud!_|gH2scD!k zx9_q$HS7M#uvzlImv}G4g{hSW*zia%@@Z|NJ~ zx%zM8Q!B(oWO|6E#Rg~bUEQz5%TE?-jfm16R?m0&1e7P|9gsk81)zp>Eat!ye=*t9 zX}w1jh_q=b=J*JeBVd*yBTWv%C}KMv@`z#50`RM1;{50WuCBm=Frh8j0iTL3U_JFj zi^K&YqFe-zb%|=sb;<3_rd7kv$4K@xi|hIu3EL*)-Mv9A&zg!A05a?Tuu`nk zfwQ^bGrFu?2CtPAM#zoh;!yOFO0XDOL1Ud0Nyn+Ky=G!s!?L`!bOx!QCvQj-t=mlS zpd0d#>lf50|7Bqz&ahQ*7ZUD}vdru&0ifN^>l(?OPecEQVj`uix` z_QIeo(ugZdl9|`T9)&*H^}2`5ymBK_4FiLHAnP`>5OSTU%B~;Vg89b!w0rs{g&iWq z_i)Ik+au3hG@5~F_laDg6kw5%#_gOkTJ?_eQ#j0NUD(q;cH;RT@t?%NuM*ebghLbm zOMPVVK;giLZ`7y~ zRr2G-J`mrXa28oK`E??3=6MRA%A%>aR+)k{(UO#d^2-8Llx>K_3^*b&U^i_Z{hx?= z6nPb}X$gle%&Me~y%G^XrIVZ(si^~n=>*>jaIQLCwY#|48gHxr_lJLhD}x}BUltR3 z{&$b^L)Xc2p>R)Lnojf(YYWt)2O}7PaewHYOKQd*1V{>;&{Cwzv@$^oiaqD%KC z_%cuc%qtxpjt|xUN$~^lTdvyTHDjp5waDu=(M*#|g@iK&X^jPfO3Y9?p+Yu*~}N6Y}85UzHGi;GC_g9(=Km8zKH=K7~6ejsjs?@i{T{ zlBNxjKk>i$O#&pyKpUJjb*@WT$l78Y+EG2x7ZoqCBUj~Ib-k#dY!uE7Z1$E7lEzcS)(QFsxje<+#F+ZF?Ae$PUWaTaJ&Y$)dXcsU7J?vs&d> zJ&X91u<(Vue1vER&QxpaLt@D^1&@PK{19m zeK&D70A0!Rq&vM}+U!7T;9ui>%;M@Yk-mwHb`Q-Q6{4#3YQ1`FsrA+9GF7MFmezR@ z4phrJ!c}++xrdUPdbjm+BRWGA-^6k-3-;~pnjKBH6Bu^ESK!gZnw%qz?V(m?s0EJk zSlZ(+3rs0yeBtpt(S=hiTur`UAw`r6!Pg8a&+fWT&i$wQGfQ8ijI!=#p6$#m&9`^KtYtln)g=fB4eNUw}G$&wX|KID* zUl;s7weQjh!o9e>RW#vusDXG$6^+DJW|fiZvpqVAS&Yd#T`oPu4O;0W#=36m!2E?l zK(u&6f1tBCiO?+`b4S4_UmjmFc>KzX%|p2CTHic@L}mGe6}7qP5^R zw{gBd3MR!(!1*vW3(`~6Cc)lXW0?89DI>lj zN!%rf{Nb zlgz8Gv=f7ichN(&K$@7r=T@$@Y z{WM$!*o&p#f6-{;k8bHU?7C=r=Rlk8RI zu5|0vJjJB){L~Bakn>BfaUwlcZeyzk*HNQ~gmKfNe-d{dc)DRT*)We4BbpJwcgLB% z$lcO>yv8fAP`^Ht$qaU)r}y`DZd6W6maEL$>TL9ttgi8`pnkp)4x;cl@!^FgQ(fQW&8|AJM!zx;75rJ!tZ9b9g8G@hd1Dm7+5A&2fWW3o~dubn4Pv&|D^^ z9U<@0tsIlcq~*N$()1hAdGj;|9?IJ!RVb4PqY6=B z6b=LGv|7*{s}ae9}f8iteu~vSD+*FM@LPU@| zA+RSzg2q)SEkLDk#VL$$H+Q#U%SN`qXjHQ5w#JW}yVF-sImJ2s@hfC=s~UXQj`EFe zI!^1WQh? zK)~KJL#GcjuM)uE_9jG|R}y(gnFaKFUe$iK^*7C9yC>Sbe|XPWKMcLlI$>E{nSz1H z^(R3GLpOKUPa0W5{>Vf=8X}9&NrRUCqcr}QzvT|r)_^IwYJ-X$+ymy zo*yEnzPCd}Pkebik2i?Xa{buE?)9HJIZ2oSW}fhkOu!H+B(04)2n*(K=Z|>44?<5{ zAe1ou5F@%4N7&T6d-gL=1TlD0FX93;NH=bWwKp410@(E?ZPshN_>VS*y`cl* zBte(y6EFC3t9mE*Aw5^lGmQZ(IbPq1gKyyaOQHc+Bxa1f?wF3$xKCyH@~2`PB`GoR z8pDzXz#fa69V=OA`sssQ%#G6CUw(X>YNr@LM1u#q{g@rg>%UJo7AQ&aqb5NNovkFO9rkXjHj)-Mm>5V@ zY+9eHF`;K~h~lk-#7v#4XtuZ;#*mlvkUS-4KJf8_F*%FLiuzKk9l8!L%0O~gWzx7< zs7y@qd_Ovcsv#xieml1;0!uNv&*qj(V$VG)mZeXzL+{w2Ecka}mbNr$f3EvYULoUJ$hbc9F+12HDD8aWXkpoSyvSjADa+haiuw*t z$5E4f|5_k-0A0Q1M+~1b_Win8xfK>UzXZcTAr04Di)x%PN@yl&=QSt23Q~%S>IB)= zt4YIQl4P}%t*?ZF?=IFBmNG4VWuZ|rH&%roSLKT0M+}VPOYk3(w?S{VowF#&qlATg z^K+isQVPa+4Cq~4r#KoJ1Y>SSVLz#J>|D9LMGqGZgjZFvH9Z=9O!gXTE_&+P{?d*b zR|nYhMH;*1VYZN^upD|-uY+Izb$Ws`Y@i{Dnb|MT5x>DcUfC>l5O(fm>4WrwM$bEH z5_Kpdvp&Qfr(HbcKK#Tjo>9bTlx1<$5!yMo}i9rr#n)D{bvAmF(QvoOzh*IbnhGdp1_vvSu@{8zbCKhkr-uh)8mS~q2@HCz0jjRdwekU_{88D+My+g;q-sNcFb z#xr%!dSWV7Ih?%o4S2g%bD74%!9i*8%_x1G!kBi~+v`rZ=`nBYlqvKNs3khza%%JX zg-1{q7W6|ghFJ!g#z25&_~8h%xE(rd&k%PV*L#YR771wzD6Gc#qY*KGlP> zUxOw{{4H4NSBfdD5jz}C0iKp-t&#>^&0i9GYAD` zHRu6fJXhjIX8nHM23TGdhT`|U72E#`k9%bMvG>KF2od-Q?GWOD@)sU@;J^-$02iVw zarLAmiZQ{BF?>3ex~Gfnl>ASn1z32@qi;}^Jp9-GawemwBHQ;j(s3+|06wEg8N-F& z(C+y!09EHwtd>`5!|x|M_zY~2pxXi&i}E>xSVXT405oYC88N~uet*hJ1&6{Hajsdr z=JAu(SC?}DpLKiKRl_00dA=9~tyZ!jw&`Qh97V~*Z%UF&jl!~qK_1oZ58fB-NJp0x zU5k3d)$Pc2!eZBnBW<; zp?xzgP)MQx9rB^5lMKGOLiAOGKg!UUeoM+_`f}QrVSf}gYHXW%_kKK>kdBWq zxuz^=SuxN_v?(cKue|g8KD?6~u<}^DJ_2~QOV1pjk8cL(D6u#XyVwt<)*Dp>hp$~u zJnU&=al;br7ta;TW3pnoDvN9NLW^8ik(HCxvnpysQI2+}R*7F#LXE1w4|oI7J~0k3 z2LO(+w^ov0r-W^xwB6{7K2%(`Tv%jqlvm5_JjNZlq>EF~3qRkSN`RK_;*e`==%VBX z5?K6r2Nm|D2IiP{j?oDC(<&C~8UyOK9b?@ry8^Rt5!nI1@%zu5f(-}K)Mbf3bWZr?8)+B=ZUGbrF6 zi6Q+7Mq`WK$F|v2;r@5yF*DSqq-C5Oa!R$&b^l-3IB+#O}NTe%my6f@_dnEL$qodE+x1;C}$c+gcYw%yEXA zdh1>jwObfy#Nl%$TrF3zU|)ORweP%DKb7if47Gf~SdEHORBgE{0G7coW9Kog`khB5 zteteoTXr2`B%qg`v)A>UYc_QkoDHq5B%=DhW)}!nIY*N>R##lhEmzncE(=K4K#YH@ z&g3S4EU)d4TU61qsW30d{I&tCDB;)=HRO#Z7WE3LLz|%Pam*+khq~4_Wvtd`hRq0#_?7Yc^ z?x9PptC5^54dM)?G>IaGeuEBGxK zGZFKz`GX3M{9)2{l>`(+We`>L3srIW1NjFxB6>KD(Dn#Yv3colrtwjw0=pjNjGlkG zVege|8RS<#+qB6E*NU{qt4&lK96^qkW>O%85rPHBNIFlWskx12hb)4>H&0D z<$uJ5o!$4nYbph0?VWC_jCN55ZXaETJX?l8lFzl61)rIyH%jxhjb}6U7c4Is&Rx}X z*l|PILL5>01o>4+OR}Da#THH$fTp>2{D+%jl78uvw_*cDCVn}o$MKJW-wA2HaP*<< zQ&Q{J#Jt-{wKa88>07FaUtF51z}$&WZti9uI3M~Q;%y041l(3Ngq`sa)O6H{BI@4t zoV)rNv5}87v8E$cam_hU$zKm+O$!nV6gro*6AmFR1R#qOOse`}`M-#JKBqV*T_k*H zR`$ZvfQ)>|bgSn#Can|FnK!~-vLdhj;@+;Q?lcf`Y^0MWH_pbc8_RBJy6%1~!xad_ zI`gXqlG-7S3?r;7v~tYJ{Op%&k%nr*w`HFuWrCRg>UMDR3=Ly5*)Gv{d1#m|UX*He zGE!sufKyZAahRT7Pz4pHg%n%JQ5oUY{(2Hy0?*$nhMvu={|9tTs$;hN*k#GhN1j7- zL2T5OzUSjjkq`?$0{*5Ejc}o6L~=XVJ$3zh%;(nkm@2%h<O`x#^eYfP$a}sA;iVQ0F)q_wDb~|GlEp1NTF{9?~I`CP`1pX&PfJnJgFLkaU#mJlz zW7;2B+*kg{8B-TWM&MwX$dD4~eIs!E1n8bC7)Y<2BN$#kVd!!qdJW*2?~PxG{j@QJ z??Rm*?qS0~?tH#i7NH)uY_+X`Sa;L@)5G-qmLmXU-$$RbgPLR{PnQV=NI?YK$J>0|)biMMW*GeM@Yvon zbYF_&I$3_o=t-l$#6DXj(u1gAz;O5$5>SZ+s9v9*&XI6J3XP#br;QZnT-|jhQDYBT z7D+$(Q|{B{-(?iY&K+(^Gx2Y>)V5M3*lUhL=n^pAD2{na!Wr?@K76&@Co)H@P2N`4 z!5tE2k)rkO6@(q2HT+;)G(k>ACK0N=6_y{7PXMWTgCtrbM0W>VaDm5TtS`J zQcP{ z7DH=Uob}!N@_c2=5RY`YbzBw^h?&Z1*|a}pLaYoIR@K&6L*z1SFKYb_;p zzxbGQ@M!Y#lYO!AOSinQLB>&#wr>_p?`C{ytGvE6I^4s2+_#f2P;Blwhjm3GFr_Z= z0p`po~lxT0Wh#ZiqNX5_lniCG#&b01^W=SDcNB?e%zUI)Ag;s5|+ z?IDAa23mkPZXd=>v4a#xe}sUin?nD3Z6LylS2>S`BNc29CCW8I_PD7Es@jmAwc64bjDkn!%P6-nv6g zFsBzyC7CdB;mhrC%mN+B%4<^y6`Fzy@igPD=%LWp9v`lg^INP0loFJmer|q)dcL@5 zF$!rem&%bE0!V&~e%?%%#9rF4<92%*m*VEuI%>#%iV@eNcUbRShFV2wU%X`KIpvKw z?ds%wn9t#5qX@h;FQwk%Q9;kz8Mv#RzHX4V@Y$9zerQ);Cys3v+^F9TbFYi?d)uP` zj(c9(8u){^{~}I!bO`PD>}4VQXDsN;;Y+S(M#fiKbm>d`p)veGj79 zvfB_RDHK=}yNeeOnf;dM(%Z$&uyy73VrF-Fml8|;t7DI=N_o6L{v?nA?sw3kh8-z< zMU93z+Q`rIZb>Z_pxEUoslq#Hc~_Z=>f-3KvJTI&A*limW=a^Lo+hs9mD%PuwXl)_ zqfy!{nNJRnep;(g|D#B|uB{7rC@={bIV&w)Tv>cm0hnyLjJ)Npp@aISn^Ria%P}Tb zaEkON^|RR9Sx6`8yfOHK*RS%e4eSs5l(4QwBrR=EI3D8Tz7&lQZA2d5wB+4j+Lq5! zQ4$KKkAGK+O5^a>nPZ8rzb$}fMjUr|5umd;xA-w`90jt=RUl1fs*XF*LV5`s%Wcgp zCOc#n$kvM+EdjI>npC0;W`h=u-yt6a_+1xm9WU@vuvbc)X1poMhDeW;J`G=+_}S~p zQG#}*6NIakDZE_$NdO)wf^n!kSKKgBnZm}U-1Le;8^hrvU9vXQK=$ktg>z;hp87~= z!_{IGckh#!FgLI{Lowb}Hdyd#sLOSQ@fBQWC~+<62y)9^?#NlPFS7L~{K?iV>VxD~ zptd>|%?ei+6Y0g57#pm|XU5=40<6@UJskmlVHCSprSBJaVmM_&EZg5M^)|R(9H;!Y zn8u~Zq^?G!uk=7Ws&Eku^Zp5>e+&@;;Ldc3E`}G=yH_o%5E*%*+Xvq5gok#SvKgb0 z8OAS(;>*k-$0B~^5CQ&;%xrsW>{LBUv8saxy0PK@SI#P<75#&k7|d_wXX++E9&x{S zMDpKj;z!CT$JR`TjT0qlXS&CHc^@r1%`-Dx}C{!KZ z4U-+_XVNqcms5xY(c5-?EQ==+j5HVvK|4_yHMaC`_e8cF0Z7l;Hu3BVNG@ENw0X#0 z;H*3*O|_Sn(g^||SOvajpQqt*rL-+Q4-SuOKFxN!3$X(|^7_y++RU{5yykg^w=@-G z!!V&_H=3w^e&0`Q0ASEJQrisMv`5&_)}|IZ&PtC^Izv16B?WCX^HPhP zz+o-NX5ajS$upWPMXa$$#9@Kiuiw z_$yDF$yUCXs$U^<0%Oeotj5JKZ@8ADbMA-K z+@n#}nojTFZiwZ`zwEhBu%NWOB~N3vHG1aJEjA^18{tr@ukj@c0hvjw3Wdpt_W!Z~ zl$8gNGkUJBNcFkVww*p3I$DzIZdgEafS<4_{Ms6?(2nGDM=}UV#xD<1d;_5+W<4Id zG<6jVUlM|#HTxAj6+Y}B?-Spn{a$*pfO7(SwGV|{zQBhxUoN>{@<@_GQxZiI~Q()u8~d&qGje|E;>* zXa=#59Qp;U$jJ_F(*s~xRb>aS`$EPsVS9ptYro1iR*f7?PKS|+H(9(AcFbgBw6eV< z$QmY%*eT9PcyGCp%?*N%^|E$f)qBqK_O<*2zn3v*wWwjXiys-*ak{_*)KeJ|A6Fl- z?v9S?)I+isv~CF;u9!?J*z530fGrf-Us>L?LC)PEJaycTB1a97b|G#*H7T*Cu-jL- zY^q>DwX5K8UpZi06J*x7(DWG}%d9i^bLZpYjjA4J-cvoa?3ra?LmnJ8I`(NoUSSqU zqmmFCki1fm;J~#}w}DzPW}l;#HfiN?jBR%K>pRnjv7YKdG?!|7&?%F6o^ zdz0Cm6vac)rq8J5-H!d}8d6UO4ce+i$to-s_q~mSs!rWG@*O%VLbS;+F^|dED4f@` zP4u=m*$jt>;oG{>ASOWJ;V`!rxQ5zYAnDCdc}5!Hs)Smld5yRLGMOZ-o64eJ1ojP? zF0Ssj0)pBU_y{jCBRrGww0#F#B_D$^>Z@IkcLrjX4l_^bYkLYjfv&=~!YjuCjL|BV z7KN(ZNW{^uKH~b_t9mje zrK@W2h?$KIOLBIaH@{6;Q~4%;Tup#E-r{TT@r>q1&J_>+=Y}=gqD)u))p=}iShSl6 zZ8hzvnCKc@hRmpDRa_2OphENtUpERBp|87FIvE_loqa!Ls47P%?st=;H=MNFn? zNn3G~9S-19#)OCk?|bS@S2t8NnfUQ?G4j?n2?i=3J2mD~Q!6DV+aHL?GG@;379@R( zI(RU~X>NUjNO0@@Z;_Y8%Ht2~#?(u+{Mu-6xU}ta}bd3rLfaqsq zHJVbyEl#92=%8nPA2Shm13&x56{qvB0~u52s@cix4kpuO%*A30B`8_lavUtn2})>7 zDz98J$6qy^a0fq`Wv?}f-3o75t+5(s9_+C#Xj z{IAMz&?TR)hO}OJs!VzLJkFInS$!Tv-fb06tx(spadqWFG&uayq7Z4ZpSpWsyIvD( zaMI94+_!=k{-iLciT(n&A3e|_?W&gp9R57SG^U~(nV+tR7#{udAJM-{C${z)bQD*S zVAl@3d_7r~&o|?&ZD#fJj2rYyTmgzTaYh|s*zA~c^BdNNLwdor6sY{!THI`Ox6t10 ztf?B}U;%{5RNWI6v^k?zrnDY>XsL0`=Oa>L{GTME8|35|68i56hG0az=&c=CXkM!h zkN8W8%A$V78Bb22>s^`^}8JV}G7|xAUG?cAzNLo6+z`gh>x$c@^3!fF~;}>t{yB-`?2{0)HO`W*6S{s*|`fL9l>THVPLi zom848iEFm0J$!O0yo2)KuSuv{@m&@nAt=l=f@-ukE%< z(Ucd1&ReKC1_=fUlU-xd^^;+CW_}Zx)Kd^5;tMtZCdK)smOzQJ;wP_xhA}SGsE6V^ z+G|qR-C$S1!Bp583DWz3VAr+Ib|R>Huy)b;d!gm=ra6vXa-b`U8hdhbOT8NLvfF-4 z!^U_Jti>N#ZL(Uqq~j<2YhgDYVi1$M{|KEoJd=M;-^=a)Iq2^sthGCphK9^0b8b$h z`UTL0k>}>L04u;2le_0qx<10t&29R^71Tx0WqQ32X;nYhdDh2Wvt#bst~|ISkmcQ} zo2QZ-yIaQ4(<2)|i!+m?vLr>VzfQ-?{&tjWl(m&3S*^));pV(}-WGqK9(){VYsLfI z4V`ZE3gJs}He!T6g04j!Qg{$kgPd`8wd`Bn;6_Kc?TU`aoCPJCwF^8NW!+n+*bD!l z37~gwE=eSM7BA?r!7_O&JUoEZygX5b@(n{cs(JXsuCr$93^ir>hsAK(!jPJTx|2G) z59(s)W6TQ&E?xa3qF1!!@`K!8J2em=&Hx|Y51WKxz7$P2`{jBygu9C5m>VjUYTv+H z+uW+UtAKWU*S*nw!uLh= z`fHBvtW&N`Y=E1BZvBkc)&o_zVjP8C{Ss5gd}eWSGMO#7(>G8Me$YiU^l35p8(Puq z(SX+Wmx33WU^2?|)i8@WL=)ge52Sy;2=7zvtY~eqQT*R4(%ypdQg|_Tta0=bOQWv? zA#SDb{iF}9VHiNgH<>ip7*q&CVGkVyN+?X^L~~pH2@XBtO56xYC-@-Sxn!jACHy;< zgn(WH2sx*-u!iik{hbk9|Hp9!-5%aZztjQ&Y(Zp{Jzq(?t3Pv>75|2D*?Yp~i>^DFaAV13#exT$|oW|l!yR0ps;cCex7!BAv>(EJF25W57GeH$JiZ@dk49M&0K zK)B}u*@G?ZMq8(*eirOkiiArT;%F6s*1LkZGA;9>q0*?J0<}{d$GJHzQS+NnMWB$C z;zIeOwqKyjYNoCP2WzMDxeLN-z<2@NfOCNX$-W8VGU*Sz)AW{cO6S0k1Bi4;N+TiN-Gg*U zcXz|kL-TPz_xpU$-+k@lxPG0r_Bz+%ZVQ&kj|!7NdaxD>xRj-lsCX+oNjy@9Ub*yH z@1MIn32e&k)cs+=J~bmXai1t{r)9{n`5UJhXDO2Zz>Zrtf1V6~&k2j8qGXv1+5HQkae@qYk zMsQ4lD)egO0rdo49GG}Sf;zKx)M)JKC)TKPiD;*nB%~8PAS81S!>FJ|(!gl55H^=c@3leLw3!DdO zoy=L(t#m8c*|Th?C^Q6jBgHhki1Gy(6}ygDvF*N-yr~k@?xsy69KHwEwIl{)dteJGKaT&^xwlDE9o@GEdBL&cI$HW{fGfUSLsvr9YSic>;e zLnEv3l5<)|L1M-dby)l7cL-?$$(-}-7#9+{yfCp~cyu)JhvkC!%+ltQ2CTi4p^ngK zwpVd8U?h}sY*NFZ+ZA94`3ItJQCrgZ^gigCw^SORe|6ci8B-cNw%I$+v5Z$GSpukS z_ZIPvI|MQXZ;pRup2P$XrgmErGi!eBl1Ouf7IUQw{sf#+9cQSGrdPoXH8JLx3(e_9yA)gbrTilyC0I(Jj4x5j@YoicIb*~C{kVQ>Q9IvRUG(wtj8YHqywv;@VF(5*uW$lqb^hp9cThg|Da*=Q>DZxC?o$9scg2CBoxj%`4_DAP%>2(syZ5&2 zK1{JLa+7)M>kRm_E5A^C?%Ed3z?WZy>Z_XAguI$lI*HB9?Sz2X1%S!L#f6;YrVHu5y+p>eyX2z*JQ+kLnASY}f= zYmv}8>t z?h0w>3h5=9OkB|>T*{CQQxVt_7c*Xgu1I58ahPH;zomT1MK6R%N2%kHLvh*Ww+Dw` z&8;st4u;$w4k9aLd|heGF9?4!*Cne4n6!+3yD);0y}$OTbuCMPxzNeu-?SN7nz1@ zg2G2&HpEC$VWiXvd+Y0m%BtLG?Gu8ePD}OP;g#`;AKkJPzFt4w?VoKBrdt-p=It5| zVjWsi))MdBePNAOQO;ehsnx{`CCJ?}C8UOsTnv6$4ew{M`W)I0|Mu^BRjL4q9 zeA+o3YjSfCEXiK7(hFNYAywQ2F8k9*lMfzn_U}e=pNwRrg_cE9F=(DU*Ru0hY zHCn>IVqvwq6Pv7U(&K!UDn0ma?)Se7YX3p^=0b^MRc$E$Du9H1R)*q72X5n2x55wQ zE&O-5p398eG6^DF|L5KfaX$!O2N>wNmXQ?-7kRc@f*>Bprxuj6>jv}EsCkjkGIrZL zBfPqI{owJ=h>UyP9V4RW$%+T{;nR1=_-Z$#pYE9Wi|HRNkJ*~xfS;p;&)u8R*H%`vwa?_ z_-hDPgm!k&^_zNlc-YO?)4j~>S&@!n_jX^ZAB?hn-ON9gYL}91m@k@|BW$i1&X`i6{KGP8YH{tz#V1a?;A1xH;te z^wqykG&zX28g{5#EDqcgQ;cmBa!bqbt4rbcGr->_e{lAzrJ)B9Gn)K(bmkzc_N^9i zr!`-*Mtj}HaoiLfyl?`UOA1tBF=4mpFk1G+O7m3=pQuMV2@K$=SdBKPax2t?F*``F z<&&8>QSy5+WZN*9I3j_Hetj`u;2{Q}T3YVrP;rCW_Pr#|-|V#O?XXZ3ONnEiD5*p1j!{-*xn(Ne>k|$%oXv<6hXekrzB|qAUriZ#% zUL>B^eLxuf6CYA70VSPLMk`ZcMgW#0E=we3(}s#SIyqYKNlS?Yey4$u<=OxgOSgGQ zXil;gMoU;F9VJB!|7MAxoqQWLvqS7Y;&Dp9ORMaPcU$*`AYJngR_38m-_%} zu1AAA6VCY+Q1m!iZG=WbnNeK4A*$2~f%QsQ`G~hTUR$Y-J7#6Ph9ThZ02$!^h7eJs z{_8lCu5k2sEw9=JSn?slQy&QwbHuE z9@H7%_J*u4Gg|k|Qf5J;Dp8Ytm4`)AE4Wm07Du+I*jafGSmgV9#QPtSF0zECA1s`)Snw2JtfhLc4OYf+yKx6SMQ@-x-tN&aMexdG9!#>_-2( z)Y&OrOfNU~HB;uD#L-dA`22H_4aTGoAlk?9DUmGr?|gfmAq9t+fd}{ z`IDLHd2O&7-hp8A7a&i|UcQKZ;(&R~&vM%PqpdyZ_;2fMz^FX_lneXpy*7F9*nmGC zR7g`P?oUfR4qJ&4WMpKVVRf8hRiQAS9(Fw8ZQP?9hoRH7iVNZ?%s|s@_wP}BxUud* zOA`~M8th?NTUh`fFJK4ChsLB<$30#6Yk_ngm{iCo1@RXE3rQGFiXr{|=KP!KiEz?P5j@()^t@`6@3S7BU)Pb|DI>8D6*|cDwZ1vM zXkR%V52@`TT@;ZiO0nno2OZ+TI8rt#q~?p|Hv)^ABEo5 z)BWQ`-_$c{CRbhdLFue($mU<=WV|*S(I&x@_z~nid_XvY!9Q`C5R+Xu^5gT}I5d|C znvn=y9~iHCG9Ml2qp`3cGe`fG2=hf&nOw_ML$_N+L9U5zd~5WN13KKF50Dn_TfCm% z{%k&2IF$N0$z)$Y{EhUIXDc~QDv)-|HoN+&ZUrqb5t3=QKBuU%JeQ1It3kvTF;XRz zT~fs$h&H@Igq2LgIh@_U(i{*BFi3N13i6`;$n0Xk{|XI8#uRU z76v7#9>_3SF%5$=n4(v^$Cxq$Xdw)1O$-Jq87R#}>akiQHOh)Uj9}4KTVR*0HG%}V_cQ3rPF7%udINd6ys@9%b8zm; z>E;Hc;Vw<-+gr4#u0i2l!ONwnH)>czzDdwx2ji><4qKZzK#4GL5p|VGt+Tp}zvxA7 z%Rv~6yAr231L==8f5Gm>mVL7)-zr#%ll=eZcEd%mZu)mzZ3I!$uDw>Uh*bsFQW{D? zIbowV?Ys$<&AhY&PQoo)WN;gOL%@lSS^mbazesQstSzp)f*&MiaAcLf6JhGm3h|4c z8-eHZ=kSg*@u%aD&KsIO+lv07^g~Icq#yA}{kcr8)R(;BqG}qel#g_hV`DR<7W1uK z|89r!xL!Q7P9lWil3i3kAiSlwHNKB$QyMD0Jc_$a1sK}1{;chnJzV&aP6W{VeU#!+ zN#J7L?z0tKG>C4fTzE9-yQ2BKfbSlt2_DN@%hO3p#SC6Q3EP-C<>gCW-0ODZuUo_- z`3dQIYy>RdS$@5qOkG#4p?FI`&k!XYuFVnmt|g759$wA~S3MQ`$&C?z|D2Ib(*G&9 zSaq6t5w6W}zU@7m?tS7baPc_W^z1sepl@JQq6egOM{>U7x>`gI!5h+eQ99L#Pa21a zTw@}!lW$Ajc08=pEMz_R80*UTw7eL*KC1AGi8G+t5qx>HCWMs`fA5B%tx|7juBQUBCXXHfU;Zc# zO0Wd{e85sh;8%6oH&o&)0V-epg2@B0X@BoIf4f0~AyY7jVsBv8JkDZ!O3O4VY!t%` zmqBfl8tr1EXSNz#1cah1qnq?ZQ2io2B~*y#6LdS4!QVEhohhiTN8aG2R^HBUzFjw9 zK|b_!nDM%zLVXsyon82Z#KOpt>11`Zma16CDVe8oj6ZgB#aFLe(C!$z4+zD@F(74x z`NknW!+|i%24q4(+H!y*V8U~17T{FUmH;;Rhc(RjN1_faZMp}H%*sePYtrSCa+TZ$ zHV`1S7~l6q)ML`L4QhWg@{(9JOCHT=$g|eEyFRWOd_o=CNiH)(D5KwSWeV9}NW}Fzgz2u0s@K*hWcmxp?S=QlJja6yxNz2d_>!2X&|5fEN zNQn`lEVqq+8zy|ov69Z#xGsjl{)V<`Pe6MY3XJ8pK0P#Mj^THC--I{di z&txCjoiZ*|(aw3@l!Zwhui3D7BR}@MTy~w_le~+tkAS*;GvV!n@lVotDfc@2c0LAxE1vB~Q0%H1{x`A+b* zcD;q^dx2)sfUbR}mLDdOYXSgY1{J{6z)&NDMY>mI&1^W*^0+|kh!`VC$n$jxkxP4a7B65wZ({0f6^nB7N_j;L(jXj>26!Aat@Sot3C=F=QL4K&;Y#@h^q1;6)`X*P=IVaJ| z1Xfko##!!fT}KxJ9`COt+H)lAAm|vLCf$m460w3}%xB3W7f7^!Tv1y@gmRCk zlyEbV={-3`O+3I?p|X!kc=~sLYsBkgd>$qfYRMps2PsPgF@ zW4qaMBWmtMbdLr4*9RU?>%#S}R#~3QOeiA)VbMF;`Tn|G4hZp@l@-wTswvIWSjf@p zbBI6O@T6uVV07E%dTgAoK9cFH{B_}U+C7C<07;hT+2lDrkp#D(pqah>c{Cxc@=a)S zleR-1;exjnM)vn7&kYXp4G-;oQMJ2_!;{Rt9eWa18MPB4~f%ye2|KUV&`T*F@ z(yilUxmz!oLeP(NS5L~OnzuzvmkR(wQb9j6-?cgY*kZ*Bk5FE|G+sbybyTMvH4_ys zGY$}Sy~9PyLxbAC5miu$2ZO>~{?NALde(K}S&)AgJD8hY`Nk&2hM6u5hke)}spB<~ z@3&IFqCDCo9#Z^^Q_x)%3it}k!4wu2q9;$rC?PCt&*3RO^IYWOWY^EI9tQmNJ=W~P zXyQk%ot+w31i_EUk(NLMT=Nf0t$Z`HL%9Z^HKbMB?Xwgekys%zg#b+*Z2zm+1DeT^YQYj)$Hdms z!-MoBC}!|G{VtMZ7+h{I>- zPe#$&{_Hk+%v5}?>-IOpSqdQ^Yu=7Gax)TY#1kgUil}iPkrW z6VQ{sv?O1$Q{~>yk8eMKff{lX`tM8BegXKe*u}oe{K~R#PRdx&bNTYgo2*iNCMQOF z(VUuZ-$oXG(#cYy{7TYUEjJP_Q|#3A?mk}00~AM`vmV1cj)2zFagQ`J?Ndfa>QMm>%8TC2A z&PSKU_y(3(!zdlDe}e9P-$fG7Qe|X7k>ak@c$OmH4G8H8xj-2p#kXAW0$H@PkU_$V_lL-y#j5aqHZXy zOIE;hY=Fb0n3zbtlXqXZT>^*I``$u)th$55M7Ze}k_Bx^ZlcS%G6WAHEvTi4tQK0< zq`>33wjnew!^>#!p>PZYtw1>Ysc~<;`7)!8N6bR@nhM|8vxUm~xcZ^V@9-zOueVCU zq3LnUSYO57dn~|B9}$emCjWc8&RkD`tdOtDkTq(sx~4Lk)A&}QX~`rm(gN;X(%8v1 zuGW`4`1T%kJTONY_WX9gMXC3l+kU4j>QOu%75x?|?K2ovs%% zH1UhA9?NwD7gZ_W|1F0+$l7$SP=^i=VPiORl>*h@#-JNJ`a14aqq-?AsZFQx2~vLZ zaR&DIQt8|tcLc_jZ^>606g zUTucxwX>AZqK1ri`d3668@f7cl`I)_+=mGVwqFE>ay3DQLLhCUk{tbycT;_KCJHeV z137gO%NEL+!LoSAbu7o@0bTXK+m#;$%)M zksB70WK9QSpHeN@W1skwns@_y_A-kL3Z|V0QhFzHhYSz>p?0@f z1vDb+4RgQ}uyy_fJbU137mA*irue3w-ccr^CY?e`;i89n!xF8H@tRSv$PrkeLD#uiAIQqIJoKw6+QTLIWO{j{W92P*N$AP; zAkeHF0E-?_6{KCm<1&Hrjf7~H@R_tTS6Br!+*cc&e`WYp1pOM2IIp=dTNDL=FnhOo zECBmayR)Xfh$WVz5UeKLnjkDTROfLnue3$fqqoS%f*hd|hl0S4J=ne+N@Vp4kjF7$ z-^+J#(ER|rxeNBjul8%J1c}{k_eC0CWOw1mv2u^r4RlLJoIl<$hs&Q@+#}0nRG2PB z*%fi#+7f(+05pv|$$5r=0c4~l3~c55OPVo=+VL>PkR$;g0P*j&(eoHCQ?1aL;ipBQbY%*NSBv(S96HYH+9|`sBpC1&K8nuwbF{>R19-KyL;T{n7zNPO#1hGRQ;4feo!NaRx886*yc9?M zeS4t52XHN-TEmcOYo6I3_UCgL`bI;>Bmu+KXyL!5hny(e#pnL+;yU`0Ej4Cn9=Fv$ zua88n>v*RmaHZuN@1ubOPoC*vKr?-P0c@JLaTJOYniBYYsN1qo2 zp%Dg&vB)NGIcxwTR(*X1qJ=gbgeXECXv0gaz!k|h3F1gT8DxprJaaUs)-(%0^yRi3 zW?#2KbfBm6*c6*)4Gzs5-y2Ay)cBi#x<%FFf11DRf{bX1_>ex5SRTdhNiCo*C=KW~ z(8GvFcNu{j(2bMCFMj``*zmL5Ya(qQ-@angp)zD2LVJzjf0bAG;abyuZX^ke9;W9Z zfJWMub5iD`O11a8VqHI=`&NrgLd$`-|7SivCN9i8x`9p&M}h_V)N`grF|1@j$gNTO zHV&i0bx%y!d%SD$vH|DQccG%y_!zakU?SkL7Lf}tr~5~2EH`cvlzOw*iK@y#O%}Sv z(@!gyIm`2j_S304Y)+n3ngtGbK$ZJI*x}&B!?p-d9!hhU8m_~&gI2}$<3I{o; zt-e8#Vwi&z1pcb%=Z=Zy996Q#A&T+c_fEQvn|z$kgVv$9fNxGvuo?5_MZ6T}n!?^3 zj>`73Eg-HwA&575nHFe&--yi?MZ8DA>R9_kU#hYW)7AIYpiFqQd}VaS{jkQ z2atKn;eT;g{(wZva@yOf1(@=Be%Ds!zjCL>jPcAR#75IsHtPc4F^^Qx7y=G^H!yi* zZM|8Rq1PEZ%ZOJusS~kJ-g3tz0ha(;h}AS2tsK9V0bZk2EH@_6@**&PFe8Comf`VE z7YXizv%u{xwqF@So+=@BY10PUm#HCY_i7S@Gn&0?KOStN7Usb>gQhM&w@*$KyJRhxex^*)z;`#euN z2Zm~XSaFN`<=L$ZIbiwN^BvTtisb3w z2yD}(pv*wnc!9xPGPK}aG}~4TZRped?{Y`wZ|H%3vvP*J79E8~0ZV6q)BG$MkepP$ zpLDiwQA>m7O5?dMvPUplZ7-zw-vLMSC>*ot>)Ze4=l_As>}Oyy>Bsy6Gy)|5LC}t; zVAFor4&e3&!&~QA54K&;7pF$gpT7lh_W8wlLl_5ZE z!Zp&{6M{yGZ^}r$xCS*Cm|^=wO9ni1%;1R6Y~# z*-U3;4hy|JAZu73T`(%He@~rzh}o1@u;!3V=_$z-fr&aVLqF6Cn@`okrjJ9`)Wpd4 zRQAew_;oYbQj;SQA00@Yg0fXaP#KBvll1-loSutzKJK8fvN(BuS6&=36Pt|(=H2QU zZ`UFGOhzX9_k?YMF>w@q(1e{?9B+?WES@CjxEN|@Zm8IQXpx&?v@UYHUbwr=0$%$4 zfwh4hkfyof$E@=-ay3RWB1IGQo-9|SrM{6EoA3yG!^hhqmyeYb>)~)nkqtAmoVI7- z>}3a!m{5XhneGRO8ZLeD3ItaE8PZ;b6*W2)gPks$Jbhl+_wjeUSahU8!i=TV{zaL0 z$wW+&P1##=OgulK-`NFUdnSFE2Psh%m2CS~s?%RFO55T!Mr$BXjFUVfbU4y^{6<>KA${ajc!_=%zCN#wx$fppn8yF5HP2)lTC}Crd}JCA;Tf3y zIMmPMVoWbLL|df8k~kdG2Tj)D65G$foZ0p}x~V_;Oj_o81K(LCrO0xc0XYYkvIi8I z8OtH8z#C%aki!&-B_vTFiX;ulR9=DOJ*sv5PWahScny{g5Ou^M>Q%xX5;dY9ra3{r zWIs9{8DU{;1PFUB5#%K5acuRha=w-@Vei!R#h@Ln!$*9FwwK;iqi+q^POI&V>8t>~ zcTu`ir$$Oe0%5V)D-s!Bbx zLFMYWMq4e=4r`7xz(;BFj{6DWfV< zmTV5~l%hZeZuaPoi6aHqvoRm;7pYx+)_gxsd+ToDYLtgHt*xV3sgAnz8L7~cmU1E4 zzD5jE6(T4xeopvpxW^eXSdkbb*lYnhQ&!bM&*qCc6Dl}4cYfvm{e0bb^Y-+%7>*xZ zz2~FWOCfT8`{YsqcFWTQ3GA{F*5tqYZG;!+?!vH}ej5=_Hz6Ht!H3suJ_WO07t)5f zMdRiY*7Z1W(;~E@Eb_tO-v|{D(kT78H96%~Y@HgaUoXGiKNYWvt^UGdcw2&x$y(wb zdC&Di$^4@^zHfTN!OPB?5?Fs=fzk-aj}gu~`(ZUa0i;eH z8mTdhQGBPIV}Q|Qkv{~grFCMa71*WvZPd!ZWvmA@S@b&%FWl`(4kgdImfT`}=XA?7 zgUz=KKnln+0}l%YMVk6*_hVWyQQ^O?OMd>n#ATo0pX^8bhJp3 z0n#EL7j*^D0oXOwu z+$Tebwp0Ffg;emPa%ZNJzpw0x#KyZ{5Zd0(h&yrc3&DFVFoG$&4GO!x=fX=TNp3Tb z!xan(u-ZE+q&i&S@H>+sW0XGB>dpEw;#+x1yoLV7ayHOdgUVLEuXJ5BM}44#`o;Y{ z0B<|nQI9C=_GdXL-~|SI3pxuF=?5lKppFz+SYVow430SYz)=8(Xi!O5ZmIIonV7ay93cWLuasV@rarJU*rCmO$6Vu`MqV3R_ z{Uj;y^C<32o%ZOpx7BCIXqpztf+s#1^^?}HK{*MKbJTy}g7E;Mo8y@ivlh1cRrXuQ zVyVVgh>=J=M}AW#Ssm#XO$!`(GP7IC{&aX@V}vDex6G)|uJV7mv5^JmH0{c=eVWxDfp}hvaVYL- zRQ>Pg`fMOEBlS;=q;RYIlq#*m*J~@;*=DBe8>Y|N&z!Q+5J=XWsYuTXQs5wqL;YAH zhsC-n85Bu^Bcr?q;@nI!Bc*SN>5}q?G0LLxY{&~}dOV7MAeEk?G5&uf! zciQZo5Js-{pXh(eK$B9OgFj^aKkL|6Ee98l3{yyL35s7Tebpec9j&$`F%5uG!ULT@ z5pI8;)S%76WLlWwB|Pd2!Hp35;cDlW^BE zSt@OuAVHO`QT(cweynA)#SADFDXqY$Pd@maA2y$k!$P~=xU%kB(d(^8T@_JGP;LW| z6)}b=VNCfwO^}t8mN?_O4C)LN_Lay0xIkT}b^`sc0dp;4F$0jAqOI+cyHh7CaXIM{ zg6V=u%tlc*sMaPsokad+D)F>JVy_RlDLZ?Ccjg_mR@=9kEM=_8`$BQ_@!Yb5ehqBm zHL*f@(C`_UaGEDu%ZMa@rar6W3vv0&s#79TxF6Tw-8Ay}_mP_8vk;o5cE(i>>4B}o z#Yn=c5+$#dHN~y1uGu;h$?M|s!C$Io=nKt+SlOKy=7f2KYi*M7&inLp0b#UDic>#B zA%FY5IBYDQo&LiXW{C7JGrC){f-*_|b~FBtj#dMKOQwmR*z2kO!&0pyQsHhSVn(;o zrJbajC2--7PrtSPwzTN4vJgZ-hPHRzl&7R8Q{g%11N%?FF9mjTwS89YT)$1b%rY}{ z*pQxECZm)K2+5i*ADdfgk@bVV@-nOMKsZ%^y|#r@G3L|7ZI>5Wa}*VAUze#kv`YZZHCW>a zCCSHuyg2P&R1LGnx51)Ld(gIrjSlOO?(k`Wdggu~LWz~xE?buNR^&71m#*S7a%xSp z)N+?EUyBYFOTZt;Bai*%iA3G#|HBbf%YmYwmNfOBKl^I*Y<~JLywKQ=rknLDP9eL> z`S%+xV^CetF$N^yGfY6T-yygU(qw*GvJ;%P2blq8GeQc1kxStyb4Y8i24z z0x&k7rh~5Qots-u1y+Mzna8FhdA{&hsX{-!^%OvAM+U13uVERszqtzk=!5#hL}ZQf z5xEjH0926dA@LFAHU} z2@0a0eox+NKAKH3lShkfYJwDS$srLJi=4ln!fP`uiSe9F8ZsywD0ydL@rfo^$acEI z_Uip!D&&=J&5W#;0=Hy29fb*@7qGH3myir-0jO{E^EJXskOogHidTq=^@C2qu^A*1 z499eRsgdLYBENoy+>r|Jbldr@Y>ymL0h%AYNDc0YTC0j&+u9mtAr>8|60B|Z(ZS$B zw>o|rZDN$nZzF_k_NHKMfOAGK`vJ*Sw&H?GLtpi!qByD94pQG#7oWtLol*u47PB$o z>p{Un=~ImiBi+|sEZj*p@abm!^ir|+j1m>y>$V{{cX8JFCL z3xuqdP^RiIbw%0W>lS+Gz%Vi?t%K^Sa`g_@hRIE-neks&XX`7c7v)81_fmD2!S@}K zcZ1snrHn;S^4h(gpjwV$iN?11HVqDw)bAq`=h~S>(}N6fOcKjS62TVqY#G8m@B)uxfzr0^BwnADo_kJE15a1YUn&CMi(ZXr#S+zP@y zR|g3>ye=D@TS_+?^O>Jr+2*nTeejZ;+skG|wlhtRrk6_?XQ+38XgTq@QrabOer#M@ zG^VNI^D7=CoLv`wS4ihXT!wqIx^HU2?;?;0;)wY7YU`L$?ny<)d_OPoUb)&2Z02ye z@n1LV_0MPRp{`HQk2MwZKSOA$R`1Ro`%P5MCJ8jI;{Z2r+H37~Y0u~qM?R_3YFz5Zm;Xd>s|HRb zGly-JjdH{v3EiG=Z{gt{yDO_1DVU3s#6W&{ZAMAru4w}irY`VUWUj_(WpK;B@D1R{ zOj4=RXsDM2XgVtDTY$jgDeZB|gLd*=1A_4O;Z_b#Hol5deoGG22T%dl=+Ctdf4M^U z3!}tC<`+P#PDiR-LkuAWCS$NjJA1k0@pG{uTt+pt}v%f`e$ zywZuM!}d(TgQCCwkU~#tg0cou0=274(Ol6t6}3{_lO|#a=_Y%a(Nv7pHC$ZtY&Tzv zDUj&wdD;7{lpmH1`jwqYMyqGoD1ZviVM&=(A7pfFkIN7xhP^vGXf!Hrt^0F4$`p5N zn{sB3X?UQn1)s*8)!9AdN6;jZ8Dn^KPfsMn&Yx2CV`P{urosq*Tg1vYQ64+Fa5=XQ z+{)-ajsPANW$cy$NIee{@FyC68X8x|ad6(5#Kom+*ciXgoXgc460K~ntMziPb3 zJHFS_-i4>bwwxi=0*sT*B%dqZ(mJ|)l`}Ew+(G$>{9TBdMelXAnctD*`UV;n8R{BW zA9JNIi%mgGl|1NV5($8nln^3d&xK)FnoxydlJr*5MZCn+{1Z*xpg@l@09eh}3>F0l z^hYkFP(X*7P=$8Q=KxOmBH7l7CywP@-wM=C)z13~Qns4Muk?M3G|ecB<4CGJzw1cb zX9wB}DZT=fB}VHXp6Skz7lQx#!ij>#o6+h900#{2axs&Ojy;8n^mt=(@Nh~~UZ!2Y{ot91 zh$HnQq9cD%_#>O$b{GDkAI4Tm`frqnc7aV3a?qz5P|)(FW_(GFCJ^0M`67es>ncXB zvs{FOrHW2NoweQIE|#mQB9BpimVszgX&<%kFd91NVo3!}14861l%(wHthdq7!m-tT zP&rGGPIP*%3y-R*J<~zh_d0Of9EFS~tFnftFlyh|(rY1_M%)39TJS4DxZ~+eT1AOU zNxe5*Y_SfJz0EYnr}??rzplResV>wH%@L9G2hG+7UK1cs7Ci8}Ko=PiiB?-)7TO^? z|Hnu$b#4>TlUFZ8Ijl%)Txn&w43Om~@-By(B8tAW1dQXGiB!G_TaaugVfxPk;mj>pSFCfl zii;39&O96@E5QzYvE2gL0cv9fk;2?m6(Y4hl9VSSi%^Cf{{CV?W{fw6-^|6O!Jv?( z$~e`uqMVR?xNX6zY4zd98{M8WB8yML!)465u#swTLe}II#+dTzehspT#i`C79t>1O z&PA}LMU=^JpEi=9UMS1)LqoexKI8CqDodS)SxT$6DTVSUT8>RcY|x$74quFyKi9aiGQVdYcT~jeWvUT;b-C}xQ#+y!=ok#KrN1nCl91v_nfHvf%D zvXy{LT3(?h|4>Jj&+RTZsom1~CRG*J2blq-_R z|GOIXeY&_VbM#%jKAGRn!s1~CG-nBUuVg}Y$nLL3{YQG47>_DCZX2$>I}oc_)-(-{ zeiw(=`CQL`+}+*hY%AJ+!*5%u=2{kAa>j43SD(us2k*u0_V2u2xb2TozRH&$RA(w( ze{`pYs~t>*2^?>QZC?M3@tt5K@^z0d+P~cte|Zg7z`6N8Ey_yw?fpFAa@PYOn(5p~ z(6CDNzb$AeU!^zLy-;?Km5luYcnkGWm6A3YT6}}k zZup5+ynUw0DGE`&VOubCh|#ycJY=U{_@Mc*J?BfIsA1mmxmks-|I}y1UcxMQ=FO!r zR5deS^H1p>(N%27Wqot*q^RGG?vVXWP)Z(|N+`<$wg8@>KVgeT&&+gIwrsF* zj$6tMPo-be525GCCj+9QWJCehXmuQQZoa5%^&0o3Q_S z+)SU1_fc5E(YTrHbisEVycoF#teJ+~#rEgn82j1swi%`huzibaJ7R7ip6Pfk0NM6V zt_Uvv(1~DA`?p{vhCnUjP2?{)pCbBC)rm%Pt2p=l5g{K1ZmL@A{{J~kFVDJ6r2$>DQ+>~!1SbWVSs-5 ztW&13>y%Ok3uKm<@QaJqZgG!6CR9OIf^AI{sHn&F+l!2tOXT4k&}RE-Z$Vh8f6MR@ ziP)RS`qD|K;+SM^xHzEUy0<$O>G2D{-Y(_VN=#Hr`88QS3o4aN-|UF+Rv?>~_1 z`H(T^n74-FY#?gz@-x$R_=9u`hLa$SAt;ymQJOI+_AI^vmpEOFP48G;RYx>j+*dLX zF2)n=D?1Gn@fZK}{(QyFH*@UpiBQEwkj$HBVl)o7wBF!*;(NtBHfpU0Q>22;=vcwE z3Q+IXCZ-J62KrASJ_HkcCyAx0cdX+>g~O;IL&l&mux3T2UL`Yzqvn3{*}xzN5@RS} zjcyxs4&YLrY|U~aiI~a`F*71SbOo6}{C9WyE}!M6yY5P~_YS$H9H$r^OVP^F!@WgwkZ+=5{5&YYWzqj z*c^d}B7%l~BEjUeH(*p4<}R~kL{FVS0Wb%9Pg>7`us2!zw11&wW;6rqv}6I_ zK{Ap~-lSf>iK zG*xOeQtvM05myn)`=kweGtM}d{37YJ=ZFxLDC29S3jZvId*i#ig;|`dadhg#S;^c> zk3anD%`!;PAZ==aM37W(S!W%(|DYj zaziXqkoii0J1NBN(w_>2{ZYoZiz(2kiPdr)b#=tj-KsXS86KdGI0y5c2zovqaz6LH z?uSX5PYce-edV=%A^dC2;rI1lY*~ZYRq2A927%74_4I_CA>u_bxNw(F_UV5S~#Sol67&xfsN5xW|6;*MX_iwNkx09{aXKY!l*~8}%#c z+OyR92UFa;Cb0u=z`=VYreJ*m7Wv!yozJxU-6SPoI9)+&(}OF~9tME4d;julcT(f1 zZ*AQt&6-bTIM&znRK63BXlYz;M(njx`rwD>4coLQRwC4QkO-{0y4?B>u3@=_JizdJ zCPE!IcQ*1hXBAQOnJhSD1Ib~C|7a6W(r1?b!P6`5~4yk(IWCSMrLcLmp{djbQySd;kJ z%m~_7OUQQxANGH9My0omxaP5%MYir++J_k5DvB>x6Bkm2lC&Gf`?Of0PIQ@|ZgZ|H zBnQ&Cpx8*tYPYXXh$*F*$QYrJ;5AE1ud`8FJ?Pq24WkrE7laX?j;aI~1PH`bHt=OE zf|k;@x|&^;iS_L~ z39oCP18-W!$261g5^;5+ah&=6vG*K$j{$}$v-oq7?Duag|SM>ESmtTp5oM{g>T zBqfv)Fr>b;QM7v%CSPUI%;r=h=-63J?a_6{mMjv4khC|6yUY<>xWmhWcT}`{=v?t| zIonG2iT#mW5y&vz*Y5QlO(zpJq9Lh#UHG8E5()pR5C(A~!ZB0W0bS|77eco0+))3{ zC~c;cdPDm$`VfMVknnmJCfPd-OTDizc*J%o-}lg_Asm~b(mTfx!Jc3qd9O23Llf4d z^QRr2pZma(9FHS@lXxTC1=5Hgs`}$J@1%0dg>h}rui6m6#m&`|A|l;~(JI<1D-)GY z2Q$pvW!B*eJxtaO(7EPtuF)|j0w_1Ms^jh9o#$aR!Qr2JR_L^;C^__l&o?dCfwgftMSr!la&ElD|@t|tizMYiN z?PE`0>vpHN?^m{3JNwAZtS*M4o%AdOgB=UXL z)bndM5F#Z|Pg-iQK~yvN^CA!e0M@*?)yVKb^hQI?GzGq@NJ@&>0zj9n{pehn0L}}& z_pQjj&JFMSk|G62fdBRcE25Z<^x84iI>&y18SpnhKgs^5KH*!x+kPJX77+X{>Fi;Y zt0aB%xWB}AsaM*=EfEIfOiLIPbyrWL3ues6#{(WQTb1VbZm zT%HQ-qmsCwV~Hv5vzbgBnnTcRKI_sdCm2etu?6NUfyjU+s&gl4!eI&WaEa-Fy>4}P zVYs1!d(PL^H)(R)K_F}eT7J4VRgVcdUinXpf~{|g^DJjp)e&{b_h&cHKyXoLuuE$% zNpxn~oI^C?qJ8zkj%aH}wSl`7Eu+vPF~Vaa{t7zNH#ZkLW2C?9x1=|Jnx*iauy{0Q zr6W*z$EodBF|i1rx@=nM&Erm%v?I!W_5oR_hasQ=$eRhA9h z=AfiiMx>+c4H?Iek?T&bb`!jr9gknAV6Y)ZagjMy{1HuRon#NncaBDX&)utxb1|qV z$-iBX-NYp)5Z2Jbcrqhty$)S^MH51fhPhx8$FUEZYkt=p223}*x3v~ZB8nIUA?T>= z00$wzaSb_hnM1CX3XoChqIyC6Q*k(Km;6Id#ogBB4%B^({5{3e10t|kQDBv*_YVWg z7Si3}G*(-iB>cDY`y=0k(QQ~}?~6+v zRgu)LqyDhQ(EMchKRD9@6tk%Dc%gw~EkXZ3de5?aWEYQV)(Z0Ccb~QvPb`Rlc%xUI z@OPgVPwi6Ul43+PoB7Kkx79wr;Ppo|-usLoiIcU?bNh84EG4v3S*9Z^eCp6fT+%@I)5& z4494;!kip`>Mvc%pY6(A+qTnI5gG6)G?(n!&%3{P=>`I|otgM6C4du}*#&)#ZE}-i zIh{UQH>tKtpDI3UB+Gaw=@r z5{7Xq6ZuXf@7j2DJ~^_KWFY~^FF~Bw#@rTP;D^2#1eJS`HY0i+p9WUcu zKq-|ojz5yuGNILXnTS-x??XQXwBG;@WVoXnl4?|T+ zCcZ0+=j7owN9q1CPgA}WhpI;vg}geGk{X`X%gD1O7!2FnB>hD(7uMLE#jS0P?(;nlcJW3damvoIsBR=;g^Wlj3kH! zC_~_wD$JQHpa;ug2r}Cm$n$nW<0*_G;D)oiu2<8PShvj+^OSMrc0$sU;XmmyRdd%U zKbr{^%&Gl0HMcge!iO~pUCJ>6TttAo1t-Y(D1lgFaCbm6qP0cr^`{C_3JUDl`YB>f zI)zLp#6f~IS}!7Bt%BY79{(@nlofp$BNku`!U;$4BOMBpgxCWk3nHfpmhg`;J> zW&w^uznXCsf&GlOQD3c|*LQ?l^p8dafXD2-(%jz!j3+QnlK#!2+$FK-nL%JK!#F+zzwY14sO16KIiCw zimLrt$8UD^lJOm!wu61 z_bERHVk8B?a4mpk(3k1`jnKMJ;awRoA>fWKSac(qJkII5X}oQSP3-C9d9Sch0^zk} zmkW##SvWD=s-5+eFF~(1i*82}=Okvroi+L`DkT&7RF9H(S&fELcH2SrLfNtcCrd7n zjZ7?(lVYjGrVQZ-ISmsSu|GDD)sJtY|5=7f8lWfOVvVyBF$}+M$W5Oy5z8$ulQje* zg>a$|Aj$p}A}T#&Z^4i8|PSPk+)`L0rnV(u+@-=E3Gu?ZBfmz zZjJ+Ts4dixF r?Jf8Cy;Ol)#+#wZzg4bEVw^^+LV6S$hLrL)C%l{*&@9Drn{uc( zQ6cb9PWFmM{3tKi*bP{6aimHEPkXMho!UKqaeaNSF~|Oaq;<3Iw>d27fs4wb5zFlD!k&v%GqxH;nQ$y^!i|*HIK?u{L>rJ+j=oABI1pU z`40ihT;H=Cm9S&9LMY`}7w#g? zt8T|S5rSkb;WJ8tQuOsqCy_(t{8T{#^!{Lu4`@le!NoO|>}cAbKhz(h0@4ymVhbh zXojC#fs061??c^+9=#3oSd!rNW~9udd3gIs(P_2cz1ElPk!{Mt}8AH2GT?~$X#dA-_d_8g2jsiFUS-XD`=Dn1<@KetmfyETwp zv;8NkKp5eH9E>FfEgEY5RM8d4B@thHOlN>SR*+)^$44g}|H1P{ua; z7yfkle(5^%bAR*D^SH`$<+l5NG0s}Fr31iSFik{3Ay^ZelF##2$!(>l z!|CovD<&4kOaR}B2RHrjbt>O|lAB7)%~=1`)Di=v5Ba`y`3_7%NNTe*Z~Sx$j=_gl zW;zEvK4@!IFx&Q|^4Je`b$3||A1z*Grama9O$X+28!eJJh|1Igka+MPdS$}M}B-+Q8)ueMbC9KlP^b{sctAUcnTLbk#!U$1}>Xm?t zBa3r2jytjYOtcv&lzW}@xL~HD&pEGo-p9$vkz)8oBgswQrm1zTCmfD1TdJJWQ!w2w z?nujCZaRpstA^N0j;0_KB3snKA87=le;Zuex#CxoLz{?EL-O)Kbo=v}@V ze2j4C_VX!PYc;@;_g;rvgVe$v-I^2iXPN?5S9hR8zz3B2SZd>9 zbwSz0gbJst1tby@ife&51$~^Wm6k^iHl|NP-VQ|^$N~Pvp1NH@bTjzWwQQat&fd^yz2xQzB&G8j4aST^_&s-#$1N|tkhztOSO3gmkJ2B<` z;-%n3Xfj{7&+YG3;*SZL11ftzk9aG<4Ky3+M_jNb$W{(#GxhE}#tkE^nn_Nr%uaKS z-{dN>_+N1r(*!Cm$Bqx5%i-i{``64PZqW|jXxX5_OtGu>B$^<$#}C_VSl@|uT9-yV zKT1Y1KarTPXiWid5`MPwl#&SALWu7i-ll9`pG9<4bpJoEbK8~Ki_>{o%e|}mKMXYj z@k%?64R7KY#3?&9MZH{mPV?iEp2@cdqRHW9eoq%{pwBBBWZ5)CO7B{o#HOCsvuH+c zlq7<=djv_CQbfxbPqUrNZlw#e+>{=UutxZ+*sUg<;l4H$o%Q#_t-ZRC$T?W_ob zPo7TWDP}twuKwzW&(uDxHi9O!tH2bWKLJet@ZH}sqG1%2pM&;|C#3~fhBCu>KQP|Y zf=@ipWcbUd$vr2AQh3c}cuwo~Tqc?qVi9vrDDm2n#XPL3r&pU7{pKloafv{`kff(R zY&PRdEzge}T_yy6&U{CCg6t z(=YM7_H3$zUUk4+CYg6+551dWe#QzI?V*Mi1LONPay~5vyRTt^ZLr99Hu$(%-X|oW z!aC4iJ-4_9L0bw<*PJaPA-PitfuQyQX21h<iX3!Q|F3st)Y~ky|hrZg0{Kgv>#nq?JdQY28u5+&8K;MaJ{TV zzV82y9*dsbk+Ir=PvGk;il%6~}$6C+ENU72gja7gnt}vr2*%M4+ZMS1&Lcyhs z14yoH=})7d-8cjxZws%oyg?AiVW20!kFuEyEJ2sK{dLOB-C$p;#LiZ~G}@lB*w`j! zXfrS$?(v|Xn50WE5iVHaQB0BA643U}FhwxYw&lb5K2k<+LJhpd$k#-p7S4+rZ zlE+H2e+a%(a+ zTx<-Re+7HVQ7thEicY;+kKi0=4<*XjCydWnCMGGBOkjtVD1!~L#n;Til2M+v`83ef zykW^RlT-rt5DVV9RqVm_45w)Ny{4Gqf3Nmuwl?=7EvhP^{J6e7bLnLnX3zUa&LP{E z9qzwT0xLQHwl&V;hB}>p0NH#xkh}>voru^#fGEx5?9s{hqfEl<`YqEF^n06ApbdB* zd(xLj$9&V)^;Ev~aRtm@)n$>H%}|>uzXs9b>oRC=hkN-xAjoY!^hUM{;9>uqm{u& z7V=kVM3}skeNLDA9y35$523G(fVX9J4-d(_{$qNo0u@c^NP8mT59+ZfC&dNQ?PA6& zwgfwMe(hjigb6=|dlQvZUeDDi0Sy>oY~Ndmj$5dJ-X7S+H#Lzm%cg$)7eu+|Q3cCk z?dL$)kIy~f4i{XX$wu41K5P(liynHnUEL}62~Gh>mC+TGUj;r)oxph)niZn(ywj*C zZ1fEJ8s#Z^Ad_ODfbl}AJ^vwO#;0wDq$)0?i*Iy2W@0^$cYo8|e({ei8V7@ZGZV{} zkY;UsE}(mp#(yRjU_=cc4QncpH!!LN!lhtevKLZq>bEzzxJseKox4XXRV>4(Betau zM5w4tLDNtX5c}RKt&yRNSnqk07l&im9q{s0V7OO571qIZ@he6v*q-G>&^dwx#TKYS zzb$F6#7uuIK&i}A&;u(0pTIB1`X0!cyH z1AEmZX__L@IM$@KTPaYIxTMjfg2mOEkTO1fw z9pNeXmzrMfp_Dc6_w14pRjj0G8DB1N9RAGds1O=baOSIqOs(PEGgTtqA7LhZmKLdd zUqB1Sk8eg97z<`UDfORx32Nys8EAKTjS@=+MmofuDUv#pJkp+9X=&Ed%QNmQU}e>w z;O#8@GbF?EMCJ1fQCRqb1ma?4-zw90>C`N;w*Mlka>eYq=yuMt3Y=`f7bjUnaBiL{ zhyO39zrtZkc}L}zNF1E_kI#R3;2ROIq&uj#&Z_UzA&tZ}bD`*@B{dz5E7A#k315qO z#r`e3&HH)(`N{L3=NI^p(_=l@>0(C??6z|U=D&Dz@BDnU4Ar@g^}KX^iMzu9ikVvE z)w+Wzs;nO-pN)&@>8IY8kuw3)wr0u$4i!>w>fBe)Q!B5VuRp?+jV!)6FfSIH&QIpA zct=JK`8?c_SkL&@t@B^+YFCOXBDd*kc`3R%9h5zvI(xq48a^=JcWFO|+T%BNe-P_% zk3i`n+@bnW(%iuZ%sC1Ak?_uD)2JXTtT>0}c3_x%=Koxw zR5ausQzWck~qN&acorRsenR&`%QZH;X^zti$jY2@wMb5g459g*Yd9YNgJ>l=kRk6Ez@2A z{|V6TYuo)#&hYt=rlnET#wfAPM_U*m<2^zfCpR`B!i68hzB1jRAdy7FU)X|ja?N8h z_d?rAn@_-@_~EBJcwYORtMgZfuLY^Ua`|O%b((aZZj$8P*E6oXdT5e@TX?7<9N<8d z24W15`=DjUFVjmd5%-?D6hb!){<-`&Laznxy+My}&DAz}18Xk&!r*1B@1nBt@BFr1 zOG8kFRYwR6O;(;Z_)cuc?u#(E23Z)YelCTi6`I@m2lXw{edUf!RWDopWlQoZTSl;v zXhwKNJoHWMwKf!J(dq&l(GRl;dBdf#o}B#R{`6yE`n=Y?X;?pGJO!U#<}qchZwmjo z?Bmh$E$2)~k@I62Z|>&$*hGOhGTlnuu~DGi?g)-`6RB~o?CuW-_W!Pa@DHrZ$^Ah> za@jj=;)e!*0IDrT3;m11hW{Ys|D?OUTuNzPg^f^4p-o%7|IXV?0rEq<3jYK*3GLy< zO^~C3vZZJx&sbomL+b;ak=Fu2;Gt9dDcgE@81>U^vs?J(#YIoyS(K0D^UVPNoZHel zIT9~fHO1qO=$Xi}zI_IGW_EhN@5C&NiSqYRn6ledp{F&)V`6DtiW%;wll~v5c&ahU)+zF2_2HlfC z@$P5O`D+y|t83@qKojp#EsUiZP_Z*)UitcnSbO{i4k)7iK*aX0od1Ypl8O6$r2csF zE25$>c~w~R4yj=WY=lsN79vgZhE3Yts|h%>#*>=3 z)T!H^`Gm6+(P>j~=G*OsmG$3DTUu2Y;<3!%%Y-F*fiRw4W{0TST=R4aCE{xiq&La^ z`m!b?&fkLj@D5kfg|04J9}1eU-CL{hzefY6;Ctw2f4k@JFJ|r0ifEr~fOVF%u>&h>hgLb*N!9jk0+WCz{XhpwcK5Z2WH*oNJwt-;^NhsWa$i+JHdc? z$pwv-NV5}RSx(U)y{r6~7p=l>hQiU!8b$KTv0BiU6dS+28TCO5ivFvTN-IExikSs) z2DnHx-Zp+@7hBypC9n&x|0$Rz-dO!Yu$7PN3vuM0>M!c0Nc2v{e47U%wHsO_bMp}& z(iMCm?;`OTvmb6vGiQkk-1qq6VA35%R(W(JO=o6BWq2VG6zM6~bcGsfSBY)3Y!+yVdY5$R8y+L;c0hfW>?LaDHXZBJWH$@>ze#*_Whu zM?(zy6;sc2Y#~Na2>gw|T(CE;lY#KKphd{=Vbq%7jKQac&hx~9v5CRGo``t`cc^1a9bEVGw%{bgu8UbHNct4?;ay?C< z9^zxa08fjp)}kJi|D7qsLWR>|>&sN~m|NfLfhmFaG^)Oa6BVt#nd-wJ>MKGyHP zJBJ`XVNW6LzG2%UD3foI3%u7{LEYjL8io}1fKO=XnN>1&buiokm^X=cp!P~9&s;oI zhHAx!kM+v*jg3^{h?e3^Ro&m+lB4(LB}L`Q#mQ6guMc|`LWX4Dg2q(vjf$Ow$>#x1 zBo4=$L=@HNC-gh&O4146<3gj?eH*6!Ztx)F%V&qUTOX0`Yruh_i>0 zqKokiCH(~cGU3XF?O6L^fD?4=%m!3t3MN0~Zbw;*n+Lt8slU_{PX4c7enveHtamBu3&P_bK)A9`RWM@Cx_msk~`xZSprCKY<6E}?b$6A!rY z7KxhBdSubnI)hmsQxY%RGgQ@1^@2yS<_%0$vvgELZ8FKu44)#XC$9Y(B}#OJf(jSY zMYW5lm@t9!?npB*uZtrUlZ1Gz&W^ffN0OVW`ITaA8gqKSt9v-xPkfp;L}+X4%SHSX z{tv=~9fp>$LRtpes~&`@rKJLa_3eYd=8S6USEh-hM?saD-NkQt^&0P7i!>?uC*-3H zEvGZgsG~j2T<7X<=G7A1uT>=c5$^<>en;jGn@=liiG(unPme^DTj(qAU;A$2ssolD zn;V^POT5IiOPG$)Y5l+C)G~u+i0pqhA?LjVEge0Mqs6JWttdJ4@whCqyHVwC=_)4A zg}vl=xG5qO<*Hf7PZs8LEH-5yuew!nm(Tp4U0m7ZCD+5+Pk9~s?@0P*WyhwqXipeN zC5gk=KH0?Mo+_mL28D#!l=5eSa6u(Cwe0FD*Y}f|c`Cv{a-NCjy;2Xvzka7aEY`Gi3^j)K@Melmc38=%9HPUhv^58Q1}160{BQk^Wzz|FztFv2y6=KKb+(*rF4uJN1{~&-LF$b&ee}$X-?r+3om#uGB$h;Ahs6bC zJb-BmeSbM3*EaKUj-XXfNT}n8YHnnF zb@Ee>deo_9l&+z$Rw_@-myd{e$m
V4dmRapQwqZ64#)+lB2<^pxbKYCL8@lFG|V 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 z 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

wk?#|Jz00*< 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

;ywFn3Ky+ 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

Q*Ar(I%N8%(rC-e*sT2p4qF}=(aiD1F!jEZ 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

sT@eB?TA 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 ZN_CHk?fYDh%wJbcTSH&{qw15;{{XT9`<(y) literal 769621 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


SNMc0_5TPhQ&^qK+m*Qb&z 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%0DBvi{|EG}u(>GFCk{aD;8G=dd;orgKSO=ncz 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ð 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 fiJ_ z1;0s?s}Rh$F2;KLXn1n#axP1|I9$DUd$=1R-tkpR^{2_R(O?g(f*)M&=bWnY1z(OK zTd-X_dv}urPE1eS>1vvmREofkl=y@GID1-e}T& zK+B5>JEnw@*UrCAm=`0d6jO_)1KXm|i11<;ufJqPX$R9$b}l#cn-R6j*FW?#f0z#+ zmfvQljE}ePuCl;;KCt@vFap&9=2L47a2J%<+X}tZmry9E2PKt6c5gqt$UuF1}eW0DOYXQI-$zsX|g|_eXeQ!yk-O}Fb(8EuKvpz!j`XJWIgbAAye1eC? z6s?M0DI6}-af7xN1%i0Det&vsOIe`R;y07>=J*S=z$OIQ;V(WtR;0eh=K?Z*q}o*& zo?ziS?Bj0ac}|?fe__g57am!BB*{9DFMgZf;)}qoy?BBj+oJVs4C`#ihYeWto>$q7kvg~;l_eO-x z3%4zVV|AW}myR%W_3o1#)qGHv*ElkP^gtGwfB)f9@%U*UZID~v)qz_bTkN$Q_vGKS z7QT5&sC8?-dpb(+NHYG;Ee2Rvn`a7-#1lT#-DiuL+N=(I0y(Sw?{8)v%{an`StfG@ z!^MmF<#gs|ea`8CjELGS1+OV@Hq;3bb%%BD!|+A`eukB0K9i!&2XUnn7i3GD+EH8^ zPu$9&0|6bL_n52Xw@VIsXm0GnwO|JB$^cf;KV#4Q%F10kSQJ{7KhNA* zV=whuCPx+GtBkRfW{jcrqVXHRMRNk<);L$@JNvu%#e5tl#ZAtRt+`}0dC4y7WpmvE z$>OTbl`CuU{{HTLmN0!I3&VducRxzu@Zqf1`N~Egt7ZM&W8;5wS*&EV^bs;h@xNk} zjeclk_=_+8oBZHRd8jlq7-_Q(L%in~V1$${y^cBO!{P$I!OpWw^5!rm_!X0%z<33I z3;W0jTbVkiYW6z9%CqigafrWB2w%zRKXM&6SY##^WY36+9kvo7i${5I;4<9@(Ia3*e6NO~$E9br+?q9w>{A2D<`uww#Rd2ZAxo~3@ z_T-1mVdc^LbdvX#{5*_G|fQdiybKjlTa5T0@{hC?&{1QGya zu$jMS3IA!bcF`s!ETxazcp*1%byaJ;Nxnit9YcQxOXPa)H_t@I2IGuN>{9jzS;JUI zIYm@sA?3pDRiUTpe8W7?5T_eE$WNKBE=!@~No%$Aqx*52gU*azdRxD$tY6}LO{E{0 zX2{xGqiC{GfnJ@q?{mFt{U2n1Qd|SP`cLN2528G^;m4rH8jcL&UD0bqLci_-ZEadr zNIW^?RMvY=d(=hf8N=iZm)BGFv0x7CSQaYx2%^7`#GDY6%9?(NW%N?q1)hyxc&8HU z-lP-`uNe;*c|+qbE9UT|#dC`nL7?)kK7Y*kT*h_dH4SO}h=BlCuzb~{k11mX`n?+O z)pu(*^Jb$1d5t?4ZN^(5QSEw1DSpI*0_ODK*H~jHkVG?M5wQ76SASTO!P>*&^pF6(Y?^WJPO^V zb6?P{Xzc&%nFpgQjy50d%m(A%eXvwKULEnh9>!woXVr0xxD}=NRR$92XEvGe(*3z$ zlrf9vhv{pK;jBX+#5h!k!;1yH-WWL?9(yqNfmw?vvtY!4!a1rGG%SNWadT+@s|pP6hxmW=nnP`;ZNdRtE6`W7r>pe_6R_ zOy9T{w>y!0xm9dN$4!x|FnPM1LdW68Q93?U;udZynz=uB~>Qz@E!<_-O!)F#6pDy&cdR%%(#_6cF0^N(4{_rZ^Rm&pUWeakV z1oX2xn)Ao_TY3;bl0V$LorS}p;cyi7NuKf$A0bq_;mqP^R~V3mDhuuBIZA`lyK@QI zx$Lm=68ao^^8gq1VGq7^=+w?!M6SV%qmo+Uw&3KSW3}r~@NFrnt`f`%BHfa6LWX{sZ!jck{l1TqDfO_A55%QbIsNa+ZZw~1v%&Bjr&+$iw zfwH`UGy${I^d~I+M}bCPRE}OHFb2?q5MZI3?vn|%?Sd-TyH2Y-z7X_5!8^P1 zAMFb-iE!~%U{D%T7P0Us7;CIYm6MNxoji`%^80?}>fKn>CavFG@Z< zUcBNuZ>S83Fz&>v_l(C+V9a?GKGlR2>CwmdV_{4oTnm7}D_jfs`~HC%b9~heFJbA9 z=U=$pHasaBxFazyJ&)3x0IVN4J@ZZeKFX;p7u>1;0mmvsWsrLxsX`Wf5VR}Zn6_cF zJYlD$w$Tm*YD)0!!I7^~3sn7+q9ZLC-mUD$OM^pO;Tzq?SfHY;|rHl)ego^Qkg{=^Bc8~L1dS3?Xd zZr_cpeKT_Q-r?BMgBc517-#W-rv4{s>fG+N*pl+e-0IGigjU$QJw^dH+ag}#8o$~% zd8+Pfpm=pnS0j*vcG% z+w^$bHAG)) zL#Nt2_jZ2U<>)(Tf*v;f^lkL9w)9+`Yf`B6(@<#=Azq*RV6PLV!|+vrFzmu}Y^Es# zxU~lO1dYnXsx`I|;fXh6A=^0*8WwaZm^0L%z&#g~%8ftU$1OM&C&msew7s;wu?zR(? zVauU?sTfOMZYMB%vAn-(bE#DTY&ek{7+Sgmi2+Wz%FH{;`BGeF#2B|5vOb5W zw(NR6@nr3X>FhBr%4MA)YN&HQw9tOPJ;E@u8E@sq3jrO3a`Boum2Y`&FP(a{N#ZVu zlC?u{G(dP`el~|Es*R<2e94N56km1JW}%HsiQ(SkOGe8(ccR*a*%7&#qTRe^F2r{j zU_H&;SH^G<{TYN*rv>#70mvUVGPrB9w%i@2XY2{+G2>AqU6<2uE(3M?X#;d^^b7s- zjHbf0ZMr_$Sk}+HldSPYvPR;xOX6L2T*~|;Xgsv1#V?ZyZb5k_=cUl5+e)tsU@&YX z73{*Jt(gkZq@ClZKE*UDZHo^d2AE(5(ZV!91i;4)omT6_DNLuV+DMeg`jQ`AM}%AK z2*ZyR@iQ1>eo2L$O%Yl*Plxet3f1gt_M_c(Io6gf!{NjG zhvUZ&4Og$;96mmEye?|`%U{lxrTZVh_%41Vmxd3bO#kw$GsDS~M}}Ro${|?u-*aH+ zmSICKY`S=R)9~@fCx#t6wia`@qk}PEq^jyq*{Y#o(A^|p*U)0*w}&>CmEna5#{|k+ zAgx9}z=V+|)oFtZdWrHa_(sJ7*35Qg$jY;NYwQQVf0~8EM0bliQA3d7XgmnF9Z8u&ppZ{8q1#@ zadAUA@P>gR9XEh`qd~(#yIHLNb9SS{qs#ii2?}VQj3tEcY5m`@_{s)WmHoB={upFl zlDD@p1)T+e$yuKi|8odM-k+Gp6lk?@jKD*|se7T5__c&7DbZFgmo-r&+>Uabzv=QF zm_F&<>(IXUS$$ofK9U>a4-9uaA1&Gl#}~uv`O&oq)fWWHja^y!IQd`@5kT5t zYOr4QnWicpB;E9RQ9gp5{%4LdXS%e<=93Ma@|BqKcSXxB&H3QU(tdMY&fA0)?G9_* zLhwvzzZpgK*RdROQo`ma>%|YE{Gog^w|#y2ac#Jsjo(X)9LHACBXW1rHdj>ouldKx zG)GjgW{%;e<%1me+@I58$}-mIi;9O zUY~{_jtFa4?#Eox^ek!NQ{$lnn0y=G7EydIJBDdFu`i3lY5J1In^+jStW8o7UwG@XOk~<}w$V>4+9B zWWo%=^w=o7^GxomVzTPoyd|ev_U*3IqxbIKANEGc&Zy<j8nh!m zg1_jG!0J!_@T?v@+aSdI?t~Yd3(gcWyP~n#lOz1f73wP=@FQOw||h^O$_yLAW; z=VpfTnuTsG`l4*YlVVi2Y_fohQ>y#2IdM1ZrX87&vImlRqWRi&vdAXoe>?vuN|Yyo z@k7zRA(70l5tLQDB;PZIeIl(v^i%hV{Oj2V#amC6u?{00hC4aQmG`YZUZcQOlA@C~ zeOvHWDdtBI;XEZ9=;79rjK%0%8{HtIyPRk`c2-s)97+8 zm(|}Wpp6e>fo1nn{@|u>;j2z=T#u}MIrGi2z@eK;QPsz|9hLuXj1;!SFpJTNQ&4{! zfA{7m>A<3PF@JE0DZMpf>EI%3tDAI!v1G0?m+ej)Xp@T17iGS60;5JJ=I=c*H#Q4# zcbGI;n?Xo$%Oskrg?4Fcb8p(!*f&SHKSmi~FXZhhiwwX`lnce5q;KrY!rGWBY?K+; z6t1&C@X3E^yqkwEOUz?>=hTF?R-V0TX*Xp~-Bb!_b9I2$U;8Y}_N?piuGi%=vtr)j zgF2u|Vd-NGWA`i^wXHPfQtL)WOQ&N%b~T1hyCP_8PJPLE0@-JIXzQ>Juf1z&SJDry zyqUH^%h%HD7nNWJtVU?{g%&?Axo{r)o>=2ZFeZxb^(!9%?agw%=@dV0I1*sYLq^eE ziY6VG{J`Uj40#T!QnbGU&Yh|$6)^`3W9yvHKl0AAUpk_ z-!3Y&17q?VhT}PQWEb>olw2lW9f7{(g)oT&SN_^9NKl2+C?gh08>;QyN_RfQb9Vq_;!YaHecOkt1=+qBKHp${Gp`6L@u`DFS)c*Z6Bf z0s-^KgjuqG7b`=Tkig4PrbWzAl~_ic3X40Fozr_^`X+!+b7BEghQHllyRetCuwc={ zJ&kf-Cn!f26C+=Pj=tE1)vo%Hi2!~0o6pahytDzqR~r~$(gKqIKPuEkA?XJcM6X+q zA64*cW>#Ii)3>1B{kbB3#UDkR5JcagTs5ZjE&fPNsKV>Et@Pj;*W6Pb%MaGC(>5r; zukq1w0M}w}OUBfmjAutPyFz0jFH**89eq*!B+ld0FpI2T%6&|Cn^U+1kqNt0%FiS; zL12okdZMd9X<;K);PcR_5WJAWmSFhX!<)-@t_4u>5(!&!Pp=Hqq|@hVM*LYnyp_d> zKFRvK^K1(-mdty?Tg72#c)E*~^kJKgl$ED))L(FPl*<9at$E;K_?63BQ=K|xbSQHL z9;)6qv!QCyK^UeqqM*a$9%gZ&_u_LDbkQ}}9L9IJ$`eQ*N8o13e(U~&ECjN#n|U1_ zS@v)V;=)yewo67?kHNLix%!h5EGSs6kOf%wm}mB;o?Il@*ihG?Q+FXaV!bo+f_6hk zb2kMzs~bwY%h|M62Xc5DJ8cfI!BBKdyhZ<+&`Y|b@m)N6-a>kN4i@>Zr(B1F%Ay`nO zGwZ03XhxsjpV3mA-b!E6cgY1;^S3Utf(y}?3(sSXRCrN%o%q*DtE|^a|2k<`gZ&m@ z=mHkGk7Mq`8gEyuk;#dhvVbj_<=Kaw=7@LBE+@F^!fseFWpz$G7mYr%RTa|G*C<=zONvT;BOLI$V!TNJ=2 zYil2H;6%x$ZO-0^wR`xp%cl2*hxVi09ge)}<=!d&uFoXBG3Kt9PaNmte(jlNXFN1?iIBBHTP;Euh?hEZIgGP8G4@SEjmvt)ErB@_RbY*Hq>JU_hV0 zDv4}9J2gQ0Sjx&((!J~GRC!L{{7AQ$@w|79+xt+yE~RhqH=Pk*MjYg9{c34*Gx*YH zq+3hq>GVH7tq<18xi+S>#g7T_AcJg(d_{rJZ4Kis;~*l#;;<-wQJmb9c#k!HLX~d# zQFQPkco=h&e-J)^65OPKsK$)yc~rHdS4meB#5syj;@o{i*MpObOwC1PeZKDDqa5-)x(VhfX24E)sv8>Y&HPOX?-d?v9^IPv zN1{905gJs^d`Qn=l@9Dg*0(l^pM`$T9yIXQP-NmZf1(!y*z?f~wRtIu-53TrU8YVa zvr$WFO%5EFC6(}t|=w8iDDFU?X6YRMnMLVDJl_VKFsJ!ym1 ze=Yc4kzgd_azd_F*b16g?_36N2CWM2{eA%!Ro}69&t6yV5nj5g;8%+&bNl?7DFD1q zAS_BTjmM-kfI%>=OFxpkQkYo;TL+ZhBsZU$uYuG)nmc6}NZK zu3<|obXr}jg4uy&EwX+%fA4Or)t|(ICyXusFc(LYGHe2uAKekDe0egN20}3%ml0te z2DoI0vk-WeomNU{3?lrv(xQilDXqn^rlF)h8b)sNws^pJ?u22XHTwD99KnBmI34<6 zsy#T`L_uK}bZeOPQd<9J{B*&E+Z;QwF2L#w4b0NzjPN3)V*GYFEgoF#s2-~YbxyVl zJsHK$i7?zJSyVlVALGN>nbls}uaiv%)wi3qE0#9dlpU^Trr?i~GDv?@u0;%`|D|jK zI8OD!<5=dTeZ24Gw$fkmne=Irv2KKLt_`y59Mdfq$=Mlpv4;Ndm@Xw!yG)8t&343- zPqJy>eMO1OUaPA<#P6VsKt4aZrI^)9nk>uo4u2GF^MT3g>nyiko96Ej|DUpGv~vZ= z_5c7t07*naRMDRL5ce1Q3yWPsA8X>gs`qb-gRvkKoc8$RJ_AUR->8e=_s=u*8qBfpb;0-gGldBk zV^R~Q@lqDtPWccV`&`!3&!PSJC%g&&rtsH38zKzhFL3E?>RWpV`=hWS0N;$I0>7g- zvY_QYiV#-9brMs`x6SP+W-_O+kg=FhFIJp?zQ`|n=92Jjg016q>WLt5Ah?^i9H9g! zvw83_pR&NWV9s2cIo)y7bDTnEB6S}Kg}gk;8pW$)!S7iKA6*5(${>J-}o`*6nd0@^C;{$M>027;153*IA{t`{ud!P^;1@%)uZ@i zyq>XNKBmc`6Bjv>PlLJKi2$bqZ17S%-O46&zu#n`92GnkjWP9`&PA=A+rqB5wX(GV zyi0EIJ3rLhqK6xbdpRd;v(VU;E@0nTP=2*r+VGp4rqDN!W+Mh}t)C)r_*i~ZzSvl5 zCla(9tKP^%eSjrp@hC7SabStpN0!sC(Mj4V4QBL1)bRy8#rwG!wsDh}W0>JFf#KCG z{&nyRjFqtAGwnMs#V-WVpBBLo-%-&|^vi3xYoKJ!^bvO#YPKGhR0iCr=(ropKcZ!nNWDzx(WDPMIF8=lzuF!E;OGX^Zxvb8sQ2Uc2~U zc<|t14q-|@{>@T+8P<@UA%kDCQXJ?hGu??}p`D1lo~Cr{Nq1TsHy zF=s=vE|D&ow#f&S>tyZAWjV?KhLs{jL0DVp?E@A*YV)<`rBuwx9tJP?AZvXx2Nx>$ z!Ux@JaXXv7TuPYTvv_cPurEM^dy5`9xQAUVCWmG|L0#NLVr#7brhG%SF3^ z`z*2|`~*qhtR%)6bRziAt!%_H+`JRLgLhH++@T zOXj1cbXvxh=Am-ul5+GXu1ajAdS{(y{(?8$wq>FsYcpDPa`bZi?&()tpKOTCD-T#? ze3x(I!N@f4hs~;8`3={$22fADzUJCIH(A-dXH&Wv$t1e!WiFTBT~?1WCN^i_nYRVy zuXlR1BHG+Z!rBg7 z3hB>N*eMH5Ma}zYOZz;1qr>iS3P#eG`PjGoqcIVD*W$CUgi(i8n z6H^!OFI>1<);N1&q2m}NfrwIecPv?Z&?rJDKjzbRecGZ1t<{&6gX`K^lMRpuSq(WO5|<5VF-3Ed+Jw-;UMt zbBz8H5%SxjAp>d&4LeJb$Mqpk02VLmwfhg`l5-sEdt`d@6yA%u*)KdUqJ2q z$6Nwo5==KJhO#vskIMkc)xOYrNl~l5>h;E?2#?z`*;HJR>-epj`LFy!J6W*Y&L)lB zc#B_~9MksuE2H$zi_=Dn+R0dF`9}!Qt{OGuTbTBBD)BaG-C_8?lPzi_8fugA1spox0A+{p!K`URnn^$C9ZQ_`Tr#^01%0#T6c@f}~h zmy-DWjrdQ_u1oGQ%sdk1cKBen*RnBbzRlba-bYZkr~!*L>Bh{r7h-|_-{O0jPv=8X zkk~xr0>&c8aaw%>9U7g&OTtX>aiQYV*Yp($^~F=!SauJHcP?<+9+x+i?SyYGTv%n= zB%anoT09D##vKcFJlm1tuXE(q0)Ve_i)oi|vt;AuN3r1a{Q9&LANL*yPOZG#IB4mT zIRA|gLBBQ+d>Cal>r$Jt=2i=(+H}kOL76ViqM%H|TH7$TF~YTs#Y!tDpMljD0_fAn zO3dQZ!cJQ!an%uBdfkg8sSG$s)M(mhC0)@k zFG?UED_u|~FhuvZ1Fv8t;zigj&7_^Q!3ewJ^RDyISK+6;8GibLh%r?A=DB3;G2UCS zeJ{pu(w_=;YN?JLzr-0&j_o`BNY-Xi=NNpGyE4A?)+Y}$J~s}(i>$qF^S0sXx=q9H zK0TU~qT7l_T*|Oizj@=%aQ(*ZlC>FzY~Pl7XGbhJ5^TV^Jh)ubWIW&xSK|7S%)M{# z&QdU3&t@JAc&?^GiOSbURr}TCGkl`xloUmZyfnAr3HTXVTOGAY550ZGkx$i=JWK}M zntbShm!Sb(+34Nk(HK9#cUYCON|(3uAQp&RwvkiUhgYJf6G6sTm$k{%_zT!9!FNZt za{PYAuREfz_-^gj>WjTTj39d`^iqE;D^V4y4t^)XSaO=l_<{sCj?G1;1#MIQvwB3k z9pPmxA?17BAd8Iz#zN@%UCR8^_YX?`HfOlh@!!rrtW5$#7fl#C;oIbFIK64;_=2fj z@MEsbD9YZTDsPI$n)2zD+Q(dC4a91@Tl@EVtO?LBD3LZ=)K12SwzU4!$BoOk5wyYE zfz+^ZR|VX5MsMJ3rs|YRtpDZH-D4ei2B7m`xS zK8>usdA*ZMPltbxo3D#8(%X}H_wysUlst8$Sm(A^@Y&}#ayF%+q0#zSlO3cnW?18s zwas5wqf}kW1~@t2sbtc_N4b!^E8Gi60C^J;x9Z3Mr7P2KMo0CRxQL;^R}b?!p6_Ib zG|EJ`o?kt!J1D-n{XxSfe@NJ5rev?6U!#Ky(&@6$nSll0-1IdzxUH+m+a1s8w=&Ju z3@HUx+~UaE{uyfI_8NP6KgUB|%@u8qE*b)m->oi9?vlUPZwjN*SN{mX^5chG^iI~c zmSNoK64`bFt-%BLUHrj01y`HW9iENS-EZwjx$Z7Y8$}#vSs%fDQ~u=k zQFRX?R;6E(p_4kUg?{K-Y10PM*U~6`0$qiIp}Zt4T31}+^UrVb?N>|N(^vj_rJpsN z<~nI{U7??L9~)Ock=DD$p930UYvR5>tT#!UT*HR{{XhNZe=4U%6_H6k74m1G zHewZ|5`Ga=TvZ?+3ap)hBx&*OokB6ml`!~UDi}e$r$-QiHG~(z?q$`xln=M^!?tkJoX5nEHIS}EwTNbkff;azO%JwIZ zIE7%KF79w~oCzMO32$DTfLPrV#wiLc__bZZNqMTGTz>+_Y{6jjKx1n*}W@D7)p2e=?4_@SEGpeES4&6<`(xlIQ9C0 zckcS5f{Rg~%_O)z6V6BbS->>9@PB!1&*tH9ln{eG2qjlTd<=N{)*h~i@=jahbA)HGlwAG97z&&w=n`CG!5W2n zQ^1hGB!Z4Y|x3(I`WYWMJU#her>{7Ym zYhxb1Hipo^qOsRM+1^<|k2GoZky5Tl!A|+=&pj{CbI}(0NdKdl(`VGX`b{!-Srkpw zz37*C&Dh56*uHt+`Bop#jeg7Nx{Q7!eC@Qn4LaeAX*BfSZJy^jRcjF&YxJW+&aWARG(HhOQ3Y~*yG`aZdPW4Iex`%+|Wvh=5?jt&Rn zMEvOCy~Exp+q-N8HrI~sMEdsI?}vwx-5I=qVS%F_SF(t62^#Bi#uVFa;3PUb;_&n;MZ}*r}@QK zo-kISp4ajLjy$PG86cJ0pD|9|t!r2W*FrgEpvAe|vw@%Di})2+SMUm&nYY?y&Zpv< z0ndbc$8|0E^fdBZ%!acKJqAh)X3U)@4=j~Z%$k6#eKfMA4L|Oq^bKnP@oz(3fIIrX zO}VVs?`?f+I{|%!llpQdxVPCvBj-t?>3BHH_}uxnKNZ*Us%VcG@~P zeKCC=53>nH&JxNvapW(3p6L9!=B)73HU`HzJOg#*JVudAKf((84Qr#v~S?hliUd3X8gyf;Ddcz zqNiwg5aDV15+yX5Kzlb?JMvI6t4q{oB}c;rEf~{s5l4C5Xw>9F5@il)mh65c`k~|T zOkiv!`-}!v-@p`4Z=yVX)m-uIXxw5RVHitS!gZrf0d+5$1eQvvH!FOnS>Y|NzVjM> zC2L1+FMb{PWcQP$a1VWwJTB|Ak;2Uxmvil2C+n*sm@+1zaL#YEpvSV7KohVTnpHdH zeOs3_JiPO}(JmQ-3;e*E#Rs6dv*TUyk|v-0ZT(`s(_HT`3bvVA7UG%P@B$mzRmTaw z@8U6Nr%ll(1`nf5#sfoL#-0-hLuBps^^SJd52NhkpKG_~zS7x%l)z zEY-KyWlfHp@a4EULa@pU@Q2&uxQF4d{exVjdLc(%Pv!V4=GPVh@t2jO%iHd)i*?H5 zQV9RyM0|;VdLm5Yc`4oh;XiB}K0L5B7`Fz@3FcA+m+#x`81f&B0a_%&j}jq2RlWWS znS2oJF|EtDhxlF`UCfO1Q~x|x4i{xKB|^jB0;DlbOnhw1VhByBJeFgn`{MpZPjy0uEP=-0yWRc}qa@Ow!b4Mmn zgGnCNN__ls6Jo%>jAk!IVDb`O0O~kRUcDcWa7!OF_DpQ7%y>}Xj>P!=H3rqbo(Y~0 zzJpnWPRUTuV}$Kog_ z8z06JoJHrS2f6lY80c2&hEL+ro?YPNUJjO`;DOBw$f*asl$EPZWq*H;^55L)q9(3R z{^iWWny-F)cvCj6=Tz_X>-G1ozU$RD@H0Hqr=x(+raX(XrZDHyt>IPmOPXl_vnkEQ zHhDxGm;_FI&{$EaOrdd0lfIplWD4Jch04a@{q^PbHLuugDXUTRPS$DYKP>{v$7SHI zTi1NT8)GcxEuM_K8c#qZo=^!^A7j3|j8^f|CrM_}v^`?fkD_&+icaD!*4iQ zim!bYDM`CCjoBIWb}I|k z7K|^!uTlg`a8aF=_=zX;Jj$4~h_;Y%w@$>=l8<&qY5te*E)GWz?I}h2f!u3kF45B{ zwb2D>!1nwkEBI}(X#eP=qos8JMNvjkN)n_{e_`vxXUL6?}4=O}2EzcO&Q;y$2jk?S2}ujBJ+XLS|e>qFnC z_%8etbvLp$cZkM)m$kJ5JSd7;w!8Eci|D+MBH?0WTJofEL`Fr|DQ%Rg%~pmHot4pR z{;f9fx8YelZp<0TvTTbWJyl;NCh6s+02=k)A!UOOL*6*(?YtJE#3YH*5 z;XuY9TeE!Jo`c8eW*yXJZT-$--$tf+LOrT|rT|~_SzQXwYv%iFC5NBx(7*L<^IiF1 zUeHheT6n$7aTs~$FvU=Nk+P$+4~ysM#cniueQwt3v@bz!;hO`LRlx1wZl_{ zjK(>S?{m2L9A)FJhBx3pv!K4O7urUm zdtbVKqx0E5wpPMxym{V>@XG#6>Hhlfp0^}}5jXOmM>-nm{K+#5c?stI=nu+>Fieky zaLE%%jPEtR-{u`gk^8e|;=O^)%vwJ-K9SYh9Z=>n1;~e|F^K&9$mnh_)9Sg%+Sikh z9D}!3zX&g3_;NRW;(jcxVaavk-G>h|=PqT#c+>E&=N@LB53JlXMGo$D7`x@HIv&(_ zEBGp#K+(7(3Lb9##L+L2kKJX~`R+)rsw>zw3g~)*X{}SdFLh-e$lB@aFzJ3Wo>k^S>;3<1Emeo zu|5vo);`?S|DDube4|q$6VR^+vVeXCqiDLEem(w$HUMwd1_eDI3RF&m zArJbu@z};(yT75KA-Oe$dK3gd#?WD`l(lE^1$)exLVMP!3=UfLg`{okv4&qnn6_|) zU@u&`m3SI4BGW5B{;aRn(ykW&V_+cSlQjOOj0_8X!Z=Q%@po*F@4x%k>O!XN2agw1 z>i*R!#a7CZ2q<(y@*~;f>P0>*09aa3Ok4D_WLMV5r;ZKR;{W}-@6Hc@|979JVH;zh zlEvU3+MuMt-@j}pd!*|0>EF81wxZ`3UFy^WIfgGb|p>d0bPH+VAY0C?JR~UXez--ju&uyn-OqRocen9C#a^2Y5CvN z(Fx;}?^395U4WO~+5;FSH4OKUIfCj^RlCaCs!kPD&Yt?!-$%=LWRyX%f)rR!QaoaQ zkbI`|BvfmpE z-zv1Aurg6hgZ3quagpH|Jf)`wcdUD5=)7}fd`-Zi%gVrFa!*bovAQ`MOSd1MJsf^> zq@5&LnfB-K`*nDx@q%ZW8!qSKza2|kmhs%Ysxj3#&EneYbKr!G6-Kty_|llA1fe`n z=MJw%RyL-Zf2jkQ=C(g%QO4pXt{h7-ZNpeTJXM+ID5s(D+a1}Byl^}2V!{*jmu}4t zmcJ=&%%jGL6Qdhq9dYBn#ZZ$ub{DMh`Mei@_Yqjl;`MASUeyP`p>UQTENN>F0rX|T z`>}3&a*2scnI1=J#>LEMN16}ik_#pP zM{yq6i|nR)PXG0VPOp>t^*A+kZ<28`9SnF3w<7ouAGqW>WBk`;D9-hS4|D{;Z*)+59nITKD{oAbjk3{XAWLJN(w!Zvx4fyD? zkTy>9mMr50`sThgQD-VfxCBmj3Oub^Qz{DMdPZ^RpzT|pJbG`E5p&XhtkPt!)jXT z+B{c0aZHxi75wz4OfF4+f1G!OxI>PGGXos3_;t5NPzJY&B?E@{-FmQo`2JQ?(wn>5 zog0Cc|D{s`xB}U&l@oPVT*1VsBrMSIevZcT(<+`!Tvq99P9IB)5^OdSq?+ z@nvbzaZ%svWzu^!8mU{1JhOp%IdZf4n{nrF4l&|U_vLVU9;ZQ%?s0+ZT-F8~9sH?Y z%}>cd*4BDeW(aRx`gKkVFa&y%ohn8>E>_=>6LPJU<$f{rcCn_ZJGMe+vbOby&4zmu zegn@%^BtQ(iFNN{>NI|{{^$CsaB>`>YWyP3Z#QOnIezKK`r==5SJJoH z1X#*KWM||TeO5q+7Sd02loerBI!QXuJj=B<7_D&hZ*AcBh)|x|*y|vB+Fsmp9HCHh z-U?h+{OrJ9sAKiSz*w1Hsp1O1j@p>0^9Dd`Xtwv2WmeG2ht=M$7QZt8oBUo08=-#4 zRxT2{j7@Mv0b|0zzW(mQaO=XQ;qU*4&xaim>g?{aMrIkonsBwCGhrw!a4>{v=*$cg zA!H_5F-A%%mjpbDm5(&lQ8VzrkHVJqvxPRrF^jg%8=tj{8X|PB6n=YI+QvJ~_DC*M zb&Imy?tVcK?3KME0~RiJ#lE`Y;;MG6gP@GLu`c{DleY`(x)MMcz4mIS3=8UB)v;el z_E!rXpOpm?>J7p(xd`Ozt53r;H&wk^(>HWoc;fHTm{QREJLVs!V z)=%9o-`x4RY96gGY>C_|sxnfaPfFVs}7kc1;H`paSy{9Q|%>x7w$ zyD#42I>hl&{+0Pm51=tm%enYdbtR*~=CA!xv}bq5I||4J1tK55;U>)TWC}Q%4RA8V zs(n8houGUE-0@cOLG%BNFFcM?>9OOYwGp0i2KHEn`t|23bo}UX7K?qptNCVU6pC3$ zoQXv)%P5&gP_yh+huN?B!)ozTc(;N3o+z~_Of9%<^lN_`31ps^<)4@G(>$RETCrNb zaQla{oMI>-bXs{{4aY_Ci{f4vhV+ZV`vMyt!khLH`~$xNU~??n(YoE$K*n4@od5pH zaP92*;rG8k6&Es_Ge*eTIUSL*KPSakT}oz8ofx=qUvoPfabO5Om8~u| z5?G>r9U1fS583o$jfepz=!V=i?#;%SQ<-YxuR)OlZwp@59(hskrY~EPpZs$=PI_T* z!FSP)U)DceLvbJHWZ~WW>Ugoa{ z^{O!TdmDD{TDuWmWOHHJ24E7-(vR8J@@4MC7k9_n{YsSXTjJ{D4<9TQZ0~wl#3TB< zpW8P&samQ%d>VJN#?iE{_!*gwF{DjL7TnXhLRvZqWAAii+oL&AVH5Y8xLU-|Ka5)~ z0nIMP0Dyv0oXyKt&N%yZ`i>3f=lEFPtklWE`&ohqDLunj*T1#BZ*z=%yUj6~1HZeL z@*6WA$)n*0M`hiPgU2=EyER^KwCgnDcyi3<+ zGnSQo3ouzNw0FIXBj(lgVe=|0>7bs_=|ky0ha)Gv4)3J*ifft7EqyMYr}AWDBC>Wa zKd1MyGI<aT=Pr#KcHFKYfVx7e06JJ=VY=?8t zUkS#K)#3{{JW_~L2<|VGmTd7P1`6WIEOTD(?O!8I${CU8Ht7uBWcoeK8Tp928vd|-nVExBD z#m2Ur7SRO8J|R#j_YP$ciP!0-I}!wE3h$Ni1ap`bj1fq|sB=#iczpn)hh6KoTQZ$s ziUH-Ffd{_)j&riYYB;D&dj}jLapV2mQk-L_E?C+Y#jAxnC9K6dzr?kGo!5Q#gf=d4 zdic-{&C7S#if&1102j6MLD_#bmpR?JdvEyt?@pCfh-0yo*pv+x$Oe^(j^f=wQjcN+ zov5?Y=MTzK48n7fQ3t9bpE_aN)*MaCV$pE?`X>+asKEA)`D@w&S1I%L017 z%TUEnaYzN!0eicdsm!c1^ z>;gxJ*J1pUzA4nF^+PGjXNpdj{_uxRq0ZvLRNDC+nw7%hF%BpH4o;y zFDAe$@cFPvV%6s!jbmBp6s?kg;%nayeXK1;OX0q3V(50h=-pyHJ#+KeuKj>r5&`24aoN?EzP9+V6Z8VNSel4H1n4$sGf}mHS2x z?WBNLLMyKxR{1D=f)E9!esDLp*xKZ?5rTFllZ<(#C3hK9E9EFMo;bJ*>R8IoWD-Yl zW-hhJrv#%=)epdz_FV;a(grL&of34aQU8E@9Vs0VoAH;_Wtn`MblxqNLznX?btU`N zLf2p!gR)+Lk#|MEqHD(9m>j-~_@6!^{hDA;VE{bBeq;Pb{;WD{#V;t-7_=D+1^ovi z{%H^Hp_ZQJ==Rp7$lAMNMH!hivKbd)mm|AvPk*Jz=(sC;9$b3X3{}X?op#>$XQk=y zN~UbTefw@%xPN@=_}~=kvuEiG=?IKVHs*p{vNl7FjTu*;9NJuTMz4`{0KE`;SzdHm z+n8MV>&spKRqG~VwiB{&PzTx@O#J}*D`k3)vr=QbzUZ>B!Po!~Lrp(zFAcfu8)GC=| zaEWG=i;2_^%s)n&{HCT}e|i(4&F%F#%LZOG_w zCquGg&&x58%M~fO_?o;>vUZ;LXJbNr;ZT4!H`}6v*?y2Q};6Bl{2Sb zC0~_(%uC66BrIbX8lDO|=FoHpfn*Yym;eNyE!A)G% z0W#dL;{pbQ0WcU01_NqZ;^Lp>?#i z48(78@zc@xtUPw?P~jrA-A_E)WuC`kO=l6HT9hC8s`@N~I*x-5p_E{IIUV0I8YC4q0P{tIzNJ6tCxj8qP#ZeJZZfv(TMCZ> zzcE~jLV?1a5JM<527a|+pf|cZe)e&MwqJF9pVN@~aPh0>qpI3SQ~gM`Ph} zB}d8eTK@J33^_nF<{4DP%-0w#4Wo5^*AYChbvu#is z+dcf6`k6Y8gWr^}tkn6k{p;n`Sl7g*LioyH7hSwjE8#^>`}`&DN+=&(Q0hJrJhTUM zTn~7exxlFueHDKbdir^~_TSYbMld_P-XhYqxveSSSP|Wh()s+g)yeNqHD94%^z=Qy z?;h97081Qs7)<@`Nai;_=k=K?CmoFSmxWUGv!v^|j$v=~tSWfDBf8{KX?`f z`l5c^tF2s$9{0sOi4Ve{)8vDEmkbgj<}t@uw@m&$Zq3ltBAL}FWjomdTmqr8S?QV2 zk00Q042*miWYv0M7_;^T zr|=%ya~*!qpr3|+5~hLt)z3pTV`fiWr)Id$r2wJDmGtewGnHh6X#oVNQ_hSUqa^>M_%kb6sQ!e{NT4S-DDH8PxY@v{+jyPe1GxVxT0L9Wd7<(E-f7_ z-Dk2>0_83GS6fLTk)W}MAgZDV zUfO9-YV$0q?~+6EZL^!<>F%6L){e?>_m1q+E(*O^-vv*if=MQhtey1)UJOq>Up<`s zTFE|xx>ml9*ib;15ewAlop|ZNFt2`+XEaLps(A2O%{%p}A4{u(;;m7vdnmcX-K!5< z+cb%zQc67eBHjy|>NfOlx1R9{ueI{tvS@A-_OVIb+`oWNDU|W31j>^ zUXY(Yw^UE3?Es|gux1Z=S`VQB^bhd!S{t}WOI`g#i&Q0bRE_)#&Y<}APMWI65N{0G zgYd@tL|1z8P48;_bQq0(`~#rtI{FQ;#epHnM}{ca1o;H-nm)N1>opj`S>Zucouq-I zuntDOP@BAu5ZB#3Rvi*oWe@GB?gdkPU>oP!sh;ygIWyREbqubJ51YeOHb9FA$c~TRbu1_8rPVFrRk&50 z$)UmClG%i>sA@&29FNwS0&WsMTAiqox;4h}4L_w%qA{L28M*r9A;Raqfv$6Z2RyW-l(gpEP-P5EmL=#B&yZ^mo0?$1ug|Kb5nKIGuG z@#6WNNiC?1S4&x7vs}EDzV0%})mS+4(YHV2);Kl>ipQG~lL7Cl`6KYAJU;Q_>Y|zS zC;h1WU1yyCIsTckE|&uFpZ7@=$!B80T_ZB(f9P~xK-P6psd~*1lsK$I@skoBGVsvf z`0Huf#&NrELhLiqd%I%@KV+Br#`E3`*8FAqnh8!M|92N z0K8ZL8_#Z5gPoS?ivjLZ!;A41|2H2k#bt>}fMDnH#z)!M$i=O3C9yjj`z5F3-MT&; zT$i?{y<$}(-Z)_qQ~s$_s5r-9Sz7((csssK$#p(HC;#E&y|vhpW@x&qOv#jO7**Z9 zBfoqe>s=P~juY?9273_8DSuJN)UV{wY1^a;6OSI~ zLLi^Xp@|<)v7lrpFIbr^H_p@+X|`>JCC{HpFF7*qOn81wk0GI+K=q7BH}7R)xh7Bi+Y-3k0DhrqjzFAJ5i7P9{2tlW4HSXNXW);7G|DMU^D>o+x5ALtJH3;pq zNDQac;r{Y+tlRHS{^k##)G1W5HlR+GkhLB8=Xdq*&+INm3LF&cJ0PALq``0C1$0JA zW#sbgeq`-0W^-Q~X#K0~orrx6BOJ0q+%XSCr)Cq?Cj zmvvl|%YTXzr(K+x)_P$a-ZJ@Lxwzh+s&8ft-ik#hWl~p)_4lt_zz3R9m;8`Jle3>u zgEXwZPKipcW`TV?YujvdPQK4wO5*4P=m2#3HWv;&9%;Fa6 zo4A%S&l`_tW9ae8@wh|@YH0kS)A<<`p1wjZigyMsWGaRc_*#(>A^atnV-Ck{fOY<* z$V4_@rPEFo@?7&we%}ckveXaZt8@{chNh?EGOO!vDoZ}hH9c>8$Y+P?6`0c(?ZNyn z&ib1yba%Dk&&qvEHo|M(pUdMX+!$aFB|eoxU2H0-H?)*NA$~J!2J;-lfr`%yFuZ?W zkOn-mDenVt&>!{9>)FKqCbI8uPVO$+>!UV;=wbeJaV4AH*@O+RCwIZS=6dqutEPq;j3}Y6L zJahPglN`lc1Ecz6vEal9H8Ov)4EX6C&~586`D%@zj!6@@qkuO=YfvXr5I+l0NXSQ9 zr~#9>QCfLhw_P7ETMOg(-o?jpo}Y%%7BDSdg$t1suj%XrJMO|V{npL9lW*d~{f~e9 zX)OZUaaH*mR*vVh!0Er+8^1JstW{#+PSJYp+U-)f_qw$dm{5+6X97H&oj*sL(PwSV zPFwKKr@`kK{M9UmkLR*A->Z+ZGaAc;6WLAff~vOGF)9qz8Gco~a;3SFW1jqI5s<~% ze9%rd7nsNqz*vWTc5HhI&zj2w!s1{4G5#I?yZTmNJdsd+DZZf|C!#C|L({TgPumdY zDJpKoSG3yh$ZAHOb5XpUjyoCk)0OkJE{Lx_vM%=7Kj4Fw2CxYrPJ*fru-wtd(2wx% z4;`hSr>EbwQ#y;mm!!7^epms7u-skS)O9lrjGGV z2|q?-iqEg?0iVG~D0?pDB-7R{Yo)v@US)zugrxDFixq8mDf0xE3g!vvBq9*lT>d`F zsPCfO&3#BEaA+$F0o2Fil-1g4V?vfPDzCwu575Dr%|k4vSYZ*~@kPlC-%%#%EnqBg zj$|R(PbAH!>sf~CR-a;pqZ71KZ7TX|L4Oi_S+H7Yv1Bve=631O zzQgft(bp_MEdr%%xCsjcb1B-4UQK9jP)3 z>>K}RwP{!@O!<_8`U>Cm7Fwk!&pZ5N#$QHtOnkGh0bvvmn3Y3?#QV+%A>0_MHm%5% zTQK~PehkBNQ_QwEfJh(M!;$g<^2Yd8+q8V^VZ%@SP^QOqb@a0#xKTTzM;)0S!w8sl z_zf^Nq~ECTNK?s!lCkVgAZ{BeXzs?Bx)YuspFI&5hfB4f==iCD@z1TI=RO|tn9%4) zNzW(yl_=bQ`W|-5RE+jQi{Lc$3 zv3@qrc9bkhc7*q|{A6qtOy&gf>gStvb={YgvZ||S_vGKhmtkC~)ydIpAfC$wbSJ}0 ztr*Chd&2kL$Dm#m(-$+2-Nj%oz;{<;66k`wgG)|rIwh0Mm{=3KvnWj;pTOJ8bt454 z8qe2GnwOTf11F>mJhFD~VA$0*CBe3dXb!^D_*#bdqIn}pYmQOAwpvboj&(yAFMox> z*g-d!#oF*iug&mbQ=nw+RAJ0}ipM@xEv?_I(Veb4d&I@3+3d??syY>%+<#|-)U%DP#W+2MKSS6!GL`R?QRzBgBqwQsFN)~-1p z=WF=Ep;HMwIP8sExt}wSAYb7$#G~tzOx#Yd@_FwqW7JzQ;M6uO;%%@voh5*$jjRFC zUYqv#o!T&pahH1^+>>;Xsm+cXyc&=Lss{VGenWMn%HNi{{1k0Z z#L`_D=aqs5r=6eOJEPz@us7u#n_RwpGcIKgXRwATCBy0LpgEe#I`2w+Z2jrd!&nxs zm31K|a4vp%DLr%?%w8En|ArqNEO@^TgV>(ip)e}JfUvI9$tc~skKV(3*9&7{4PYzZ z`|<%NHRW`^3F(3*9qUu z36&^vTpDAdH||}66ZT&G56@K=>tJq5C{#A)_hBdjsD#mDjC%snUL;>=~*+Kjd1Ut;w^u>V7> zx+!wC@3^%*JCb=lidgd-!M?R!p)mcBPF~iBA0N&paFlHn@Z!e7&#GU(S?Jg#2q*W}N!uwm__7 zMSZ)Y)84hjJ&wQlW7(*ObF;26j&{~*k(|JgvvaIA4U zs`?vw?Df+wXpKe|GfvKYnbUl0saw0eX;%EAx_H}!@L9TwYcJME=9e)gz4FIlBiOnt zcUStNMPkQ0P{!Hoc_SDb<0spCI2*%wI&H;N_FoQTyf9jh#`f?Mp3@8>9E<+?n;$28 zvl=~j?v!HFuhTJuY%e*@H+`-I(~m5UvLIfI@|>mm$&*J)ewTkrmjGdm;Z6jL?L+%^ zN3nl=a{bz^$wzT1!-qRrn-Z>eY|;P#KmbWZK~w}^vT=7On@#_A@nK!Sy?@u^EULqc zVr73Q@3b*|peXcjw6&PJ7GL6jjm2kr-gJYDti5&U6OOAZM|MZ#TbmT9f;E6`5%1Bb z)=+O_$pvld`fZdNH)1V)HAj*5MuW698w}=Lm-o3)+6Eh|eKhKAIbS7Y+34MTTEC@5 zBlvKC7Bp%z(|l4ghq7J}AUNcYZmnNypqE7`Fg~Qfh0pEuVSSRkv>85J3h@8y#5VcG z{5IAB^jaATWL&4!$y8)8Hg?=Nl9{cy&K=o4`R-U_ZSvFJ>gS(dUs zJZ&vJ*c$vo3PF@HFMo9 znKxKmYXhu>`^KiXvl+28Z2YxT?OcvA*keFZiuTa-Q0AV}^`wn#Qqy;E5lN=|Rw-Q~)M(w)HvL)B~dvw@Ifv3=8FicXLn zd zzCBQ|pNdl48gw~n9)<}!Y5TOS-E+*o=W&CoHnpK}YJXeL*$lVAb?VTrG9)7ZzUk0q zR>r30VkO#4U?u)lPV?PcvsqMIc{92v-5jY4&G|ZZ+!w{`tKyYE4vW%yFFuFw%W#8E z!KR3~r}1e0;OY1VV_}ZD#6|UrTR%1srzPzf@;y8*(t5SJ^t7{Dj^m56t(kr5r0v)I zK%5tDaG0--W9M-H;lq=gH@}-a zc(5|rwX`R`r<$K97kf5~zim+>?JTPfgZ})my@N+z8#Q5<64V8Lx#2 zeHkBBJcHUyU`2C0)^W948H<$VBx1#bVW?ZLU&nKvwmtq`e0Tc$u8G3r7B@R~*C}S; zPJwVGzUpmeR0j_iz=#O{ZmqTvFYmMJ^>i11vD$)3*#r+q#lV@T=d&PHxyfq+#7u?! z>|?Ti|Jpv(&loU))?EcAskG6v+UM6sgI`U3(q&m1vT}2DZY_gNU+z{D>eq@Vi)O-_CJk zR;UyyOR>--(Aq_LkmCoJa{-h#qm2Lddb5l-b}OjEPyiliPBOm#`?o9M#oH(U@sp+6 z{FQ8!wB?mGd5=bMEiZmOA9_DBH+~$8E%Vp&`1%;eIBh+TU%udT)hmcV?@|=&-`|Ry zkmqxuA^Pn|r5$a(6iquJbYGO>ov$lmkqlH-&Br|dQx>6&W&6k3=%`JN&|1CsvoOuk z<4`%4yKR#Sd<$@j#>-IxQn0WnKImv?kTm~Oth277XtEIJng$=XsFFzA3hlEV+o%cL zjmD!5w!Kj#9t|I-?B^@^L@Zqygh$`~RJ|J1U;f$K0{-gZl1g%ovYjq)=ZhT47P!;3vk9O+<1R8jiur)AQ>w=tp_U^7&LYPp;jMA}osD46}8M zh(&z_4vXSD{6+XJ##@Ef%gXdU;%ZgViB^qJNxwm<`Iv&KAUfz4|D9xmku%SnAVG1mS6h2%6!0#`>3$%iTq? zCuM@gcdfb2NlUI9DD=g{tJTP58%Do+R z*9Jup-nN?Y=cL+4x%}NYFy@|Br)Rx;R>k3m2O_=`J>ZN<`K-MCoqAa>I7Ky2HJyftp@&fm!8s*zou=KaHbC4K%5W_*)Fjz*SdjBzc0tTf4pTySuMLKkr| zxNOhF-@8};?)bgy?>B)D`l!1NTC%niq1-MOKTU&dTYr~atf`>be2A33FGYN^mPhz zhAc`~NAtT=VDPZ+wNVcPH6gUCpSv!-)rn3F9(++3}C-;dE7We1o<{twlIXOpH%>lXdKPC}%*=;|m9Q^xL|;_l0wPmrD74zr!4t`|h4`40~Anafk14&u_piKtJHXTC@~XrJ2=R9KTgdK~|gaZz(VN_MlD zqm5j2u_{+gyR~ ziyw#a@A30E&G>nShqlsRB3>m;75G@DA?P;_N`;g|eBM~308!Uo0T$5Ae3KDQ9K9qUup(=1GE zfbn%n(TV=X1#71LK>)qVwNv8Ce|t!7l|zF$nXcovux$db+9o|! zyL1`Q2E$MJpoApvJqrCTwASLRv~9ZB^lQpT?bhVh&?)8Xn{nq_ZD%1M*3s_XTW9!X zj12N(UbeA3-*+~^4;>so7bry*)^Uhb^0fa2ooO8h7~Zdg5geq4`6B#ukA6hj9Pi3z zig!HSLi5Ir+mW>|M(*8R@;2H)MIRz-<0ZZCrHH3O$=XTJedD$$DK1{T9v|-e0;BO! zcnK`qJ-aBAOuRcsocG6d4MqR*WT_U7+$^A#jVKG(b4R$B++MP_v9OW>^Oq>oK_*MO zSngO{JvvejE*AhS>{i1Y`HW3aDB5He+vZ8JS>xz<*ExS|t2`n9!$Y`qOC(`)|Ftvd}niZ5G)w&|`xUpDWD zlwLb%M?A=B1oOa?pRJKTq*`p^+9{yjv?o_s-(=&EQQ6;ov@0?KE}M{d-A*yd4LV}!zE80SC2B}`#0J6-4~jD8@D}lV1J3{ z2Z~*E*9Dg{|B^>~IZfswr;sUHzx7VP)W6lC%Q}i6YrBJpVG9|#&t=MHG_XCcA>8@# z#9d6edxgw!H5*xQrs!YJi8~k2u4K_lK2WkX!rqJS6@iwp8-+dO$TesZHZ zSzAzFxbl7hM#=wyOJ;&guYV8y`0GzR8`FkE3(kAH||g zBY4c(0Il_#);^uTfLC}+o4;w>3~AL}t<}BOKS9FAhBf`8tbgD@&O-<7RsGaSkFY23 zi~$=bJFD$tU^J|Cv`xVdJY@>x&MrgFH>KNbJ5I@-frGUyUAbp)3HMM-}t zekdv9)sLkqMzlB9I2bgSIft@nM<@C0;MFon#CsZ`hW_Zva_y7QfTe2joDu!|W2#k~ zB967HRqG?I&IW8x_ok}*rs2OSyx$ev-oBK8c70DAY>FD~I~pqQ3cby8Uy=fAQFc4> z_w%0Jxzur2xx+FhwWYD)*+V_&kx&{P*mPW)kZNq_osCAmplwQ0sNkXc3w{TTO(~m@ zJ0q-uFP}6{{TyPolejv?6h3Gpj#9FxOZN9Kq;lr3Hxbaa6o3"ulb6xGL=-{^HD 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Χ$$@5DX>yFeEs+NcgK#pdUmqCho4 zwJi&SreM+bA4<@N^kp~?-RZ5O-Ysrf+^j_b_fOwGnEYLC26y2L`4V36+YE1>0%1cN z_5sR>?Kw(+@lNx9SA9j_30mE1aV%(*KemC#V{YED!1*Z+?wtidZ`+y=5@(_u!_e;1 z;%z=ld7nZ~kk-@Vmed-OFnEY{Gj95ei8k)AAS?AJJ!dwf3&=Z0rx zdW8=#S+Uw2IkGnkv$WSZH2j9T%up#sgLLH|e27O6>D6N_bQg}1PZ!Ifb1(uE3;|er zT$WW=v*5fIp2#IYS)zHFWKt?`HJdNXu{bowzRIyy^60);Z&6xwx^9SHUT_2RBKW1a z)@J$c{Y+eg-Q2mXuX|tz$p%}>7N+eBIdw@GAU6< zbHP7fSjkE0%vW(&)@a#y!ZgF?!yBW3sdy15Y<;`A!@YVpvf0qT#S0Ya!g?Oh2qwHW z|2jW+5^F4L%QIvx9!Q>E55xQQx*G50Stn}`%+EZbKQo{qGrg}ok^J^kF5i4tL2G46 zQaYo1nQX|O?!nrzEtiI8y1I00t+^G_8Ago3Pc+r;{+>r)>CI&n*v+ST`A^n z9l30BcxNfce@K}}_C6_jvdwDA{EVP%@-rEpYn&%3gYuqXPMeF#P<*6M;;w3EGt>#r zWNcRNHzR+_PrlY~Y$};^@uMH(Zs)?y$0a+c=(fn(Tu@5?dG203o%!BC=``Se!|6aS zPAOGCJ+`Y9u{Py-g5Zv3CH;}{l>m3^oNZev*qwxKazTe;()l?fTMBPpH7?$5V*!8lk7teEc3>@%wKvp-kHgHTiFy96GJz zdR=hibB(957I&cLW=@mdxVIKLFqaFb|Dd~yt9$XH^v&fkBt~~%#af?N5cg2*oHK0c z#)4x!z-Tf;LnC##a^C!jup9#!a-eFV()Ce(9?-$c=t@IV#$4vIg1?If$sP zfv#f+4uBYZN^fcMh~p#;q?@uKzw;l`29`#U)}IiSOm)9X|MZ{!ezJexo?^h>72(G zV-3K+@x8cNT^f#+8~A6!#6CIF1~$w)sCCcz(SQ3!tF=duCO2bc@5n7${TyGbRbD{3 z_=2*?fc@g)gUPXUuHT= z7?w#PjpwoEg0vw)e#+yMVxGrWu1b^R{+UQ9#_C`A`<*B~0(zLJ%_~xaosR*wIPi7S zC&^<@>1967z>}pNJ4=T5GBkm#DW0B1@i&LOQjw5_OI#J##i-{ZWD<}fn@)arYFCXp zv@||@pfI;!pzI(thkZ=vyq;$KEiYckcjD){xQN17K4V=tm5p(2*Q}$O1x!Fb8>sgQ za9a+K0P7EN_i!#sUVM?YXr4e#*QRh5S+!b9}|a-{rzKDIBwYka^%zl(6z0%Q5jsImxyf zg=;(3Oi}6Xg1EWKB+loe-{x~ce92J*-6-Vwji!7A^Y6|q70t*)3Q#8&MotDOvNu45V#^qhJc2i$L{Y%(PgtW#Inabd^c?E|)#t6?PI0w%*)*BG??J&S?!nG3x zIj)-{sTNn|R;CsC(w|B(r*g^HtdF?kY5byO#i26rUx;7wcQLl`RzpAsyr*>(6&OU; zsT|s27mR#_*iGJSb@#~_;(GeQYT6eLCl9QZoW_DwyJ%PV|K(z=Y*>@lsfD-(%6wMB zbjnzVUw#+#0lz5^O(gj6lfL5D;g`Y^#`sm+qaHsXP=_6O(pSEMowW1qo0seG z8|Y`e@mXpi{c|o#y_-eNm$?(k#@*ka-8*@(d@ojo_a^`F55FyglAogRh6+433Q#F@ zli+$b-u{}6_Z!)`T4IF;*Tf%>8=23KIa#BwTBHR~r_cG(f2*%_6z(@;Wq;&N)W3|;0;e$wKy6_z8s)pYff4bUX{l=EpmsfQxIL(9#$6^$(#< zjA6LK*~Vz^r`4Bx2Y$oUL?>fSUv?on9&jP2x$b37r@SF+n~OKYo2S5rO`aF}1P(ZwIPwgyjOfK@!r>G`dHVqh%={|!^zs+a+fmF$+xmP)*+L#%^&Mw(5)2T zR^CX~mWr&cKeLpk(1p|c7|gY$k9tSQX}geVs-#6bKEm+;>+au0cI}scj`^6TCTn`f zU-`3SZKT(V+Do7KEJ|o{2%~^9!pOUmk+t;&%1DL`yNvVdgebH)fLr*(B|Jj--AB9Y zq~5K#S>RsA>4xHKsf)hYwv9)fljRS0_hvYBRjX{Auq?=0fl9YG_3kgdzABPWbmi{m%gZZqqZ1$Rk?r}%hckQ; zitcXLHg0glB_ffLl4^~cAC*>|^vWkA)^m}TY}eWmt)_6nNTMqT7z87=7;rNMA~@pi1Zh_5|^6DG~gH9)U5DROzMg6=vx9@n0cCq}4G=$8{fIHyA_ue331kc(jhP;c;Z|+T?H24|xU&`1+%haEbHz^bg~mynQIA z9lb9E8hQ;sQNaODorl)COI#9b7k}{RxU{;!yY-h!A24VpuP%5 z8y88JKqj>@Q_u9>72Vz)h`|RV!fpTgzy7y>Os$f;C7d0f*4grx0s*#rq^`XH@epZB z`4-nXiDaB6NsW;=i_IqVg%n5|;Xiyha?ODU5-PM6-meXd$EQ;>wQXZJ^Q&6XCS8qp{jAhH2)TUC6xjFW*0? zak?)~$_XnQh5kkw3UJn=;P&>=C+dEa2zZXZ;+tGc2|e#TZ2iid&2r|;DCJxN=ZK-j zg@uXBnke-N=6ACoP&e=81Jrjt=DGEunHvg9`HQ&-iUNYbZtmsFlqIsj`fE8yCoYF4 zUAh+mDRHM`F~nMlKXxuc_?=`y9QEWvPF;tjMN5L_#oIY98)2Cev~7lD@el-U9Kd%uM|IHxj>cqz zJ&e;d$W%tFGKX=R_>$3rQ%?^+?OFHXNIT$21SFta$T{xHC0LsaQR&r!I-3J12JXht z!G?u4LnoB#JV1-0Q5S&M;U{fyw23g~QTg3rbp8U~ly`wW)KN(VJKy>w7}_f!^1IP( zDHb$)q8P>#uiVbD?XA^9sI)1&q3eR5mIoO?kRmaq4M!$j11Kfrmn%L~fT}3hau&})sfmlDrGc0=D|M7V) zPrG{MMzznmbEgVt{mvq;;fIRrL*bZcbiJ4{L)N~X=Yu|vK@Y#|@p!zs zy%aq$7T{;v-7-hH$BMi~?vOt0Z{W{^t|oEf^M5+edKULM444d7vUd0+S(|$t;eG2b z<}5B{?%cUQId|@4_yyU?T>17pwj!OHBJ%ThyzM{~s(8jm zp}*1IT+ooW!S%Zb`Y_|1PxCZoP9e5S!)Gaa%Jwad`QGW#uOe%^_knE5jR{4${Ix+B zS(`xwMK_}l+!##x{Z-!#9yOPS*WfSY1}9p-jr?vy+i484cDv7p{)Ehsy9$Hz<;dD( zh;z~7!T*2cR1P}%0wct_5vejT}p+cD(@z2diJWJrbxZY4)y z!U=~sZt+h;g=NF6!rIFC2s@2WNiZ_nSzF| zMvIh(CSBf2^m;rbZ2ya9C4=X8$#fDYSW6hwXrxW7eXM!FeU(2&GH`S{;&xmThk zpt3Q3DGz?q!EcIp>W#M3xRTi#FG`kKe6md2K=uVN^j3NBF|Mu1g-)oeb4{ik@XPz+pGiE{Rm&^B>IBB9j__Wj?-mdC zxQ4&rI;10PX^c!5IWn}I1%MqX3OoLO&gL0&U}1LQ!j)K) z?<*@8y9pL@{Kx93gzIrY*q~T~(Klf-j)`yC8U;@L6Bt-~cQoZtyCgM>SM^GI!58Lm zD}uYU{shGH<%Mhp?9RnbQM#vaK4~rbg-?&~&cIJ6%L3Mb z65!{rmsydUAMcz3HbE#`gb$@{j6;(rH%1oCCbWm?zs9q^`ZnvKtUgW%4IgFq*o5u^ z6^b|l#Ad&rb#t^3-bNc$+oU|~jHQeTk1u!17S=7^H{Okt=Q;5vZ1G*_^QJ4!B=U~m zXa2qGqLwT~ooFx*IK?BhIibO>JXy5%a$K^*g%g3zxcm69(?;8CF~K4c{P!`y|LWD7 zll#kSlLJSOmhjZr#@k0&iQ0)f1%t2qbX+vf#F^U&u9w3vST7Uods;2FQ4O?3er2nN^a%9uyK(jyR90%w;`UP_%v<*vVrmXSKw-rzwvb-uk=oGA$FG(mD8mfs0-VK~ zJ_COXiao){CcaCtv=Pf9^-`uq3%530*Oin12eVlqmlU~m*qgC1>*E3|aXxz2s zlZ;Po#5IvIiLSuDOsM{mx>>+D`b?nS68gGew82tFqnF>$#BX@No~CNp^7T4Sc~k&) z9#ybWqr*ts^yexw@hk-i_5LWXY{S%sWVtqK7rk;H!%`caXZ&oyyTexQ@Lb!Q-QTKh2A)I4b$7|#@KEz>$s};7zo&Wpbe;&7`jtOHdK=*^Vi{Q7kCKwo-8iC9 z6=rkOkS8$6@#Z>mAwJKjOc~she3}hV@(BIOP)xyjpFY%y!u>|v_Z~WSJTj1ZcxcGC zh-jl|lQqqU=B=?lNBhhNavVdL%h|9;UwWWL>E`owP}24>Ojgu?=$068T2C`bdX}sW z4jh~|`||2q+Id@CtwhP4zMu|Z;=$GqwCI6mjkcn zG$f^UdfKdC*E56D%*SNylmpO@F^F-Yr_-n88X1fU_jpl~Z_hL12Ypn(rIg+pg(V)x zAcB!?9~bpq>7dujCLc2#G5>QzExu@%dXT%x)d#XMzf!Vx;DvwVmECXnwVdvBSJd|O zv$7B`6hVP%#$zu}L_r_oYn-*`Y1)cwc$K`_VFX824>|>xtWEy377qBA3fcy&CI{tm z(ew>#85f`7GvI(R8wc||gZFpCi3t-RUXLX$6*ESB4t<`<_p7F{dUVRGo z7{=^*9sSn9n5F4ufQ{~Eoo(s6x3UrLG=(9sj$oBW+yJou?%xW1DkMsS&WDX)jN>s7 z1A}$s&FpTu<(t9=Gzd#;=fFa9|NiDirk7&?5-j>|g^nk^Q2FxB@9JN!Jjz0s6#zw$ zBQEj(ny&u4Q!Y6*plA6Sky;0KF`Oee6asrQA+eGn{M%7xt&2(Be(-4WyI9;WFRx6# z`|fglOdcEt`b;@%>roW4wgs5#_g+veWjfG4aJoC ziPFj9sn3J+0MY!T97{bCr4+mgdh$3X$~6oanEENq#lHb%I5dl#O;a zg+Bf+er?lFZL(Xy@+s;v4E zfAjW<;lp3#GURW*kKxU+;o!mj=~vIoO_R-?G}~}E`Qf83JuKqfookfiULErGUi>}0|J0$t3qACczlLC)aw`hgz5AZl{UbjW-ujUFuw7=_#@Mt? zJ1yboJ|h<6j6qplk@3Q))AU8Lf7v)ht>+KC`ke6^Z zhdOPxKe9Hz>el0M|3hT$_jBhO#rfxvfnD6G41u!!>*x@EeP&;HUB{@^l>(e@K~Qgs z;ysyzl{KAn^*?g4x~U61KFwx4V~B&LY%dUTe`zzw$w~&P%{sW(3w-^Xf$QD4yyH%W z8y#b2k!I5Nv7}V8whP|U*S{}41KMC7~3$C>19k| zH>}&IIxn`KJTH>PA)4ObxRd4ELfJaQVqB6{C)sR#AB;V{-#c^RLC&@g2ZG$L zFsHt-E7;)IxNehIU)UN{@?t*xXwCZ0h_iQg<=ld-BbRkjMpL3&HS;)}#kDjT!88;# z5{Ezpt8cR#=MuMbvA}a9vIV5$#ufkul^tfgF#GoHEkBd(h)JWVNlj3O-KS1cPc-QC zs6^Wz+Z1?73h2W6lnIlI5WbAhD0lv1A@+R)H!cBOYFiU!%3g_(lp@n6O~}EgmbJ}#ZPw%Q zKRedyvpbj8JcyvPGeY6sNb?3G)OD_sgC0w39(iEVq&9A2)K6?6S_#i$Ov-eSLpepLw;j^OR zO6_74Yh{6*_SzezxKk`P$ys~r3q9X5JoE?UTQCrU9qlxaQ~I-Bam1B{4dtDqg#^%3 zhgqxV=w%iOlzx;QaDtqt{_WkL;%A#>G8aj^qV#jTRWd=kSzl~XmEU5)MNCcZ;7*KH zjKxfj*k-Q({OZ%-+pJoqFf4u@cdT{~BIvXjw2ATy*YPE*jfYuSuvY&xivbH>7RKZW zKu$*KzI)f6;ZGNzXLI3klmoGjNZZt6+D=7>m$ZvzRypg$_qva0%y3#3FU}(8{=;l4 zga$0CY;cq;wpeHfIC)B=R&+|mW29x_*l=$yZonRDJ8V_)7a zuSDK{{|%PJZO)ECZDivno4}{H&1QIcPcQA9tQ|Rl#k4Wt)qO)ed)8CVeY>hvKe{@z#dx6kl+ZZ*Ki%?p3>( z%X@9QFnl9xGnV1*jnRmC*6GVPk2d6;o^bNjTpkbw3vTM-GSh#LtPKWPn|BQJzV||} zL;IEA`2t6>_Ri?gJOxAJjp)yue&bH`FW!MBEcyJAf1f^!-0ye&D-g4fMOj;! z6y}d(NpF+pbMBpYJ}QO!xmfrMM{{4~N2eoehe*~NPosyto{dvRfjdgpF3i`|N8TxZ ze)q6g_l@FvT1t2KB{A@|t}0j424?E|q9BPAD`agOGue|Ey_GD_*~?sfyDVOuu-Lzr zrIl`3e1XWvG8k3ASsD1(*jE6XgcreBB-1iHfLj*-Dqt_ds4l zlr2zh3*~k*t${UFmN*tO3gUY97`iVUi_h6&DsaI7-sG@433M13R=ETI2F%_hl|^bkzND23E__^2l$nm9i;$ z7CVFA>W1O`I`AzvDBs1^(eE%xmUh=thQa$NmqL90#f9Omw@wWEavb8xlgxlYl(JC( zFaIleQVKi_(*u7(&N0RIW19jmM*-u(MO030uo5Mp^sxG^$Nc!uUMAkqcjNmw{P9cw z=}PEz?Dd~w;+-+iLYM`?%@d~H=AiNVO11nfjp<7VpL99{=rMUU?9B784QlleWf33hm>=Q$5HA1Z8_2KvsGA zqKE9tLZOeQULO4T>0tSNGv!#g*mPilLsrPOFj*iq-<XeBFq@z40pJ;F_#*TIJWV-D(6vLQt&e*aP-p=VSS3c5|@jG8;Y$$@1?9h>wOYL z4-ln8a|yIFuKXxv$%SZ9V`T(V_@#^~Z&(jM3je41ScK8(Jy*w|B%Z9-=+p`XyWtU< zrla+`bQm-GP4U|b{kDQ%+HtWBTHV{g>1zp;&Sl*grOW+{ zajut|Z}oazZR?xzjfqyC1$Aq0Psgs?+j`W8{;ChVBgv(W{J8c26gW2i@kqa=p9a6R zD+Rj^IJ}7LFCYGc*BFbJZ$Anj$cfQRSYLg8G431pl?%rHtfkoj0m`$^DcG(Ri=4X z*PNTS)19Zg!m3)HjgFF_Z@L-!1p-gihj~qA6`bcWcgVJ z^S1FeHOl;{5VdYX?~*w}d$e3Hc-3`5WZQF*wLi`&$3Mox+^JHswhd$bNC5MC`p~Dj z*pqC^?HdES1KD>bEBAY?HYlK*>D3v-D!hAZt_P>oeT2(V4w*FaFt6 zRvCa883CaGN#BF@^4IzyK1kUp~V zeE3ylZQ;gU<3w_&0NZJ028_bI4B6MpbeG__&~aHiew!S%6h^Y*0eiz3B6XD>lsAn| z&klRpGu4A?(duesZ9K;22Rfi1W44kZ$IK<;Ce!Bd1DC9g_N(};U&khEYbWpp_|5p- z1cr8L_>F6UN-b@ZI~VaQ7=g7O{pRHOzy@c^|A1GX_|`{Sf%Euj`;K?VPnnbU9br@* zC*xs?pN8|wSY^=20L}>#<4JkD{`dduzy0@}@!{^62ZU70pllt!##^gEk-l|econkw zFdQrzdH_QZuW|CIP(-M-enxQ}|GfJm{PWFZA#GC9(OACqinpAS2d{Lb8#itb-<-cZ zoO$bHCa!kmcTL(PS0v~ApI^yk1lduWG7Bg<+5&64jvBYn9Pyl$nJ*Ma2B#e_17FoV zSu{8z#Cq#Yb{xO>{OefbJQ{xY+Yjn^x%yS-0BizRIjKe|zP`!Mr9oec{P|>ZZHH|N zY?=a-E>@G0o$K0&%8QYQY#P?zbHb5zy%f!iZ2`Tt$FxoAMgK@TJp4+mVE*M>$Jln} z*k0~S`62C9DC7f-fGx|^Yng~YiLdO7u_R`Va5=l+-{(*HSF@WhPn*c#+<7_v z*n~)vW5xFhiVvY$>?)53r}OxH&HKV;Zk`Y;5MfvlpFQgMa~2Fim@=m<-1BZ-+R6Mg z3RkY&7%tzqKOBw^_Y;Sl9B4Is-S}&7l%*KWep^lWerwnDf;aN{6DWLb0JBnck*P(Q zQ(%-{=GaTIp!np{gOUw?5o;MI%UrVMWJbB6NrB2-zr-qL_F=4j8Ebj{Q639Hr#Ypy;;>=w1M1hD#ti0*TT{4zz5v0uVL+%{dRTog6NPmW>cltB=3BGS1$Ca>OW5+o4}WlCLOwv`Rgz7@{wo!>++R)%<7m@rsdT54L*H5 zruZ7Co*jnz&0vga!I1Y}lm^DN%@Fl~|3;y|w~&+g{v%~KAyjU7C`*~@H{&mf??HLO zQv7Bx0(A;w#Crw_58*wmV5ZRYmo95l&dY;;;Yk$c z?wdGsbno!p`R{Uf#*N6@@0Y^8ZzdJ2DZu3CIm(?6pT)YZHW0&8!0qKvs&XiBFP8{8UA?x!D+m&j&yI^4?*0(=BIM7%7X zORCR^@AxTAGDS>fZ6%6_lXtz2BE9SF=uML`=i}9T8H`?+fG8LZ@_IZ9%;osWFBHu- z#BUyk^y<=L$2w}SMB#g-crSSC;HS)4`_98|bZBi3H(?P!#;z-Ii)2UCDblmY_tx5} z?#M_R?KS|bfONd)`Hq3?%!0FbSU@$VKMf<^PN_QSjN)0Bh!<3>?}+3M)Ut%E_@py{ zrG@yuopvi*2PaS;%7g&E!2!my0N3e`!?H9zPFZ|$x}*!>zJUN=i-H(>wh2&K4fQG; z0m~Xk74wd7S~oXSzKa(q%~|;ImGtM&E)I9EUK{@DpMG8bB;7>r*wFR6kBgaMVCoE( zKV&iihNTs))p&L%Z(BZY%Ycf8_Hu#trL= zn*b4q2jDlQ+=~+HY);6$|3-L0;_<#85=w+700#ceDAT`+h3>aEno9`oFZk9a)Zo7? z%keS0vv~K;aRDMPURnGyI2G>?()d>K__1T*uj&G4*6sq!Sn-4#aHl-C&mV-C9eH;; z0-g(PD2PLiQt&>@k-?&ms2@4NSX2DaU~(t?QAR$;=s|rIfL{VJ3ae1Ql)JJM&{>o$ z3))#gZ{IzS=6LD5@wJ?5NvhvGdU}628-=kpbG-FQ+UFnRr}oXbqM_4vdC}EeE<|YO z7kUKQ0Kecwh2D0Qo+_=^*=R%Cu{dT5o`p)_!q&=g}p9e z;&x7c@L$}ATYrTJoIa zbK@5k^DYm^jmbq$O_e;8IOwkz^e6Rl9}mkL%7(fiDVe-0{t_8!UHpQF`fP+B>zkPz zDt%ywbgdmzC-@bNd{JJfQ8bsS-+`<}@26z=-V{Tvl%FoHf{crFXA zkJOB^?Dbq6+zv#}cC1{!s(Zn1vNjpI%9`X-54c$o~_^K(0FQ{a_Q zKp!(d=~FdU^K3o#m4N@724Ze-!js_}qqFsR(0W9`mBvHzHQu#BXCu=*4Q@Mq=0Zja zkPl)kK*k_{3op}Va>`dY@0>$k$WG1`=IVClE%g3PCx$s+=0lO*~CuYF;=)(q>Q!R*hn6>GJ z>yOe$b3aT>@Ka3nZ+QakXL7fnl1ua&bdXSe`!eTRF2jrZXF> zXjJj)lT0;!^RDD_G|@;^_sRH$yy)cbvSJ(4%^-&X5*hI~F~TdOo0PlJ*Z~c`r^DMA z*WJk)gRZjU2bbb6@Eh^o6n;rt_yu;s81Y`8M}^Llx+h!xmR?u}1O2A>t?45L16@b@ zg`iy?E*V!Fr1m9)YlDQ2Uu&BtcX|_&)Ev>*l0~?;H%UM?FRoEyr(_596u3 zV?fS*nD5+bx_^j_3x0}g@~#Ro%NL_F>Y{a&LyCm)QBP@m=@1-}4{Iw!=0BUI_&Z>>7iw1lr#Zkn33hV32N+H!e5g zLyJ_AmIdqG@CB|dZso#5!imL%Nt>Wwio^iM@A#CvnM-V3A{cg96NU-+Wf?)o*Clg~ z&wd}?MR0KU1flU1z!7mj1)dwlWu{$uiP z**qbw;L;|F5WG(m#V}>!kIf6guR@e-8cRgQ`I;{a)ky66L0W>5Q&|K-0W9_DFe~yk zewfSlrLEyrr??uq*I*!8{nZ(+z21aO%Hxwc!php*rCe9C5YU!3Y(6-hIWP-1q5?&? z3&~w7elENCtY)_oYy>z?+fm$?1?s7B@eMD*T`Bk(i!?Zj)`!mIL|iAbzJBdq78IFi zS=$I;F6*o7_2H6VBIJXuu0#uNmZWcC6zYP^)mXh-4DC)I=59s5-JiVjNbV@1Q1`ct z^vym%taEpzO`>SX_{0OcwXd`m8hdu{jr_1Xf4S2ke=eUqwh~z^_$X^nqHKsLsZ(1PMKUP2Jn;sxw223jL8M*espV-oU+IB- zNg?7$anUv}`df91^qPvc)Gw+dJf^VaQWt&CU*E`LuX-_lFdR9svTs<)UmuUt z_r7;r@tWrmtcw zqnT54(tUXT_|fo}zkDkg65+rmRyTH9zxa@X0+x}Gy;RbK>%z>;Ie1B1$ zS95QF+or&aDPV5uyr7ST7w6heaVwVK?n1Mfyw!kzJjlA8g)aW-Ng;PUvIE5+nVa&k z+9tr=Epg)>Bf89G$y^E-?e>zP^AK~f^#b|hyD0a_^Njm!xSNNad#LnGE%%yl#VNH55*)-CWyPjv6~TP)H%z}`usV^^d&L+}T)O={x-0i>t*$AnKdWHU%OiMpIba&!6Z?7wDmv?2K#?O9?X}ts6 zNVS%{#|e9YQPNhDF&#KPjHGTq#~;>w{x!O`OdWP1m()`{3coRLkFR#`KR^!{ke1bb z#-kQsRQrxF3X6uyQW%mgg{|%rJo?wduTced8{#Lw^woFsFy0=~&!#WUj68st;!+!&aio-HNYyIj;q16va)~p;){#Jci&wd-hA^!CF<{c(Vk#ENWWdv zXnEajCKcC$h9JN0a24!*cPLA9wAF&r{RycRWQ-ELHYa2 zWsLF@Tkb3(FxOlcm+2XEIEa+pM<#K$k8?Y#nCuSfWYqwS%Lq7j8VNW1_5bEwbQQb85cYBs-t+RDL9T zhZ+%?!WyIMv2lFshss9BX+XCtDep4DJTCYg$#(M1nENP}-*pMwh@ZSMDxSfBFN>(t zM{=@mluf{1#6>+=$Hj$vSxD67!w~}a=ZGT99zHV}62L{M$N0U)w9iGj{oPjLd)g9E z)9AHH80E&P^o<^>p82tehrBF2+!5jEwF{`EkzVMq+ppEnW$}x!d+KFrz1vFsR?@Bq z`-kAisKsK<_*#a`vbgo|SQbyF-J8DSvQhG@v1_qm0T1?c;URx-AK$or$ zvUaD<_VeW_u-^E5d5C`>IgNG0)QLLl-mL_d@tIA(Q(iQ+Q>z%)){rr zL1NIb^Xd`pO_x4RPtW5w8CILT?$FCzCTqh*8<=ZtFtHw|U>B_S&PRFv@x_N}kGN%t z@|Sz6Jx?f>DdBhK9-;K7EE~~DU;xAAi@AJCgZB2tpW4I>j8N4##w_BkiQxHVHoI$6 zBV`y@0_C>$BI|QW(~NKCPo;pj45GB#ix6B z@2hbPFZxk|tSxw;m;U}HSvv|=hOt72-G0$?;t4s0k_hX4n_*8PUsKpKntAjz#>XYQ zwn7&3cQ_l@v8QU!f;8ehebZr+m8{#jn7p1oqb>Tos$xF;o`UdOTeXcxE^xLWYfk}< z2=(%o;Wv%*z0$r47>j^A?8W$$wWPQijn*WWc+Ai@Z8ns(mjGWz59KVzlePEd6e;6M z@@wg}GjPN+vC`j!)zwoXF~yGHGJuQ78mxAnSd&e06{mxAMN*ZN50fiFx-4Sy+fj8e zuEmnhQHl?vus#sPEUbI^20P52Mx%80%p1eKyAOshzPvD;I(4jeD*#Zo@_GQXmEX!# zsSZyX?;L@*i0!`(a+k$Xme&qi^0@h%#os}G;FHuXz+dIq*s+`+e}3b94eSG_&JLIF zW`IVC@g%;e40a2N%_`5~buo<0j}AC&^e_S;#s8+)5ow&O8) z27bof#`kxgM={u}1B_`L(FWbITngC*UOeuT@Q54trM1J4PlkUb{mX=oL%G%Xp6|#k zLL$H&DOV!Rg4{8<#ZAn<$XUam!;d%56x36Ef8#S%O^fTcp`CB(yPwq@W%wT_~+tiMS+q zI*%>O|6|3~98w?iB_J=snnfuKQ`R!vy6`@`CvV3)Fgu-2rMizq1h0L3`9t(?ik0Ho&rAJp_fz|8o zeffnHF=n!e+?54Exu{G1AGq|4#dH4DMVR8}H=2m+aK%YFt9wVN;?*2plgRvTFy>)X zR=B+NVSrToj^zYo1+dGP zcQ3rh=f$%2UCyI6#;@o!Ayv^e(C6s)0{j-+roiO`+SAb5cfK9H-zxp^+DB0c!4)q8 zS36$JeGKkk;FopEqx4ZdU!NmifB50s!?)jlKb(H!cv-qTRT`|SEjzwN`+T6oBHpTH zvBAfvO;*39_l3J53(D4>ZIO(R939QpSipXh@y#91-g}pZozET(N8kQnxO^`Q=_v0X zJ$;;cb!YLg7s=YnR5m(a&fv4z`raG4b0fd|J7{f(Z3=8t;K!!`xr4l5>~AJWW~|EN z?z8hZDIXb=v^f-CbsFYGE`_A*FwX1lqWGG=9G7}pOXE+8^FN#cVv?RKF^{z zdHA@w3xOBZUWcqrp4KM!BNJbVL6Xyp2O>L(hZhAD+W20wRq%RIC|O$_@~0hade~rL z_5NemX(Qa!V_7h_>WAm!HbwnQp3S^Q|3!ICo?~sUFIYyL%Vx7p@MCd};*!%2*8KK< z<|}R2eU~pQ??rL)7mzVwhY$Y~+3Y@*jc>BHcr>0qS=TctJCLK%-U%-yM;XYI0ETj= z?9`{^ypE*umekSfWiS}s+==m@jY7HwecRn`WNlR^zd5zn$B%gU zI(@)(Wv9Y2*slV=!aIm8%Ch>9dM@Kpg;nn~ek5!Szsf44@NF z;SB)<9T$oLN&rumD!emIg-a_Q;69MVKgwW!^Kh)Vc0C{doLh;B@AtBsW00TDrKuQ; zY(0R1If=L1$Nd2dc?E)}(%viEjzUi7)~*)?*MTem9p9E*!WzW+3ch382ck50!GfS1 z?=3)l*Ed+&@GDDUwIh>*MYv-$F|rxH`t0lB#GVJkhadfN`2Nw};O63mJ;R-BcmIE} zzWL>wdvn>v{(@5lZ1ABxI7Loqg!E%OY*S#H0 zvWhQeR8vZt%<-Umkrw{-n|tARJ97NBovo+HG?}g!@CHFy)9>Q^#-mwOe;i)=WflSa z)72%>Nss9luN+~_czH6GAGD+?2I`qKoyRj5aICJExtzz3upts0I*+gUL%|7fGl}^n z3ch}UZ3o}R!&}+lJQcprk8u|uD)TG;fCCH5FJl?SWr5%_A_^bvMFDj;@9j=g6mkbb zkoOK9)(v^rCu;T6-Yi)tbht-I)Bhx4qhi(RSllKN+ALb&crAAqe40xS^&R(~pcnUO zN77B-Ic9Ec3rg`lD5EYdO=Q4SSL*Lx_6cUuJ73V#JZ=+OeDxpkW13W>+El+OxgjsQ z{4(vsNmhNkgzWT5X$A0VeE2c#!|ANXfBmIi-+IMLk(~?OmXot2COWO1)(O?wp zd|^#heJ4*S;EQWuC!O@`;Wt;u!Y^?1)Q)rbi45@0hvC=hXVJj@<05_qJ9rDSleLc> zaEE}CPq`Z)72pohsSM-4_p{0{erQi*GVUJ5qRiscKmZR#66IIq-Nx5t^Svx4vlySr z+ENFOT9CE(r_VB45hsnOP2mQ&Dc^0*c!zufo^v#O`18-d9S%IXIsEF^zZh;jUm13W zPoKz~;exS$`R0B$3!eGI1QjKJ*k2b#3Hm_N+X!8xb!-g+2?Z(Q@K2RcC-yjLB-WB}xn&d+nKoZ zv`a2+c#=2C3N}v35#(-sU*1lpWq6Uby;nzli2QjcFpfn4t##H5@-Kt=W5!XK^11$D z)*AOR_v#kb2LG1z+TPu{xSU_l#4*g;mkUJS&U&c3+FWd#atjn>UzMz_-suYUp}$y$ z+Jvt@xLA0SSwHEM=(xFeU z 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%0DpsF(PaT-vU@!XYrdKB{gGU* zU?b`8|KZbev!w2?l+5f=!Ru1er}Vqi>WLGSnhoLZM#%=h|A(UEB{LM zYg48To-MsNJZ0Q+6tn7|i0{%C>Xe=pft(d^tp4h#s|*=@TlV^d6F7aG>#vM|(hd8d zbkc*+X|1o@6(w}w|Dg~)7k1hm+zvyT0o!1k97K%6To}vYx1^2@HXa;?=`p^)>zgA# zHhwJohZz3o_|0vDpNf79Jc9S`N5OR(j zR^}Zvde#7ruo8q`{^KaP9Mx3^afI`ZbHNz^BFG8jBI=ofOrLxl*}_}(H{MbFm(^Is zHJH7=j?=pMk0s#N%MzZAA){F^s+CDUrg zP~evxUsAUrZEE}rK8wb#34YUQwfCH{bq;>;8RCr`EL-P}&p#A?@E(tUSYTJ~IlA}Y z@#s#hW^5)qJ!P>^X3#)=W0b6I-f>|dS=*Y9VT5~!{`kjlN)b$sH z6njkx?F47zxjak)I)cj$9_#B{k*moCzxs=JN|{aWAONR8SietkASr<#002M$NklIQU_&%g9bf+FK^y=FH1Scb1CQj zxLah6e(Tn~vPj<_cQ0hL&Wjz6-~P~18(ElXmm4>4kF0&PkBaDf=)o|9frd57d+)wl zmRQzM)-z!AegwY7AO(<37xWmmXut*DC`X~ci>2MeoY2`c+8tR?{PPIf%BhKCuf1F{ zAH2!9k!jnriAhGQW;_~`XO4~AEaQ4T5#yaE$vUc8) z<@wg;g7bFnIV_cOJJbN5or~`a9Mb>T>huQQF zU3&l*m>~@Bo<)W%7=sS9Jd6eW3YQ=uJ-X-rBnH64mGj@BsEK z7|A*wA7;Z?4nKK&m!Rm$k^Y-O-R1?Z0BCkdT%Mub=v)__zoXsxGcrMT9P%091PIOowOuQ#SdcZ78%ggEFMUpLk4QbbKbV_LYo# z?!IIIMK*WYHb3}$xWAaw_Xb5Um-K_c3CMz30LLGFejnnjNaarVF>wtykQPFNu^4uT zv9>-o1tUc)Cnv8OzaTTW|EA)@+RUwE!I+2NR6II`P`&PGyK9R!{&w_D?o={&ow`nz zvN4K|3$pgDoa`!#_z2lfB*pZtykva$^!?E%pPa}Ezdy#f_w|x-$d}}9_aBmn$%Idz zwv(KouEz-NaB-VF2?N5qFpejJ!r3s@)hOIebS$3tzSR7X6CRKTa}pF0DRXiV&Lx5w zv=C~0{Ad3nM?1G}-8A~g-+mqe`10t3_g||ENAE>&rw|n|$a0|z>R%o|JNl3R{jbYv zn+uU9G>3Q*jw}i^IExS$Qk{y>`Y_hPZ$zkK@qoy1O0B9W&)`}>{PRD59-$}xva=u& zywfNqAZ5E+$cdkg3^Ef&wnT@AJ!|Z zbGRpQe0F(iEXGQmOHrD|4?*tctvgkwg^DA*m}j~!{kJrfy}k)>a1c6OJ$q-7z`wmC zulxtfk4DlJO+yY8QJMjlLbzMAF;Ae0i743J8e_)9G65nm+@&He&#Uo6C_p zkNK@G7C0=1{wZzF-Oig4cv;~PlqrkVt%S}9|BvFIpYYFh4uQ5#Y2+d+JC~0)KPfAZ zx8pA9>aMM$fBxN`V=R{fKl!#<@7e6*`|WDlp;9K3ej+cLGzCU} z3>FuJ%svhgI6AK4YLbc71NRSj^@R+)526Tl8Ox?jwml4CEP@>v1>1lf=0Y!cpqX!Y zJqv!xT5yN>b=byXxJpCF5Qg}XqZ&aPjMd|pzNI0A73jAFKXp&G)&>nfzh~h$gsnVv zB)qIlzd8760|i%k+OW-W;);Hul=)y9Kk2oNFr?oPho3rzSA(BoS)qKD&B-@{dL0Gb zmIZw1a5t8(T(3OLc*_T!lV}t#SRN0oCiG;DDyzxy1EvWQSeDT9PR3Ne9EBs9CxkA* z8=K)hZpsM$?Y+5#YpEXZTR*k|{JT?8!0gKA^5OW0PMrGox`Vx%u$J`7-W7QOKJYHq z9RToK8dZc#{rO1Hb}q9&e(^zB`%6a=Mb2``F=YqrDRd~?2!R#{f|CG5LdX6s03O7F zUOAJ{Y5h z_zhr8=$H5HHl)-uEpjP7NUufK)+XCB2k&`_%+P3^>?LPwch5w1yg=5*1Dhgab6LnY z_22#dr*%>4+ix9-o4uFo)FWkWjd==RCNLPF^mH`#uYU7hDIJ@lx5;`G+ReRSPE2qq z7I34RqD%F zgF#2T;{hFdZKNZ2k(d7FuRe&J^q_o;qX%~_j2Re`kWUUq5lS{}^KXYRtMp-W4n`l z>m!$-LlL4L#?Z#ZG5#EmBBCzB%d2A1VY+ehwSK|Lnn^GgpgY`kVs-MTu1*YpoQ3JD zuilOPe5~q1o~2~2`8K#1-^iwCqxiO&gSK4JXsg@t)%|Eo+!$qT^-kO+-M@V+Yst^T z3tv`wk0M($YS|M0=f0C={Gr2pgGZCK)!%v}=mw{pq>4{`_bGk-^|_Mm-A99Oj>OfZ zb(%Hfr5JaeiWNLqFCX4t>osjLY%BHFwiB5lzZr!&{VEs|KRt1|HX63YZ6rCH8yo8^ zYmKw#E)~8M`Ze%XuGM{@y*}ndtP{s%ckX+vW4u$>A)hP<6%S_U%sMtM>!M8Cn@xS2 z+{Gt@jAZQ>Uu>5$yKmxg*1gKH*%y(dcz~+{vPo}Oush#+ULxm>3-4oSr5zXC)7Jc! zd5q%IC4@bwXUU;~;qua+elm|qnE2^AsNvV-EBH4Up&1xsqD^2-;kPi4DX+CZ7`={` z2g<9iH^2`bKzT8NJ%wMdI~35vcf&7Co6J81ehu$2oiJ>|Jp6jy7q#!8j_S9h4Md{J z7(QkoAhP*I=F~G0Wn=3w)*d0TO{gK}e z#Z@TxNw+S=Wocw>idO4O@@9tXRrfPEf~&}%JOl}|PDH`cTiJ*$o(*zNLGF#*TH|Hj z_jr5=aRxu%hR)U*+#rhYbkm;vXaDx=JLT@_XGgb&P8mm%RlU~|D*Y-lNdgCM__%G{ z5I(EnW02Q-af@VaNF`uP7utS);X(QEPO{Xe$?W`mlecX+bXnWUhmy6EkZ<-UPn(M^ z?rC`cI2^azTjE~p<7^OrpTWRJr1Z*oMe1V8e&{+JL(PfVqz)4povr+@$1BV6JC90^-kv#_tgV(+$Gk5kd-zw~k<*=a zJEEjlJ*PC?KT5CsU;pdJqyO}ueiu3UV96CcY|u^1-}J8t(89X^@qhV0{x)W=DTuh= zgknUKkPvb&N~K4U?6*ePAS41};fMY#2ULJUKxI_WuE8rY(RU=J7MdXOcS>08IAAY#eRQiT%LamF6(PQj0WM}bUnPT5C+$ckWF zgh7NP?5G#3UcmtEf=KUv^XvCZ81sG>4!x}DZ}sF<-?85<>GD`1s(Vh zr}Qmr`V3Oa`!W~ja4X`dt;)0uiB6}RhwEzM8~?UCqY*s) z37t=0jzIn(f;uZLmjtuKaSVBXl<5``{BjbC`LqAs?~jl8xBulY-Y%ZPi&-nw#B?w& zVF;Ysiw~zqx#e8I=NEE`7DYY3@o$A6E%F*o8ns|Fq#MDzZ@l0SZK)k?!dT>5eBgVQ zPcG-OY2!T@HoOSA{sarR?=nD~%B5+aeRgtm?AW2v&pvpwEWB)VJ&bSuyRk;1h%f)B zPKd-uC?2p0fj70y&?QR&Ug5(cK)?Lv)TM%Da{z9X(r`on&NC~3D&8@Hv#cT9)EF?% z)G26zUdl_)yl1mz9*EzHbghs!9gC+aB6>Tobj&3H-6DhCI-t|d?c;O z)zLZ|dwDgus>qK<^UCs8z=k1~#OosxA&E;X{b zdo}!T-m#EDOJxx(R}+F-gu(DY@|v?6J!j?A+k(v8u+sZs#^uv01sVB;-5S?WdL7@z~#=zF!ymtY4pTGh-?xD2YY8AKV$)APTBG6j4!SsltnR zIO)7!+Q-KIH1(d0e@ScHRlVu)WdbAVtNg$$T#|Y*>;ZnE&u|QAFvfUS{sv<;dEZ=db4UCi&#pYlq4RfD9*~^K=j=+T2ZM z*&8Jx1$ht3!M9|Dmm^~`Sa3R$%MU&*n*xzM&KkSbOCyI&E(@CDBe;4ZSPjDnB}2zB|6?(Bm2L;PF334t4UtWuIR} z*2F*Cw{5Kx5qz(ohywg~zdN3F%)uCGyR&)HXc*)#fl*XQxr2EaX~p*yUCNSKlS`v#&S*6 zPUO5$24-BxDvJW%sVXOIiie8<`aCf;{*8HKsSIRfZD}#7F*1ykH5Hd~G18*MNIbss zYB^R1-tq{hdqEXrdNl(S{U$<*1*$cln!HvpJ(f_uxil@e(KoM*0;Jp z5ByS>3H<`I;Su~M<)K82UreXf(y!&!Sd%)gNI$UimvZsT1it|c^aD@h`trOSe$y}t z_A>MXZ%FT1u-n*7){aGctQU-}F6?AIee1pxXZ`LF3S4rjsg|;^mXfz zCTm-(XiM+c8rG5zekE%U%8@_OwZ7pZ#BUn~z6I&E$46)4-a01SHF-()lbRM zhazk9E^sIJ-e4r1>iy1R8Dw zIXUGOZwBA$ACZ+>Us&j4y?@N-;W3QVt;UfKBfm@cA->vnVcby$-qh9${bMnH!}5@> z!xpd6JB+p9SF%XQZ(R2pLko`(VG8z4{8AVH8s1Cm-tq4E^|a)v2a#uOp3#qPioR7_ zy2Ai1@Wp1bc5uMQ@M6q%B(nC=w6Aq$rxlMGd*WtMeaIeUX0ix3?M^R}CCCQ?*f0Fw ze|O^h7uRQkUWeJ*;sP*=mbe)rJEvbZTk8-!vc zg%NmJ51c%Cq5NtS5|qgT-cAAk)&yWeM3PSe!WFWK{N3-qD8=+&$AYC>sL10zp)N@) zuQ<5={XcwCid67f9uuzHg-Zmt^%0JCmvuNC9D8)+5UlA?%$3Ml?|N#=j|;I(LnlYu z59UvRQ~PenrOIPG(*P-pa+Fm%OKQqdu5!3Vp|l;A*X!1xH3lQ7UC8CLpMLiB=&yhC zVN=M)HzdnybzSX(W*T-cWBR+d#dQ4eH+qb#JdFMq@!WC4-VdTs|Mb(Z$`T63_hKFM zVUC7SWOH4lT`V+Tc_kY-$Kqo#{h%*Y@h#dKOij8b76Nc@Yn_^4?T>J8qow$B+<|8i zqtmvxx!;}dq!-_XY#S_2auDiudR99GVFRm0&8=PE#hW{4#Vs6^B?PW zyS;mJM?%kox4f73^9#8cFg~75XlV6L?wX)V?Cc#xe)Uq9-aaZ<@kv_)dxxCt*TAbrd;??{%Nk1_Rg=7=hQ@ zpuz4i#_=M@c))N?^n;(a8HWY>&A~5em()?2!}iTY438m?h?q&g@EM*Gz?g=utsbVo zvOs(5U@juhhUKMPqWZtry_dG*J#NxUEY5u46xbITyZClL7}|@M&$x9qz8}B2mg9|?H@Xi% z^`Km0ss36l)(QF)=&bk6LHaP>DLw;e3~yTuP~X|#>g?ETrm)dhS8@Sw;8ED#i{+L@ z1Zy35cK(};Q5EMM*n|F&__7Af_mH;>Mjsny@G#US{R8Zz&DSE>i(sVCWyer3l0lw- zDflg^;|%5haz0$9gZBRH^Kash`)bLf6zcd-JlR^C`;%83 zj{oT6<8?8pyMGwakU_};b-8>NAY_1RF&20?ZXUTXWR2VME-t;-Vb(h-mB!EJg=|1N zN`4?m+Yjx|`Xw(~Uf+!(_{(F%ll&GRwJ|QB9R2u{uSf5``)V0d^z@D zck_1EAYaD9|IM;4X8eGTTgJq>$a(nepkogcjIZ9hNNPy5DL^EmS6=bxP@ zzx~>zl+7_hA-^&Z@}9AZ-%d%Obzi9J-^OcWqjn@~w{fx63!NUsfCNnahb6h7{}gMs zWQ#sKZ5McKp}$Ee9-j-xvq=O;*5of`Gs}qybr77C#Y-D9R$H&xpyH-R*4EBZw59JI zkJbLItnpaJoxN~<^y-m)bz0V`0R3aFZPF3AKrC$U}Uf3x3Mf$n>(K-za z*{KgO1XZ!=?zEh-h6}VVpR^RM|D3p#c`3>?$_Vs3w&%rMHoKuLI3HyFfAYGqsmV5r z=8qIme46t5n5JDi4aH4x3Eg^|RD2NVZ3QRkR)R4PcAFzxe<>L1KgQ#k@#`>BsB-7w zS3DZ|jn&}hC^%==eGDUL{n+>wt<@!A9{u3l>X^PFZLj;deZ_Uf-f+D$gx%$MOsb&ojE;5)@G>Sa#8EeoA-0S zP$uC0J2sVdxbX;Vc+CrV`d0EgrEzdaP9H`-ACr4tmY*yh52K|`(BFQ1dUWnVPRI%pA+BeI=iwLBWqvEdYtm|jmX+g%2;;KPQ82;+(+qksIz&qhCwVv?`>X@xs_v^)(GJP4*P&iVZx+9H6! z2c~r1|2ZtCfYTVPqYSn#w}^Rnbrv1wqa1bS%h8VJ;aI?PA44G4S+o%)x^HCF7IsI! z%;j|2{=M8*Y-eo98*OlEi__^%q{Ub*{Ax|M&~BaYdJ6FIuEi=Jt9Np2+9KoT%{%3{ zpT$ruro&IHuK3ZUco*aa-*J~K;Tb;vUG#P3LHtg}=l_SV?g;FKdiFBc@(pu>Ol?*K zN5_57WFY$H%$3p3mo|@n8UOz*&t}z2IXxbIDU%Fvth2yHXQ9f-H~N2i{_*H`E=^?# znC0~7y@MO7ZB4N1Vu8at6udu&r4)FW**|0|VPomrKgaw_qk#6RO~43(d?*t3@%Fi! z-;KVyaBsBkVdlGiu>_3JU;#8U=nLa_6jl_jl+kVc%Dch)Mfr#Eo`va-IgIzd{~o3t zm)*wF{$mWQ=NU&&^5?hyeCg`#(SQ1fuSdt;dwcZjpC22&8UY&K`Cme^>@6%TUg2oG zr%>RRb6XV6ZJh0CSNB~f`I6Kz*^b_r6AaT8De|Fg@(sb;(PZ^9mR*bj(Q)R- z-^HqG>&B8Da>rjO=&jXR7qYsdpxqv!o-3VibENfF76Y@!H!|C<&7;wq7Cr;Z9>=4( zAma1hT^BA_J$th$vxdzzt8Rae`{5~|-)aZE(|Jjovu0<+LE-N0-tx7&Add_&YjOf+ z3vWf?$Hy}l8r;M%0C+7{#C2~^tafMdj=1|VK;VCyBJ+b7B5+x8GYaRcx#wr+&X>xn zT{&ct(~(`zW}bgFmckHc8Z<$ua&2te-VN``OjE>Cs5!7?Uv8KB84EpCz~ z51mI{DC@2VCj(y3#l(BEFm`$+qQE48(L$pr*ko;MhX3++AIFg5a9kz6S+db2Qy$cR zk~P1%NcvEtBm9C#obu9GV8oz4DEL(k+rp*He4wz z@Q3t^GkDi=aqko5y2Ul$>+Z6$$-;#WD|{OT6#YZ|m5pblw;9E^>%$jwk?hU;qo2R_ zQW=2NB7Cacm2jTCSI5-bnza`B>4)cXs`l$smuti8FMf7xv^V`5ZHA%Ox!2cQcYioJ zVon*N)A@!%{)-FoSA35(CX@c3 z!@p<>=o3zxJ$U$JbU5A`DBPVyq;S3%dFlA22csuV3gmFvme_9tkZD(>b2-8S;1)(lvZ_Y}R&ppoO3Gx)_pX4|m zYY|8HnxpvzcIbH>m;I~Xd=S4mAC*r=M`S7N`Dol53d(SYqxLSQVUw0?d*-m zWr@h2t3erEI&FOSj%h(+(L#9QM{tNkz?KDq{FL`Szj)714G?x5hm@}?cPE3Ogntgj z$9J+ZWWePUoZ{r+_v=PCA4gUDAPVao$s`nCxOla!SX?g3D!r_Jj zewayAA8BFoFrJj!#MJZlRP(;U4fJ`h3kS*?O7nN$JvM1?)-yJc@V`D{Bc_+B&s7L; zc;XMIDfVP@YP4a?=zKN}j_uuA3srv0`p*AcB$jyrbLDYquyMoY(Y7o~_U6dV8|iz0 z|Jy&tJoiNltMRjiiF)@1h#RBtW`~jA(ZacP%~rDKB)5y)P8g*964#FY zy;#QqA4F-jIfLB`X!UG!ek*Inr#{=-X~xTcWl<}z+rP5f{M$#DuRucMsq1l*l1q75 zyT2E|wr?HSm__&F(Pv+OKRSK&agH;_TI0KK)1NYKCH-(jG0*irEUm3{{Aaj3|t@GySiy~;@-A8&i~etops8mZ`3Q_v!Gfm?@r|| znzJuFE`N{aQOZkWMpZd!ps-wUn!tv-joR{uJSPL=1Dl0)r%Q()z*iGT3AH~PC4{%= zZfcCCkoxrOgSxn9%ck|CS8~DM!T4OJR41sz-}>fk@)+lgm3Jc)-oEmrPWCw6)5rRb zznZ(y{cr?FZa37iw+Wc|#-b0Nmt&PQ$~=fC8pS%4KY#z&6wub2($3n!rkRE3{RsWq z-F%rn>(NU#PX>s|Gac|l?+cWG?p`9>?2e4=)ZJ&FovQa-FwP3{IyLu~zj`kU=0A@9 zE+<7@?#P9Ti&VJ-acUG!nU?%4Nca8s-_+tozAoSPZ)wQYc$7>o zJ(-pq)AF`{Fs!OR__Iw-)^@^{8vq6_dn1GQFzgrHiztsF3;CyAdKwvMD(Iv7+frFO z@?vBxcsh*>*?%pv_KZ@kX> zHut53|Mel41#^jN1E<4T;MIlzT3Amwt+a9Lw$X|Bf!>#m1xjnO?ywHi<*)cVMd+u- zZ7x$yrn`d=y8d(IZ1L7#+gm$h$azPgo@Gfq6|u5g}&JhN1^#&KfQ z=7QH-Gl_6Lb1rho-RJ_;$6iX7@6R`+Fy#f^fAv8X)aB3NUp@u26P|uC3a^WCBXjZg z!}93x{^3od*CT85&hXKV$dtJkhZXdT*??-N#TJh}vt;cjF%bLKIM_Q{G5E971eg{3 z$B_Ak&&w2>Q8*`Mj%D*at}?Ei8=ZRmQr)Tc){!02F_`-oxVdy^LBzPiki>}TOmZc1BnCT&;uhHEfH_LpaCB<^+oy4l8(@r_zD_%vgSe2j{u%~U z;J2Nu?fxnG{ei`&JR@ZH^|?s(;;qM-2iwMtd_QGaT#KI)lb^2aa>ba&B5P~2lC^_Q z-Hnvf!7pVE7E_A}g4%RC;H%c=ky%SWys>Te(|cr`ut^UM5@A!AFjams zsmDy)Vhxp(%w=YO=aKFh_c8I=UYA8B-7I7}^!^Pwp$SOY9Sl+|UjG=EC=_#i=^2Pr zV0wCzm-YJX+jmPb4U{9DE|7eEtW0N#@MWxcxMgwaPP=3!i2u`E1k@&^-4ZR5)Nd+ z98}AyPF2V|%h8AB1RsJAq8Xq#9}}Ry3|ObGK8j`bccWjtvZZ$Y8oaisx)Gt(A{-3C zg5b|#fdc4{B4qNqTrdk(JDS?qqVRb9m|wqiX>{zBedXThVB8FS62Jc6#H|d!_;>|R z5~lH>cBEACy(@4=TiXIniNiMTye|HE24(ccv}f(UFSj8puk{`L+wfKH1dqfOPiN8i zAe&L|zVqs6YdSPHQ2gmr%%!Gd7>nz&7W|cG7%|~i2;Fz&I`hAdW!vBX!2;M8c@;Y?suJv!vpHegT2&^#9m{FCy!vQv&~C+#w( zg*agXdlr5{a50R<_%#S)7~?kYID6N}_#q6$sJerlGJ9xzgl}3~_4rx%sk8W%=(hyM zs_7Tl8J>rDH~O`>VI7ynZ!Po-vaM}8)(iAob^C@UZIQbGV}jqH?#t4zU^M=tK;0fC z#r;^{xImC)8n+}buFJ)E2M^ReDsR2AsRT$0yXs@(qLtBucIv+uTD-kQOFX+=@Ve(4 zCKb10{sH_BW4f#%eDCzwHYew3`!_k=bL-aV#*I6p+xOx!=KO^y1P^7?eODpwN2Qi#xD@1BTrPwGv3&edVQaI1)bJ^6E_?K zl;fy4WsLMabh>rdGCh9w7}}1CPxs$~5%_I<=@1tB*s$-lu?P+=eNSy{=5}Ttev4ov zlQM&lGT6li?>6& z7jr+-#Tdz)j`jPoQp{8At0UQhB{;Ws6!a95_ac9jwf;KBGEQL*%hay&vC=&o%OL*d zJ+lZpl2dvtpShJQ*Fp>Im-#AlfBFd*a;41W5+n3Ubpvl!jT-UDb56NZL|T8~r_K{j z%DJ%kWHv3y+N>9q(}R<==xH+mv})%yv`L5aZ~43E8JduhDaUtZj1}(Zbk3>p-o>*Q zMu+!@kK(5te>t7YxBpw&(7|WgqA76n(YD?+rj$WN6gZxdd@vN{dB7M|+VlAUwe`8y z$asfAn0pQIZU4g)0z9D7csjh3zUA`X!!i1LDH~XC?0b?mLuAn~DAje#zql?1Xq6wW ztc;gk)=oZ__ka1zx62^SiQS#y^M+R&fAr65Ii;dM^B=z_YX^p6-KcK5Xf$xLz$q*3 zY5p^hXIE)we<;OZVzpIUON71M`7_eoW2l!-68vV=eHIKIqv{R@Vh!;N0gF!4Z8Jr` z{H#7G_YxR+IUB#g&KxxWU3e&dQujQk85``M1i!`e?_3@UovMzZpZQ>0l(e%vEF?%!7isBgR)!?MU)_`mv@da8H@PmMQw+(N6g6w0c1Jwc0J^x2@as9`d& zD*rHYQBDaO-9-<}o`$*jU6VP?)AS%W;->g=E`#L9{>u4tqqpBUlncNaBnD>av^^Vs z;C&Oz|4+ZUQkLV}cJ3P8jL{rrqkg(Kr-4GY$^)0VA%M)gPG1h^-s$v)+_N#FIhnhV zoNjyn<;`_Bpn5n-a3#hh`=jW8kmmc`*Ovvt(%T zbP4LIe!X7~d8hheynAr5&4|TmAT2HrIb`FcA4b+TPUeL)`Csj^xQ~tdNAmTu)O%qJ zUEIgu3a>?dO!~rMR{zyc7x#m;kD-mvm*UsTo6vHM$J+2yZ|$KKTj+JHv1=R$=5lqE ze<^;(zajm?lUve_CSO1d=ra$eMezvIie_>0 zT`im`I$c;vcyJLx0hbGk`9g5k1zgHF%Eyl)Kamph>4%sumt<{2nNB!D#BWZVFJF|G zFW)Gu9lmuoWT)!(t$TI!_2W;Dk4{tYWx-&fZc(vm|cSbM7 z4a3hrcr}|T`-_JT<-$^yOkaF?x?HbtRpiKMyU4Z)nxEvNjYILj%M#l{fMUbs(D~qp zrga~X@Lo7>NparyG{cwTE?&A?zT3;)%F`#K9UGsH&YV7<%bgyS8=7`Gl*Pca*Qe2; zF<=u$bH_vatbXLuR*Pr2T+8B`1(0L6`n|=r#r*#LyK3+n^16EXtt}l{I~m26g?0;$ zZhaeHZQn+*=J-$R1HG#>rF)}^zER^|GJ5WP&@)^sPw+F|_+1mKwCFLO2<4x^NRABS zRi7bj{7{o=@)?NXUgPT!2A~NRF&39-GK4V`KUqTBS@@w%!5HEfVt4!|V|?=CnkqdX z6`x;l6lt?Md0Q3KuO0t) z$(aqaBF|zJDzB(6U#tecOccB2dgV^6#E-r*dNWgh@mm16@cH+@|Em1gI^ni0C)Tz` z!Erkd6hAt3JC>C9OK{$`ckgKb;X|WM*|0E%+|HQcsIa-Mxs@aszPmbT#lVT%3rarJ<%7Lf(di*diHaW2nlH{`$J z7^PpsMcsP;P1FR2GQ|sv`fuX;7}~~{);~H7>1Au}($azg-eUY3?0NW2U|Oh>m;3v=eeAbUb~z+buo(gOLZ?2<>`BowYj;w6(gA|aVg^x`b(FtmGYl43}rgw z70SPhi6?8r)+P1l&tEAwi{$R3IhJc}Fbr@m*35_JvY<->`KujT6HT)8dERClIb?Ho zG#YK>XycJf&KxyosWv(GKZalvi!A7JPOf%-{g?08nqfTSjZ?KRMK`F6qW{hRzyroN z;}>f_*3-u0BN^Ww+`m71eEZty{kIR-WwzEjPFTE`lbY5pH)1@sFMj@AblYWZ^P1B? z#$B6~3@~=*bWV){KN2pT@0AQB*Mya}xXe@1ktq9KXTY zgu?IEZSD|5FXPfI7(;mTo*RA*NjMsZtc%^3R7PcFkMvpn-UgU&yiE3XD((9p#kk}VVcsG6*zPRWv5GS?TrQFIE)Mb_oBwk&0)J(wo)tfH4IJ`+GDoVS z_=exYIzzf8_$4YyMHin8=g0*Z>M)*zz(@vkozO2)ZJuo~+T1Rod`XLu^1ruDy&1qL zLxV)l$FHq3mb7o$qfSO7uQKZ&;A7YoS8XTWf|LxoExMyVhr=OR#$nb|f2SSB8hsKGcB@VGf_Yuk~Nr=X`vezqJ3*i1P4h-0#}> z|LVk<(Z?TuJ=(SVO4XC^^O6N3tA2d?_UPi(yLA!kw<-l+ zCFTUJ$hhULgR^Dro(=7sX4@8z5<_sK*7 z30UP~CU;rUvvC6RC9Z3=o&pjGNZ?29Kj=j2TwfAik+-Y<`%%{LEo$~FA;Qk z8)CftIGdN>jb&{FT-<+K{{S~?jMfe*tj4(%sDI-_bA`CxKUz5fCe55NwD*rix`qxr z_|^DF!QnaaeGKjWRGsNjD#$mDpM1foQ}Lx`}Wa4v#6D|U)J3xM@|D#v*_f zh7E#`KRyv*X;&%dHGU^Fny8mQZO=lIQ z*KYT><>SdD$%3&qLK;bbR3bKBYXdMI?0>V7$otUXdidK>3Gt>6+s=`W3EK zM*;8ZK7A2(HNMe|MLlQ>12t=$b(uJ{xiSe;LYqXuX_La@ajx|elWGYYNz(?+*2g9= z(y7H0 z2H11(Q?B5aan>kc^9>BN4NEW<;U{e()KOT#Wd?p@*zi-=s$&4Rv8vTkGxm68F3_(D z4jsQ%#~Jj4U&li|^SlJV9$)P^fT6&IMRgqFhj9{S;#cX^rNdaDU!(Q7eW&po)X}&i zdsn_S9x=&}+iQZ~n1180epT&pqDk7yP}v&KB(u4Wu*!|vS8d>hYNoq($yTy!NrT*0pX8zlQU;`fsAB{=r} zTRa?Cowube{Qf`o-mE*0WJ%BqZUBgVBS3Hg*CMM}+pXL8_U-9W&y1u8z3Wj&M=yHS z(QlZ)B)yJw&WtqO>eF?r>Q=F;xbF)H5+p$oE5SwIXC9sznTW(fvbOGa5}A<^9_Hre z=H}++=H?{~am;cKPzh)AQ^ywA<}dH3{!#Ydw!8u3E%B4Co8rgwMt!*MBwrGYvi}Bt zwn0U{RO-@FNAm{mt@O+7Xj?hH=}9IYPU74WZAzbU`Bop|q35`cCmNhR$K?`-EixcL zcMgeD*XFsN=z73!_52%k zZFhv~z~UmlyHRi4m_dJL7aC<{1E6}khpFo9^5NO(fIo%P!&zWZ9J>u~gd>gds5j`^ z(uF*r)ZlS>UFNc{nS3Vk)Y~6Ee2lJrvv@fB6kV>nIKqzFY$(y7`}NI5;ti zjBha7GLQQBoQ_g#*MLywmwrQ>H6&j?K;PEsLOHI%SR;tLg$@x~KzQoe>f66WvQFZg zzEfZDcc-Mh)~V~-_51J&e8u?(m#*9`zP#`NUSzV5uDw?WFY2E8XES)6%BkKLj>&K5 z&Fb2Vc&0jcR@ZjE>0H>p>72%VhtRw2BmU*`^R>pPOEarscr%=x(0%5(t!JpRDq`nz z(|47N=BbmRc7u>}$Uswzp4Toz%?r#VYue;+y9`y=CvU(OxqzMU@P0hw+q$;k7tflo z8~8O~H1)hJpX*?#qd86py9z@vc^ngmb%cpd5`vX4}S3T*zFDANN~$guhqpSX{M&+K1!kbeZ)qI* zA>ZnU8uQ2T2;YZY$uWA2vnnPhIY1gi;wVum_Vo0{`B7i~aKG5s-BWz<;pt*{d<TmPJ#ci7LQo3hFfSURn` z@c8=^j_sZcmvkA4>NxKiPdD*?Uts=}jP262smnHbM5B6|FKU23I|4daLPP((T@_t+Y zP>)f+7jIsTy3oGzLQ_UH?sU!BfktUNG8G20)W58^7LYhZUVz+|Hc^BNxL>#SUO2&xA>xt;IS$wP$` z28Bg>hfY9eH19JMqJRH)zl+JbjUWue&d87&zI{gnwuX2W^?&zwUjXkg@7{|Ehudnz z$M?iBT8m5iDKyityT&ahzFZ$8Hmh4)gzYs|Q^!AMGIfCM{+>R)w4M$OT_e^KCkIFDFNL_q z58FeJ8#|8MUa#M{Uwr=A=?K5_$CLdr5MeW+J#B~7^lj+;>V6uN{^-$z@C5>fc*qW# zFJ9d*jvOaO<>9g7_N{xx4@__+os;Ec^nUkh$fNT0G-caA^{lasX%25YdEzjWj=oqZ zvwv2N{nhsL+P_&mr=HPV!+qVrlZ?ziICgwcRaLG3V{EJ?$lm9WHy-!_hT)#KN!d$W#B*!ex{p6Z?J?~|0gugo@q z0mY>PTk*^EtHAa}lovakZ#Q6YKiZd@0oxB!13#`aZ0l&fGJeuWU@B=Pi^TI1y-j#z z3;ci?uqnH>j?Md-&&0KfpD*xo8~s}FE3;_CeS}eVVvs`>N7(ur9?^!nYMy;ik|OA0 zIi_@vGAb$O6DQBOP*DYimiKb@c(Z)nFTHF$j9RpPe;kjG7?XLH;rb1@@BmRc*2BCH zBT9~Y7~tZAcPyy9j!Rw^7d;$5KCDLzIsjvv@Jt#mCI~^H5@kr28H_XoQ^$+X4j;!m ziNl`sK!UFaF}lw^#K1=gu_Z#%=)Kd^+e^IRq8Kg5BW7$S83t7he|-Y3HP* zTWpeVNxn4sNxC>*JwiZUpT%36$%9_f7On9_8pOgRm2iS5?~LHKxLaL}SiGTM2;PQl z<3C|%dROINwU3#H|D+~<{%-O%KeBw`fyI~tww=$%4H%vKZxuiD=l7cUHDOor%Xn}=ttM~Ku|)yiHr3s zUyFCQ^C6Eo&N=3O``y)WLUGHhy7sO;`-=bPA1@YrUUU8n&K%v{j;R?nWU;p(v&VX189oZ0k8uT>iH*{?jBtymM;qLh@9v~%cg{7m7#&>ls zy_)T(t1B;J$BK*YC(sRU;e?}c-v#*;a-?LGvhvZN;O!e6I4qC*H;JBo2zh83mZh$J z7koYN^n(wM79ZhY;X}O&40D87^&*$HMhpx>5zs5(mJ^uP+U$mdT z70S>~_|)O}OWl*_^EQHkmKRH?D(zc@9(3$vmCt*TfH9 zERnBu4B7^aUAYa!1t5Vx?=|#ft~2ay;a9>)Z2&YF3J{Gtc52^_brd0(*ROi~ny?do zKdJha`!`^tkA!iBspCc9XCyfI70(|p+$b)y$nBg>UAnuc2ZOtn0viz#@0@}Fl^eag zoq#6$jhEu}iM2*EC*+nXFXtrQ@_GN4km0Jl>Z?*~8SW~N`6$3Pb>8-2JvW6f{h#Y>>XOCpsC zAja9e&I0%KM{Es6J{U7sdVv~S;a|m~z;3*Grw&hXc;s;Lkht$p@82%E`-h7seS|q+ zoYreEJjg7FiutwERQF1*qwM9x>;`x~Bs9*zo2BCF#jDUD=`fBrzyIPa6M>=7Sqw4r z8pT$5rqJ;H+$Q4I&f9ShLHU4qqi&Jh1ApjbBThck`FHK5zg|a-OBYo}Xg4Qp3v(Rm ziZxuFz;fCvAGhKG&nl@74mAh0^eKhE+ zryr(VcNSi}bd&RyP8I6f-+gy2z72n&AxWB&9rzde7om}B>)VMguif>qa6kfqWs z<=3Ayrsz#>olVAmxBu8j`ZUK`zJW~G8dEd5nzHi&8=b!uNL>m|uq?jY$ z#_;c)(Rr=Ob}LbgYiaIzNY00JP;sH#Hjp>o&~|zRy5qnwY1bGx+S}!Q$awMDKnv~# z?7+JDQJa^?o$kL6{G?HXXc?7F@C$=c+bbRM3*Z@O`i|o2?(<*+op_}dKkx4V#?Ox5 zCiJVXqm^%^lfP=~$bD@z?Jsn!qi}s#rr4o~p!3`U#~Pg`T%>l)dzTbDQ2~%;=Vq|% zgUVWCmg|k1y}EtZXLU*EnXvVMrsGg62dV% zgBaEl@jzY{QaMvpR9tQXR;&IQRVwwZ684{6$B|R=MlWDPy|NV0<;aViy(8^|kJG{O8WC zN7(URp`-8JOT2i;C{pfXD=tQ|D02&EWo6D0cAjdKzs4b~uL#j)`*ng{*MB?Z?R5XA zf)RDxL0{TAewNVMuseYf_{9reHB&nbjqdI=c03Ec?e<#nDJrUZWNYb77+YQ0A09k- z6t?Ztr;o&S7j{OKvSdFf3VUepwBIm)))mYEdD)Wy8^p2_PzC-2bc z(xuyMr{T0&u5aIYh*Gl$C2AyM-m0L0RtQ1~!uh8tlwGj`nzySP$I8=+-AaCC7LOdZ zwU14Vqv&_D3MP(;_?iArVifFpM{SnG(PXaYc=da5>_I}_bnV|?{6M_%ix1Y~&=0qd zyG`gGMoW{iW(Doro0SmIQxSwLz`KXK%BXKKhlp~w`yoz}!~=Sack80TJS&y%9#8={ zZm|bsxD((BiwX)g7ZaqL##vGJpbB~AGKZsP&#MIv_3}@$>0v$0YOI3MQ?+fYq>v@W z)rp|-&fS7-C=^#kC7SPU(Jb4o=Fgfh@wr7h@g*K3{Ne#;GsJhCWebc3C&Msx;kjj9 zrQv40@h-?)zH;R`;cc9txv(+F7F+vX9^j<2JmAXy75LbLEsUwhP!)_TZafN)O;43J zd=sHqgFiOo?YeqdmSBbHwclki>Du3wR12eg9`9E33a|Yp&!e1e-nTqcd-gg!%vT4y zTF1P&7pv^PK-vJi2Jen|l!$DAQ3Kbq>hSIeyAupvXs7FDFf4Ziel;-6C!D&x-rR8C z7f2iK*T4?^>h6~XZU;u%zMJ^m9V>=#@vx!rqEIUrmv%sL_x*p^hj+3aPqZSwc!}Un z&kg+)bC@W!go5;htsX@*>j?K5P!d?YITsKIf!ugm}KsAI`+VkShKYlOqvQp@&7o z1Lzb<{|G5Z7#QAV$d<;|BjaSfUHbKKFBgd|!?sY7Gz35>lwA9*-sYIi|B#L9PEM%u z!P0uedoRYmwz}2H5wq0Y58OaZ+^T7_`uY(=< zQ9xZ@%iVx?O zxbeB+65SQC%7T@8k_L7spc=h3%!`kDxD)DU&z_@iFQEI*;*|7s@BY-uwzkasY<+)L>e@Q!pl%1hox=E(w#eId zW{_vpv!CPOm6b9pswxB-(Hu1U30&#E>%3d&Z#3FWT-8#6Mi-KJHoEX zD?W922aKBh-v7z)tAU+$ZMtdfK+`a*o~_QM3^diXTReErAC7l<+za|_1HOyBS+A?3 zTPF~1v) z-*3eJCjHSENnesY>fBk0=fo{0ID z$R(mO&~urM%s$Ko3CO|1sb465bY2e{n?=cXg>M2Ee6nvVC1NniL(x!Cy?T4DIEz=U zVO#E_fXvN34dbV=g;oB=&8=~Ixu|e!l+$pk(lRzWKqu~xt*mZGbRwW}ewKK3-Ti~b z7?TAJ5VDlzy+9+>qsKBlWK>VvE)GXEo?cccs+Gw1vchCpdY~C=-7@qPc!qcW-8sDF zpLkeZGJ2ez?1?R@;~p%F&lvPiia%T3-4?FrnY4C7GC9^qsF|)X3P|suPl<%T6&7=x ztn3PTYA~Q+D%fj=eVhyjT8N8WhSG!oo#beHG<<)1oXvZbv)-5oIhJsVJk$joj$_acy2&Yx}ngN!{xBQ?06`liI zRyc&IJoCP7-t6b4`~#-)FA~@ChCI*?!+V);Ho)NJS{VvXv8a}yH(_(XI{0?NPY*iF zGB2n_dMo^_BXkE8DNXXW3tM_y_e8%8BgwAq!m!j%b&N4c{Ahz*N6U&asJ-rG8&un7 zYy4Va=XR{Zco+Oy+Bf4@Y2PjJqt?dR&vkF$SAijZ;q?ezICSM!y1<{46-d$uRO;B4a|u8*fu)P zV%;p>-{v31#b$so71M-z`|{5hiyzKkF7|wSDq;#l*616yrDLvr%tc=pdSgL@F>@!$ z_|R_a)llKW$SHJ$+Za8JojpxB0lgo(miEN~lD4P#<$mep>fqp>;wfk7NGHcWX(zwh zCtl&PK1#gy?!AWfNe9l0oiGf!=f9ABz?GNMA{)*V){Eb6wSBsR69k6Y=w}$tf``j0 zcH+Ng|E-Y$w2=BjP8o)EtM-oue$*w)XKAkt5Px+fUWsI#y&rn0jFRv3!1nQdX_8YD zzg8I^GKx%&{W<-z_%-Wj-5dB(cWKoFf6F`fp13olYZDzX*Cu@nOM0v4+`yyt!u5y6 z!9x?V81)z@6%SC1kaFm;#%iXA&t$_nx{cfrj5?pFBN!ukjxaI( z!_Oi{yT%9GO1)TE%5M#)*KXV^j`C-#8ci_w>lEp@9I;!FE1`)KsB6>jta}{RJ}guA;stKnrpkN!bgqv)APu^h ztLW{0xvkpJm{-jpNKbW2k3_*h02bRX#gmy#1KP0{Y8PAG$VeL-Pkb z+p#L+?emsX)vx3s5BIb2ldesn{7<}9%J}N|!2{uRmhp8mv`vpHVYK6y$B7O2HO8Ro z_|a+$$uw)|;MBc-3~J6Nnsub^2qLN-DZ|(fe$vfx!c;rY0BXzl+kt+$ZK~s}Z6!?{ zXIu2pE$P<`U1J?Xj}QFbo_=qGUnd@EZ{Ix5dS9BG8g*~uVe1q5x&IRH=g?Fx5_G|4W>f7qY)jrw@mSmAKj$O+4{pcdXah{?4@9!ZDFLFX>MR#=RM|NYaC#rf|p7F~o<9!AcaEJu9QwXK_H4XHD$Ye&e* z$hEx>>!@6EjMquw#DSg&6TP;&TAVAL4PKy6sE_2nYWcRkbEipk?Z->&&wQ2Lrw~hdZPmHOh@HZuV>h>7Wh-Ya@HcPs`K0`jEtML zwjcOR8f9Kh_bG(JYh?hHs6IQK!*$Tg0CUv)M zs&(Hfep$x1z_9Kxr)}qb>tn3{XDjQBZELZ6OMT7f+fTc~M*Z!DyT#x9@oeleGn$Ig zP;@ldYa=*u&y5jn03jRXPN!*12PAkai2zBIUcNU>SXQ7^f9JGgET;RR`~F?uml}(+SXbcUD*+Aolu^-q?aF zUe;BEiyetC+C_tdVRH1iVRaJ0?cpX)9=^J{TD$d>HxQ09GK#UDqSNVaKC4or3Q zwLn9XXppvJ+F#y#r85%m;X7BUy)M>W{GEim9oj>KJ*&Weq=8+!IJuQ3PJF7gc@Jnc zK!`_zjRM1D>M?!RIPUF}0P6v|u|VVkN*J6Fia~uEOE@O`k{(&|=Q4w0!R`iEE#*zy zEd~{`3X7~!w(rJ(mq3tLqm#-7gAMd?knla*T8`@k!~3G)pVyK25yl~Jk}?bm4*nDm z>z42P?EszdbAS=^q`Y{~l=5=HL(5SHx4__@BD5O*?+_p~I4GP_28wtF{gA zt7yGuOm?#CmN>mKH0u5mDYe@6OE$lCbjQ>JO1lO-Cy7)gXwwN2Bn^E)#rg>cSa*-6 zgC$1@ZzoKjYlM%)wKP-|Nc%B7aD1lXY}u>qr0ehREB^4s8O~CTv6nj7Pu=0=IX7K<2;)IH#^{tTCd*HJmUvOFkk^u2 zOf=pFy@Q9yEPaB0ycImm3&O~K&+jG=3)%cl8Q{AvLVM4Wldjm>$LxEle^mMb1&7?U zeEy=GfL-Yy{LXk-^49n@>t5}@2|s|55`L|9ti_M|H1OlS4fvHEwGKar17XJa(Lz5l zXp;dY>_ok??!0NcEz-{C?{WAfy4Mupm~4A#wRuXs^c)Xk4doL!sJM%57~{EzmtMbl zKf+45(BinSQ%l4)=UV;$?3rVsYk&3i1?s>=6n)vVkkow*TX>dO=$;vL@%xL#XP*)# z4g=ycdiX7j`x+RXSFB)+9;IBv)0l!5TO-~u+Pe_1gTvVmju3LOySU2^mZ!vkb;sud z`m|>x-Nqoj{A8B$7{dl9FaYE6j!ZE=yWx4%wdEOg19fdfnJU9Wg| zN4gbXxsmu>>{H6a3`nKQ~ZIIeG-*2T~qE{#UY=gS?6-IL| z)hx5ozTjaV;hMa^p?!ItcsTK;giyoHYk2uwaKa;`zA&#Gi&=>bmXU{khp3kL0B(C`nof2h7a01zn>{l-}@7fw;1M=jr z(6ujof2H_8|1Wjzv&G=ZFfxGn=IFHUQ1c8ucU9d*1|4Dnx2GIC>M<;f7Ej91@yJ7H zyBN^Y_?`NPj=JvF^L)50bLF|LYg-SK^iWSf$oUkvu{U@oRxdh)w$K&ip$h^%gv?RL zcD|xFJR+uiH}O>FE$f^Xy`)EyX^k^uc*g%A*yb|8eo6uS2_y5W?}n*3%1(96I!!L$ zcaogjOomqb81x9FD*Xc(_UnL6SsAw9)jqZnKX8hfT&iaShIp5CY2ugoDBt(HG0(6Z zep>fDrf`|)-~|sGus6Z4Azx@<+r?@oQ+v7=c9g>dcL|?I4|4J47=F@rmV^}{8!9T!Gw;Qq0Gd`V1`P5H zV0_ez!@*Zi2jAN&MR}CvB=c|n_+cpKUwwTs4#`m|cdN(M>vxM!F_s_VAR_b2l}?UK zvTg4Gt71I^DD$hVxJi A0#n?WQBe7oVSr?TeQ#-3qTYU)R9y#MZdgZlyCcjiD>t z-suH4tx;i!-4~~)5U{t{kpK@I z`e-WXpS)$7cvRcJy&l$0p=_Ja&o4$BsvO7Q4G5p75>vlvLjC2ga(h@W`>V<8^g9Vk zw|N`V>5qT-D3pJnI31PL}CnjtgXIvCJ*!>>Ob54SWLc)ZVu_J^Th+ z*gTLWP6&rT+GW&Bc8=&VLRiq?19`y#QhxT@HdBnqS}Fw;68$jx16-3=*A?#6KKi@$ zZ^%F1RWRoPHuaMx3>itv|+W8%-itsH5Y~Q?#B;yhI z1?&JFIQwiPeu>{3JVKET`Ze016MhMHD2~8xz}SGF?br&ViCK)BW1|cR!g4=*t+e-#Xb;2}Ha0NKE|9&&-31Pan_n(Q z*^TOsMoj^-i3-y6i!-`(9?^y%C|Jx}7Hr>^c?z}M^W zslt5QYZn?8IXwE<_;TQ)O+y`%;Gb-SY6v|9#FD*xh6H`aF(I1 z_a$+>mu^?apmLljK}H{U3@T-46?TTv2|qhoYE$s$#a#C)4CP7aXsN4*Oo{$p!OwT| z7#U?klT_vAINO3BbgIJWh#zpbk6%JidQ@SHNEN?E9V>O$duM0(RolQmVF|PsD0FP! z5)boMc_i9^cQgIk@oVT9)%I|sCFo0`W2}a`I;3@8J;J=bD%^URNxBc2fFvGiD zK1|i*;#Zu&QB>WnWIs*zpz`J>_}e`l1Jo^#j2Nd~J3*?a_al|x8BF!|Ji9XQV>mZN zi@LV_)X(_(YUoh$_}}1%LK0MT0oI8xJU7}c)wBf5N zH!asTn&cdoZsZo?4jxS5^gNg5^r^$q?(q(Am3@x4IvBbrEWgW#3!L`?=ZCI+Z=T=i z81jd_xR<%YLt?x)b!}ytT83q{^)c>AKXH=ZE%fv5I`o_)(rTv5(c`m&Zl$BagUs#*YF? zb@*Ag4fsWwnSR!>3A+Jo_K zbMDX;4o;EWZ5a zGRCLm&2sqAbQng3e-eYbTlL)bYWSEzR<=Cg$per6{vW=LdmmtcSK%>#u45;>ZM+^P zE_N=xc<$eSSX{h4&jCym0b2z^0{9%~^5W3&o|pg_a%X7Z1##3-NKnZAt(UIMr-#Ti zMr7tvLBG1PZ31a4!|1){?`jI#P_&GH<-uxk)X`}tnZUk+}w#|cy_$gNu054zR z6;~Q2&BOmjQW12KLd8r4ZGHhSrn?Kp@6H@7rp_KIMwn13zAgKwO5$Uk^l)J(Fq0)F z9N_Li(ZDv!Z$&~LRQwqt#d*Qfz~cVTVlB`fgqaI}zTE?2_<&02gkY z5QG2*H#LbwiD*xiE*PDw@qobUMz#!49k`@xJ-1+&;AsbHgkkzo;T2)Uigj5Lp_u{?k*c|$ zipx0@YRa5IfOqnf27Yxg%3L|G-!3e)m$xZ?C=*d;r9LjI3CFTS-jhQZ4&v>w6Mh-( z3f>a29Y1cxnG?|1wlIgOQOB|k8ux(_x$5fP1|#qTW<7p2_ru?RzDX8TIJ* zK|d&8-t>Df1CZINfTj&cV}Jy0OxJZp2QyksY5w!0%`2|D0+`cOwPM8^V)JnGsyw&>7e zs1FaN)OhaBy@sw$;W}^JLDzn=jDh_brLgey^b7$XPGf{3(s7-gMr@g8IIrE(Y4K^Cz$z-|NW5gjkjkPi^XnqZ9h2L(*w}exX=cS}QKF zGxf}|vEs9jj&fd=XA6m!t^Ly^c}=u+xEe$l9zfT2PNGM9)L4AIY@>+p$=i(Pp7t1s)oVSn0wQrF%Sdb+yy;ltx;S1|yb2iV@b_-^W}&Azq$GTvWKMQJj$ zYdn7${Azu@@7&3Gr`6X<>oB3q4wf<6^CCpfyK_2izYd;d@@!!-!a{ja_zd&bF1GgS z%w|8!$xFq}93jcB%z6+ab5(X$~AQu=`!Ryeq zdDkfiqAB<;;nHkR=~k;JgMj~{V9O~h5MxmM61(y~51V>&<8JiHIvCb5y;*?)v|M)^ zGnd!EPr_C1H(=D;cv*Mz+pjL203J9o|81`Yh;K@IG-`)Lf9m>`w@$M=ru z=R89TTS-YFHt6R)9-FqrudR;l_+=PP{A%i03!{l&1BS>1%1sy@@#Dc>_}Il$aY`~$ zNWcChIh-T-*RTm~6K(tb9^Mm1PGwW(pUrRbsB7zpdl_BZ-2l$p_c0(kHXp_|c6fvx z_1LFwqHEv3cCF|}*Y4*m7y{4~PcU%bAei~zdbto{ z5?Aeu>e{^=>N+(w9`B_0(Dx_D!%@J96$c5YyNt7dAsG#s?09%+WM4!~n8JYX7_R&> zyz`AmIvHc{QP)NZ4>?7CdBzm|w{E^I5i9r2>pL;u_D8@-KpMKDl^|0II>Gi=&HY4! z);<>fBQf`uFj610q-JGW@oU1~R7O?m7eo@gMVvJ}pGTSFefH@Gk<)8f z2qj14{Hp+n>zWeseZMstO9aEoI9PY;7!|N_DZ^WyirUp{_aeT!o~s&2P2(Jjsv_#| z#sI>7CmK$CpX-G&eW)1QKN*wJ2_~T<`_|}Kc-cTSE38MdFhbb#?sc}%9;Cw^;?M1` zU;g<*48|XyI~nDu#O1QYp*^W28N=Oojl-vx^Ev`WL%S1Pjs7O-p^|^=(Q5Jf<=)tm zFpg)<2Z!0tJO2`oJdDAFk@3KwV;I|+=Y*lpcWcP)?MAx=FimfJ$YG$qz+a%a|0M#2bi5;Hu-~KC}ks24}Z@%KuHt%nmx5TCixgK^# zrJB#{O<~vJmtJTAW40_Ost-ED=1Dwk=5G7hc+eS!SvI~^m%r{_pTq5 z!-~e(HKuN$p?`X0cbuW(3#0ubMHh!OUcG$1c=Y&rF+DiUJr*c2eBWc?PhCevyq*2B zPNNp3;b|Uu>plM#i3#YLG{y(i5cQBrfHL_*LJQ~s5HgRl_h5ZEdgMUJYGVjKTz;mp|_LBwaM%*X3=%XwTe$ z-FQ7NsxUGSyOT6_CFXZpU)k_WnP62kjNibUeHpzj@tli1#9GA=uMUuO@3Inn$y;-r z@$;D293|pWLD0!oHroCkVIVVZeX> z>H>JZDZcpP!_ZIEr)tRCz}@FM<9vMX1UpjorY9ck0&@)<|#QKISBe4pm*K9^@QnX*pl8{XOhdqFPB}$Si^WM&IRXl8_6AZgS4qG^R9Ph#FBjn_fL$!s z%eixw19fwbM3s%S$*`NHrK`I9o94}hR{*^?7&WlfLA3RxGAcONSBc z@vv|lJB{+-VzhGL2#zgNLusLWtlw~oXOWdRA`D00@K`a5UT)|{&xai8T`!Iw=n8m_ zAh{08Ugd>`ZqLIo9Bs%|@+@&+qV}~28;Kpna2}2o9@w4^gU7x=K6RC;gQJ}1IF63J zUOY!G&Y)}0V?XFaPd6Nnu(3(B{+$PT_ux$V+A>HY4zYcZ+)WFS)28=c^DQnwJ^QQ;(Fk0@Gu zd!6!jy59-EHrT_26V1C4+a3wILrRXwF1EX?;wa87@}__4+F`*;>QG|otQ@rufUX>= z5aoj79X`ap!E_x^Xuq9dt90slZimpDML626RbsqOLwkDL@*K2{sp<~Q-MjV`3smCO zK6-X{H^w^Rxzh1YpE_E6%ofyn4p?%_w&?+0y=!YuL|qLd1|~-Lv9ZAjW23jSlV81b zOsW3XDr!i6J2nND&zwYf@RY{$r9LJqY_*h_nK1c%C&|WKKfpGcyH8dlhU-%%FV@-Z zXl~y$W~-Cu5w_4I`0*7b2T!D*9Y0lO0EZC3Yj1`vfZ*u_!2AA1n}L7cLgaRs0iNfi z0l<7F>uH%DM!T@E%w*>z4AKu>_Y~)e%Q!L7Uz{GFC~h;EGXCc?XnXeT@o2XYcD&z& zmC8?W{e1f*!>ios2@wLnjWD@PO8|wagNJ<`cZEhC|r9673{R<3t>!+XiPd z3?-4?HK$RW4GScVl99wkqnE|i2lt9DI+z~gcB)@4rT*#mRYMjGaTbCLTDFe^%qg~1 z8N$HrQ^6ndEh+cMpAv8Tg`Rc`Y~lLLUoIEp6Jy24QzwhNv(Ji;CK=%H=8S#>64Kkj zd5KuX7w)gccC>-yA{r>BHcx}DxSQWW`V|WO6qCk9-t$l!`QB%lN8}F^x2dy-Af^Ld zY}+iu#MAukG>Lu3)Et;uuBJHWcyA3MDkdH66!v9YiXMP|YM7{4Y5m=N?KY)IxC=z3EO za46)!FpK^#@N`jjA|Kq1wy?6B_?IukTXujg#W~4KD*x^x@;n+B5fp7v{TtUlU_d}+V{0$>`cGYqqA`jI;ZsUH>8D|qa{7?bap#p?X4 zVvX4ANk{M<`6j;bt|p8OI`9->V2n@e1X^9&1t{})pquXHg#>UHOb(lLFgOjEWY~&nPZ#fWL@>F)3f~}&VusLO!fE6 z7(9pey(vCokz;oDF^eQKF^_R^&bG52zMJbF2$XQ8+q)z^@+Z-sg8sm4hu0|6LMY2V zVSCSD6#uK=pN(A&wyW)V?E`tpt}fj zf*nAH5EV!9YR7fkWxhj3+rc*S&)pnOvag|Ui;E6PhHbI0$=({OrG)SN)X9D&FS(%e zmv1kJv(Tqsd|cdqxKtb;WKIg*vW$^-jvMY$zr@*NdZSj2?WxVn@dMQ5ZO0#-wI=ZV zR7dwLg{uB6bL46&TI_!s^PPjmt`u$tmr!b)PPZGgSeL-)W8r(v%Sn_`X%tQ%#Gu0s^o@t z560|(_qOS`ec0w?W*Gd6zee<#Ak=TZ}5Q(AQgHN6JkMt@n(mV1&$Qr&K zcN`zxofl&xR(^GDceeGjIIj%!ybRB%b3xmMe0kkZ$CBOLn>sdK{D6(&E`K(vJLOJu zu&alqdPd+2EBy_X~=BjIpgY{@nKffMY&%+_-+WK|y@Q(YK;;6Nvon+{{ z_TOI@erflWZ7kcgk)XZVH~e<~*T+1vOI^Fvb+v1AXex|Jc164dlbE^FWI}sS1y~~$ zYg3KF4evoTCKzw)&KqnIA5oYRJq&OMS!KFTr_n2{udf%c8a&vUfEzP)5Z4ryfvTda zM~eiYFU4xPhKAXv%f$#W#m{hvlh5>sINWz2yxHw&BX}KLxOgk>#{?QG{*L&Qw{Fjb zCv+c&$EbwpK_O9cz5VvL;Wxs|83Gy)bCy;8^K2*W!K0%OukoCupZM809&}`U`wQfI zz=T0X#n_Xc`tE9<6LAlGdVt5>u>;+4I7HqGBSc}DGA{9>=EJ-mO7W5jfCtwo$$Zs% zCJ1`?aL6fmzJxe>o*4VK(P^6K2XqCITOXV#DF9!Br?DIrm>zg>@&sW>P=vq1XnOwp zt6@AaY)PI7WE3-lT92*jkl(5MRyaCosY~8<@Ux=wh-E2cjYn!ooB!H5iyQ%Ie+|g|m zeuDb|sX(Zp=_&J)IRES1AL!9zbx(0;K20K$M~->ZK&=4P zXtlzjWXi7|b|vJ=f-=s2kzwaD^Zk&22qf_{Tkd1ZsH`Zq;-^ArZu2JC0RuyTw=K#0 zzJqvZ;2~`BHi>UCh{(4|4*RA!*TUWbegQY3*MQwp#|nPpYksr0;8&@8uA_L{Ht&jG z$2v+s@!&7huQPrsMyZmW@ROfxgO<8i+qbN{^=h_3YOf7-1S=O+qkV+|+yr|Y?c3l# z+c&|m%qD(`&l<2x9*Hpz1u;BdCCYCo$xF7g3+eV_f0xbmUTdMJt7)u%AKt0-Ef${# z8KVz`?2)H!HdwRdD(+g*-1wH_kMOaIWC!BfJjt#r=D;#Tn$T-j2$;m&lqvCIQBkbfMS$CdXF!(K;{30a0r)8Ct`5=mG3|Ic&WP z9&oYwB=MB{k!!P*dvz8s9AZp5Y3fG*Fy3I7+j~eMkKonRZ|omQUPx1_hW)YZ2mCg# zi6UzHM=Sre^f7u~mH(`cU>h=uI@QTgcOm)DckR6agLeaGfW&&w34XbMC`0Y* z0lS2;IesZGMK=2w*CFSCB~PUO%eAoI0zYZrkO3{Q%es57gv}-O?nFQIIUF=t8aA7a z3(?}L_QP@`nTH=L{pz@mz0Yx|SX|;DRlKJ{;E%1S6lEo*`B7ol_Fgrg(Q6L|f54vST$8v8ZZ+xq3P-3d0o2&u@f5GKVQdgY{e zANVBQ;7xIhE$R>E*I2yjE)I`&p(i9dCh|0iWgY7iyvsjz2iEojwpoK$%X*5Ov18S> zJ;2pTx;qlgBiwe_>R~$j9E`;`V&{jR>dROw9smG907*naRBq0+fOquhWQ3La?)$DF^DJ5pG|?EMmn-vX2x6IOfUeMKxV%j3rk&${0$goUZDu1ad;>< z96L?h!%zC9{8iWyPLbPzUmj;uHc1|RC*fxu6AWuyg^|aazz-Ncx2Wyn7rJb;Zz{M7 zyNO?J1KW%?DC^#&UlTuRlE+!`sKc+?23ye&2?>miZ4>h#3*dhXjIvDe*c!hQHhJ6I zAlI=4c2x)B1!WZz7$>OI_RF zT;dFu1`xY9O;0;w)F#SB*rlE=6syS2X>2Q_`_Z*m(2FtH8!mAWCln3$wq+Q>Q5$Av zaQtMK-N_SEVec_?mVD96IPYSDfW&09u4g2!1U7x zI4==r8ok*s6Hne+HcGSvG`9!|7q z$UlhVv*5p$c`h;lShiO!4_EGI*c`O1{sj?>m=vI(GpwfSB2e_QB4^T`IVtole%OWRT;1WM(En94Sj#J6mZRuP@^2q z6oQY{?Q}3*TwE?zUhZbzh86F) zaYkWmPxMuYo42G#3x4MHeyUWE=+d7jZBFeIvGEN9;Fpx>Bx3 z$O;{0FOy9Nbq%g-%m&%n2(jpAMWT`tZ1KVD&Fm8`!LVJEIm1P1UZ^RE|! zd&XCMeomaKb(bdgD?MEfO%AbTM?Pt$OscE1YsC!?O4ZxOyjkufVc+C!-&Dvd8>X2^ z>$U3YwBLGcIWdqA>76m5*O2CVgZ0mbDmg5*ZP|Z$W;v!%RQZ;!A^P%tzJ==joF~fw zVduUVFoJJdWrO!qd&tYFzxX@lFZ)i3$F}hUBXKb$SWP@S(NAT^V#UF~c((#0KMQ#8 zh@Y>w)-jbUtpjU5ybe6dx{HtK_+GRDb<7ia@9{tGzc2g(V3b+5f$eKKL745}*Q{fz zYocq$HPz?s+IK@8p^-)p4OGT4_Fz3}RW_qV{U(wJIcbcxi~STydOX5g#a!EYiRsDUm(>1g!MN1ZldQlIBC2Q9SS;;kkSM?lO!0ufm|?A?-aH6-#5gWhq-NIG39b?Q6&v3BYstImTwn&%7-@ zzPF+8p%cpe_Pu~>MpD4w{g8j$^KOP=z5Fvz8?Z|lRoFYm zuLj0u_-(A?*7!voLDF~I@yqqf^pnM{Pb@%`b&v5wy7){O(Gi;TlU%BG^4=6-)0`}u zSK75F^Lk%a@Y^irwZ%;@3H_mNG|S%UM=yHV^(X(n2;NusbVs4d&nHiw#bk3YXA2|) znvNp!AD(I>y~Tt34`MPo$}YmBW5uh*wd;4oIYX~)>!Z<6T}1x8i>JFr$Bl7M(pur&F?@G9!shDm(-^m%x~@1<^eoDaN8A|}3R6!Df9 zB{1I3u*JzMGP%nE)! z%=gI}*8!V0ZonuJ-3mXe(*mQV4O;OtpQ(zU*KwNpzA&;r|Nihxxb6hM zlviZHPadhzPyDQx##QB@J0cI_2~E~$8{hr4Cwa)E4aBi8FWi*3)5CZClpg9Gj~QPL ztBeQ;eN}x$U3(BicBYwg_Ny4Q9}%_=bc&gK4~nUYq2i;XL(JV-)Icwfg#qM-&Ua51 z*JIq)0q?sj4~s9)-zq-;c)B=y`Y>2GZBLfvpY@8dBXsS=bJ~mC{pNXa?wVU*2bSR_ zlO2FvRbzYE;k73mTE0iuzW3Bat+9P!gHYG*LMIol{2aP=g-7x@mHKZx|21WRd?XEo zk^8CFCS?Op(tU2_{@c*w;lI?!1dyI9KZTR~UOVh63`=<%{4xyjvnK@JRs1Xz!c_67 z!_V3&ilXiv`dCv2n7h7?8Fs2mRnC?83EOfKh>*Kpi=SmTX_e|C4Rag#O0qlejxjEU z+ph2D!jvBzLoL$lTqc(hX50|eGmjUGN9(=VwO&FeE+BbNPS69(6kEVCs6Kvy!isY1!CZQI-C)1lnEdL=9=V%>rXEEFNog)-93OgrBa1#R@bcH~<@mL{&9~8JmJ3ybk(Ecf&LeGs! z#gP zX9zEq*D!#*wpj|Ykil%Z1E|!d$q=*)TBrI`tyo;ROK2ZtVXRQ@W1?cY=6AQk676n@ zx!lB|o$I|BZaz!sZ>)p7Vj0Je9g4W_9@63I*G{B7Oexo8Gx!8h&UP1 z@b6?-9E6|$wgcy<$Yc4okD*`aP|+{ARnjN%n7?OP3G|@Ues(8#9)a}ZwdiBQ$jX8@ z0v->KmJog)uwi5Kwx-s0L-!YjO9k26FZ3w=)+a`XPv;{2ui zVT@GXcB4Bj;KlI4Nx~c;^IeoxW|`l*<(+Gmjhkz3wfB4jm1T@~W;a+=dB0?l5%R0X7XIIMty0*LL zmY&VCmHlZkj1$f{M%x~Ar8GZKhBptAmli3dc5wkruiz^W*8wda5Zy-No9eKLW~|p& z5yB?*(a4s8w0_&Z(S~^YVV$(SqW{yj-dDHOImkn9zhwvIS6^Q&`Unl=4o<5k9lS7v zk2^axdRwOGY&WI8A^Pgt&W`|T{Vjk5Igv$#<|J;t{OF=XH;W0mT@4GmLKq=`3nTP& zVTfNqc)O3NTidJIyWem_ZrlF)n@h#q#7BNVA-?4te~@ za?bH@l0$XJS=^6K1}qKkI=Cn=o~;lN4b<1k=U=tHq@Yey?K}Oa@Wg%`xZx zqlMy|AMZr$^w71jMY&Kt#m=Uwsmat1=-cKu?av3Mavk`Ty0+u-4|nlcM~|@$U6gmM z&;8Q{0`Wx~A@YQW#lK1!p*YF8fN~pu2mk+^W0|tt>-`CWf&4H`mZ;sLh7gX zkEWcnBDw!2U3+666Oqi1RoL2Z<32Dp;-~JBWUIw@f>FgU$+;T*Xw+x{%PY&Q%79wf zywK>sf!`J~w9$Vn^kaN!_EY*NaIBMU-~zD7I5z1du%fOFugRM}3SHa$R6XPoAL{up z7{iBI@X;Z|c25+H+L6!S2~YW0;;v$MwT-lCD;vD$?#i)=1L)eb#p?5YoCCnl2|_9{ zzr!OG;BLb>!uBwegQiKZVJD!j42hrvv;?vdjcs)8?yce$gX`45=}>+gfG9T+9K=M< zzhx?_LHr(hd+0C{!1!+}{Lk?cyFS0W7(aeC4#ZKRSAQ+AvFk0ejF)&$#$Wf)Q_JXQ zW$fAWd)(HYp7W5UM~LO%ge=o__u7iX6yI&KU@z_gk=|49(A{6< zbc_QeJ;dzn*<*N042QyG0d52EW8LRQ&-7IZPAiu%LR-1w z*Ms3vDjM(gz%rgaw71DNP0Yks;N@=;_r=nQn6Y9fIh1y4q$?IxQrS)bIY5qy%7_z@kPHn4try6chjkh1l>QK<8X z6d&bvlicZ9s;}48W@tyT3a9;Nek0?_@A(f9L1;o$Dt@$x}|q ztm9)=tRJvDVSrd`4$vmOVT{3g1@Cs2=89gmby5rpzFbMdwJ!~ExQTHj^*%MbgLEYF zD@WWOrpNme7Mry5D-iv*H3A=zX@l+i?S0pKW=;LqU(Hm9pHDZF4ef_?;3%G!WOrQ6{iz)zaZxU5u)D@# z&%E%{ZAmtgC9rz)W;Z(1Iv()4INT07e^~5)y;vN0wn9iiLW7{UiL2YkJ?v6Lw~J@W z2g^@?j_V$*mh{bZSaB*<{50xoWSFO2-IngwcKf?D13=1H`82PzR)@biw-(-q)8l$b zr;t;YtzM}y*E!0y>-U&5Ek|e>4F?+DofD{kCtdqY%x$D?CmCe%(%AWw-x)3SM|DTb zvn`GJ?=$PIA>)%H{N`Qf8iw^y*S3#)i0S-%+Sw_dIoSs9J6R|3asJ^hX8Gt5yPiE< zHt~t=l~S&kb&ORgypJb)b6uHj@n%uyNU}V{4%uVZ0~&=eJ&GIzuy4Lm9^I<*04wZpdU z)W6gpJ4=Vw`ut1#rOx6mtyT1x7q4}OG>qbFbO**1wOZ)ySSSrYWjt|_@8R5PM3^vS zu`T1DI*~hX{_{UwExKPV7oVLu20TMLzAla(9xqN$vtx%%Z!W@j8s}19(Eg)=1!^E5AvPO@7L+W7QVR* zXocOxqwRi!w=4I7T`$Yi{WMZE^Z)GlQFMDB6Pr$St;LW0b@zp#qmz2tk>NC6=`^B^ zDICOMLKl2O*Cwxg@It18M{nPLSlnVK=8^tWVZ#f%HcxCT$5(&*?fB>J&>QSdHaRYi zVMo`t&C}vC4jEksjuQojkVrVYz;?x6Cy2*JcNfE~Si3C@btVQ=p$9`cnljnTjA@4w zFDHP#YkkFccwPMYD~zvrF{`l76D~rJkHaWHy(q6xgNedgacOov7}%AqM~kn*y?$cg zMXWmTq!=IVBWvl&3VeB8!>J)zo^b$!+cQ_lSZDZ>4LpTqF32eu()^bT7?lh{8t zRot3eDE|EQF?@^$_uqeUHawEoI5<_n8jw{sEy2lwNhM0J z1@$PyzAU^Vwq(S+6pQzhq^*p?n*t-o1}Z3!#uYcRoV;bE8_#G_*Q z8a(yJ*BGyNm<^;Lt4q?%iNI6v|EKGC;^DzJMT~rzJ$tlR&&KP)SjmucaJaj8{c@c{ zvR;I-JI8Amrtf(8n-eorRyMt_0a#=ApTGLC`0o6bIE2;7me1M+WGIO+o0Eqb4m@2) znVw>?!)>BYB3%3s-W?8X4TYYWI?ep7oON zcbXC&QV`x}_0_|QTzv45Fc%_vIVV84x$f54vJ@85t-13;7&+xWnC_*#D#on{O4BtK zH!fbj6%$+!<#Tt0WtiTkKJnr^e&q7yR}TogdF#H|6puL2c9jL0xf@I2nLa&+7d}Ge zJ_~a9*z&cDw$|vi8Qwlyr`~$8>)q}y2l?NAT2?y-Pq&X-=5q#Hh3zg57f`+ zk6)~<6`vj-Do!6B3V0gUT->+A7zh5`vEkwmzdw#QD>0qXX_PnI(YSgyPc8_^v_KkQjA}`IZI#YldG11st20TNcMh*~x(6%Jnhhbas1&04ewa zUE4{JyeJR&j)pNG4!-OwzWvMH@aP>I8$_?|54}`Fs|Pgd9j+(qEhecy&XiuZ41FFZ zYS@_Zf%Sm3w9cdeXN0`NRPeB0=-Tc;eS&W8xdG89N<;=(T*BEaCMfc1#9~Ha)#;{t zc)WP@Iwt9tgGI}eLv z#}CH*Kz-CuA>D-5L2C3#Ji zC-)PBT@jAv8DSlD6w*;78Qzm|TL&Q>NlfaI{$-=L2KI0Maw&G4e)93jFh*~tYdhz8 z@ZbqLH;WxO73rycma8)XVZ zUd+2a&qNs|z2X@caV{Y8c$LTqXAbulAD=L^8Y3*awsUpITJ3&^henG3@P`xOxNDeZ z$I||8$DnN_GHE}Y$4PdGv*2`0s*X_^h6~8vN>@tsi^$zx{aTd3oOFmgi+coRZVa zDkJ{o!7?|F1}(EW`HL-#D1eXg8aH;e@xNEuOQu)yRZeR^fx1I-!$;wn@a3O>4CTp#c{J2&h*wFq z2>?+h<3Hj-PoeWG>oFO}p(N^|zNS!VWaW)CiAeOx5d2QG6u)L}X%R5Wdv^L^Tz;4F z?wKV7O#j4WaT?>e3eEyvEmsI<^Yz!48e13LhJJ#>t29oFgbOAqmR@Qj72}MbMeN5o zxxfVM>su?u7p&+VW=F%bXA6O*#(SA0Pbh@+p1egvvJ** z(=~6FZEGE+qpLb6*lPUcpDz~EM-PH`UrFC6GCq7q1$dQh$R5J_^yy+8>@`2X7zX&c zxo5@S{+mx?F=yt%T*R{6v#*N@=y~t@pS4E7#kJk%!9~D|PPCeAGuTBs;Bt*4Ym01Wd0Y`S}D3DTY9D zLXal{ReE~g$*6SkyOF@znCL3j=5gz>6LKeYHb;fs8n66R7wzTA7yh{gOwW4{m|CR0 zdJYg~XmFHgETXV0#rVYbcfC)0@%D6aNW86or#|NWVRkquNZ-79Rm^davD?C?hB>hu zK6iWA`MawrP8+b~{azMuY$IVuKP~%jl^#KRo>z@q)=OM`ugXW8;U~-%82mOC+eR1( z7xVfor;J}rSn^H2-wS>cudOZ?Q7@x@0sJI5sfB*rk|y@i);1{b*U4etX`e`TqF+61 zc`KDy*EUty=BtO1@7K3)6^3=*9KTi=mYL$Fx`^pQ9Ep3j?fXiC6K1vk?+fwgv5BS*TcFA@bAU@)`Po=ApYI%g`-rv|i>S1U3@-F^l5tbQfn}Ar@@9qn)CC=~(JYmYwBV z=1SYr2p>*Dj~p5g1LzYLuCL?etX^bVjL<9hiz7!oJaVj*Fb$T`8r^ZBhtDMr9<{IQ74Ns%#K#agI?BNM+?3Cfr=JVu2M!%79^JoR z-2d@@@$dfhLFm%Ah+U~J_NPCdi*Or%`O9Tq#5)>2$VrPv>^farCmT!DxkY23`fOvI zrA%?kDcYAGRbKE}E&r8mllzBlKRmFXxexjWdj0;JBRs}8e>N7c7?R(WPv%&ub5xb)CVrx6`U8jT>%)OF7r zcC%c)9!Bp;jNt0ddT}c!a!Nd#Xp-cWU@$_UPpWhN{Xcvc&J7yE6MgfWDPPhfU&WbL zvl!fUYSBqbz4QUQGJl88Y&{>%&0|o0#LLjUYd^X+dM5n4ytq_M?0;SK?Rkke{Igg9 z@cnb=PK4gA!&2tsX2~0`Qajk6H$L0W9m`P19bi%5gVWQ+r7OwV#5sq%fqkZ)ET4Pk zfKDGS3Rur++VIGciI{f;uUH@%gV*6N=cLXVJOuRx^N5CE=h-5=kY{HfhaCEtI_q#G zoi)U7r{3GC+fMUXNBKfsJI%fC!oT;6XB;%pH9SE`rg01q=)}*F1Du~AzArE=8H%+} zk9TM(4Es~=9~lSlk)8g(hk2;iEQDb%xc`*J4t73!o`E|#zDL*g3^w1F_xo5~6dynX z`+bZ-Tfnd&{+n#aM%-iXS5m!f*aEhds-!x(vy(aoeiEEim0jM-eY(m^4cOpO#iSMw zVAj>W0RwteNfIz9H}I$cucy;n;3w<~{j9aH#i6zCJ8T05#|9YnJlv@JHtAQ3A9yQM zn4$)c^Alq5SD{(ld&duXpxQp~2=148ojN#-yNJBXDn)ANCZW7ae9rD04sieO(!Js^ zi}k%MGXHpI5oedxi1u&?U3+b5tr+IOXIhpW?|3c8Q7%pWWwQzf9l^z2gDwWETS#BW z>N@_j&v`g&H8uK2g@=7!-#^|150|hlu2u$sW7MlevXcy`R96E z``hlnywj5RZD4E@Kgl9Zv}w=djC}xI+c{s@LP0t?Fl^Mdt&etAb?r%_RQ%n4^FbXMd+~V&6s5fuUU~e5Orl$`U_t-V@dYw=)IB!SVwGaIQ2XSobN@{IRyLYJ@q#ZHN z6Zia&|I7dOA78F67we19LJ3q!G3I%S9iGBrhz#`&*^p*GC!hJEbD;3Ly5M0+DzbJa38P0$H`_tG`v!^^ySmwmg0gX!!&HH-(bw8&Tz`O( z(pZri+>fGUY7|XMLQ-fG!@r3Ig}ZDWoPDxdtV6smJauGfiVIlggGABL-d92KnRorR zv8}iGnbG|Iw&SM+1Ncumb5HLhA1z>XKfuJtSVBFV)I2iMAMJ7o4{E(q^z4uU429E! zurgc^V**BK8#&{b$`e16^bDL)Fu>-+O#`)9`ZFm$9C30b8bZoR>Q*8m47QKD_#mS@N#ph?Iij&h5 z(XJOR-VCquk3Kx!pmi0ugkkHa^fu0y6Hiw-#qC{^3mAvl?s|xNy8~d136Q)e?fgDS zo!n;agh%gmJ^PoImIMFHhn6o5?UNoB>?F|kb`oH`d_Dj3`2@m0bNXn6WlE=FCw_XD zI_&h_OtZ}2Zclc>!ENUD$;qSB#nYEei13OVKuGPUL)zb9kzfXQsp!!e{eZS__KzkH zNB=^e$a4b-utkL1HMZ{DX9vbzRu?_j!DlmUMSsr0W*%1T%C+)FUK4hLk@|-moCkx( zeQ%O4)x&;mdGdLnS>E3azp}4KwGtx_fjh`B6W@FQsO7(}r26SX ze93a}3+&GhM_tlz8xN5SdMa73aXcI}7?|V>70%b_5#OG_9w9UK4~-U=Zapc!{^53U z@ycC7U#t~VWBtXSK0nU3Ru>Et|45sy=mYpji8oU0+(p94xX7LPOdO)GS9rvie7F66 z6JE)~+{nD$xHG=Z*;;TlVG=(%d& z%{W?j7hZeu6d%C=Yy4_;z+=Y_V(=RY{a}HK>oat1cO$;sO&oTd5=^$CyCXD$Iq`@D zJYoBDdK8_P??-s2%8SOi)PSa;JBJ<=hGE~tE$P~6{Plk5+UUdG=wUDS^b~7YB<3E> zBFtWd&S*L7$S1=#s;l&|)6dC@hEd1<)Q3vGC$C2OyLe1Lz&*%N7v0_LunhhS%o{wS zo}AjJ**`4H_657NxNUB54BiPC_7Q24=;Hg@viXUDpIx+se^DN&-%Dr1%jmtV{;6^K z^3~h1JD`_2k4`tfH;==QWkw3vX`Jx43uTt|YIUi2JTp^#i>~bGfE=)TfMhYj)9=$@1K+m9?=*l|gH&95QV!&QanoJP8(`loM=?Q1MB z+`KhYeD~ee;?$|b#qWRrAx=?)Q5SbfIGG$o&vpl}M*ndZan^SC70Yj!PxbbO-22_x zgT?8S2PwQLu3Whj<*I9M_ux`-mfp!*(VaWFc02pdZR@v0s#o=@TczqgYAtoN(MAht zqqX!S`X6c2+Db>Qs`sk8-jMlnBAJ{gZ~#e=1c`}*zR&!6#Ely_fB+NBp_-maM1)_z z=4R&R?&jv^=JvbjdsMBitx;`(%?5ezT1W3o*RomHR_|7~KYjXWv`c$Tdrcy?Msina zd0@?+D7lBO?Ha+;S%;1vE1tY$%{?*09a?+XNOG;6!d5A+{#Gx}@{!i8Jm7!j%KSY3 z+1E4{tTKLG@c5M0#?5rqSOSMwHF?Rq``_en#1VBj601F@U_lk3VF0 z@=w5|umkWZo*57G+xRuFGd9GptTtc*YjgYp?JoR8Kl86c52)gYkjMkecJMFrqbw`^ zE!p9_DQM)gCw_Sh-GG0>F!jPOuT{2$p9GOM!!OH@_iPvv&UwOD6Gj1ITmCSNzY)0G zf?S_KY$nv`xGpRh7cMr$AKy2yS5ss(=-};VDp=)r1VR7Tyt>Vu55*18_ z(OEBms&zT1o<3e``Q?W`Qec;iYH;yJ4v^nG>Mw0$G)+Hj9;bK5Kp9> z80zWLQ#-Xec0S9eP6-UYTaOE$QH+m|QOF;$kQ!#^L?{ZusZ&Sd9p4-L%|L`)`2&}h z8f!k{&|{!Kckx!S{Bp3E+rKvibkB;2lhRd{2m%?=ZseCB~x$aNFPZtS9SJeEk$x zkLXTev>$>lm0I&m8j`;S<{j$O^CWxp_$hq(VM<=z9#O(mnUFgt_Ht<#H(v`!qw2s; zjzd34Uhys%-2Cxbem{UT{E2oT-*R{Gv{r`RKR6OQoi=NUX2Y8sXSt9ZF{D!2V}#?T zfnk@b$%TQ2dG8gtjpxjH7BJ%&-^E=H8Rp27BOVi-jTJ5$s<3n4 zGf&ti|2pRQEygI>C{m;}S*J-=T9ubJe&m-jZGN-`WdeqMBmJMoIi5RNv|!N6Vd#te zHtkjXGyaeLqIF2v9@RRQt za(A?E37dz&kk^SPz8C!Ci}LCmQRg4vl3W_9Bp@dmts}`!38MqQP8m_YSC})OMZA-w z&!}vusvWQ5c&c2 zid*U*?e-NP{!j9!V3GW5e>7Fc7c1!{!!ZUZf8Z?4dLOgv*|-UI=lGXp*o#x!_(k!6 zB|K$2^^c5S1qQG)pEkyiu|dVS0l%L87n+;#OEf0_mH2h=uZmxiZ_93qUyOf=_B;lp zc?Hg;|I_#fFFVK3q<8JWaChta4LqtJ785uUc+ZV`jhpiCqSvY0L?fi;4Y`SiE`O_+ zD@__UH6~hEy;}pLy0&rCJ@t3 z@zu7H4v*4WBk|n7xvrd}UT8?19D_a2`_l1%&_Cawy&TW?a(C5U9Cb8|8urj*((>0N z|4lw~{dII^2ehI`@!vR?&B5vz7mdB|CXl*%il1HzL%iMlkEOh<)7avtIaQ$Xs+|6N zzqG*FDC-iB3hXH!i_not8YotW0>Hm+|p^F3;b8?|A6nI>2P! zWOPn7B?qmiLW z*Oq57zfoTrOqk;Wi?Bm8);7yoSEPCY;dw_&ID1&WZfG+HOH`@m26ULuTIghzo6Fxb{)e{>vlv)crUzrIv5#jZ0n@G2ru%n%l4AK|P_ zi6&*oyVqV8m+mfyBf{B>cL+7RSR6SpU3_->OmS@gM6r)B)7~#>V<}I((pOT&u`D7J z;U0BZ#pHl(C(X^df28qG@ClzRBOQ8ZIle^yEoDR+TK$8(jxnHz{5f~V7**7VC{EYmeu5|a-ZFDp4#6-8z_NJ4y_P6)W91Hzfo+~HS zlz*ns;y6t(uc>dFM$mDm_PiGx@aozR*<@a2o)w0=p5uGiLIe_g1wX!6kL&YwE^OWL zfBxt5uRIogl#nv(?2M}bdgJ;z!k7Ga|NaZSC1yeav%xn?3T;jbt`qMfN6ap8DT{_? zFKAM6Hp!rzWMl?y2hal{UCsikDBUW2!ge5E!gx=#=i)Oi%AB2W!J%-fI0%!AoQO+z z>3&+2M5p7q4ZF&s<|#D&=AH3kY2gk={pZD}AHN$0W*0n$meIIAgNOI!E4M;Xb4SA? z1b_bWhgcB()fZ=|V@Gl8F?6jvcz_pwB}IDVjz)>S3@&phBYKScHc z$q(O3oSi}6;Ky# z^7#6#2gTUI6UD&zG>x4mc>qUUhTM5@{~_5 zjdu=|?ZG00N_k4u_9a;#y%w;!o+|WAql3~d7BBz!yRU;5Hxl&V((~!$$wS3e;zfRU zYc&?(wq36=pd&x`50J2rn50gAtulE|5qs4q&xnQWz-a&UGQ`y|KH48`$I{crk`)3R zqfBPiVVmE92ep>PJM$ayYnQdYgtd6L^P6A?C7a^6H5l#jrA>Ps4-JcsmHA{ro%R-= zf>)UuWa2gWSEsRs9}n7`s={vP*6|ikQ_io$ZpLqG{A+??olW@}51&`tx4CSRVasks z{(8}9ScGGQ2Q&PbQf;{;-PZ7WNf>U5-QvFJ2 zm`TqcFNS`>m=*ni{$%;h$EY4MT#iM6_!08g19mxfZ5=;nJWL_55{im|gC&8#=KyC*egh|js7eyn~R{fy`0i5kZ# z&sV{dyBK!W3tDpx&jW_SLdv@K!-a)n?cTLwd@x;AFV)N?rC z7zWVLih55QVruv7pe~L6 z7T12B=rshvPpNB*xAL2C_Dg5VblAV|bK>H6zyCT;$IftJt81ut(6cor+$D6(UoeCZ zxiQBMnSDJcd6L^H_a&cI`$w+FeEakoZ8d?7U;w8KPmO9LuulnBk6(FYY-IV`1bb^b z(AM!2Py0jG7UiMzr2L%QrqTQ=?LQTMD{+*U&B5|y!7mNJ%&E=zr!>`NB+=5V4XXLg z?b~XDEyAw0W0qlYsphv}_ah^@e^9niwLI{NT{;a_)%kYL%~@lwIf0 z1x|`wzPDB!o#jqLE;)Bj`!y%+U0xnOi%raXYm^(4^h%q~vFEQZ7T98gSQvE}PQkJL)R9N@=zTwgtobiY%arD{={W# z{Ui6h$`}QZy8MY}74Ob|TE#EHv3#{3wD1FVyT)F$w|Oot(qwvl80|WN+-lF)$FEIe z2Y$eI9p|a5~w}*Q^MxGhka2Sr}S);s_kf5bsQQIst_8Y!&$A9|$#aCl^b9e*&)EMC{c<|5v<(n`(8tYt750%1A5u-v;*Z94_ zg7P7rrXJsRf*!*wA};_$tXGnD<4qcZMnz$bg@6R+iB!J+`Tfpf!~4le2oh-wiJb4b?6L4HNYKdne+3>r&~q4i)-&;y-F6 z*Zadunmi_470y%@i#KTVG951<7(;2B*~5iK{AWkgyWQC3E-wD?$M3`AE6ds$6vxAd z_CarsyPb^E)*;^Fr?K86o*LX$Lf<`w*Ael{^%Scb>PxaW{iwFVriHh$03?wTUGg}7 zk*NXR1(Ay(7f14@&Es~X*4sA#{K!9|WDWjv0V{qkPOB-&g!08DVJyV{_@}cmUg$;S zrjYSkZ9^|lp63|q_jd>p6`i9B<@LVHGi7&l5E&CoaClCi%qioaf4}`~=75_Mu#U}% z{x_$ZA-&E0IXIxit5~{W{?0ze%56fz{*@L1FN!~K=f^0Xq@NufDJC&;X>@xNW6n0A z-WM485xET~-+eEHS6(AoaxHy>c+8;d!AGhI7VV;|L1 z_`wpVNHKsf;&C&=oSO_fxm5F~vKb!W#AG&H%)0t)MX;UQpRpOsGBp;f;9i#WleLPQ|+R(E&o|mN1N?hq(qhcwoliAVPS2 z{NagW&;EnO5BJd3c$OFL!Z(R))I&u&4e9)In6Y|jRXR`{#EYZ@$|13hso?y+#R)V-*gz-m6cJTAH@Iw zKmbWZK~%P0>KmIU@s{_}!2dsK5?5)g>e{xi{B|AT`bP(*L{nf1etxEp@>}}7O@HNq znm-~!JEpLrRnS$OUHcgl$hLEHV3{?Ug5Z&NH-YXwS?As}Pl;dz2iYIXU)#vK#wxnD z_Y!2de!dBwRO$cM@ZIrVUJjK8ntu&6{ntc;W0t!1KB5vkzg2BhKZXy=gu1q&fW2tj zIpd4tBZNHsaVLL%3{Knmu46+UE9!6=iQ`^3Z46;2WV0DB(U{8|Rpfa;DcXiRALr2- zw9)BvM|X=bk^=DroExasO~HQPzAf|X30+y7ql^?fd9h3rjc)aI(wLY@5MQgq_nJ|09@9ctM9&sIhrHCIv5?G&Y{f z)@A?$Q3%vlc!$aUOD+o1gUiM0G$BsRmjV3Wb7Ibej=Nz8xs1hI(Jw5d2`YCw2e>hg zf4Zwa|AZq0OB|!6lO35MR-XoHJY9_OuGfo9x$y`Oa0WF*r6^TqQuh-uhkwVdwQ2 z>VZj)%J4518q}eOJO774LP8Ux6VZN`epphBV3eQ60cf2Vm5ejwqx|t{vW$O)H9WYd z*nxMQAqk#x+0E~M|CfOI-~QcaT#mIEm%x7b!SSGJ7!P=x&|MpqYQ~ykZj5-Ec&XQu zivqnBICKE60|h69V<375gS8hXnPP!~@|k(B45;*Zg!E%B<~)v}TsX$Iyha!i<3?6D zXXLrhUDSC*dFB8YF|i_i&ZP4A*45bL(2L#oUC?->*tYS~Pmjd@>CfjQj^Y=ezen8m znUF(|D{I*Gat$wZx_miZU~n8`zcJB0^5J67j%4afZlh%Sqq1uQfc8(CQhiiP-BsK@ z-LY#|x@b7%cP@(G6q2$*7AV)oKRZ9a8cM*4x!o*sy@$b?(*}&=!_AwwQwGN9ZOGHjZD2#uCxApqkIhu9&=x#&F?WDC~Jn;Fr~T^v|cdM)6T!W%5F8k z6Y9_Rs~6sZkq=GzGyVEW|89t14U?^ut-ZSG&t9;58^d=`DX5PlzX2 z{tS7Q90)M*VQ6=3x3Qd~EGs^K)>E(idO3e@rEJst8|7^W?CpTj3&&otd*wI5=~cE@ zeiMvddBU)P!V$oZMbewy_~xG&CXUmU{p#AzzfN=axpT%#Idv{kAKk+V6upIo?!P8^ zvRmcA#Dg{-AB1JRKzMFXYR1jP_Ne`O$QglA$fxH(9{l&itj{6 zcvaj)*A@?z12+|Pu%Eyi`z-NT)mz87#MPMK2ag;qW~Ro9RW5D3!A8_FvAkb#Lh|_v zIv~3C@Wh^C{t@A2?&5ijAz$N^iyEC-4zh4^Uzq7W^keo3LKg{rBz31CP8y_<*J3R& zgRXsmQ>W&+IWJ%Q=Wmm^4i6Hh@=!Xdsl$z@UUhK!+uwdzJS42+H{V<;PMyTloOqtz z!=tg*Q?YvF?_|?#A6_`~gw3oc*DOZ+m0xH~fxm61gNhg722L1vHS&77r?ezp8~mw9 z?{l4LEcY1w_Zs0Xy%Q*J&Pa*RY)=<;Ptdg|XNft#__Vl9yR0nSEbbF7)0pGx&fcfA z&Kgf$Tix2zr~mSY??c!A{IfIRWTWn{cfBVqhlhsZ(y+5$Gq5n^z-cdE2P$c0bGOf-3Ij4Y7W3jiYf{zUFdCTDBXDHay$U>A+AGURtb&<}tin z53{ayE)pl@&9%*~TbxwjG_PLfwwLmkHfR7sxkpdA&xn5I#*%U-?0%DF?HBcAzWRlR z3uSD9@nD&CaD;2*g{F7vFt+l0BRsaduC3s;S=nBAZ}#3#^?W<<>jk4%eiLoI%5F7( zJ78}K1_)}?&^BWPhwVy^fvN-(Tug4Xfy)cr!xF}b?W*DDg=4$+O3q$;TCv@et?m_L zSHJUuu$}uHGd&%!h@&rOy22sW(Qg!8Wl)_69y{|3*LRv)Z!7s*Dcg(oUin*v-Bi9Q z&-!}h_rj$qzZZ);(e`6w9?E(!qZD$j79(5XTFNe71Z{N6-m%452Vc~o8W zo13elbE}W;;b>@8*S7RVGG*VMokf4OqlW^`BG6a#9M)@DAHjgFm-t;2_?H-AJ%%~JGaD%X(_7vJhKBdc z_lf0E?Tu!UvyK@J0d1Mf+Z*Xv!QYLZe_FPf9)8kqkg_;~d91fEgv>>t6~&l3uS{5UW|_?oNno*wfN`h~*2>y5w<9zKc?M7ELMPyV~P7|C73%6mm+ewEbV7rVMK< zpJG6jvEa3DC_~Epu3c*^(9@z`w`eaxJA3X5Ck&nyhK(@>zw)W!K*dCzLC>G^HC~GSCju*L2eOnn`1EDz#42FhK@%PSz3mkD5PIY|o{eV&9 zp|JBpMp{kwxrmQO8&qMKug823kH}Inex!IPh%rMNT z!#3_*@GloGVI=-lV3hgR5wwUP{}S!VpxS{S55%R~2EN(*p?CBZM6aAGfNWxoNE$n%b9#Xc|W(!F!C=P$BYawQTOBi!jj_P)Bu+rc^R7hV|(HMIPBic+scXF z$dRBwk3Id=)_RSp{RzgzJLnC1)!5E%a04#nqt*BLZ5!Igz57Q+M#}QyB8=SDEg2@G zL;gzG_5Rztevl^Q?d$?am1Dx!R z*yb=@eyfRfv<>fypYpsyeL7?uK-YeRoW8`<{ROd^jZ+(#@W;9|v<>eb!aL_BMs+Sq zMA!cO7;(FyL!H0{?h^X-IOC7)t??auM7->&JUyi~)P6>|zyac*pTE6UJVIyJ+vgf# z<}_CC9v-6{x;DD_vw@MguvqP zdL`k6j5~Oe^n`Q$qaHImgPuD)UaSt>E0%~|H_PULeOZ~%*codizN>5B=0q8FE(#6(E?i_L~1$xr8oogIWBX#TA(j-o~^X^fM|Hsg^lI*H$3u7x|V~|?@>1ea+gP-tw6?gfVd0EZ>DbP_a+{`+Qu{~{U z)AmKuwLJwz5nU z%%a}ntmqu(oR>i=Bi3ghZ5jj2>(zgATUf_d$589-SnEM+zyPyqKX^U-oFb|;CfL2k z;W~}>=^u?BFxV~$9Walf%CxW@@Pc-}ndD#CE1rm8Cy6IhFHYO9iXWI)J#D#%C@|Weg;~|L;UIF;9$$P{TavA!u0741d6;$d zuK)Re`#=8U0X)iQxe!GIuNTRvi0L()juocCyBC6ztRTwQv$t08I_E}n+_*g^EwdFS zC*>sMsbNJX3vV>Gz=2_0KW~6`aqoqQ^Tc1$E4EdZ_Y@54^sk0C;XgyMTw>8M$^{E5 z*#B~Qxw!fOWgdb@@EY;>tDf%9@DjiB!^IdZT>$8%VMvAZEL`+#M}NT6#qc*Qju})9 ze=#*NT%6%zpF`6anHdcA@ZDc}wr3??+A~eLV@py~^11(lhVnh%?fPfA07jFQKv$O6 zh=2JgF3}ukk@kFjt+;u8zSxgeU5M`(BZf= z^a#dXJ%3{HLmBJL9X;dvYyXsYKP64Mz1NV5EB985bMq?&BEqG#c(u_dkIf9mCYB)) z?5k(F(Cgm90a&!A=uk&hyjvL&gG@ zFe59TD7(JwLUxk9p}m}-aX~#A8-^aSXMa27Ey;OOU^`(5BH##-AM)8`p3h8vB&kiZ z9(m=n-uR_D6Au!U5_F7zDaXGlb>cx@S-2w~OfrntSXsWG^RvQ|aqq?t#LL2ItV)E~ z8p8CUJn;SW#0q-1L2vwgKf?~F@!LAAzBhi9ZNN`xWp)Gq8t@ZsQl>H0S!rM9hK!w` z{kLxg1~0bTR~RX^+MxXHN0m=OdlQX3Xwe?{WeiLFc%Ed~5i~vXNwt5hd47@`Y4j9v zuC=ZVvx3fRe-&1E^=v25*T&|}zbKile_N=|=2by6IVP!#+`?Peqx~B31nPL6Te04b zAtUMamJIvTwiX{#mhJdawzKe3Kc;Lv@K2|V1ndl>B4@sk<`~C<_WQz#{=tiRtn9$A z14c7`Ef`eNjh}R-F;{FmV3XhKV?1clzAgAw#(3%xws>~q*Ui5c9$om!*hHhSOnyc# zU!wo=vc}ojF}%Xrv{u)?aq})Q&L778EM9_|+PQ3`fYSU&JZ_@jUcq2Jh8MbeuyrVV z>a4=n%UoGWbtgD^j1sYkpUt9vFFNg0PGH>R1dGdqyZ}nFkVYKwvW@{NFczg7N$SYf z_h-UQUBI(UZ(+kusZSa+^%-F=u3x%>SJAWLGdyuU{if0W^4&G=b6I1YtTK7k$q-nqBw*{yRq7J#L`%n3ykzqiH!zWa2;F+N^T`Z;@gtbaXW!Wxdv zHM)Q3+9@2Wy`w$;m9<)3$Y*>05Ru3Rck3@pf@hYczVHheHCx*nYO=kDSRH!fmwyWio9V0e#t`)-T@ayXDh&9+CQ- zgLu1zp94#o{1)xY^G)%i;@k$7Z9_@G{2gPJpD8Q;if@~L8AhG<3Vyy&CclYyCyX+a zk32^5l~jRIrLl@P--Xq#q0YaIU!Sn4wT_<~#r8YrBaOP&m-!ZGzUH6Ye!|*KAFIy= zuL<^7@tQQ}fBhmXzp}3Fd}lIV`}0@HZWnD5f0VD(?#e~0AH*B}sme(D9*u5UWyuDP z)Rw<$|M02RTP*j35Wv7G!OQ)|LM2L3HiNde1q|S9j9;o}GyL*6lQHk4QDjS`t&i`S z#>^+OYxpG^&EFVym46$I0cHPf!Y}j3x~#Qh46X6c67n#SlQ<}T_8sTVDeOZBIF;oX zc>DJK2tn=rj@iMbpFXCHT{F7Ly>;x%TntX17k%-x|Jz<(JZ=)#jDN!0ayWsb6Aut7 z$q-TKScDhB+uC@3E&#s$_A&!4t63Xp!NDg5sHSe-$LL=apMY)We_qR`w;O@ z_oFmlULZyuao_al5t-a@dACJ&xk%6}L+6Q5{F#|lAahw!@O=eN#m{^V?n5Yo*QtAa z7;kTs0z)3b{3!`3Q3FRmg-@z#}S^WA<(kmUU4?)WAS`xPTHk=;hD%pSd)4Adjm%2@i z>y7@Z_{%pJ<01erc=EE_aA;i#+S7;uApL{@F4I6h#$5``fLDtHn2X zw!3)rSh>fs+?|_az%Vq-jR$MoKS1o*N4tvY*<;1y7emD;F{JDx_FH$G^^Bj#BhJOB zFl=X2^j|*R;mrNo_VYdEBqkgimlTUf@-3GqBJ*ANgIXNH_3~7`fc(7&&j97y@x_0p z48!-UF!FA*c`ZDUf8RI7_)@~y2tRkv+psG%0_G)SNcQ3psvds|Zq%2G_JLo8PhI#0 zsv-X^x}hgJhxNhNPW;l46EyP7G0uO|H^6w=x}drS!?tPDnCi^qu>G%te?jBc`Ilh` zJ;M(CavMOqo46awh-FK@W*8m#L1)lT8S87c4f&1o2i@|fQ%36eC4M-mcjA}wv;0|~ zaB|B1pc}uoj8ySU?TbuR+XnoEuLqi&(?>aiUhZqbqGP z;oumP9&-%QOUd;Lq^U?r&e~%@l85f`#j?O;oRjAr^2hHiJ4pvhWxHV{*xMz4o&6)# z*%yAf|3XM3j50s^N4@`2O;i7H3`pLaX@M>6o#WpY@Jnh(^z%*_ZT{skv}=rN;g^79 zJaYS%Dp%0$Gj(kj)3)Ej!o$$D=jQf=gMl<{mMr4%`hZPkk56l)j#H$-HU#5t!UXQ0 zV3TJNhYAeZ(j(lAca{;y$elZ0gqQp(I&#btc$a57GbZi!b&O}8pl)^TyVO6td%ZY< zQBWK_&AQIG_j=~tw0Wf&zsY~%^ zTt@eY98TRPPkX+Cu5={s_-w1G{*J#hygDrNT|gaUVP=TJKY#T@gj<>1GaCK)Yjy2U z#0`(+vsdDzr*YL?+qki2^5S-r^1hqAhg@WJ8?XM^>G8CAK#&=e?a@!l9F z#822!V;bW`s69s}qesw4v82am+S3?Zr?DHqM0^MTz{M0}sCsD0r|KBr;$IK^YzLtX z(*Iox2(sEXzON46#xK=b#V?QL;?fg8+MtbJ8-}UIY};4Z8NZU%As?OiiA5Uc zgk5a|^LyeK{8I#(R}y-yIWlMu{DjcdzGWLoV~c-n8s$}{JqiG$iGTLNj9-$G1VcJP z4`4X0<7fNGqxnZ`gj3Ud7H7lE9Fg6oB>A?%+tkegTZtwnx`p?lIG;J@?Tpj-Uf`}h z&*9Bxi7|k$sgKp$H;;2Eza=B+AIe}(Sw=#(D`S8%Vjb1-MHn0QF@(L<$Ed)uRTzO^ z4R-Vc^UC}-e(iN+Rfg*@EFbf{wA5hq*T*XO(N6`DOQd89j{S^_|C@@?@jjOT(q3)xO|o``Sjz=rX(J&YuI*?4s*-FA~Nk)I)g; z@9ErN{dRn<_+H>Sj6$v~T9ZQQM1A*BQYd7QO8qW6hEudgiVWXRpJ_aMj0cSd1aa`6 zNfyb>^h?-DarBwSq8Waxpy(BI8jtiVD7fXR$AF<4GO=e*F^F625OE?kKnE=T=z(pB z8nqztkQaIhX$THaUc7WaIy@Z4{Alk$CP=jU#$roN# zsW;)>#z3C;N=VZ(H&`6w2vCWiakI0S#!#L{> zl+oX5t1L~s=xf#$Ib@n2?MZ)+vOXybC&NKG29)^@3+V_?f+-E+Z;ElI>_u6A9Y=OF zj5`^2yjaDLPM7h^cx;AWz^LGz4eaJ;JR~aW1V1s)urq!wDofhaq>|{eaG70B*6n=j zP$6^-?T3GscMKJNDEcy#)QiT1Ukkem-f5yKUrzV|D#quMMl*%J5$v+LEY*UY6p}<^ z=3g%u9qm|w(a1mBK&3zAFA!_MFX1a)F$aN$nAifj&BQOm=oh~_jJAv-r z3m9EE8K|zUw{(niCDzupQIcLgT8&ex&MLkNmE*16=l7Vq*SH&KM`=J;*UrRe{Cq{8 zjo^{~jD^6R2!(>j4lpbmG*ZYnO}2sZYf{&qb`i6TM?8)i@1koP|6M)VH=IT^x{Xha z7emM2DMqJe(*lKet=GQd8X=XohEmstkLnHQZm)2nbf`FtF(0)fC5lz%qb$B+pHGc>{-MVus^LI!fBnWq_r+&=kt^;6!dM=3Y&;f+2#e2cIzS0b$6 zalFx8NQSNr&s@)_KcC0>W)CL|PMtg)G2eA^c@FUh4saPQm)gsVhd3bpAGt zvy(%M4oB5X#gwUyTA_;V+wU83-~k~|y?ac48bW4>bJ%%qdpUI~lp7;0u@Bl}J3aL0wJp6rN_ z#zc(=383|=Yg2WMBjvEsl8?>C(7-C=A^Z%$2W7r`ta#+kl4Y-sUzennr4$O{&H14+KW zP2C)@dowJA$M987&wD4MPPK-x^Ug+TakHm9-g+ zu>1B+aU1=!n6xb_a_J?1H7CnVjBsg_7lDR{ie57)1N>Vr-rv2WL_?`nbKwe=Q%;7i`d9SW>p+=PC;OMK1Syz@+7%VZZSPW|PvR zJZg~FW7GKk!)%JhV9vwcga|UGV}v9sX`CeJ>W7DS6_@TTBd?qyVMC_g--X*OPu7`a z*7|db`tlDx9q?y44)54ye{%tFlOx^FUog0Vy3=btS*{oCuCmtQ3$?UW7=c{hFf7qfBq zZQl$dJ}VXYyI&Z-R+r((OAq|pk#e0Knf$2JZkKbBLKo(U_jA1D@Sk$Pd7FM34$uIq z2O3bG^3O{pHKJVM2;vAvlp$m5gGpUZ>g|}3ZOTuwV2RFlZGs!6c+lMUx^olkPPp3! zBLniYlA37raby2T2v*+CUnMemXXhM0GmK1;{Ud?MIqlLt^LfzCsW$93gbiTVV5mp! zreErTY79w3dw3aqayVdv#svvx=n`VJijME?Fe_Y4!b zM(p=kvAPr(t#Q5th%yN8{xkbob{hURKdv#O;IkPZB$Qk=W+9L+@~b zrB}N;={Mh9rmqv4k<0CcX{zhm>gPk~DG!Nv?-+e>%J6!L)5@!Juyt2;Z3(FIA z@6_Gj;RLIjHJ7j4iZGKW@JQdke-=GFIXHN!>WAD>6WsF zd|sU)cCDe16iVyXGv5$NI^{&Ffw#_P*tLSZyb*p;VVjgxRRipRTBF;-z47RcUme4Z z@asim7YuNzj-f%wHsaTeM=u(!y%WQY_*X9*Z}UQPo!z-x=U+GMUkZNG;<)Hqd3wwf zA8B5cCvVdm=0G{9>(KIuNEq)BnPQ#0XU=nPq@kdbU7|sDddg~dSt)25Gd7Z8q100o zj0AftWqaYbwLaD_et}scv__6Hj-KfRR!N!0^j?}5d|Y4aL|%H}-;R`FbY$|QDZdwf z3FU;Fe^F=Hgn5xpjG=4mi0p~QE8I<^osp}A`bxslt~HBI_7Ps}PJHT{&VM3!4>P43 zJnD9>l#prtv@As;#PV4jw|D(d|Lgz$AH9fjoFHv$97EJQ`q06-FutpZH8C$k6PWN- zaPMI-j$I~%Po+@ra(6FO4&4<@JC}iJypv)0Y57n*0j7~!`?p>&D!cXiEo*&1_fITQ z;*)o#u(XMf-tBt7X3sLqny%*Lr$Hg_S;sRj3H5R*Jx&tk^*7RQ7azvN6d!l(Vi4yA@pXqqW9Sce)>&k+pm?={ zk$r*Vq{oUwhvp)lxtEI?Z*kAmLu!C2kR?9U??f$?x1&8HS(2$@#|WR9V-<#^b3f^tOY?R^2G@vZt%pZ-+f8Hr@xw?`<|Ol9+}pY*1HXIzLm+BBh$Nx zPnC@Do^hf5`MhYU1wr;mBtLayR1)|VD!rG!Rsx;um!qt*$&tZv`9)R ze<}yg!Gm;MFF_ZFCb>$~zx}&i9FWg$MtV`Z21D<7F{ItYWgQ4AUJ+%5(Z~4SEh7zi zzO&WwrC-=R#|9rX$?!Je2fwzf|5oRrq`PFip`oNNsDas8KM9tW&$`=yekyhq1fwX8 zR;_C@7)|^$WXdv*AUoM4&`9+h-AZGq;qyG*XR6l`nUz1{tNiF8>s=)pg~cyUYw}Qi z*^m!@ZX{=dbn#?3h*dVIo!2$~)$12Vc+A2O>&gGjo8+z~H{!kc^hM|m&L5UYZJ_>O z9d1NPvq_^k!xXXJ)op{*u~FzVQ0AYPFyaM{&OA{GDdY2c624IV^l15$6>wtQ8vrNK zsJCr?UtK#n2Wa$H-${THZ;8`xEbRHUVsey|zXQa!#|V9l`>gzDTX|p7>C;CE>oOI* zS;RPfm(IR>gpf0MnJ27(>9<67h?BgPZ(ja71?=p^V;uNfw-zEE{3yDwjw|voz27Z& z!byDQQn1Oi2=j#bxGGwH0W^SDyN-%U2uBRm|*MNXL8)xI)2Ud39ktcg{j&MQFBlHdcbIe zEuE}Tj1R`JTsPtUmca*$+dx&krs@+Q~E#R?20ZVM1pej-t zh`mJVtLv+=0B{19@%g<_tU**prU?gx{f|78gIEeVk(BVH1Sf-m`KH{6mbFXm;o>2c z0F`(7$z4k*SiDcpV;BTkVHmW&7$i#=LbFeb%j0D{#lc-K9~Un(DEXs!qdms6Knw#x zaWjkwe9;JQ=WZF*fmKc7s=+*a7aF(PP%ZIWaMi-K?=Au~8oCe|BLs{%#~URYqY$ZA z%-#v&Up{+UJRtt(cjf>3e+y;Ky z##ZBkzub-s|o_AuE)%oC?3*?33IGe2)tIm0 zUVdk}sIhZff5t*EWM+$C;jId`GV$2-$8mMz=*+#=L%Ep8taA7xb8OB+9&bO>3N z03HUyEaoYbekQ*A-L%He+Sp*4@LnQxmoMKazU8R%I%jV7(Ej5bg?+IjdCyhl&$jC| z1_;+`ZR6+*foHmWS$Q?C*1id3pT!4g#f8V`If|}#oD0r8<_M<>Bg;#Ioi=*Jp_R`A z`??*Y1HX(1@FJhjI(~H+(%J!o-{NA*F#O)augo{kewj9+EZcw|wQmH2R}y~KDX<0@ z;wSJJAIs+nzfRbB3>B{`jd`Q&P2$(VzuX4kUCrMbe&rlggOS_7)=_p$ewQ~J@vn+U zhT)3=BY}y&6fl6dIsY<#sceZ#!lNQPE&MW1$Z+0tQulP1%7zx9QDsK<;X| zTtJ7=D^Z1Pg@({e(f-vq7Dd;qjDKZ2cFA9EUn*(KPLh$X@g&Wr#%~d?SbV^A^ZedDWmNh`f zJeJy^89&P=T{{`t9iyxxXy;QHYAc>z8$&NPXjUB3lG{(PS$1-sYmbARs@?f=y*Pj2Iv(@$;b?N5%S#Olx&Hil(zSV4 z{Ws~rX}+t{li>;9i%h)>Nkm<+`n3AE^msw4eMN76L+N-7+j?@HRXn!)d(yRO)6^t=gSR-Wjka{-(>5NeoLuM| z&>Jk6Wm1{dxylUz4eIu~xL*sIh0B3~{OA9e_vL$j*E`XMxf4wt*mcECHch_%_EPa| zd8L@($o!t!x#H!(P?VR48;+sW6tGL0b-c=B08i*!X?!u{)HLgDV^%v}EU>Bn?agI2 z%95^K#V^Zyv`0poAHr?Yfi}dC_o}e-7+;0$cjIiQF(milBnOsPkg6~m@e>AR`^HaN z0(KwxfkK8Y9`PRSstmN}pf=vYCtz1;w0SZNzYE9IIghpTGYrcF?S3I;7**JiLVj8Y zDSCC-A(7OVYNTwY9e8=32-xNej8uowH3wB-RPk$UUqB`q5pXx`z>f!6)G~fm8pSEo z?)Nr+8MZRg&d)Gfw3o!^_7b)m+KPbl-wL|6x}Gtd^9d*Gd7HME1M=N=a;!9T^g~V< ztf5bMe^uO-gd8LtFEvan(6#r%Us!m8f%%VX`!u+mfU3lqYD2}(GTzgTI7tIXnsm^=fazncv zF@?iOlUu;%MPV>62P$4@#Qza9?*K+@m31$my0WkeYAWL@8hRGsg+#e^Jb>)fcR6P2 zkyRTn2488EF3_`a9x>=zzZbAdrYRpcvP?Bei@2FI65a#0gSVI7$vYcIY_m{Ij9|nj zp5zeWJH|LhItYHZ?mR5+7ke;v4nqTFOTG)%3zClP7%diWtp)BXpw^k%Ga=_hCLdnD zz+3787hGPwQat61@acCws!E)DjOO<_MmvuOg$8rmNTvNS0y`W^I4_H(fXfu$_^tA8 zJL)}STi?ZquD~C_6W_Ry#*#eA5!iT!((eMm1;Y`JeRyfF#`W>>kyt2ryw!!n43|5( z37~SRm-|nVFOYBen&fHQ){H+w^yq>_`@B`&z zAK_VyF{&J2yocu-UhVGH>|w#Zw3Zh7i3Sx;z1EV_A&-nT>A$s=)nfPZv*K@l^B&${ z$Nb|jh{3M%aXYtil3VbdKYEdCN0j{mKvHAeB?=J=&Ha0JTu1-;@2E`fIyb`SidG1K`H14^dX%U-KAHsS}) zvaOka-S`Q^25sRdPP`wm`5wS1vKjv*E98$h2%h=sR{0lrWE$J;Yh$$JPn;_FW!c#r zzXZeaQV>~ow$#3vPa$V*7;?;ocF9T~v}kvZbT|Jg^T;KRte;{Ya$znN{Q0lMZd9qX*b(d8CF(0+PBPC<~sU^0zk^Jqm4^h zXu&`yaU6-ZFZ)M$DC9m?gCV>;4tL|1`dAA#W&JKrjs3RG z_$9RD4?KmxCKm(gTh?jQuRQj3;%6I_V?z`FfY;)auqjhk)6Va}FSUWjssZ%3alAy; zlNT1AaIxiTaq`5$t_6TJG$rpgx{99aDbP_uNm$OJ8gRs^+P-;iO>#yd%TgxI6Q%4Z zf8@8uJboyD(&NH*V29!2JiX>zYxoOjq0A3=@X98nggUY(QEkV}lYr+ODGc~1Y>#{I zBLt2{@#|c;e(T{n<PPhNFu>vO}0-QHH5Ja&)A)e`6KgQ%FAfmw75|wkM)ka(UxAqlqbETe`rOR^eq<@e>(nb&rjKz2T?gVt<-KhkeQk z=t~Qne4#%N@L-B%%?kG~ED@?jxe@6YqZBCcR|e+sjyELIDjRjXmYx)!etfc++cz6+ zy7FQty8H7u?codZ!4zXa`r7KJGAOOL;ZFK`voaHaECsTR1tE zmwaf|DGbM`fNkHZ;Rgdk&)bZD8{r3x(BpyOf6ghH7kO-u_EeAGDm>XH{Mu`k#6S5U zZ-Rdn8f|a!XyhM->--BC+rYm%e)aZkwO1X#4%v46Ys*NB#vh5FGErX#Rq-=yn>swft*?w!`;SOkAH#Wc^bE^) zvi#-m^3D5k=dRkw#_T4+Qyi61hdpWG`{yL}SE& z46G>R^upLKH_~H?aE%D%kq(OTZp6xHf^Z58)Vn1PYU&FBeygV9f zIGmkGr0=?*2=76druY0HaUX*|VJ3jV7dI_lzAD4A@Sc3~F<&Vk6_>wxreM=>ZgxCd zS}T@NcK4xejp0GBv034Gf}(6=KI6#gGYr%o8yzw34froDu{kjCu$VxA^qxL2m3U*F zvT_{)CK0v|_NUlG55U`Y)v#*An-myvd%&ehiklGqi@dXxaUeCY-^R=5 zDVMcg;|TNvyl6i8_+5ChbyI7d%$@Tr&tD)cv%gbN? z@Q3g5z;V}UE{yRS`lm6hYp}PT^DGE7vU?%a8XnUt@M0Z47+)T#$W^|PPw7`u-9=R< zgSW3ylW^p_O_S3KyKj$JJbMJ%xQKv{w#d(a>d%au{XnlXH<=X5SLmaTcw+`BbJ6pEhiO2;Zt4^!>D7n`c?Y zH{)S`|M(?CN5}Y5!Zw7I9jGUbl{%$+>-d!l{D%C4ufP^R$0^6*I_>f!O%mXMakkwC zsl06?KQ@BV%)eyV%6x5Z-)`7;65Bo6U?cufPTXG?Kacaru6YTg13!5Jqo}@_e|_QS zqUQDSb0W-bBaKxVvAqP{gr8#PT^{xaFXzkSj%DAb?dO0kEN@j_4Q1e_xyqjZB8(p6 zR2=#EuZ?SsFTN(Z_%hV*}5t zV^j;a{X;pkVp11=8YFJlao6w8_T8s0{;7-juV)xjqp3!_`t<^k=kuD!%! z!hf?9L&YR9sl5bsY3XV4h;@&K>lH$3s%v|fkVbI(vCbjO>ko_ZBeP*>)DRiQVC$v6 z=O`P7$a!B~8$;v+^l>*5Y#0BTGVb1u_3hOg#njM?;;+6q6DK*d9_8sz9a22usqU=d zd;vrM=bxP}CML#8I3*L}m$WBcTO9S4zm0Q@?dTf95Hpw1>ow$$!%E<+luh z@`w!@XC^(VYmfX!!7YR z^x&m+?nRh8Sj_F`)NnYuaX~k7Xn4@a+&z%`LR;C9phgOc8n#!wjYU){UGC^Of}6x?YYJ|s69uv z#<>zkbU$FW=Ew@{)>uT{)jHd-%P|T;llCtB0NxY75^vkEI!AWlSA&u9@Vyp(!Vt$& zDBJn+)j9Gt@N2a}8^1(j=Ui=-ebHFOuY|3mqqHadlH7E(??$j&`1RAiJ!GWX2J$cl zj5Ov-Q^Id^{^jwxS%!t%4ci9G?PVxt=N0F*yx}Xa-=;Um0p(W5121j2-)d{}bb)q) z+{dh4Ik0^x-jQD&1De`5!|=TfLm;Y3x!t>9l>Il40sd_1@r*E*@8};@*nICTf93j| zGW9Vk;}@_ugwZX-c9-bCe2UkGW2j|;-;4I7NrGRwR?$|gEhzEM_DMQ;ZyGnik9q?? z=a0alUA8q=nqTRY)~Ef&FxIv{s1#40u7!mvg>C|Ktn*pdCfpIzmwV%@4!K zd~;)&@I@~|*Y>&m))6}XlPAy_YZ%{+_miygD>iZjDlBuet{pn@fBM~pSH}DEXyOx; ztOpO5ioJLye|l^@E)}&RlZ#1>w$KysRb;%ZV3DJ(<9OR7uk2JdBX2_~d>$uN5u#YU z?B!zaE@|M4i&!Y6uv*786w*^iiAjERDs~XBFB;R1quTH&;2|w41ctKk!dG_}9q=yP zBc>%2f%U}rTjE(_lu!Z}nP&<`hrs%Jx>)|kqTVUQ)QesFWH6CdL??*Qd&NNf#$eQA z*`1SoT;H%Xp`f7Dso3RYT?&K7!eBnX-4$JZ`nY%wL54=rpsX;SIKDrW{`uPrVcd2g zH@>4v@-*Jx@4tT{I-TK*zem6T06+jqL_t(uRK&d;=gh|+6w};PJAv1f0$xq=i$5Ae zZ$Exf+>m@!GHF`dv`od!liIqwj=l5w}qOS@1u6_LBbY0AdWuRF%BR$#?b) zy(&(yi8VsscJQ@d8(;Oi`E}&aNifmsJEa)L>lseu@khQpDOlcP?2b3yqc8_fhJNy8 z>(h8~{`MLt5j6f|xG0gypBZkozG~j4`6VtT*cN<$SK&0(w;^m_06-Uv4f5qlH8s_l z^DI{_p7ZN@o){3WaeS+(SNUK71{&ufhr1`O`H9luT*N2S7hCRFFeit`?^L%ZR^-89XqD{P)$CnUxGnUUgy zlY5zKUn0MRLqgBhV65KiOs`RJ1zmMFI2#T{58`VNxgZ$JUl^V#C*CEhqT9s}b?2S0 zxGdCgDj;#|!&0*QKXG@&CTM4HP!^1pV#v}3QzR>k`B+;;}uD!|$QjOdrICp&b!HHrRopqjj zh3?&34Bhn92WJQ$Gli}VU#+y3YbIE4WIId;L2fvxx2tQ<&h80ZbA2_^x9z9o z$l2}GwHKbeDE@Sn^#-SqKIJ5WhVD{iw+-*D0?P90c(Aa%s*pLb8 z+B$({d86ni5!z<978X13G&UytldjpJHrrmDjCJ2FUFsyeBq^Ht-k@MmY?%1R4t$D6sKy+ z9h9lur9vGUmy^wrc(33ke^g4iA!8|t%?EIVB^ z_K8Qp@DHg8Mq@s>)cF@Y*$NB+lbY(R=2@mE>;|4>e)y87Kt>6vdTQTboXm-50(_g^ z2nTF8olLKAl9VY9kMZO{kt=IzN1rw2=RBWR?DNsAdnG7eFt?JqXO>GvPviF-s5u}d+-?gke8yi5GX70LmkCO>e}pgqcbHtnRZ~q73zSkHA=X~f4_Qd zo)expiTq!`zxc`+%lKxY0~4Z!e|nN0AV%`1$A&{$zr9HOY`oc*nTXZ(UAkDIyGtV& zL{%oGI4Ls81H{Q*!R$RxfkZVEhb4LgI3gp&H&jra6of1%SAOrryZ8eEl=t2flIZU5vO}DP8P4!~}y~ zJiLgK!C7URg$LGajevUKpW3^-ICX%dEi7EVzVR$B!qF4p7{^?XaJB2lxMeoC|(h|XPVfHyWH#me-&b3yC^(_7m61c>6M}a{25*@#%WZ^_P2)X zfBNTdxX5XLD9}|;fGV9-9}Uhc7)y=0$wCggY(wp9vQvJ|;k7?PTRC~umFm185U%a* zqTz=N*HGr~hcWz%&)>sSCSBI*a~A}QT;BBifBL5QfK7tq#}6dBsK*^~k3xE(>L|wj ze5tMPS+B=meh*z<+H~^7fmkSb62SaPJb;W#dGXS9ymkm%f;Ya45WRUa&iS*-gJ0Tr z*bp(tZqcVSZtFqfg3>nXS9aedP2#8AD7(ss;f_2)?k&xZ4<7T@Gp(9@2U3vnSH?WGW8>xFO211-Qa`*i_q#KAj8Pr+B$`mlM4}*nd37Y^QMouIVU^^MgQ5yjGO%B zHD+G>KZ0$&Z&RNffLSgA+&s}E_ig(1bHM(ihk@~cKRGalMAeSrvHcp);fo67zQ!i$DJ1 z+v1DQ-YpDkV<<@t`i87{!gN~Iwbe^q6F8=5$lt+St0#Ik1O_o1{E=>B-Rcdlp>7ak z`71n))EAulvvFGe&At@g=FCfeito|sf#Ur`BVklLOX$ceT-2)0bQs5%W9Z=#Itzx} zXVdHZdG2xnU-c9{)t7HyD%QF8Xa@ax5GNH+8K}RgKgd7B9*z>C@VoCWha<=*AD<$o z{!Dc0=d{x@Aq@Zcr*jyxM+$Y+Zl;@_cdb+_hLoOiytS6wfTvgA{nRn(HKy(&)5 z?g~S_&$9d}R$ltM7?*Z;>%+>1_11Zy{_dvQi5bQjHnQBD(}*D4fX!IqTK7-aI03?G z@^pVh6|1-3H{*a#e)3W~z}xh%g9AE_K4Y`?qk}1|%v)Xir)gKm^GoR3Zc1ufbR2z~ z-f|#wz;RZmYz^Qhbz*JKBiNJv>i9@FYuqL*;Vr_(ETXGvJa=Yv9`sYY_JDR}ew!sc z&0gBC)U~x+hwja9L)WN-dY6Ou3&#DOhBxL-^{oes&x(Kehd&n|e|S7X$Hk88z!xtkxU%=bg$h}c*hBzB>ORTWb6m$1_5rJ!ezN#)(-f?&cBEYCTj3Ig(`o-C?j znZnkzpJv5&gawSpYQsC=mF#iwWDx-DSa3)v?>ndp%N-Bj^+=0K|KkY1!EYAWql9}| zVz=aL76e{2qxX$FaR%I9B`%*#SR#L5Whr6`efH_Q#gRk%id!sljJ>O21YI|Ht0#)y zHyW=$|LjcZwW8-vYCyfiPrY+ELbMofaSCPGvNmotS*wZ_AFI~PBp<%pu*F{!7 z5-BWc)3aZADWzjGdez({hNTxj{Wt&S6GGX{1x=Q-8BEeQFmSy1fB(NP}$lQyUK3g)Acj}DM#s8 zd>c#K$3AHr*)MK$B4rPY;nsqk=eez=-LigaT*%46P9uc(87PqHk%QxoR#+R2!ckWm zKckHO)B$i80K~fqw(lqxO=CbE5Ag|F#G-L4xd6n$IrwO(&OjR2F9UE$W!VqrX z_)#$M=o9w8O8jcH2aWKhZWL;4-`C+^4K_bFmXUt(Ly(m{{%@sCVbce4am(8GUhvQU zxR=lij`jABD$Ew}w_koV2jr`s67x7EJmbC#k7z1q4g+2C7w!8~jxPz1x=i)#A5Hi{ zN7MMy6Gp@MXI2x880SJZJ7vBn>^FrUQjo^@THEx%`*rctyRquwxEo#jDN5O2t`OR9 zfzy9GCX2E0ar!KV!Ezi>*Vd?R9}mx+a*o`OuB~2Ye^=qx)25Xy4DNezoIwgxwzTj~ zSc9C_+&eRl9yd|yPU-ZecNGnzqnWBSj&Y*%1%@_5^F%dyz=@K!t^bl9&@p$C=QE8= zyLew+dnfa}+P0zfEE`94?L?F_l!9ZGp=WkrnD^AH9^=dF&%hI7Hv0L<@F1J_uZr(6 zPTKDb&1Z`2RZQ+v^WaGx_*gC ztTGqk7-~ImqX9sn{@jiPxPaO|C&S9=Nf!cOr#AP-e0yiG%p;#31h) z%>HZp3$Lo<`cA^H8SjioRLY+iUurOXmh|M#{?HqCYSS**!Q4*#MA$l|r`p#t>@FBS zAa&5l@2$)e@!VMlx{1f91@l&QKlT+Zwk1CBm+ZybW#$arQyj2*zWM@10 z*FSziJF?SDM(XQG+tpA{I)3eEP8wvex8L~w+qAtLP`1@%Jk_qQ?aBF_Y}_lW@vO%5 zCK(o^G`=*CQT6uS2!=0TNJuQvwNVI9EPw(F?9=zaU`N>IaNUYabv)N_UjYHRVo^%e0r0sMko7>6W zq}{tTN0-m};N=<0_%DQ!EZGkcuz#Lwgc5K0s&bR@ zPdqM>Dr=Qa7YQzUG|cOD<-57feOGTCFLu3l?GAC^m%|&$cGLsj@HW51ByX#f#&>Cr zezFGl zh5wQ)BwlDh7lxa4OT6I5mtNMh7!Z8l9qdEIw45O(rAfIq2@g;)>1t4PjB?U@9{sc| zQ^FQ6>lDwiB{30&ZN2=@E<~vh(q2>@C z--CSSvKl9+nd^>3M2E+zR}jT(_EG0G0lY%5pa3Q zxiKM+r#`y%DyJB4;Q23%aU5F=Cu4mcDfiMk>(S{$2bu|t-DVhn{MFJ@@&4%}#c4dh z)f*Slzx5)1j;`$ng}CXhE?*caIhqF5bY)|16h|%?3Ub<72E% zMmj9Urs$8?XUYkX?7M3S6_Mvwh|6Nr$i%r1ex0@B}+J>4+ zbvbsGB3;pOTli5?8UxZelJ(G@^F)caEfI8!DF3&|;nXK>$IkJkJw7+W21XvEgeOnh zFcK|R)xyuy-?9Fe2l8G3qzZmPqxt;b4}NJ}1V-kU{N;V&M5^ay}8wHf39qcw+bh9C7SIiezJd5qsWesvg0wv!$u>>lmACH&ej4*GvA|{6n@i&IRoWwsh;5=A3+D?@)S19!1`!?c{)rmZ^L?PWf+*fvCl2^UNgm z>L2a)?Oe;Z){*5{DU@C?T4RIwl>OJQ*%sm&puG;S$X^w|>iAL_1A5`tmcK;fM)H$;c-DWm^p-rt!i~&%d@Uq)lVTIK0I^wk7^mU}yZI4V?2fz)zgl z(Y1Bt-ZhBrS_PW+a$a-%b9|70ddJ7TFF2ZvW53m|J%(4ib@(Sf{Z7hxwneKhqK-r8kCxsf1%{0NAcaf5#lR;_UY;3!TrafEbBEcJ@Rm)cNOoQNnSty z_>W)3Wl_@YiGefZd*Nzl9o5=@p6~L>hABn2g+$p+TEBnpFUp@ddNHbDkn}hoXIH?! zVOzHQSSe@ZNtXkaZ9pM*0o`QU83uIW>E(5QiPIp&go@b4w59nmDe!HMBfe8Css-id z*4eojjtn%eCUTIUD%*e@VTmW3ZzZyq)Tm&q!U>L&tsu4drr;4%f#S!&V{*@8? zLW}{xvk!|yR>;K9elD{7ACpUrBV~UK+2*BK+)!587hv#7z!`SDonUn0R|0O~=NM&Q zPk3w{KiUA0PRzdBfggk={1WWy_?OG?@_0Y(C=U|t5bY0ODHHN3jiKEzUTwlZ+b(1T zc)7j~{963$0b5k~*T%1##=s9aoAR%NMxY9q)QDe6yZq?Izo4D>d*WB&U-Xf(eXDJd z_*cq~%m!Fh{#y9i1`X}2T-N1Jk5c=^dAvYX9E@Sh>yhNq+q69#ke9O4&j>q*x3VEO zBK9BoF}}$7^nXQ$)A&+$v6LU}Ykt{(`4n#Mdsbxm4%w-UQH}ir0ImKj9wm&9@nr-2 zLa=!!U=#3vx z)BhFxI$^ikAn>d7Q}9XcD{_g(Uid|~ZsAvj;Rf@|;>^LZ;`0;lqie6nCbGuPbxsdH zdGw?hK-b=hOiiNkd%2<>)NaijFVM$-#_smQ%@K^XCg<*##9BX3 z3}^*UT1+8-(q8f@+PBPCe^w?ANQZ~g;=Z}v*d?zj-T_H@3x^|Mr459Ng^WIOZ@n6pCEV=nF z=Sg*K@wkqsxoxKL-5Bl3BYzrRB>hY|ttRoWC(BCb+}t!93De;vKQrUSy;&wP6~rPa zwd)Ct`EEq~{-3^%`laRlGslXL3BB`6O!7%)XBo{n{+Kq%Ft+nk`IXI&2_JKoFi7|* zak;HwO_|F}qmP0kJ$a2P4bdmfXMMhxP@t|^LqF%4?>*##*oR!O@Cu{CPWpxK*q`zp zNVD8`W~Ok|wUrR>W-_#(m&?w08F48#vQkHwc|u&>=d`wC%_B~1N0=Lsw^$Q?(w23| z(DNvm`%=d^9D|~?K%m~Yy3-kUdAuUc*h(RFmhi= zj0hTg;@5`Ji67)Zk8&uANk?ORfooaUmfrsO2MpIR;E?#Y75v1*`K+P`K%>9SR}NGm zy7(v38?>+Er2-(08}hG&-Q2zvJwEWuo1mTe1)r#>E<4tp`4@PAZ|5A8XsqIw=OD|s z`%*vhm-uHNctPK5@ejQ9qIC}UE-~#s&NIU2f6B?lw`p5AATRkRPo1+@So|BBF2bRb z7kWd}7(ioG<*z*kwA<14bgwPxme(_UxJU%yE{PoHA(6!fyQo`mndZ>28Cl4PL z14F~uwFinZ956ibHH)*iy0+xo_ah~A${*=j>qq&;^72YN)o+(@toH6oA~L9c@_4G-a1%b4wC0pxBM@Zd29LUUZ*q_jI0Ng&xobBGH#1NiI(8I6 z2Vr0t&u3%2d9+AkTPKTwGO6 zi(H;6e7)cG_)$iTO{tfbapL8JmqXbOKJ!!l{G7?AKommpOuOG4N#O#pJT{2i&x~Rh zdon(EA3raa@wV}fh0MrSzX_VkSO0(Z-n2cA9Le)^r4EYXDUlL&D<$Psc~nhRZSPJ$ zGxO}{*m=3TZ}v@3PtO;q54T6}YAt;F&gWd^V)c$!+Wr>V`)|u&+X)zM+-EUy8>H4^e6H2)}G@>JS7zU zrQu4uHnglxC?7hY(?S75&0Yx&hCYBzfDY?Bl{^;oi8p=(jG~XqVFN_}OZ+^&!PblD zqxj8$L@4?wgWZOo<3m3fgF*$r1a^f+XS2PS9mTK@&2knK|bv{|N&-!)myF08+hHJc{Vsz3T40$c#j zxU}HXR2KS%)Grn7AnKQTvOj(3f5@M;C8G53x}|ch^aMr| zekNay_?2y`f}h}Z(q8Illu_d6eJf?`iyx?pN96D1U*11g_}7A;@)v!4LVNTtz2TR) z(+dAQt{Z+$^-Fu?k|lI){E~k@C5vwEI??Y}FHh*i;7IoH>2mgTdNKR#_n+t@!y%D> z2)Z`Blpq8zkUx3_7T&nz)Hbj!4#w+E-eKsm$P;}O$)MY0Snu;8(&7sEDy!(b1O(sO znZ|mpnM-F7MH=fVh~5%;GKGRD1?rtLz#(Apn=x|u=u2JnxR*W9iN~ipW`6nl$BGvm z{Vi)YwIW@6d`!kcWB``nLrUnU#ILPx+M+hPB_YzXa-CC*B=``=-Z}iYqCg+&p*Fvb-;TJjBqjYJ{hF1!`@p2fHUE&8WjvtHK+Qzg%obiuW4fp{Q*o0`WZ-!sWzh)h> zr~{Q*@DBv`#m{MM#g7+F_3NN>{+0M4XVJ%7{lZ*e1Ri=!@qPt`haAG($49TzkH2_eC(z2TsTVMS|Cda4-&7{VJ=L=AQL%)KB&212|HA)Jse8Wx@r z94`4O%Q~J-${)>;{Neol-#^VZmKU>gr!SiVb`XRpk8)X1efo4xE<#S5YY-MqQ6TVb zH!UBIC*+>R1R$q4grUxWrg-o|Q0jqlsdNHX{rG}^soL9-bu9`mJmKh``^?7z;WJ1;<95M1jz~PQA{al-Qnf>t(Uz$I3Uz{cdla87F~^1@?fl^dK_*)3U9;9`J50by@oOJwW# z_JM;<7fo;;JT+hYxVE8@@(2D{&k%y<4j{FN$j4;n=bssmd4i{W~eC>k8apd*KpYEBjPL9YruC>D6a>xr;g# zb6Goxu;rO9ui%n67SZRlILHO59L>9?3(;8o|6cbZ%nKg)&FULDJFZRh7!wuVZ1dO z4}pJ8;{lW&N*%oC_;KHYO$6lT?BV>5#?T|#xUA^7TZIN&?;~l$i5Qdu@!_e115`a@ zF_$B<(8odtIttcKX&+YdEeq{^e3H=AZkEb*NKzC&EYq+pCkcG|YfcYrj zTzHnP&d+3*&fe6Rtek4Bsho8PXiEfR)s8NCL)RYHrStBxkc(WgWPPEd@p6-hVGDyo z9u7x_%P|OD8%rZL)OR%QqqkDVah**wNGcK&kvYx zK*vTKc=G63w(@8r`>VhDjcCn%)dx+|A%M5CvZl*HXKnG?^l#;TAznZ~?VBDEo=uBi z=$|)lUbc6B8m;6}4%YfqfwsBJ?U`-$x6*UY$aWS=VlAd$bn>ZAm9b=cO;B8)MjF z7b}Z?+?b+w6ZpI!*Nj)r=$W;T-f?%f ztqrh;a&v}p>X`a|PL~RlEgl3lzLsgZab|7dBe}XA!6QXd zpKWcgseZ{u`g&-q-zFISwz0R0pAl52roZ-UO{{?@O|-Z1sg=eS{Q4UwL|+qr4X|Bi z%KGIAx5HzS88)5KwdGhr<5{GUr-k8>?99kOwlV)STb_BEUB5V{VU|sZ#$r2}oyJ%m z)=G5;k@U9_=}>2MpN`!`N|8}4NR4WD`~th&SlO^cLhnFOA|?nLer>T8Yv$)#D1DP) zWs70>37lWq&aU3LX37#g<9&YSQf*lE{tVQ?%g-*l97=?#e1Vb*~g0Jp)Nt1*Ttjw zjr7HAS+@(qtdt`zi@1JPKJJy4iev)t@y8eBzj45RH+3MOYUt-e!$Q0Jz&wBui4Kl7 zKYO;IO@UQ&;{yD!!0*S}#pFo5Sy|rDglEoOQ^orL8zLn zPsq&+zMt9XnptNu+#A}spn1IP{@C#iJFJe4&YC7*?gDZ!V<%tB;^vqgVZE<~zzto5 zM%%kMuF0hO8zv82ght=9sfmGFNH)76JoLncZomYkqf%zl0XGN#;j32;&?k_#$NKFR z?1yyk2M6eG>_R8`tD9NXg?nm1lWN;cusM#NT3%Y)SNiw8k9t2i>-`y)fA{Bi&9a?i zi7cAJ#}DBH2YTTEx;7K?3uD@l)&$*jZ88>m0w+>lntq4w^IU!>OfOB7^ioishPKV3 z*?k#HU^V~SZ$8n&9QH)7ZISIqxsf}@aat|fz0E)ypjt!1v zr;ZI~r-n|7hitq{*A}5{!e6~Go;|!ZYZl>W#6S3pPKmCKfzKlutZ*slko=KjxWPNz z$YFKN=Kqaz1GaF2F3Bdv)vHs|HBSi+71YwuiPmer=wstTOa1IKxURjpxSBnEwkZ70 zTiw-l?KYi1Eex4~=FR6@How3f&6B6|s{fnCT}ixuA;0(Q>s!*n&tzP}Y76cHgzVwM z5;(`T8FPN>O!iOT-nKakx_3W%e~Q;(KO;N1b08E==&%bpBzPw0!gowM^5B#fw^v_g z)2lw`?4<}q@Tv0PUePz!-O`gW9t%y}t-^!h6RvCHe&MHSUCOErV)W|7VPuVwU5Zz_i^dkEQs*#D5t*FW_kV)4#oj^_rA;J!6^HXi+W|VSe{d5 zAhxSErj7Jdet!~u5)1HZmKKl$+JF4^*bkp|4!|yW#oEE9)(G$v@L>Lh^+UL={V?~h zbL_+KHV$aNSURURm*tXiP>bxeJ!^k?o3x(!)t+31AI~Oqa&TFv2+_3|E75yg65F76 z#egwjI73=nSV&!q;MG$lOrYx`Z8g`DuLf9RVdoz#VQ4#_Z;tZ z9;DbfU3@|#3+odBS2iWxFp+&kK#cDF10msB%n>?u%|{g)jJv4C^82 zIXf|KJ}Yr6bM5K{TU>`4t3&05$5{Q~hm?!224&s;z6E&mz6YcR<(*9(tb{mnb8h5l zwz8F5sw;uD1Eovb82nc?S^J`cLHUn>JkVxv2L%hprGV(l2Tf*ov+o{j14+Fg6VlJ7 zG?~+TE)HfQen-BwxPTbn?^xUnYqB?{Be#ejyxh|Sm~Ze1Y3H}ge=~k`3#ojX{HV+d z4E;73dAzXLx&RfoSKSVBjhsrM<0x?#e%CPy2Ymh5mXS6!qH& ze(JJ2>!1PlVc=&lYOve*NBhE(@j&>AU-&pgws03QEvq%Gu`kI*(^Z`y!DSqE%+Wep zu35k9JC#MR-4CBGXIR?k?vlA3EmCrkoW^@u6s9M5;8YbSVc?fquXsNqxoX4@*{=34fnQ2{JAUc|tbJ5r zSRWvo>U~4NJ}`b(k1A7DQstlPCA6I?|EldDXyUkN?)Pn@D2`SYA*`!Lu! zV(=hzzi#}q!u7%U!JSD*hw^)n1RWUQ{?W^wY-@EXyLscHj4&n)E;=UuMW1T1`TqT< z2Il6?OXklU9TFLZb|z-H>OfAg8YY^B=JkzDb1UPE&l>niTnoe~xzZo8lceO$*;Px~ z+fR&YC}%)=Epi2p{Po*Ed)`cz`U^$_7p-yuEbX1}THj+j1u!u&Dy#p^?30^U^3xAh zUHh2ke1n?boYaN8T-4ex9#+^}{DAkrhJfsDYZ2+BCjTq|n69n)9mXf9H_d&Nw>_E* z^DpGtZ(ndpWS$%M8!)bq>E*gy%Kh|oOS-+!BX7uHi?%f>7jx@6@w}*wCFGsC<+qQv z1ov1rCV!5U0WV*w9e}INp@Xq{VRtO(ceM}5@oVkllX-XwgTnNmprWiiex`ju*YP7y zn}aaK4~AcL{3z<+P4E*z&{WWpBU!+vvh!dxDlNs)S4JrHz0LF_e+~89Du1>5jjBQZsJ&E%z5UV-s&dv}8>0_(7t$&062BhW znDA;|$3X7hCVqK4aIrR4HMi3)eH48W%^|7CVlJ;2324{PI_kjr2k%1X0o0guY+M+R z54x@ma!C>VBFgxKt7^tqg4k8T#UgwCPyrj8x`goLNH)EFDm$io2aoFBZJ zx-8|mU4DwS&9D~R=tNTD$}&6_p<)++fHgM4)^7-c8O)bt$+01Y_Ugqm*{BxRPy&YJ zZ0EEtOgy4V>YQAQpfupnp0Z5f1psVpVxaH907g?u2p7R{Q$kYv0aowuLKrMwX@dr* z9mrme!_a2}BLtf6mXy5ohUEindeoBz!u92)Z1K^(47b?d{Pr^~3^Pg4;-ijje*gVl zn*>~!wYpshszqlerUq5O!3SPoiNG!@G4Kpu=eKS>vIcrib>IT#1CC{G_&~pQ`WjyD z7bS!dWE4Hz*)Z`qdv@IDh`QVlM7$4N*F^t}tc)&SI-7m{m0R4vTdOURid6*@ByRa- zg78w#KCJ;NNt6jJa9UhkF{^hL?LUP6H~=p>uEj};(^AH1-?Tv%m)0~1plu+p)C_?( zgX~8e;@xq{#wktQX$Mw?N=Lo{#a$TFpN_UpjjDgqWB{L$o4P3Kiwmk(SpeLb*~(_+ z_niw{antZz$DZ9ErH;a4$)0zh-p0y-&U*mwWWlYDpUH~hVMrU^j$fo~XunEIsMF}N z$X#du0{=*lq96T8z~Gxf)bPuTC9U;EVpPNjj86P$^FA0vJ@C5&KLF);RA30FfL*~) z={d6QkeqipdIlT(ye(3XO4SOxh9Af&)bRs`#S0K{!O=n+etHQELcu@#xZh#0&NMIW$~WA zh0Q$r8eXsIAo}&m{>GM9(c+!p^$%6*+6tESq5y1G_I0k`VQNiu_(XUe{uD8KS4+VbE zqbNv%MvE8R;2)`@9*JwjkIeiBP{7cS0zbW^7I|5Lp)@6adad7pAQbrR%fA-bf>H1f z#8UjgLlGr@hBl?v@bhue_?Pp#f*-i$I8%i2FNaa`5B#*zt3UqJhTOfN*0!{%wXF7K zn_$|^lG<&)-bZoosKw(Cx;Bzf26#*#NgX`WBIPf$yQ)Wdj?h?$L7vr(vAJHqUI#!5 z`BO4W?=q6~Q6y5Rw}bZjrCNao?7WY*UmjnP9S{us1h6V2WGdy)AqI?I@Dq(W>{L(o zB3tmIZx9|G{Y#EVH~exEm6HBtAN*82<@AJ~V8LsG!|ue7H^8gn*FvM=*9l`pdhKP6 zg_opnW8eaAZGp1TtvLaR0r*AfhzHfRDTBOt=a`*Y$S%rN`kB#_+0p;}zx~ahCPz+~ zs}d|w5p+TmUd|vGs>L{2RO8G0kuEF3TAKw?XLeIghuQQQdGH0eI6G$x?3XkV@J`Z? z++uA%{otWl)Q^mgnkD|AEMut%EX*hoWf5i)#~*cRi^EJ#^h`Pa=kZw34(nLT2`MOM zfvZHouz?|9C=OZ;wqO*n6;C?imDJ1QL4l5zonFc!J%J;atMUo7u`pv6+*hxhw>bQu z|MJTtyC@V3n=d~9*p3fl@lICC1_EpE=vw#&!}4ZSJE+9ttDLl0>##u2@lGcHo>vJP z0zB%khN?giBBMu^^;pR;5lNNyYU<`+)Gcth_%!^p<4OkW^uQfF3Gjg9zxVGy%f`ot zjejmP<$KD9*9&sRv$?4qWosxjR`Pqg51;#UfVR)65+vhFh`x0}} zO^Bx*5OyVtJF>{a$LvuZRaX@Y1}>;xTVFA^zN?$XU)hCLOazv+=!Yzzj69MnnoTY4 z?`a_(7gDQo*YH9YS&Zn^0+kqTk8;3+wjFKEFajfD;I{On0+OKz}B|X6A zWD0agc_u?SY#LqAPWv+$Iqi|Ygi#Kvz2X-z3fRJhyiumZrd~>Z6!^hxg-Bb#ppVMq zc}IYE(9UlzT_!p#rUcsJ9ZoZi1{)aabc*tF*fCinK437Q!dHPV(}M?f(14%UL3jRD z>M^N_Vs*q8QECL;oF zeP~W&|H^oF0weZWreBc71#eOT!j&Pa}^^_nV1DZBk-LpCEs7AB-#|Qz z?k|-G-}hk!WeFNS09l3Fkf=)(II-xtys~aO?WpwoesyhVqkVAk>R-OQBb<+!QBU|@ zPwD2FO`ZD>XXM{~z&0bC*BXJKMIY#EuzyuJEyzgfk_=_wLlY0XkoIr(l}j#ip~Y?5 zMeZ5_{_d%5plj1tnWe1aI@%cRL)>HDhZU`|cz>&S^)RMuztVhjabs8V`zpJjlWb?O zW|u7QNcZNVR4yD`ml2Kj)TC=4Gou<70nxRi&$V(@&PSRb@24kI_fh}F_-1lK>+aO^ zT&C*n*X0U67!2hL+TlmNkGC>`o%h2CWu#ZM^CW?R%p$*a*oGf47{`+I4x_1$uj1!r zI)1=TVHB|Q^#JaOqy2CvTGyB)uVI>=$b6L12C!O?T{@tv^2E}a9m)NkMTRrwcqPzSx>M|uKdB)Id( zCK&DqceZzQB1LoH?d@z!?!C~pU%lKj<4a&$C#$^F8M4q8cwZ0Q($~|z&%dEeEVF*? z@zRdnImq~ON^4#|fAM*)%eD6z(FZiji10zc>x zK|WV5<4I$EfN1R%zkm(SA!pG(f<9m&Iw_3~KgUmUNhr$HbKs|}1)oR*e$+*j=dknk zo5trb>g~f}IPHuCfurFk*nF3;tM~~)vMZPCFSbrl$B!{DhY>W=4v-Vzvc8M1Jvr=c z&>6sljY(b5oc4Y-BgCp3RQ_@Bhc&{s~`& zBeoN+L|uR*OH}$Rjq)gPqjon4t4(@uphf{`yCEb$RIVWol0J6zzw9KLA)gox9VDKh7=08oDX`Aq7V z0UhF&7W?o)9RXat0nx2H3;;W9y|Z#%NJ!x2Aw-eJ^O5eA2HKs~1#>Bb@_@30|H$R# zwd|{}u4gR3-_|8YDAT9MN7Y!|1waUa6)GH1nh0aMXotXiT+g8V-@Q96zv|1`X&nna zDP_4|#oPe)@Buv>`<=0T3j^d$^ndmW_d)3hbd?e&}H4R~qY0E0G$>hkTE*PXRJMK;Bkab)uJSSu1wJx5&8e)BXT1744wFRf?vASHEv=kRD_hF=~Z>09xG zo+NGH(u`l;|K<1@>iTHKufT~6fq%OUi=0mWB{Z5`<#3{(tMac;{1VtDemRVSC#Lf9 z%k<8mIlcoA$E~b?;?et9(7ve&z^IP5@>~BYsyXNd?TI$@Lb^8AN!;zjA}7|z;R40V zYKG7eOIq45ClgsfzV*xFLZ5=!v|CP@K6)^nU6>roZd{U8j*M_F=u{fMra8d|#%5@% zZ{P*(CVzQ-I8i<^JI9?7(zDUG&&lEz9~m`kKX!Ju37Ns&gKR0`l$yax`&UbubG)en*^R#`6e?Uv`+|} zkRfP%s(Y6f7uTd~e=eWwTp$b1B@mHdfw=^3Z0^d42N*2!$AUWb#JeAVx}V*?{Y00k zp31IVnUb8o`GPyBBB`Udv->;HVgR=q-)Qtxvo7R-|R!WF^)b2U41~`C$)KOk~~ zL$Xcb;AaSXxvon@Ipue$V^r~L)`1-MLHJj%gZ}UX-<&4(n^^^NT4 zYh84#G3bugZMN(lMCsbnDQ#^;>FIk}G;9j=!&P0|(>JC4HN`0G?kH}k5YW6{1I1+Pvozf-s?)WmiN8171}{5cL59jliJ^v@2&mnh2!V( zZ`MbZWmrE#nf%LX>J>kb1=qBHNnsRy6ugPFJ@uhg{DfZ4lf1lx@Goctn1x)|)^l1H zWglP&7kJYL&}>-Ky)l7@6#Z6S;-IZ9(4I)Rt6gaN=~bQJd-QltYl#!mm5=B8QWpR< zz?4NBKB2L8Sa$@WYh!G33aElN9`1PUC#3EhY)05v?I z$l(^{>iVWEG4AR@0F^*$zaL#TsYU!py5SYel&Pr+xfB_fr3{mPFKa-HP80*>k6LEktMX1Ez&^RU*Pepj_~}sI(}*fBDPp?C!lM+1FoxVvTD*A#*7GeFBp~0pEV% zSDl6OZe^9qzw*iYf}_2B&&@3vEEGRr)C2T|&>|ZQPPmuBg8j%5cP$j}5$qB1;Kucf zwy;}YysyKK-z6_2#=nW5mx~jTnQ_r9b#H0)-6;XpyuYSj(8Qm{5c}4n(HHX0Wo{f% z-I6s8yddz7_EHaYTJHJE-vF0;n2vH08@EHtrz93P9G`u*x|i*~l7$bG4l(xx9UdS% z!Fn`>)| z)q5jsRe2M)`@*kp7;vj9Yy9d@Mw;UwW0#SacNX-)Od8lc_5K83i@HxEUyO?WU!Z?gA^Jr&<8RIE z=;G#AIu^`Ag%&4jl)UZwH69|#Nx|(h401`r{Fmpg#p~z0Zy!}00^9egeSlLMz}OdM ztNmavb>Ml`CbX%E8wlizhL+Z4S{BbJ{VTE}zH{e^-C4qEMr7cObjDcVtmowlpM848j6#@OKpz_ov(h;+(3qEt%76Ux&$fVm`SQ8^)PNQ_ay|6Y znG?AS4=*KT^W53fw#feDkN2!@e)qdUn+Nr(ZwAi2d{f^sK4aw$4)C^@vXBwdaip0| z2R0ml7n4V?Sh(f^9`c_49oLP&Xo859*X2v+G{^Hayhm53ZwJn&I+Yr_d+;aVHGM04 zRB=UWh+f**lcn{m?7Vbs^h45u)4#SryQWT|kNyN2;}7E&Hl?1+$FruN7VKSxTOQBC z0;fnLUpwP^)|}Yy$zaSxa_FNo8^5+?El+>UA8Q|e>dk*Q$*^U9k3XObR2FU0HBbTHZFs8-Dh-1kjeYOMF{D(oZ{W!cXWm z_j7IW%FtA1BYtf#+Tt5vgELD_E)!tufu|x5(v>bJbwHv`{~vL zbryrRusNiad(gl-*_b3Qbt9~;7??;IC~quCFD8Y^uT7*BVqX+z$e!7@F zomtJ!U%8?|QdS+Bps?7;`H!lwwbQ@KAn8hn2zR#zwZaG^-=Jy180H zFs05Ezmbm~&sYVcfMG%M&DS?f(Vd%LlJ)q!6y#-DzE4@_ONR=7z<^0k8i=P-+4T5W zKH!-!;erKA72+MUG{>7hduMb)3O6oXrnLZ$)ei#%DAv%kICuyy_(j4B|B)1V=*G(E z%imlt5UMvOXd^EZB&;sK`21@2g)WpOj&~t9Z2F8quiP6E7w?^C4!#aM3Kb|1uva1f zGK(@Mg}6YO(2-0goNzwgTjF2w2Xr_+^4+|)XBK;tBW}$FSqyyJvX;RjeMb{w+)UU; zm-t(iK=DMtn(Cc0m>8gRuvxbu)16hhkHJ?grJvveE?Lww@c;&)SJ;-eme^n@t`^;l z9{^hL20$+`3`83Yy=>x1udt0BZLkj$KMKl;Jv9Ec&|c@qf%w-W?5_Ol5ypY=>#=SM zd9MjtxA;ThUydLA;pp7R*jRQ%C&mWlTawN9O&xvRJ+4zz7lvhpvzxuxT(f@uv3C1U z>9V{@Exr#7447=wr}D=o+E{&}fHCfH`fW>!3zvVN)dCeKqTYwlCf{wi!EaE1vb3uO z#@BK$al#gZ>gjX0&k0o=8<4fEU0Vl?G3+5hyDE549w0+qwbb$hJyITgyOw7RbCggI|0V^k9!sb-dr zcYvdO_<&0tez5TU-J`{9eCmSrD@=4~bNFl}pqmo{6%1vFf`^vQ@N&RA>T@<1=dzdE zx)fGXY!qJ7f-y!K59PNV>m`g`KGj0}d7TnqL*t1~YI1UbJA^o;i;F~X=a0Hd199BP zgk}5n>zA^B`sZK7zfI}%GK5JJ9?El0xTxin5x&(qO-%i;;m5u}y**MaGQmPScr9wf zl#{ee|fF(6x!9CTw9}JV~uF+vE~m zJL=Bl!Hc%KTGP0*s6}_&pWu23=!E$8U%&28vDmE7nZt5#QOFm+Iq}IUL)^r$LE=Vb zjIULifzc5MpA=93guV^D=aO|?HKNm#0lDX%2GYe}2b?C@iX$|or7~;i8SKWiZ7^Em z4Q>s1BkkSrYlB^ft8@rjKX@M)zZ_p^AvBfQ5l6zeh2KG7zf1o8E5Q$=vXN13mLJz* zp!DcLjiWo-Slc=}k_}A_X5+7A+$W>V)wOl4JuT?O$?C>axp1$eZ8MATk^-61!-F1N|jwQ;Le4^4dlX`15uX=5EQ zKqkkj@3z-Z`%v0i@fBgOQ%rxJx+yw{De1YGMQ zWuPcB5x9DFN=%R&87aeq@+)^k%B?TjB`!yDWGR<$ZUjX`m-%QSfaMIg8?$JL4@4{` zsK6a9AaXPuU-kM~3Fd2B3l5}Pn9+rx!sXL*(1@SoOjZY(eBR16jQm)>ke_LMTXSq- zLPz$_Xu)4Pq6x-|EPv)VP}uQBE$e&jU>@IDR^?$8qE18#D~rz$R$ZU3AtK-S6I;wgqh_11wxH`69rp2s~3q{F&v8097W2q>sdJ`0ZtR`8Q=9 z#RW{?e}7Mxo!+p?O2-1f>IPI%;<3EPf}h3nYZAT*2{lKh&!5Lyow{!pYR6p{K54O@ z2@yNFz)J&kW8Dsa{`}`#+3$Y$sWloV5Cm`lev^!HV>p2YVU%7Je$pc|A5Wez8KRz< z+@Z+ovBF=={44x$zIt6^1p{r!5X3Xit;hw;4^OwVZ!QmtC%U*xu3vV=EA9wDsgK|% zFx+Z~wiAJiMFg_4LBxFvShll}zqad_%1|VA103?Bm_!JikmrEy>DAvT5$z?41b5OS zOQa7dt@!1A7POFuP{N>&OFN5p7&+c=f?q;=v|DI%d1ca{;^%#BuQYb!AM{%L$Qf1A zUgO`s_@#A_3(qv}c0VLEtAm*tw==t$y?PRCb#A*8_eHG*W)x z2i&^+)$t2FI_jnYw$-m_f#<0VE2-+8rKbI9O!2GpkMS7xr2K2cPupGD+=_PdwE%Yc z%yDfjzsjC0@7igvQCYNpJUNwpdF6tR!LFMx;V07z*`_vh=}d7E1+Mr(rmlad3kq>} z!2-{nyN^wY`R41JHg!eOAkN~Gl0r@+Ij=~=aElu^`YiMk zHtZP(O#brxtukU8l+`{etzYUa7!Y-XjD-vXK46nJl|R4exCT3yGvv=;2Yw<1Ict(( z=xvj~Uhtz`y9{^sQ50W+o#0pD-@f>ju%jPAZh*ZX|GMGV2BY47qYm2nw?BUP?mav7 zku6limsHO99RXfi`Km(}gE1ud!|y-01>Q)*gqn135-5XyhQ(6c@1d7rI00PTu3)`P z8zx;5^cclXsIS<2$z^bUhmzI^O;3VXaX$ol^78XN87tryT6y&s&;ZM1i2iAHaVa~p zy^`HLdqtMhM@`4rlD@qn*ystSYfEnc2JSH^TL*It7yRPRN!R8AcHH4@>-6oB&3WnC zI{m2m3H-yw%rh-uJd`oUfB5Tf^2@&GrdGci5PWEt_Dse1o6H*@V z43C&oq+?XnMtldI1@8{<5Ul6>k}U9#s{i>}Cw*VOdTA~wGxbH4z)z)psd{_(=$X-r zu8q#jNnuVOK^Jt>-vs;$jQj_8D{+#7jRoW&6Qc+pyEVsd>lu zPqwp9rsOwY^N(5GaJnHM>*(6_`|yhp;{fbveyVfUn3gtP=)&SG zyK&aN70j-%z^n^ZwK;utVlw;u()nzAbHm2}*|}wHoIZzZxoo=O;;!`V-%78>otH1b zKg+)V;jZNPm3cdWpOv7pX=e$$E3XgZ2QqCH!M6hH8HK93RYKqp(bOGzNsn>k6S-`3 z_c7i^Yz~t{i2AL|aGQ?ieN?lI)L}IBFW?myq&ByY-eDv6O??#n=!M3E;n!~)OZyS$ zf3Nrzb)XEicf$Vs%g3OW`YqZu<3|Vo@_sJiAGor{JE8ShPEvvf@<)6<0FQtUjBx^b z&j0vVU)m;?w-)8i%WcYEhu7^lWdY0XyD5QzfGd<~W`uzZEDqE7&z&7NMYgK=Q&DNI zH+hzooD{t$vZ%wFq&x!I43l!f90mTej<24Rq7RcdbSpax0fwK`eyv#?FN zG=M*DWq`9P0m9PowI(72ry))K=FcpYqma+fub4%BK&1TWd3ii0fyRF%6Pho-)TOZ6 zH3CmIA4qFTm%eM{-@%0s2s67<|M5Tk&USzQ`P*O267x5*o~QA{ zFWeRC~ zQUZ1bMv9-xqp1Ogw1j=}Q)+=I@l!sn(dD!QgFY1+8}JJnm4=iD!B4=Af6xRAUr8CH zJmWPB9Ab)Ib>f$or>`8pS{*3fa0>qA>46QNDUC*@;o&rv{Bvef2jn9JjfP+FN%2Mf z2JAd-3A>ITJoA3XWH^D{h95k#%8j)A(EnEav;bu?tn@_!>shF^{cJhJ{#Skbqg*AaBAO2)Md|MK-q`I3E^-Jadi7&mM#&RDRya(T-( zJRv7%10>qw04LuVX9u*={F^VXEAE(G)W@kc+%`lYeO|2=6?GWzd-41A%^ylU zX&6H&gMJ6sRUE00KwVJ1gfce&tqA%o7X8?O>ghWRlr5Ds& z(a))uAQaYz8t+}^ zp@sJ)|G>^^O!0#ckODOwvYo>SyhUPBrnRf0ZoE<(`3G>L(c2y=z05j(&HRhB`{I|= zz9(j)d+L8B2n7YllP9039I=fpT!`TN5mz!*UEBFZ`ojoZ>a?p1Qg^fph%t!QPl;1n zhOtc%&~ibp87GD$CrbKU?kZf@erZ0WxeJN3oQ|uJY~Y|9U4c5FBra-4*Ve(A>=jnH ziklopAI6d%_cJf$j!qjEvRcyJX@zXys%BVj>ZoHbFrIyREPJvwApLn=MOD812-y1hB+Cn@V51iD&#Ur{lrwTeY9+by$mgOOvaI32u=5EXC4!R8L z;eAjalM~}+P=XQC^UZD8R`4!LBHb~$?!!$Zt{0g+R+8lLQ;OcUB47Fq4J-0p zib0E=7?s=t7yc6XrcICO-lo6)_g~vZv_Jp+z~&~LW`dXS8C@G#q*X4fFY>Qx^KwHz z28Z&EmEaZM%%RXZVc-*8So>^cSDU>9*||{}C<#oC0$_fX0scb+r#s=M>sBIHKNwp$ zMa$*`x;7hh@Xgwy8d&f@`W@m!2ZzPh$15+DjIkMI@qSYq96MYJtobZ=GZEJTL-|M_ z@qAk!Z#V)Oys1kF&<_Pqs|TgU2%@foJAOTmkpi0b@h)!$+WI}@Xn*{g#|gtP*JU9j zXsqC;crUYsM#Hbv(ITzEP(AgApO3RKrZaZI(}3Zwx!wf7Qa`BTr}zf`nI5XTw7RBR zg-eX5W&I*gN&}7HTGV@vx8x4>3Q3JJ3mE~nlpIce|yHzg-uU%ZT@cFykffc4?o_| zwzSF0$u)2yoAb}}+D`%FT|Xh=i`^f9JNBlb5 z0p&V=A!h}CdSU6|o1s_5Pf4G0LcEeA_!w&;vbwGVVvB!IzR`EmEW)qIRM(2*F=hN`Xf0CEBgZ{<|N7h_f zTSaHF{y9mPKOXqYLPHG{Tm40a9B|FO?!#Bq;xsa1fJ@Mnpu39XX zlGgtYj7vvGgad^yT%&yU=~c5tAt7Zo1!7??mBD11g;IQFV#&@;wfJSHbG)pJn=XtU zvvj1dLxW~IzGqtG#zo776kYmgukaE!m$kCcJ}O^%rX!LjM+~JBOSnl{Z(yx~+YA=X z7j{s~IhT zZ|Iot$>Fi=r34S2(2+4oY73Os{|BEg}{p_==TI@Mr@F-2oGca*^aQ5sO`{o1z?s-`3 ze<&9=2zz?jYUDYo0by8{oI{e65q+m324AA?vCd(g=FBihLG@5$80ktW;F-`&o4?Px;BQL$3{etJg}X&r^rF*gQ#Qyi6ubPN>159-Xy6Ww0_`Jk_K z-kBfKQChzY6|1x;D`41f0m#K)Fv=ZJ>v#pHlr4vCW#;kV!9U^(7(L)uz))V>$rc>w zh%!_BVgOK)Z-yTL6au!2HoQyz!NUd`#eaAZG^TX`|N6s^(>uQKfJLA2&tQN{j$hP4 z;HPLkR_eEre@av5UrHm;DGwS6k=E*0qa}O+g@7G=f<{T1(p$E&4r=%X>=XvD&Em;m zI}F|j>=Zw+3K*1B!7s-J_%*^vV5cw&`~<&3BY4B7pi!B+<451y#y@1oc?ezf z+x%_mNEjC*viP;6OV{>ZYeP(W0qvIYjtkxhY=EPf)c(J(%Co0-pRD>q12C=O7J> zg6Iptv$p5x7)*Y%*oU<({T_8->00EkDkI)bK_+Cls9z!6R=)-Vp-`YNs@G${u=bJH zBgrkkPy7sq@>cKzhVYBYBzS~um-TDaTC@+!Z-N2;f+qokx*~1aex0wtjP{h5q2>=hZbbSw`F1}0V$2=Y(F^I^%!lZM3DHL4 z8ye;pbYZM$W&s?-7W$8J!zQf-17RQV02rHE%;&`F1^Ms4Y3^sJr_MaY4Qg?HQoi0X zj(YlR-cAv4;`RQ+r>66>D3447n?N4w6CL}M#+Z>o*Ej5)K1k*%wZSQ)DcUrPPwD0; zX(I&O_zlessFtta!4ovJ;gH4$oe>uc?qTW9on$Aqn{-TdV)7~6$rJq?`RG4$))xIR zjf^<@9{6!q`uiz0n!Vf_#A21%#xZ>Z+u#6Oa$-6LWhtJtgcyT(jy{+2L*^)uwER`^ zQ+y5txWFfrFuac^kLAzdI1KOmqYpLM4fp{u@JnGJYeA#or==G8-6gfSN^rZNaITx&fAA!@3eylp^#xc?;qiG`eO%>q;s|8IP+!kA=Wg-^T43{4<_XfCBDi@CLz}47vlJ z5<=HjEm#`zL_WTI4Wv{xC~xNA=tG z(A!=GKgCDdsDoDgB$tdHfnPym4%=l!G@>Kd>cC+m*e{Sf zJ$*WteJ6bfz3KYL7mJgmz>YrydI%rDBVaFL4FdB= zNn=JZxwsTOUfFSZPaS%{cM^z^5;Xk<(PzWe@;(aPmb)JyQBDIf2sGcJ*3(!{3Cc}*TT zLGa^`53)u13+19PEXOE=^tPL74Dk9);SvpV;0+7KSlb|9)O#9$1wCw9krp12k@_uv zr#ar;GXo_Ecj63POtcKyR)m-w{qD+14TP`FRT6-xn;$ zH@w$xlpSf|A@>|Ow)99I+F;W`!(SL4Y2iJKWBH4`F1#ad!p~vkWs(_i`ZL@*U{l9> zn^&r*_O#k#^N`@OFMdhdt~7#?v(?IQ{5okg8MONJ#8v$GRf}gsPQ0RQ{s=C|dalz5 zt_`#sjRp4&M3sN~m4mi242CBwa=~k>!CINk{L68zr8WK`>qdq_vr-&C9?LlJVHdnt z8EM0>O-78Db^N-~m~+BwAmpzFKkCG&nV7Wpyy`%6mRud@&uPzyDvU6#rTXC zIauge(V{ebqEB0r5`1A?r+}1>KC>+#JNyx>Z_)GB%TqS?J$<@h8`w-ZmbFmD_{WK^ zvpO-y1>v!<75UrBAf7&$Qs_(YQ_G^>s3tFLtiyXY4PgJQ6n#$Aa6BKlyqi~gEEsV4 z#u49hBYSqdm%P(D#WW@h#E*5{7waR&dnO22Wa8$65OAyj!EuHmC>WiTA zl*9tx{m5U@#za)XA7D_P=mc;MdVl;H^2&Uc50|NCeTPH=>Z!a+37Ov7E-Bg?BMV zdVK|ReR4o@PX3__J(qbnZcnhxd7#D0#l%xf;V5io1PW@qi`a&x@({)+J@n<@( z@G0c1p}3%vc9;(-%7^u?+MfK4<4$H!3krB;fk*W~6s)8#p`VykAHbrxyQXsJDeT&w47(B+HWp+&#*Sdp(wmhf}JrDo){+u7o`)7iv@i$*hUQf|nnJAD$g zgJ%SL)JGFfB2E1p{AOntvU_qb3I5a%d;$hI5ty?fL#vV}`dJoR$VWUOXtW=-4`2Wj zeVr4x^obpch$SW`P;oDV8=5KoW`ot_SopH=PCyr?9jaS3nQ_eR zm3^dqnv|Y>R)$en;njH+b>{|3!C&75dAn_;#I@~-HbAK3OdK26(BCbv@%z=Kli8|H zb<9Yv;gRXGJXOYz7Clr<oD{y!JGc?h;YW;)A@02^2&g3K}Kz8)ojEp zX_5M}jh}2@v!M)@oq@8Wd>@8I-H2+yR{FslHgHUW{O|HHW++Z(lTu?_yvuiX!rqx@^Z8b z{D@Y_qkCu{CF$g8hTXzH6&iE=D37uW{v~)Ae%5D=K1mCw6j?t%3aTJDf$^}C>k*5)J z`PnHg?BYj~9W-A+EQR^-k#amZl6Xaa%UOsH+*0A{R<5x*=e6}!`WTdAt~(eS7fY+K zs2q;f%3r-K#m}79g>uwr9+JmG`7hskA|~qW)NKs8k3!nOso|mQxOOEsH=mpGk3vd^ z$R($4!DKBZiYdM+n|eUO#>)MVfA~TR(08-%zPoLgLE%S{3C70yhAtI-mfg61KHED! zntk{9dG?X$*nOoV6S7u(u6pE>9xU>6gI4PhnHYg9J3$;d>?dH^4(&{4o~VNd7ZyHfsWv6tZ?zz*a?4np#mdnQ6RGz1y@qA1ImzqCG@@>54F)N^qx z{_$~rLxWq8<Gq+!9xEqI^hDSsm}X`ZGa4|;-eLYzbMkhgR`lMBfqrAZZaI{_-=)5FRL($^gJY? zD~u#vJhrCqr+ypK0$&tHF~xUld6uEK^oIe%iYu@xA6jAii!x#U)QNHL^+;ZhezHJ4 zcw)y+@nD_0piMSh%&hCOW30kC_8y8&2LiPSR zl79K+akeJ^Y@dIAO?@S<+nV)@=zrNDU0#>pOZin_7fy>B-xzaQaL00pvHsGT6Y5{G z?25kUbOF;xM_F`W5>V{}nKZDm@a>Z=m7D1lj~40G$D#ON)BPQEQKvPzSkZ#s)|#IL zflRN0PL6v_HNJ?eMt6tNAjg)y7T*-NFMdrhicCCs=nA{3J=Ne=;KYw!VAtSu#iN!M z@U7_^(pvh4_;wgx0y+xvh>TlWqH7_A!B~fnYEE4mhRQrA{gRWEELJiZK*wWY48sZ* zEonQ%H;o^)q7L*ExU@CgfLxT{a_FIrg#OhFP^ZyTqHC}~ih)Py8t5BM{DI|^hfc?Y zbx}OP4|qyzS}o}DIp->9VKIl5`>J#qj7pg54@wU`F*s;OL-!s`XLs*Rn`@PCzPg#Q zn4XrA0*iR`HWt{?wXyc*bmbLo8WM-026`TME1lPA)sM#~rE71=GEs}$uQ3pjKE3@y z?r^kVEPT+l;R~8Ii=WF{l%SvG)NM*%ibv&{%p#mQ2@}Ex((ySFfUZqFfh#hzBI|wh zxs#&%?AQsp{lv20L(mn!>)*Tw#;mNeM%Q)@WM%9<}Z|0OltMqBpb*De-VOD#PN*Gu#vz?2A+Y3e|pL&jgUy& z1U;a>oo{53F#{tNNZ^m(%!9D}#9)WJ1{iDV=s_Q27AS(OGCf!EnL{al^UxGm#MjDei*Ln)3=N^5^q#g8NOu_a zw#d{qZI3hp%#x~tQ|J!6D5`jHuxUzv)fC?qze;I2jG~n4LsOe^3>xqtYZL8`Oa<`1 z_|?F-rth&lL#++JhWOU<8q#`H4Phb`nqr$^4`?%Uaq~rXZ*DuA8b6U;J9AWessux0 z$a9@EWzJ3?0>lQAt*rEedSg7GAIG5Z|NDoZvhTHdiq$R~wRlos{9^o|Z~p4b8%1B) zROiwEqHAwz1K`Q>j`d;l>ch|x(1|(m&*J8_i2>VKzbsvQK)U!5>D#Q`pz|>P(+h^) zy}7fOefLBza`X>fn+18w;O+|OWPOS`#`;oj-J%ptJSArnU)$pQNoz1X1CK>0@F*Vq zRae*z*f*tbiUWFUyuT=L>zcNbs{GLky8zZ}T7y(3)>CIpb6inWgOCS)sjhA58-RP- zK;cMsQ5#vv65@v};za~c7a0Dc*PvIkmWW{mhP=4i>t$^*N_dm+qyO!{{oS9q1c+m$ zTv9qVHf+Z+S&+m93ddTxTnL0Kb2eNeFP$wF{RmqelLKGJT@iu_X!$}jrBDOtCi9MM9@ z3A4__wOYumYX3gho~oLLh(IwMhn_H za>@?U&1<+J@?)@V@)LZB_w3T%(O`l9O=PjR`uEAh{Ri-7&HQjOIYD+gX@D%Pu5Oy; zI}-(59x&naopw=QsSEhwb>q8paHm>V5zpd27Edf5(YR^YxU@N{g`2aKp@A^y0?NAx z&!yz!FOvl+&GBqgB~|oiwSaU_$G-55I*g*QS07(W;*$WyDDU`^$l8levGBRrt7 zffG?|>a!`!CO(q`ToQ0H3rS#8zs_p_syN}NGS!c5s4u!Rx0~Hx)ZHxdeaXhJRDAOz z%>o53W1xY}gH7Si$u=&ZQ*MLJ<|6$MeG%V`&sgAKT{Ln^8~pmWtc$H!xX0C)nuSdq zR=2dkCBnh4B4^;2Go%vVBHK;%C=iEQziHjTyJq}&Lp`Qgx8M;ljE9!ZKHB=qw)iI6 zkq_7>M5=sMq({GF{5tS})N%~Uxn{WW2L6FR8$7TQpT-aZHHN>^oR#~*i(`IwzzYc^ z7szwM1Kotn6zEAUC2JUalv$PV7Jv_ zv`^BY&*2J&)1X%+e{qW0BzPYj(HU?T`FMIZ`$9Z+qpVl9V1IsU(iY=^%Nzk2kBtM$ zH6gKw>IXPGZ;+%i1T9-~t9k$aboSFv59Ov)y0$j19%)>$(^6_XoNDNcxn&UtdV)pN zD<`SgP=U9M8!R?K2YQj68%D@z?|1?8Z&k=j``(*`HMVpV;?Gj)?30m zrK9~7y0#*McTt|hXp0a2dum_-yAC5{D2<0Mi_h_h^4ejLq7!x#egQiz&vFYm@0#Ly zUynD~J>v)D78teoUhoU6V5}UQ_(xg)68KSWoli~p1&vB5mH1Iu;{7IDdYTI+bYH)c#j&+t4|_~1x+=)J5B-J9RdZqL2QbePNf zR%y+d)MKqFp>xYfSK}{q(EsTWS*~jX19!_+U7NYXD~*Gk?nBq69dL;(>l0(A+|@JG zt-%M)MPOT<-_7-VfIdLbQ@%ns{HvGO)DFPW>$e#Ofb%LRslj!=rm-H+`+Aw(VAs>W zH~5LbUdIV&ZljUTBxr4-GTkJeUEX4qn zIV_c#pq$cC)i((#J^R5S?J?~@Ztv#jT9koG-VX-vNyqX0sj=hP9bGnu#lx6z-_m7H zzfp&GcJQSZ0JQi!!jVr2jGjYS_QwkW;_}Y{bMIp}RBN|}x-nmsx+LkB+mEt^rQ6x- zVQmx)oz9MEk%Oj>g8xvvh9k19xu~5;F4jRf=>X5^=q3`a|2+o;6zh^3*DslGOe{<$ zC#UR4?AH$n(ss#V`!B6?AcS6)7 z&tAVg`M?NYDzIDdOKGgsZ^%d;KfyKF;32|;_JV&sz;VCGj_S5@0o*Mp9f1u^7K5-tTv*f<;#wraT9km&v%c}%7Tq}# z%i>bqvKL(040xu6^ha7~XX9^VP(E&|XRw6qZdbrgLl{TVPkK7rASpQmk-krY4RIeu(w!0WVqs7$?w z{mu9}9>8$?fFb_nbpX21!Z$RR{ENOE;K0{Qg^*##57=dVQ~wfueDC-nFF781059)H zFiJoQB}2sP33(&{n@wbX;TFd0!0ATsIwzNg=SMJTAoUS5YQgQtSJFey*?l~e=z+Y@ zNC?{e&D;F+{vJ1yxE0A+df)<$nv$e_;kav%QvUbNpag)YZm5!}(G%GZ(_1>NC*4^3 z?eo2lGL8se8o407anDYG9@Sj7oax@J zJK53Ev)QXtXJq6eD?LfUfDBw_v$73TR;g>D#~Du}uaKEpzrI}{{b@k z;S#p@@nL`j9sB7~#rUDLA$x|O@G!KA&-E0MQt*JZ(bp9)gj4kKb^HRhz*&E*FXMC2 zNMT*aAZSVXm*5vPrue~UaG|_*{OD3tFf`_{$x-DW5ELMYpzolOpWv+j7NEuImw1gS zLBEgX8cGC3?F|3Mtz>vRKNSg_jI(5?Wdkq;&_WghtY|3IJ%PAoGVT@>LgKT z$q3P@3=@&!hddBE+iyPC6Fmk)X=2=?6Al>r*RRWJ;OFv}!#+&>3jPVvgvNgGgA+j` zd@kFV^Hr}au+#PtGE5S$gBt%10Y6}aA3Q`ZKt|PXII#(3LBFlN>&FXoVVy@S9{HTo zT|VbW@#dgxqLI^pcV*b}|8LM4)(1dGQMR_8BY?pY`D^4KXUwK^GK z^{3rR?WD4k$VHgo$R9W~g@`9jQveTyl?7}rL#1Q?@83SiR$rdTCgf1_xO@oGFinO8 z40ug-2QAb!7f@jpjv|fn%tG~Loi1RqW5fuFHeBlXkq%$^qob#?<&`yARn8dC*!888 z!P0U}lLD-{cD1R(!aHSe%1WJ+1EgW%iH|2P+G0Rrhip*`MOe+xs1ZXDxc+?Wfmu8; z0pl_&F6yG3fs-d~V}uP7+}PaKvF6RqE!$zE{^4B{KkBr+$!~VYQU1B?&^xf4hk4yI znBkk)F0X=VwYsLx7<}1je!RGAmh#9Q{6VG=9ZtsZ?E_S)pt{U4K)VICot{vhT}@)G zqgQ+ZLjYV3906p8U@&snytjXPRlpWQRwI5QnD{0b2wQ=l`eaIR z7@i)Oj$aBxsdD^mL9Qp*VDB&}C2-k~#tMGWDlm?p<5l1%I*dk3_vZV;zdfMIn2pM&-kw&K7c>Y##OMMk{LM*M0pD)kt!g@@q>J*3ZNrNpnK zk^BYiHQ3Gg`5+H}2$edZyeL!ODgO+Q8h+#@-eBlE@FUXG`&iZ+e&lia6IjFJjq#&S z5?FyB_|jKE>!wb}T$URQE*{4}BNi-JqfiB-TI_~f&>}YX6o5(Jhm{R|B!M`>kbEz5 z(c!K(ZqMpe6d>)D9w-Nw5kG2C?asVhb;+`3Q2iDb=`4N)uSpL)7DlmX=bH;r*(?M} ztZD!pWm?^&GNQb$ekqyyI4q2~7~P~o=~&R)-1W&sS*8ljVF+^3A5uo|eSqamWW;&W zfnUy(fL)d05(bqL_@yvlsQz1>1q|a~Lmyg&?f5WGli%RzD}^298GL;}dmRQ@fzgIv z)JqDZcl^Aq2YxE5Km6becq82TGx!>f0F&U@#9xuzp<*%-x;B>O=-g}; zj*gBzb~epH@{NyRvvjkT~IL{SUv8D~PTI;t6fl4jv41xF)3BRh?x0hi~s? zGtWQD&WsP)Mj(2F{RtTGnqawn`^CJt7@#fgX%hk011yq%_2tcCA+s0$JAYnVUp^*0 z)-_+lnvByD;K@Qbe);XhwB((!nv>eE$Z4KPw3L<+4vu3!8e=j|xq7I+A5V;^rkYQj%U0yhA> z5q@efz)4}KOvexSPCLA__9woQmUz-w9n|;-KEy|w3hbPJY{*i_qzf2iU|2-gCXdDI zp#wj`I52*~-|=(Zu7iKVC&~-_1HZ=juJ~2?RF@H_*INd#3G`hA%8c@f;XV9EpJ>FR zE`Lhz{K}>0oB#ko07*naR4db`Fr0tA;}?7?=NafP$cNWe3cCrvf_4#8nJa7Og!Hs; z)Km1^3o?A)BRzYi8HnzL>79zKg|nrxE%c9y(Cy+Vp#D7E)N~M!_eCPyNC_ z&&vqO5A=@_>GNE&PCZKmvJKI{Dl2!=mwfedy?z_oM;93`@t{bDOD`GqYTqgsye+NL zg#4KvFT6@T9Dl>3B7cEjNn^k;8SVwYq8(5ZDl`8b{6nwYAHTo@VJYzrSXKwHL9lzp zub@58<1p&@QSZ@58Jmq~#=i>f&G-dA@X8nU(Y5uQ8zr+jg`uz@3odsaVF-#`x-rW| zwV%u5N3)Y!_ws;o%X~I09gx!<(El&3YlGL(zx%uY`X>}#TP&2Kgk=Z91mW?QQ}E8d zDF6BM9WCUpn14xMr0h`s0a)E2d zUI&lM$D}4=G=zTOrU-x^jjj|R-xXpKNGFT6J8oyN^pQJBH3CG`%fmm|lKkIdorQ9U zBAB;nFG8q+9eGp*)*#ce)91j02?$m!YwE=D*M5FdM{MaYtju;9f(9Bc3ir=HKPVJs zcBP=>Q!QY#z)L#H>Lo-n+{ED0240}BbHVGZly~IZ7xi}x9M+Xg^r&kV=GWJro3-W4 z%#!)Uf2KU(bNckKO|-B~k;&PYlW!KNL+Sq3kg7NBT5?LlX@6WbsOl4BMyjf`h?Gz@QM6a+|-f zv@Q4vhRIb0Mglt!)cYt;IU?5b7V(O9{Af20qXRZL=Xg8+^qJ7&ko^-F#y@>0MHaA) z_7al|02BPH;3pVZ1A{9In7ree!H+?f!i)NK)T~s}b;A!BMRL;SbSJS^ zP8B~VsE(h zK?X*(ZYucY?WQa+ZwC>dz)0({hz7qrtsV>7gYJ@lo}+?y2_%70g@r8rx5ZsxlNMc!NdhM&SY*GV zBdzB~KFY=i=_kc^O|U7B^vhZdw2ddZ0YTSB0Emyj6sLFb4Bgw>=t9roG$H!jJ6&*> z9>ob43@lin?N#5S_UK30M?;r=wz8W|FYnp0_Js{DQkH8E^lnN@QGS% zj`%mYazcT>7uhk}j6 zetH-TRdC69cvmhtp5Mn-gwN1&2v9 zr$uoE`5RfPUH|x!+-1s-yZHNPVMhy8d)e5K?jaH*p$GRmw0n$YaGT)P{3ZfM>)ZOE zFRb?|Q5JQ=<=e6O67lIbQzkAF{9a?-YaO*csc{b87D10qV>tDm_P6NTI~p@-*YJe* zG=T__*5V^lX;M8ebj1qn1{jWB{z6}!_<28Uma%m_a=iP;uQ~<=J^Rzx1wRpDb!VhF zJ^TiCulTi%AL$r`aSMTsMT0M-(YJgtEYU;ZRUWE!P{s${b^JQ(K!A*va{P^M2pm%U zyh!gW48H^q-gUyx>$l+F{`eJmrxn(SpYUkJubd0;J`D%PF9A}=kNRom-~RYn-308M z7H}rs^9#m zNEKYcuLM$ok>VFHASd`*;a|W|Aq5`bXh58H_~&D!>)NbM;0~LUqTqvEn6523MUGiy z$9>GXk)!5HhIPkiBeWlM0LFjx0N1r)an2VI{TB#oA0VIwVObcUJVFS&3WU0#y(|1E z7a#865en10D%S*&*L)qTfq(RBPj@2BWk3D=z%~@V`s*9A zpx?4fq&U{aaV`ejw;hl}0=V@Xm{3Rc1FeT97^I;NJZm+N4OV#+?4&$?0=nKt+F++JC@aFj@Qd93-3HtFSEZ$-u{Rjq z@oR%!jR%G+3GmCy<%@V*B+_@}=m$UYu-Q@%ZFSHJy9tJXHp^egNVU|aIsmg~7@aZ< zv?dr9--Mrl*V_SU+h}isUE){eVH=FY;h$R!uo+9gJ2~VRys4Yig^$Ox9UXOLBEZHO zM?g=X(uL|L2CS{+-3(-Q4dB@sd~(2o&C1nvJMMZ$zTC&gbXrRj)EV7}viw|^myU2b zlPpkb0GxkSxF!FpiQD)WbpULuQuXKSva;EJp~;CRL@zW}qRinJP=~R+edM5{d+p6b8@T`+#cdRv7{DAR^E5>&LH3P}FagBfay_Y=fR@7Vlp!#>@=M}>Q@F}NDZ?)J0 zcsarpQ9VC^JL5j>^4#b^_Oq<=>@=V11ihP+IGj>J|ESA&uZ2)XQ)bH5_Myg+%#Jam z`(c&GxN_7MgpbHIz@E7b*pe??E{3Bov7o%bMK)G-a)xhC8X{tC0r@~y(2FOvsLVq3 z-t%=?_xR>yTR!4lwvJ?v9zVM4`DxciElB4_DHhNBK0f>{W8(M(>>Z_Zk|6jf|WjOxj zyI(}>O7_?P{%bR!;r0sIBy9%JC6m)YY-PqSNcLAfS_ng97e{X1)8fB*mfU`8~b z2q&+@ZX9~^cizsuUi*P2QcSnSjm*=PJ*$f$>DqyFuYEjl=;xS;nAK?_OileCqSmYf zg&tKE#!eWN=(3d*mB)n+v>yyhZg|(*XFGlY+w;a}Cw@8XI&zAJx2~hTTm0zz={F2l z&{OdmQ6$b<_!6FhO^Kh=5T8a$2u4KeyNPySHP>&@o&c!82rT@4cloQODQ$N> zxei;ut5JsFq2SjdBhhao;-@SQyA4KLe2sSR94e9I>^={#!fwS6rc{%*_MuU~ z6-4x-33iEJ3EcWe(Zb0GjQ((~C1)f0?S|kO2BK?^XcG!udq{`dFeE@eVhlE;4gE$Z z!Qgd!Yu8*ovrcF4pyyvG*vL-#w{+nn2yt-}#{fa>O_Z=VrH9LJ90wZRn?mb1zwZzs zWW9E9Q39yC(8#}}e7Ub^r;d&76Iun|kjeRzr594ZPnZCvok-+=lkX@S7-!@=9-p-j z7PaV(FI&CDf7a<^16nkBnLSw8v*Sx2Paf9}t1Ec;oaYiM7CBf9|N4ro*LBP(1i4-h z{H9?bH-lQB{^7?5c7$nk^qTUw`=_T~nS7#P-@Erz?pUsvqK>@L`A{~E%{#M$afG}f zzgTT?tOVa?Oa^$jA?IQDb!#`4>gUd$k&mYdv#h6)a>2sl-kRaKE6x7rTMupF9C-jg za6c|zWuygH_{F=kBf1@VYa_d*^f3IU7WB8&*l}mTf)a~J9HnK!{apm1bfAFzF03OX z^6P3Y9LmM^egHDCG6BH9*1HIlf=q({yD9NqQ1uqe2tL)AMf-q{AHu&q4q(l@B}Lco zAbBYz_=py*j@t(Aop~(?XbjPm-rT#;&aO_LXq?#f$~kYZW=CZH+#l&QQn=sRmV1J^ zbrzY_-!fV473cxeA@a~fSu0z98RN&=l%CV^-WeV9AJfL;oEBOc4`Z_UwsATjDIc=E z1rDT>2J0U6Ve(5^dN{3nQLs2h-(vtGjrXIL+J2)y+>`4I_ER^t$g?}usvBZALrE*(a*){3flhP4|o?SSHt4S_+#;WnlODD67 za^YqDi9TFzss&>tg09U839P@l8)$s|Gfzau2Kvyo$%m!+y}Q#|U>VKz&&WW%TdCE; z`uLT~FD?tX4EuuaPh00u>$~_P0+PKDeZaa!BLLbweN-wPcx~WZD#eht&_V zQLXiN)3q&qzlD5A|EuKyePYb9UgaY1dZI6^k4x7cl&^L(rVy2Mp=CG956O-6hbK=K z^!AqSo4jbAKhP=Ap-51se|Ky;`d|O{Z~wHqvXNbs|8^R{?K_Wc0*zl)ta?Kkdl$%2 zK1{{U2nt%bbvdq!Cqr?1+pM9Y@gazkcv-GOut^bGO}cDXRNxm12{%u3!!yqWd`xl) z8%OdF0@tCme^M@g1l-rqKQjqH#3+!Z4J?i6Sh<*DUb~ueQu=4LX#7x@WGrZb0~Kob z|7Y(#`{Ov0eBB}m!aI^633?;1@w2mg@17U;exQ5a?0$m%aOZc-j*~PJMUkR+AP5iu zK@gVU{XY>ERawrPyA%(36Ja#`EHZeS8TREWCpbhC9YM zlU!oB<8A(CbuD|XW8NHF<+$zRCv)aKL|pn!ZLRSxM`Sr3%LHe2)nl;}x1IR)jEk!l zVnLw}bdKTcZ|>^I>q*@V{;As3Sqs%PsD&C5@he%(XEN|}Oh^oUXYjrAVne4P-V0w% zcBH&Kqc1>e!B>5?cFBAVqdWADe7>W55t@WN5-@;Oh2iDuuzA;D3mDHLkza>_&TyQT z2>^Xaz()_8@N0$L2Yvo*l&bhu z+lT9dEdLYEb>DXSJ{biLAPDLme%(YsPE;37T)!E7T58v(+D*5nUt2LTvr*?WJ9~=f@f%BoE}wpxN$AqaT(Vu z^@(=*s=iYbUPvrgQXjuV#AzE-wk4i7$)I2S8vD>3cF#JZN~yPrPaxZr-vk>NP>l#9 z8Gd!xdPsf~3`Ew{KI-@Zzmaym@A9qUU9_O?OX?$zIw3ub4=wl~ zCKAv|4EHw*^>@ia%JdgP&~TALp;JuG*0gZFs%U|rjt#J^g-j0S5gzL(lIybT0*-D3f{BtA!PdZH^NP3*CpMZ=ti;%lh9oNl)pd z5;ivWHpjY&-M+Z^#*TUu&;8-UIST_rn}9ZOSrC5a^fEGN_jnOEpNsx*R$(IxTbmQZ z%x%8Abx(`!+u3h_`p)SS{HW+ZML64c&25#{1=aLXD=pefXx*+kf!Xa_LlzFj| zuTIg*BuG;hns_tG)^F**`XHV~_$u=3w?2b@@&MYDAF#nGEl*kcXSUf5VFSWK2a920 z*EnMXMjb!o+H)VTx`0bc@z@hair*eI_6)nL4C?qfU%QQCW}Apr=IIV>;aR28VH^#9 zd&nT+AKYi0?ZhK!tmB=-mQuPV*sHE*H5z%+Y@-E!RoJf6$~z4FfRZ3sz)mvTX%GBb zVC(}ws$~HX2N!H@7M)oqIxPoCHtrcSxG$2;$VEAQtm|H-N!j6yGp;+%=Wc%?HzC>d zjd!s(us!a{;gS16;03n!y4l*$SiV)XJ>`|Tt_$$1QdYm4b*Gts0XsGvxL}%a%#4Su zO=-1C@S*U7oix?V!^U>+dB}G>tbeKF*VKL~->BQo`1PkFjtg8$*k`;wQv5_ye=?|+ zhsK{5epUY2pq10eJa9&rqY{FMlZ|LMHdZ~s5AI!LO>tUli+ArnQ3MWc)ndK3%+CW7FfSv(T3tycF@J&g^clZ6TtV?{@1Fi`Lw+?Ikom2oxAk$owQ zDf$r*0{Zlh11F$GivsGjnS5|`k?=Mwx=(6FotUI=)RDvE0rhep-pi}`?P@kODFb=y zgoR0o1y_tZ6yEp(aQ(ZZqnyt*Vf&{)e38dY^doXK0%Mt&5uK|2<}KyX>2W-kkS>4u z>usBOP3YoRcz4*1AmI6Az_uQ&4kiJFupxhAW78Je+2p|seMJlLcmust+;uMS{p_== z=C#8{3`aJB$pnTAVhOo0q(O@iH1LFWLr9u!#YlrjCIB1KX$CkvfOyyROQnBS37wIA zk-@g)!@`nXgraQZ1&{OzN z)xbu-m@J#lP=S&jTOP2%gZ{{pe#eoiz(qBvtm9$$1`NGpIw>GFz(hWJUmcS@td&habqA-{!xw9(Kn%9GG|K{nYGFqFqrE1^H+hkR2R z^n{;yifju02`-g3$v5z;$e@Mx3JjGwI{eU@Qn%q>$|rE84MSs*593l9AQH@6+f%8Q@&07>jgjPWRaPZDckC^zMsRxMi&vDKA9~jhWolUYFYGH z7Xz3OxJ-ovc=wRFfE2GzPF7(wsXD=TeZdYPeRu1DW$q4+Wt+n@*}(La*y=V&Ap_pa z^^A8yhmFQWHm<|IKoEUY3WH|ieFJ@$>jDcO#Ly(J?kDGmZ4&fOmuz$7^@PS$VA?-c z*E9xj(du#ab#>h-@KYV=13FyAFO_fEhwg=+@j9U~U`PLKc&H-a7;h39Q`iN5@UIcS zoUf{|0$Xq?Ptx8)!M|M<^4=VPo=-6@I^weeLm55eXE2<9MtjkRmiW0Gz5h#T^!%ic zG5|IF)W}ptU-&@}LmROqXD9s*5jqLNGZIglK7)kJkq3#*drrPxzjiSjmu>w(oBWHf zSM1Vt7AQ$+dCNGGKd!UevS+a0xP+3s6Bx4t*CVO60VpkQzX`4)UmT#%X~B9)-Ypw= zx$6N770+dB6IO=sh?H|F?6Mu}quYe9!8XLk=HgatVr=VWIef7wPq@Zq zVzqy9-A+4E4!q%C*p#z6HOy&YCeNHc{Y*4XNpHEVm4$lB5}TNJC$y=+``(@mm7mWa z3570!e>Q|jzF}(@cjzEEJx3RIxo9!(qo4-`$4+*>e8|@IjCmR-!%1oXr&sM6ih!MN z?*qH&L+OXn6Z&*?#buVl@P1o>fGrq~3zw{um)r4qAD`l9V~T)M9oo=nhw6cCG$r_% z4k!5e818lZSY5TzC?A_u6&i&e<#}Ei-*VV{;-~k5e{C?JcQ5=Pp7-^?$;No3@0BsK zkgqrzGSExNAurm=zkcx(1}+2onG!a***stTqCW5=5B&@NF*cCWF`RPFSAQ>@ohq<% z`2wy2yGgz(qipLlDliU$U!i}D3s5gSz&qzFHjvS-I-HiA_D1|#_$Qe3#^_3g#y$9_ zH*_}<^K9AL>Ii;RC^XReWOmr>&s90NU~8+T`JCL~sSf-S_ejvm1|=}Ke3grvkpVKJ zPv*owYZ!OrFu9}t^2Eq^_IBV@Hg)>6^e>-JBz%Idm|OE5UXhCSq3_l&DBB+O$UiQ} z#4(lo;(no%UZ*u)&#&y->97Gs5}g4TeXKAGnAS zrF`8E?T%kQ*Gp(GbR>t}**?lXz}G_HUvK!OZ7l5Me(@_{^n@S$=xk#t|LD)4(G(`p z;X}u-K}XWHq*T5iG|`C5QI9j}5Yb!!j3X-veur-JoqLHc%1-)R>v5dsz%iJ$#!o)J zYT?sOe?&B8f2wrizy5#!_20N$lDMfSwP<)s@vJevxpn@ryv)UR87^aH%+Q#Q61iX) ziUFxW2ld1-0|H^~q&4#^;Srv>eI#8OwMifmUDBb`NX z791F$jw%6K{i$|Ox9!p%Tl|-|yCFei((?gXS6uc*r$3^dpRwcG?6`j~`!F<-eKR#aqIR2dyklsc(Txu@ZQfQ zAq~(0qop;)Y1T;xtUmOU%_58dzl2E!muU5Y)%nRH7RfqC(ZzGxD+~5+ta;~69q@&E zD9eAw2h|!dc#m@AQ+Mz&$}2n1_rVNB;~g+RAzfl%1y_enuEP$P=rhdZ@T!3MCJAOuw<>xd)JN4;5@Z1wWkmY?om5K#JgW1VH=TnV;R+qyt{KO-0 zq%1}r+ybt_)~^&siC<15rS)FOhO&Vluq*iK8P5ZT9v84v7{(2iGhV3-IurPj=P+{E z1q||2{x#!gFca8~_~mje@dKBTBSvZt8#sO72aG~T0*2mCY2TZFC5>(PnGPp3n$eld zx1E2EM=O4k0Sg=S&%`jt1LgEMo-jHBD(`m*)euLeJ zB-NcK)GtaO?my5;xyLUxp`9_C#x4ccn2!w+9>3TQlX5UX*FEIM%WOxBhS=IXV|+!Q zB-SHI$OC1KMao5an&V)AhwxF?9Rz^`9`1P86Z@OcQOL+}i$cA8<~+i|1$%Q<{S$Ja zYgv`E3nx|Z8f0RRjvNI`VJH0>b~4{*r?e=nO+~!dIT=I6w5_nUIXO5s@IIS=crV+` z6qaj5;RfZ!h^j-$E?kqe}1qIfg95rUwUf?35f`u(h%GSKh1@b~E}2 zpJ)TL3&O?hh`7*G;L% z`9=$3a|-3~Ub`kDTeh>?HF!azzqYU?`C1>P0@XgAMILN%x8Klt^rVot0Hk(Q^nZ02 zdfntiKDbr-P=i7L=WqiCc7c`G3wq-C3EwJg*S#3WP(z2E=l6u4zXQMe!H@o#|AH3d z-=6q69YLepp`7L`X-C#o8eLxKWjFkQ!J;9b;MN;{)LYsCd@pb@JS1QJSL9Kk1Ha(k z-uM+V&S7`*&tXu9)tP?=p9=iY2%+LMR&|GWtNc4m{2VrQIDRgh4*Y~%2Y#W$`^2x{ z9k30C_kATErJYjZ=Xio2PH8N$4jQ$V0u0LsmdXVGqU?U~GoBbPod3adYh$9-Vf$zF zQ3ZZRQ!WGWgANf=!f4Xr?)-C8C5Is*1HYh~Pf~#&^--^~JMiO44g*c+6ydeg1J(w} z$0m68Y~I!mImw2TE74F`Un3#~w#6Aa)uQK|=)<8L9mR2BT@JPrxwm`BHrjqKZMPXS?!nSG>tlJl^Fkv7o?$9PR(0k$_{c zwy+}Dbo$dnT3mlWq<6=&KRFpprU;5Xr1VrH!s^_ z^b<`eW@k^E{xRP?Y@VbHcGxn=Xz9ikf66Z!D2xA3p3a*da-@|w?hh1um4tq>7(`eZ zCd~Y1(l|Hw+C1S|G-BtNHUb?S9bb?x|6WI5@oMvq^^gT_nCftr^+^J1Q# z!hm-MgZFHpb{L)y4DZarh=dLsZ2si+wZjHSLquK)8fa{{^l=BHuDP6V0PkH=C|RO>P~<7Ilih|*fr@$Z}{z>e^70$t%ZLj ze$6^8-b5Q~4SYbh^V)aOYp7==#JCz6;XS<~Q;RgJFtvv&OKRf_AM>vpw$ zB=T)&WA;`qUm!&rvwCwr@x9PLSCv50g1Poh(P5poW$^v&cqfST-Z?xYwGfbI}%Y)HyD1r*hO^4QoLkkJ3aG2dK4t6$jHj#bx_?^7rHJ=bIT-M5B3SMFH8{3@CQ5I)7sYv^<{!?7KbWyR+U|du>e0dHf$SI=phT}-+gyKyDOWSc24`?2sn3(;gQMQ z^qug3suR#xRGv9$dIFkIq}c7h)&;G2&Hog%1wFldqNnI9{Rf*P-^tc~yQ%P<8WTz5 z(hHolu(b&{B%c+NYsipy;bnA2@FV&~^r{>S^KvTR*vBU@_!|8)^#F%Ne$lr!jX}I; zb$Z!=k>bbq5=ONTwQ{OwZ~SOSQ0e&WjbBbr-}t4rtiym0seKTJzdpSae>I1EbHs zceAgbY}gq0*@aA80k2N{Qd&iomjGc+Ctv;ChZ%AAiOca+dzr10Nw(#bs zuoVU{R`~Zp#wnFz04*%MGB+uXPlt2FImc`P;6NLtFRLD8uAIuvF51?;v-M7nc z!ZJ|hd!wD)CF)-9z4kjFM=n|m<%jD zU}(4dsR#Vp5;QOnoEg{U0pC5!UTJyp!}xj0*y%I%R;74VoKak)D_TtX=Kj1X?u1rE z==iz#Dfr=w>E=(Ft*Zg7uFLyb$NjgqbP<$#LK@0(S%|QIEkD*vV;Pc;WBC8=>3a6j zS;a7)lBc-bb}*cwnO!NuyAaorO%^U(+TB&}d*~eL*OZt2c}V|D}^-mt6qkuC%ycJqq7sn926N@vQk9_aLCE$=7|Y@*0~ zO?e!Mke3vTY}29QNB#xcn@YFkqlZnYDZdTIPmNzYpPFfJq6M0p^4nljmI0ChHDy^p zFxvQc7%+|!_Rk+bq*>MDHaWKOsV^O-wp0nIK2I1+#5BkAW=3Hf*qFuhW=Q?pxI!i1 z{r-4KUX?>T*-iEDDsDzm3pg83s%BBt6rXNi5YC3hZ2B8$Z2xaXUu4-j0j|2~z@iPRYn0=DdB!e~>eaW{4 zk2ctiyzUdfCK*6zBkaEeetpqi!_V|rW1se#ZSzGk}>Z?1p@QBTT4Z(>q(;^h)5EFQS8;f>?*1MxPm&8-YTWCU#0cDZ~ z*XjxhDXGU zfBN)A_QP`teo`kL2e6;9ker9Mz#*Ie+Ueuj-CGOlGmgs>Yg~&99^#R*z@nU=Ec}pd zNV(p=k+=NdnQUYCgq%A#Qt$IM`o?#%#i3QIq75F$^|lsrxuo^tsUh>MU0>G`TWKdw zG^ex>&3#4ligSKbCoXM{x;KdjE&+egW0LViG`xGaW{xVKe|A-y0cZV0i1d-Wp?qyv)WDPuh&R*jkj<#Ix%}FXBSDNuV%02*O3A4PR zxy0?cEjtM|qzz-ZBoZ{|AmomsUdX`*o|>(#htL=4DDi89-6UUdKBx}2!srurU--4c z?(9Q9w{eJv>nIfNusu#y6iL2qZcBO85&rfVbpYq~wdwuiH+BZ4kh06$ID#^xZJekGuqI&tHKVg5ssXr&jzwch+H|Ph4Nh)fN$PqpMQKIJ9TL~d#YnSBI#pxm;Ie3QTGdjR6hi zIIq~WW7<`Gss%N4S9e)i;@x~5K*h=lr9aKf=%bFSUhBxCbU*o&B^?#)I$Y}d-wnT@ zF{La04$YDJ$?vBu@SDn$M+zMMS94jOHNj}h@2Bih!Z=FUhe2bCA6>yaEiC`#@kVx4 zoASbnGq`gEN7sfOW5Sr}4!nXBsH_i^(#ZHWaZT(zbw$xXqcuHUAiw@>&~ zO?kZ0Pkxl8k7FW2|35BoBex5@eip=Dza@MGxbn>F;GH&_`^BTJeBkGplz$H+|K|eZ zC~1dAQfQg~>Q6^__u}*k^EN}z4VZ*aK04u+RsNm)2BnCs>FIIV5?4&mHnnljFRV|WVyn028#2zY#=i^#9xGcRE_CM*pyreWHHL zI>sR4C;milIR1@oy(ZlgnRbtq+uFMOO7U5rijTx%$N7s1HFH5uUQbSr+9na3QPAy) z`NIcu+PNi1Ef(Zic*lm{D}@fTaPPbZ8*jgRz1z!kpn)gw=QI!c=IMqOkmT4RgW49& zRN$N(qo$-Ej}~_<91-`ZkkA{6)MbUcrcz!0{p9yk_U{GTIZ*w3 z7#YAIudY|ESBh`c%JEz%6ZT?T)9G(ZuhjJPP-l z9~BS|j&+9#78$@P@7U@8mK5&B)}a`)s6%=DEBk)SuKWQHQk^97>v@#xC%>PvZLkjm z#!%aWVzu~oON7IB9lS>SJE^;D{DnwwgoYf^exb9;B zVf2g%abo81JdBkJfd}{zjKg!7-3S)mxy2sC(PGUDUql#&R2ctwMPMvJj~h-P(QKTy zp@*pfpYfrSoZAU)9jQ2kA8AxN^vdaU87iG=O?ttDlhy8x{(sl zCFIoyT1THE#$p39hwp42m=5R@MWxqD6&`s|9-29Fi#Oo+50|og4~cPlF1vDJN{wJR zn?572s+sfldqhXHxumaO-lsV3=R0^qR~${@XzHa)XU)SMI?xFkCzlM7VJ02Ur5nzOh>G{w`}{vyXZG%U@PsD-%Pgl zlZv;BFFqM1+z%75`?{=UM@O~BSZtRpIogbVT$jhqI~~Vu)GaWX(OFeU5`%+0GehDqz z@e>R)fU2;2r4iUAekD(ge^Lf`(1>52&-BMRtUlh)a4y z;5Xvep?~|uFX1(Hq9Zl^YsF6w>TL|%OZ@{j-gks8(4~*dT=o0!w)=C z{-Mj{5fbEv#zu?Xt~~N>e3q`f&^XUMFPC*1)SW=!5hbdL^0vsWOIGnP=MECealz!Y z?vZ&pznDFd_d9pTu;|V+bf^hd6>{&t0xfK2PV?bqPaXH}Ju~M4!sC&!^+;}m95Y7) z7C_zBb~~kC+@Ql^xXbg11%Hpljh9Cs&)%%1AX0r&I)Ok{a(W-?oN{zA5WmVI_radH*v1~0vHvb9f*4rEWYX#Due zye4^ej8L-vMSUjE?NV#;;O?`P><2Bj zpE-LvyMF1k;+A4-pU%c*YhS)_%1$yK1s@!v_P^i=zJt1GO0N~eeN}pO?dk=CPdVx&8Gj)< zN$55B0E0GbdY+e0iuLrh0y+NyDDFbxKCOH6njh}?!V=Ajac)BW$xWRkWvsie%^^Ys z#XJ#I!3$7<_MYRL3e!JRJ{>0FusifmWl6znzK0H*sun=n@aumJ z>WW{~Cp^HrXB)DWf371?xu*NHya(j;HK z0Bx{3Uqmh(F=Z* zkAAq`#tQrr{VQnHdnunHKltZkt=6H`S8QnReL=Q1;nCPc2ERzJ6_ScmP^V>UGcV^+ zQe70=^OJWF>r34w!NR`vI|-mVegFgux1;L1)6#x(8JM^d*znKVg~8Mqr#S`VoY86Y zxNNw990JJ)SNhFpf4t8>cp9K9_>m9NO0Dt@Jo?qYs8FzjPt;S9uV8odQIyA)O=#r3 z{_z6_GDv9GZ_`V`3mySG_*9nx`Q7kKVFZ4_tJ4Ua6!u;+=zxK26Bx*h-=kU&yg4&q zj-MJHslw{UZXhfSp%7V9!xlAOBr>56665)n?1C3syPldFvy*a^C4?e&FL%CRgRsuV zI(OIuDUA;4V1KpX{;&T=fcbR69oKsd{c{R3AB&GL52GLC*5!?GUq=!_7>{0#DZ1fP z3jJVcx#B@AahzD_WCLJfVa1HCc`XX#X-u4LV)B6R{rk_ehb$P&K;vQ{@(Be34DclN z!aT~%0Yjek#1url@xB4+@`sL!s_wklP{*~Kot;oXE_F=^kMw+DO_Kmk2qaX>Sv+$E z^LnG>gEJO$k%1UIt@xq+0Uk7r>q4$U9m`mrf0><~9+8npEL|>3MSi*^S{oW?G}+^L z#R++vPikkC-BlJ|wI`s(auz>wUJ5%kQ^S$JH1J4#g9K=#6XLtmg?@-f%0ah&`{}vt z#-&phY6aceIX0M0%ad?~+qCuWVe=vI+v}5YVsEB@eY<{_>_SK^r&Fl;t0ZPdwO&L5VjG7Xfo&6c-eSUQm?pZs_L=>&j%4>4!Uy zY?F(2fDD00N7HKxSx7Za4mMEf2fE7U$L$yEI%%;Xxbj>jfE+T_|Hye(lf(0q1KF}J zynU|I4lKF>1la)3A#%hk|4Nn$Aalc2zbI=J>x29pynd05F64uyepA#_3d6srFbt*@ zblu`T^cOVv&OiIEFQI?rc}ijDI2kPtqb%2eU-8iU1c#mDmqSO-i~d50B3oYD6Tbv@ zoqxa}0fQ7pjmA7bzFPsxs8G;uuLTU{hirJxBp*tVVaUUC8ertWgGR5@`Oc#XegcB7 z?k!*N%mD*K-w(#W5{BWI%fRvTdZOPldi6Z`RH9MWkpw>>Sd`0Q^E;Jql-A=CHibe4 zvKoNWj9&@gpXV^(B>?jje4-5aJ8bZFBhHGEtpdE&gkK6H0WBCVgF1fn8F;cU>(cKN z@)2cGeN`8N6XzTwnP@9ixV*Nbc<+ikTr7eaHhuj;AKB=8p-DjWr2!zt&twOpN}RYc zob?@=tMX0xm$YBKQ1Z|FJ>b*Tag3KfnX%0#2F4d^qW^Ok8xT)TFxv86pWr9*GCU4| zA26f6@*UiiVQ~4=t9`_XcI^HM0{WH{(B^J2E1QM&(Nb& z({l7tg07d^xWe5sU)JW;M6R1Y z2csOi)kX_EsM_$$>yCWG zReTQGDM#XYBW#uBzbF&5`xq&l@}~wbVCV<%tP*_)gvr;-+25St!q<=?<9py( z(5Q;|?x}1C)Ngeh2)`V50VA!erG2R0N*}QVH4V!aohV-FsvqD)7!D}eL~K%I7OhV z{KM`zCx-;y$I;~7`i9vX6|eMFQ4$RTLl0BKmbWZK~(?p&%ZK*i#Xq0Q2F&Y zcP;b{9>n1J#TVB#>DjR(xx~%Bs94~{erMAFxV|ZXz&ZtzGJ(foknufmO3O5T=SU0} z;T)H-cUlTU2Ld_7@t&8r(x#4io*X=->6#k0{-cg57A-XCdLhq2CUAS8)>LgzdC-9T zE?+vIy~Fd`irm-x`J4U49?T3pdQ#ug&L zla7afBzVdoV0@-7b(|zOZoM%_XUt@BN4$Enuqi`#N0&^=qeGJmLJ>^l6QLM99Li7o zmqjZY+JB>+S5H|L?Gx?c?5nTu82m53xM9c4i+XZ} zkvJ*|y(7U#2Db2+VX@3Ssq}1411y*K4i9R=tgu6_=XkMe(A7dL?=VqVmQEv2PAHJr zy|;B*eXq;cdPL>3OCLId+)3yN@hC~O#k%g$X!0am zLBAU&1#HQYMB9Tmlr3PR!ysLUO}+{jFq-fqPyaKxHR6}Uuy&|AJNO442E*}7`Iqtu zeWD(8G}>6Sy%IkoQ8c=7QlT-&4>Ad71rM!1)WU?f-@IKr8l`*-{2X?PUsaA({2WLp zex6^!ui#&sd_A9jvr)bYej?3e0F9=rdPXw+GyWmVD&CFqP5HMMel_{#YF6c6;L#O7 zwK1VU4t$g$5? z>a*8(xLjHKp6d>m8L^@JPI`4`Zo^JLom03p74It{H^^Dg#YuSl(eJe4*U^u7KZbW- zw43NhfN5y{I$^Mle_H6&Mgf<)+Pf+zUj!TbC{I{jCP3@j2w-3b&q1Tz`#MfJ zZPuIFj1%E8AFJR>i54zKi6#ZC`WPX&>eJ0o(cj>hmf~`F8Lx z?L+JMMgQ!uQ~V0u5rW5=E$Y=2zrdrTkD|Qfkm85B6gu32UpM}>;Rh~GOWFsJ7x}&5 zM_I;FLO-0&Pb5MQFk$We2hVKG=8|N&cJ>*wwb?WPZu|q!Zi(>{`GZ3&ZtnE})<7x04)8dE$3nXT zK4qun7;sYd3$U=4Ug-kZH3i2W9GDgA_~}sN`H?LKW9vclsAASiwX!jV4Pe22{;hOC_7cy~y`qh& zj%xd$*0LY5`c)pzkLY;*_Rc`|?DeMEl$@%i54$!qWE&6YE&a2%4g>QO{_(!ooLV#q zo|C8X9o6Lbu*%bB8%0>DB6cZ5}IMG5s0Ocm+9u&oT9J*xD?5VQX*6I2_exi1my5 zUhktqzA=6<&Om!Qj!|b-M;uAY`MBh83p-RWXwL=%f^wP+20W5J1s=dKJ6>hn2B)@C z|2q2k6t>_*>J2|H4=)P*42I`J3ykl;kNh_L^nSD@!@Cu>_uqBc&Oh3uY{;CPPW+t8 z6hGjYt`steF*2tSz6ux0IevM5fnRRF2sAoa@~JY9VU9_~NRZ(4tI zQQ^`|-<<58{t8t~OA3#O7x|FQ@pFC3d1Cmf&QiXve_@CET*YZA`R6jIv=3=5ztL|J z_rpzUlUd!b^@VI4jA#IqmYJvhs>Z-~`Uk&3lZ(Y;-p<^0gK<+f7LEeu;jc2K47`0% zQ;J{R&Wk=YWCJdNUqy$7LkT5@`~)A}CUogpg_98| zZ+H6Sp2%m z)X_*0j!-?WUK`={8q41>j0Oe#rDb>V$0L~I0$25qxI3gtd1zcw{g0o_Wy>pXjnTxM zzoZZ)r1R%b+eMYnbd&va?SfpoIAe?NL-~#c%!A>rve7dZgz?^?40w6!q{$Y}RfvWD zyD!$V_1yu*WFO3?WISV7ztg{`GOiKw0|*{t7xPIho^4DbnYghra)OI#)z30fKr@}Ia8@bj zmB82os96&)@dP8|xi)s_SfLME$0S&G(p|+J8oWlfOcIEa0u1{U?%Xw<3=YItU*UA?L$=t-qs%=LsG(%6M_+KjC|6NEMs`Jrd?9LW9*WGe_W)>MWa9H z@*@@(IPyxLlfQ0d+y0mu=^=Hp@Bn^5Z^ci13jBf=qmjyLZ3+BXC}7M6YT#oAl`1B@ z+8OLs~S(t=+BX^@UL(Ds9hc&6pkU`OBi?x~@+Qi%5;?D>3)W$&fuq?1T z2r3FyzVH|xK_fOo=p%)oF^v3KE!v$nE$zoE%f+jW!Cl%*ky*96Y zoLtywxTH`zcz9FC-nOQ-J?hqe}3`_8f&7CLnZ?i|TQ?H&KF;DN6Y$`i*V>Fu`+0MTI?yfd^ zh~w*R1^)70J)u7&Hhyq|;q(N>C`;RZC=Yfvi8w+I6PbGrXbhXxoY6M7WTU@cTFL(Q zw|ll(!nnhNd)W8XNUP=_e}FA9TcQrejQd&u<2m*H99O`CjE*ntP&O8in7UGQt=AJCKz0l!c*=H|za$)47Yrh{rH zcFJ5;7>&YXOk>!)&12aQx)0Fq>YE7cvOC z^#uHcxpb&%YY*ss7TqVbp-6bOEjji+S3G()f;r)J`O>iF6pWu*Q`5N38U(gBm!1z= zKk6!TQnok_K4qeR7YXWjO3d^dT%vzT@#A|#A63v;Z(}NN4MOljcgSjlO&g=;T0iHo z9peH9_|X`w|I=F_OkThECGDet-G(2qDPN=U$nnd0lH%9chYCOX9`GT$hUr5vU-|He zaB((7x<11y9 z!szxrY!x;NIv3o98LsqH8pcZs4CFu_L!VF^zxnki7RQ=+dv8|P%tL|L?$yai3Ze5m z2+=e!GzjIwLOGXE5^Lvozx~v_jd?2;F8R)p!RyyA8ZNiKzi-A-Fb!`Kn8ZYdh0Mna zk3-z~Yr5?9ye0^Q&|zmK7y-OUpn^a-O8dt@-U2O8ph(hh=Yiu40(97mZ?>}6t6G>n zJ(@jxbv%0__$;y`T6CuL@XVQ}!iCSG&m+l;<@n4pk1Y#7zCSB`kVJC55M2Vhn$Sx!^FKd{m?G#2r% z$nZZqA){9lSa#RKGvtnrU$O{4qK^5eN`W%Fy?6m_4V})Gnr z5UOxmVOY^>*)ppszag)Dfp10Xr_O%LQb8l11jG!t8j7v38+dK7;a#sV92x#rQd6Cg zN3|??+IXk8=rb|n>ZyrF$~5H%><$?ILOnZI)oPuG0mG{6s4Zt_1HW7A^amA4t!1rJ zds;2uP@fm=EKC2uzj~r1eafgpC#-AnfrYJpQq+XZrbY&`*V>c~2u*SXc2mB=N$6pm zD>rVvuZ+i(^@W@d*~3>GS~Ouyx6U+MSkq$QBQ`lR9cvuWCEq8rtEUHSv3*{P@^4g@ zORj?MR4sjM1;0)X)bWcFP5GWji7KF`vPG$eN?XhKQ`Rc@dE(JVdn?@yw6wt>A04@< z3GM6@o@O}@BxLl@#$XoaWbehIG4gLaWIdgc#waFUSs!;YV-fgFK*f; zPi)W=X5;hEuIpW$EESw4Teb!+uaggVs=?6$`}m=3z7ZK?zgDOYCLGk8+S*KLI2p;E zI}aZ|lfAzndvV7WBC!*%$~HMWb4n*9U(0iQUNP(!%|V9Kr8vo8GX{M@lVOoJ>=il9 z;8A3gFT>L3pYV?I&}QZJ2OD`sr}XBR*A*6VID4;tW)53hCj^)fQ4e+$CkA;B$Bp+R zXR_(@vuZuGd)*}@``TzK4acW%l_m6to% z?#eq|wszjnro0Ped(mx9EDp+czci)(OHM7^Cq+Hr!~*dTI*oMYl;(UoUHVfc@TPvV zsTFX4ePAkE8`#P2ywn^?3n`q$e7(WFPulq5bb#i9?*`?ZBb&H;@(Ho&ui&GfcjOfI z(MRm~W~QHLKU>XU>`s-hcXI`|H30O)r!EVU!r>wnxL@*re!D#7*U)Zf_4Smz@FHlX94i5$( z(N*T+z86W4@S#UJ`rCj=DeO-djuOV9!9ENb7&28pwc*Di`#1(@Ex~5`5p3pFpH zwl*-M_o%(l@RO3f!5t_XHVYfsMc9C!WmWS%tIT6;X|uJdOn&P6_+a-JuFAg0zTgDf zioz{_^LX8CZNk3IYD~IvN_WeQ>n5f(B6{JN?_nP>}n$tze{_<&T z?aC|qt%Yli#fM%~^1bsLg3W7d=ji&JWj!w$NEiA~N4PHf>Het2wa%O8Jq#ZD+v zPxrd2xKb8;u}$aa7itUc;uHo43$hcs1)jo9DHsZJgiX1jg>T|l-}?T6g(dlgLe6m0 zd@v)3X@V8V)999TWcGU*Ia|6t_R~)|mOCS4efJ{D1q@qUmlR<C!dRLnQ7`fm(Gc%=k<$0%(#p!fIE#R}^zyf_NNRl7?zvDDaI{Tlx?0`*&%Vg-8TzWWGG{li$#j|H2 znB7+5m7NqX;0^rrmKj(b?k6-doN;`Ki?!Hs^+gwX*Ie|t?2i`lJUMOy6B`516(17a z|MjmvE;gs?{0J)tF*&Lb?{IXRcaQ^R5d`$4sTGD~T<1wQ7ywQ|TXn54(6hAk-vK|EAePk7$obTS zpL4CLd?zh!WxM2y9Vthge@*!1F!*qhT1LBUy1+;)1RU^`I%(|8x1x>wtCpp`?Z{J% zgf0$qdPus>1`_z=MUnQ?lKU4gmnT0XDCSNHm z4Dt7f(MVr}ULc#gen3hjp359CPvW^%_atXrNK-HJwfgiDb#b{Rapmzi)sa zAR871S9NlWO-jaa{%vVI+S1C&vNkQz!8v)$K6$-u7a)#lBlxoVTrQa+Q~(}0>Y}YK zFaC73ALG8~Ro>f-+<2uI??%Y1CJx_m97AFVnP8M%* zbiv#GkAJ#lA!f)UHI2h5oOq6>4bCw?{P4&o6L?{B!7Gcy*v?@;$Gc{0>j$|(I2A2*gAfKmH71b*!WqL z%kx6n-pU!`6TLTR|p2<73^4bY`Y%XjLWh=6?shVzNU2U5CA-Gu7 z3VD@B_80!RworwiGDYs3WGp<*>9Wv^=dK0cVuUcO{)>YgqQ1(z`` zBr(sJd&S&tTlXY=WOp5)L!m!)JX74cH;IiPLXZAWUA7AEnP*n;+LO}?QKaW=ymDs%jyWreGsZ>XIOOaymlNC}+4F-MKiDV< zRw5PNg}IRj?qrb$RhF@bO}%t}nbJc!D=z>k40IT6uk$2eH^LCCN`4Nb4Zlj+z@rW$ z@@x1x9*2Qn4dySCsRg%g~aj(gcLL$HOu^@d;9ec@_dMrt(oT4H!0hd9W?x?>u{V9-< zt)w*y)_I1t#xN!wBU}z;-{|xiYjQ7Fx3b3?8`vPmZYOHQxe1-n*IjZf%ma@qZC!$j zbH1WeflA=isq-qK%!BD4we%z3PC3|k&;sM9$FD&zje-5p*aX9b)2Z{hkeXz}7`nFl zRu0U|*@q<@NPz*j{SVKHT!Q@+?a6sbfzCu7JjZ?|%7mRZ>?~$Ew9T-8iIl?W#M`oy z|M;ixvyXMb{dHZ!PMN5;1x)drwNfIb+`0SMoMbvY+yMYV7_aZK#=0a&&X0|9>C->{ z;Y*9R{avYB##qoR{`P9Uoj;~r1FC1=iRyu;NsOs?4`>iR4 z;YEetVKRW+pq)~9@Uzf<>$$?t$ooWUuIKFBun_BTFpS+0rV}g;P4aj~$A}?Gf{&J` z-*fT^*?O{`eR*-%7DZMRSNy@NEt}9{fTp~&myhC)5R$EIG0kt!ZJY7Sqy*AfREG~l zGXi_?=H$Zjmn-tXCq#@d$nS-g^BH(2wAtf2{--~GZ<9@UG^)ufmp}ZkfB(+f!Hy=8 zcs>!P$#rtqyv45Hyq4{poXGzAXf1oOb}SoIIToX)$3A3B^Bd-^1g2crHF%N@6rV^% zClWerGEh5#ziNVo9Kn;tB@*%?WCW>{FS0D72KewB81UKf z)2y%?eo{Zv?u&aVMjZFI-?OHl^Xe1!LRK5 z0zY1*-|WCIf$jVY*`)YUr}vK*Rwc)ykgvFs!Y=Wv!YKK70Q?HwslpEY&}(#`K8D_z z1sg8)iSmKiICa(5J-sr#^YZGf8os1ViQ zi8(%~xVAc3bWHtbD&OE=8-8reOlc!`O2+)y5R(Ak001tYi1)RD%BC*9giewAQuTFm zrqtq&ylJ$M!Upt^#(_coLynsoBj4%S{YAwBKDMKYjl#_+%o_KOENjtd#X_WMgFx_+ zxx{5Lm|09=A&Z56>*qvs+Qy2$K`+F{0yq`AlgdDF$tShxAF@HoD=_rCiGNKn9CoQY z(FZ_J6~E}86CLRTKk6xHY{f6>;|u+BK7kLZ5kCfV)e1o7js53#j9c>fqD7o9G}$%QzZc*J8%Ge^MwF}dg^+5qp`g1Z(+IhhI#u#Nnbd*Bzz*s6@k zOWDkOX_DBoW3scC6;6eIND|Xs44T+$!p}ya)uk8Gy3+R#<9p}VhqS4;SU(+;TyiGH2x^1x@fPc-n+# z(1ETI!Vzbdf7fYc*EcyA$(YCK1?MZ~oJ`(n!<^KB|G+;f+xhY}%_RrNvp?N?lg+&w z$d-5gPP0+<`;Qf7^3F@eRTl3?CX^FA70A_E_P1w(SS)B}Fh7y1@3P(<|}e7Fo+@JsC!t54;7!cTS5CX9bM zY-9+Xq&;C!Ht=U3Kh@$~2GCf*E@4nUXoq!s@~?ogfBZ^31fwVXay#k( z_|Z1F(}ccUex~M53GHIBbcJut36AnuCTcdR_c#sDhPBy{`71tN!~b^vjcI|MkTByq zfP}5h-6O!|zN3e-m$8kHOXk#vV&h~uB*!Tm3pEy>)S^00m;6Isn_AZ(+{~lbEWrDG z{FB)sTby6kJ%TIR1O+B>-c6qbRUmEcMz5QrU}GOz$k%CceA;xRoTtIZ(7%d&leG}= z;8}%F!mH$8Q~Ry0H8kJ{ADeZ!Km5W@ZpAO5vFu;k@hke_9`Mu9D7|uSm;8gLWgh^3 z@M=)&u`5eUaz1^SUAuV76d3)ctl8QE!=0X-P{Vcx*MKclS`*ddZW{Ji}P$l1VOgTGuVFUn{;fVKRuL2huQ-1YB?8B3{he){fS93a`OsOrL*t%?x#p zbGz|h3W>MsiMoNy!X#b`#O6CMZ+4E~ve;hY=5;ec;8^bL>>HbO{Pn9JY_T3g%O($b z1$4^b=`g_Akgiv+-_cz2=fZ~^FYg0akc(^s4tO2YgbmzL0J`?J%Sc^iG>6S1q(5tnz4U5OlrCIE@5i$w=wap8a zp$%{(n_V$3cN(^d#vDZF^5N2U(}ZK}+d`5qd`7VSG{<$~){ZW>Xr2_D=lV7`+ngWhR`5?>?RzTUR{mAw+ev#0qk><^K*$!byYMgM z7%+r(MgIyIIXxBmiW+Ypd*Roq!@LI%O*Sp~r8H8O%}97z_D!bwv3RS2nHC zTNq|~1(8@>b`~k{!lCUpC9)~cB!ES+1%<=HBON`c;Gy4j{OI>sSfjVQrsIecT5zXc z5+70-d5&tcTOkV=_vn|6A3Rq9zDHl}yej*bVHr&i8MGO**W1 zn(#vwP5fi*7#SPSPEJi^H$FO(&B~JuzK~oVCN*17_T1k8(o+%Uf)kqPp2!f)&i4zs z%hpDBI0?r|N+trl%OawMp%Z4n;GauR@E@Qu?D@P{#NJHIp)`}3u2-lyuHI6BXUo*o-!=yvbzmwv451E39W>#<`B^QHOL zUlk%tU71ejs2@`2PTz#B&E;fla)t;FiF^YC4lvp1(I@>m{b_pQl75ad$OwA*f*0H9 zne*Aiv`$;f3vy8T-Sm`dqW|8|{ZR9-=5^9y-keo_^Xrezo1L~pEZ5IJzph31mu73f zeY>Igh=>2do?!9nngYTD5X)M)R4fX1O zUNM=zk^|-P8c`864^YP%`fg>^chDCf)3`)38S^Q4To}vx5Q+K118s1!0W>LF`wX_W z<^_v#IDEb4wl=4fLnbI#Dc>IF~Y^i{6NcZqZugckB z-R}G$lw6EoO|JqwY+LRT#m4^r_9NrR1+6o4PYm#4431Ci57L7N&$4^6lW{g-U6n9) zC;s(c{^j2=x&!%RD5M(3D_x+pva*&DhmnQ?ux`Zh%o~$puWBKYSnME2m>4``#wm!5l?mM2_|%_FJ%z0c<=6yPqn~5WsBzlgL1%e{M@1e7vf}( z$%}nqVMUAYFRf0P`%srh5yzZO0*=|jP+D5RsD1*wgl|QQ`go5wy^MX&@!%c2>+p)h zSOX@BxZ4~h3w3~S!gdddvgBaLB_>vc)@dt8AqjQgM=*jQSmM3wfHn3eP`pt z4Sj7+2{$HEL$)BqP30^%xeWLWKD+FL7G&deiY%v5WhsMq3iOle@^wiz$k$-FjDZol z01V@wJ`J|uraHp&5IBz-A(TW*4Zj+Vd*TONgYCKyusiUB zM*R!?_$+Bm@k0h)*75VUROeqRgJ^pJTc8sd)EV+EY43&~u}7iiq&Atrr7mC7G4hRn z-SKPXU(l$U_QOA;G1sZ!4SDDZ=%dG67=!@;d@GZe_i~<(4C?$t8ifo*JuoSq=JTVX z!#QlHg};K4;1~J8Ncoq-usZb)shfOLJdjNRL+=IN`^AsCjUNs24L(t(s59kX&L^G+ z9^gt@5`W>zg(-O%%8-vlKg-2%Q|i~5yiq)7Llp5(XN`HRAm6uIz@{GsZmMS#4*X2M zIn06MngnS4U>soqDe9Tmrsb^{8^T#0Hu;8coqvo+X&*`*g?y2L{ie_L*peDT6>5yJ zLiowr9M>X0Wz;3xxM_H4c-R%8&_;eG;^*%pds5^BBXp+~zXJCD@S~1^O`BkX1s)yv zB{bIYLx%!yK2zFZhtm#z4jUN^%WmAv25r2*cv=_f%8qqA%55pW_nXi|Y-BDZWpNr$ z7;p{zn&9y)=)qBhiP8_UDHdcexL1zj28n^+hA!y*{`Nz&>sffbq}c#6@LXQjrI@m4BDa5|9N{af2($T7WwwG zU{j@>=?0r)I{l|`Q7nXpzH$l$M-ncgBYrJ3p;LVBCwUVBLN$R8b~SQfa?a(joaSYt zgwU1)ntMSrcyTAhUms}`PxxZrx$bqg-~QSd?a^TXkG|%;7R%_HhUCRPstpwS;S1V8 zI;~JCB=qL66ChQ!7DX~GlHj?xEt{VO_2^%G9z?q{IS2{ESG?1NG+UJXICX?G3{FXH z30|UK>soBT{lh~$0rDn~+0I47gpWZU2zp97Nyr)g5n^fn)lzm@?P61_4)^4}&c)fs z6w+rz_C4<)OXR$v$qF8t!Ii2211d0(vbV0t$#R;{00}& ze(|fr=+3_u{8WF+KZB9;7Vd&0ZC8S^jX<+sl;<>-It(e`L;j)iuZCYC#~e3()btNL z!j4bzE8E`w@Pij6jfH%3{Jb+hKqoI?^4#z2r-sbZF&!Y*s0oNkx(I&5wDy(xUrPk0Vq zY_tOv8B>?zg%`Z*C3;-SfO5GE^it6`s7&Zc$be69tLqgLYtnUm*kiuG0=I%M<4>6Qd-CNm+$0y`J1vwnxiJ5fP! zh-IUmgpG%T0QVcQo{DYz%P((cgsr0up|4gltqvxV5CTTJ8PhsE)k^|7%41}I@x_g7 z_S~6lZhldV>i11R#8b!MTv}eu*0spXg*3eLd%4V!bqNBfDu|H(1_0_nEmE~n)Fo*>RJpK&~X|4Rv%!yd8QC@ z@&5MdM)vE=!`Y1DSGADRwc4N`AzLfrudx)~dPjwq&6_uGWn?bfi3IrJxA6`d5BSYL zV$|XdG9u4!z*)zU*KQ41@~S5qWz-wbfMv%FBP0I=-f@l~4Jc-dl732uP+mW3%I`ef zygfgxKL%F3XVUd}aZ6tI`XS@my^471sfk9O661H^*kJZj8zh@g*R$VU8&T))Cld^3 zl|c?P!o|fU^Y9|p=#=8G{=fgvZ*9T-kAJ?MamoTuC*qt^p8D7T!^@pX!&z-0ksd0p z<^0m8fBn&XxH^*GC&DysgZUSb2(Pan|zyK z2tm6Az6QG)KkwvgMNQ{=hS3E-2HSdSqLDI<_=%QQ9d3Z#2%`(^1LJ3~`;#y23>}Jg z&G$C>9vHvF;9uY;BaUGSLyF6nZ=4x0-Jg?(Mk>WL zZB`OUYV)tHuqCg0IxPHpmM=6m@TpEC-rcX%zn&UBW}Yd?iZCyuS}@U^v*^F-^za*w z(7)m3&Lx#BLd`3lyBX8T3w8PO4lhrSvS^M0>4nj2P9x3fevaeE8PB9NdD;*Ej%%!# zu#;%=B9hJUwJv*NQ`-7))urV<(I~GT5ilfPu}Jhmjt9@5&u6En6?)|Kw8fIV$vmCH18ZzuRVIyqlq=cX9?CpK(p?<<1eWLr0*r0!@ zOH1)!e=j@wOWmWy!Xp=w;!r`@j7{0|zy0lJ3SH+htHHBhe61a6q5;m_kyP@aN_D^u zTO0gX?0ls~O)gf&_UB?#Y;EpXN*CL!kPiNf{)QO0gpvU-yuBxmpVWy!EeI$~BI)9( zlc{?2Txrmco~o7Ed#(a*YqLp+qXi4P3$nHGt|Hw~Y>LuTAqcr!(qkZ0mYR zoL|UU(t+6k`k5nEL?I2Ph&DQ1w1}98t7i>a3R|ujf%e$&$*kA^Jv~yy&PigD`pJl}o#@=qi8yf%81ik0(a9^D!#CmAKs#>-Y*v7<-_#Vd>u2OFDF=wB*itA`o|3ZFlx30bvDwd{NNvDBK3=3R~R`iI8H6R<$fXECn!&M#vN=< zF2nA&*d91pcO-F~o6x$SZ0)DZ?r<5;`D~(*_Xs89HW8)hSMi|MJ%w5z=K}1p5sj_6 zo&clY_RF@!m^Ow-hH%DxpM9$_fWDtlTFeKi3nxexJL4WjhPY?XUh2J**+tz2xhejv zs=vktpb>&kQ~%s%hqlVV=qlTQaiDw5(kPxUxexc6JC4H=79^xrs15c(NA7Vq_UisthB z-+gX4E^A#Io0hdZoJ)SIu#YV4v(O%PUg@h}t9d97TJ6L_U~dWJc!z~O!nD7*seB0s16#~^w^+0Ikt6#X4{Sk(Qzb2_QWI%Pv~c|V_tzG zmV9=1;Qf|jkhAH50!`~Q!X?EWC6+zB2zk>M8DLqoACcD;N0s2&Q77sUTjT+xi!LHZA(q%F8y#KGe(~jXJC(ux17~&Of`muOu3|;v2?mUtia*JY^NQk} zF?gUO@B%vE%Q+nbzBG;3k1i+_zm_!Ue$ZkN1`_2Cny3fHV?rJVyo2KNpYIov3_L_ z2)kK2Wjd*5i*s>Jzr(Xgd<@v5|+4@C1b{NCZ6hB3!3m!EAz=%6&e^#^^ zfoJ^K-Su!4Ai+d{iG_!=(8)FR-Spa5r*%)r>PvY_pUJMzoRP;X8>CzWr3=$F5zw5V z&}k#^KmQya2SQm62oc>wuSnPcWlF!7xqE-p@oA2lN?%wQtbp9(W$MSS;FG(LI9ZBa zcV8aVDAIYkgepj`r1_f=9dqjhxnF@%`(s z@7m>6zyJMbw&=MBnDz?xdLs0Q5QyBYE6B^!KBq=cW@}n>f2fm>D=}%U%;UF7P7HxTin9(5(q(ZfoyF)?qwX^_K8v zWO3w_HYpD?q)fmUt93upmThiq>=2fci|}%f!X5~rO%PrHneAX}%f_A7W+(ZOfVhwW z^>Merx;B-@kEv`+7 z(Z*P3S=EFTJIvZQjqv}p^m8IP#|38@oCd#@^WW7o*xDzxK#ga)_lxu=-O%P4@?@N( zpJO8tCl?k~5plc=oV0JE{8^PBmQC%pwqR&clT&v)nu`${1{mo({i=)A4Gsdbo!Hu( zY}^sj7UDS9L+(LDM?ae#%oev66$(jrbDZ{j@bLI&BXwgtUw7*j5s(iC^!mYr#D?`pDEj2&LiSan3{lgTCM7#*cQngaj`5c;GyJq6?Jd zK|Z0y#@{FiJ&TUv;o-z56!lpl__DCcCIKF0y)e_6?VAJO%kcsX;jL}rO?ez4;Pxey z9`S~wbW|LNSzHtURSBVdIL<-mfk($1O$1nEC9a}2^?Y#a+HHBq2<}|!$&m-VnlLB{ z5rmgI8y>`tWK-dnzqo0eA;i0fNHhK+SP4lyeZ7^vSl-f(AYR8O^ZMyyg!LXuM0 zkqzWF9f6m?NTD>r0G8`cZ}=IE9CqLlFsLk*dpG=`pElcpUkhw_ROKI=VV<{d{^|W@ z8RYU6;1qU2JDGYnkUtdui5PfMrLi5qCcF#$65RpKx{d_u?-U;3_MCf~ae*1B2}b1i zil4P(=xO8M9{5oovh9^d!>^^CHpB1=deOfo{yBcl`q#=om?8%D(mvoD$EROwabiI+ za<3~E-=`ObWrPz_#qAFGlj&tK6X#-c6O1)>H$HSBr^6jDh0;{fn)N6gDY!1ehL>+7lV6&V}2l6+B z^ZfFrHMcR{;tH-zP)2pI>*C}wO>Pv%PZI*XivkXdaBztU3uN$);h{g)uac1`%QxNW zt?f0+S3t;zu3p-2BMjkV`TDHrh+w-89{_eMetqh2&bJDF;4S{a`zq}Y+sf)0i<7Sv z|9^Hzr{PSGRX&%&em>yI*x0b&bA-VAgodnu!6G`g-%WYouvt&o5+=Ub5iE?4s}2Nv zP+J=f#MZ{M9-GBAa&OAvsp*C01iZ@ys!UM8nP+hc?cR|3C;@L&9GPNkzm*e*Bn%s@ zEwk&!oeb;p*vEcj!5#LydhlkqM4MD7M0rc$?etWOw#;{Emz+=}mh9r>**Q6KaZxIK!;=k1BIcktd#&k&0eVXw^CWC-%1&z%ef##q?DXtb_Tj{|_1i%= zGGGzMPbzs_>*unyIh{lt`g($ourcuFIWW+F@=_UqBhMJa*~i1fK5T8u)nPR00`E8F zx8XtACj6RUkVkPFZxTYg!KOVo(P*@YrbtaN5T^ALJ=4A){6v0&V9;2{y9vLN*L4^z zGO!o=pmDi3nU*{|@+p8#tDU#qAT>s+^9# ze!8hs?>pHS7l-ZC{d*dfv#TuL@C{bN62{7_vZ0^9@za;s+iXPBsHqdXma@e1pPf8z zr;Pw_A=~uHLL_6_yDd&IxvdRclW!CM^iC>A{WKY*Is&QmkptM;;2|6$0UNwLB#v(i zy_BuJtugKN^svc`aH9&+kX@J{{EXIR6qjj>+F0XUvl zjSS1N5U-s|-fzOpzzuC;B#`|USjLu3094jTK9)0)_RzNR{9PA&9#O}4gF zu-bt*5=;U{3^`{&|EQ&myebcJ;!}S8&0X`hxhRin5agfLpD?}Ony3dj9NR2K*E^KJ z(>%NL*Pxkn0JL&QogcsiJe}4j=X6YFS)LMeT67&8)S~!FHF`P$_vCx5iz22*Mr=`+ zcYN_6rP2oyY5`}2{QC83_T8-q#*;}Y79n;fRJyUOiJzQ&r0j<~#g!Y}j; zAcYKku!JTEX79xDb6tf8?2f~a(7%Gl2K@sD6Q6=c&FTQ%hTpLqMhE{A*zmd&Kln%6 z>clT(gNtvyeW*Ch_BN)M(FKQ1n+Y9uou;U&C}>aHFZEi|mv;PEr0B%2EB{npXmsF5 zyGH+z0XRjUo5}{b){lT#jrJxQ$z#z5x(O9vI^P9G!0rn_=*e}vKm5uzR-t__{ESZ+ zw|N`OH{vf_EPv5JoLfM3x!q%aa0G~x&CDzA@99}f;Df4G*&w-rBN=pE!&(4NBpw!W&L z@skp(a)w}&kIincSOxZ(fIFhoo-D@ly;~b-tAcSV65&}mEyqQwcv)j>BO4av!8I)# z@AUe~yYP>T-{0c}B7o>)ugS(!6?U6Y$S9f4+PB016PUrC>obE|9No?CzgU$Zbs?KN z0c#sV1N#RD6T+0xC+Vk+Q`T4tw4l|0fHSlZhJ?8I@5GOZ$x&@;jObpdVT)HkJTxTx zOkUmJJ&<$7pylE45{dWea#+CP?x4p@eix9U^b{(U>hPXpq;P9)AKnf?U83`Ls(Pax z02g`+oeu;L@Cl!wjkdI)g%|D~+SuU~rfgIFN8f0+y?8)blY{abY1H$u^N=IBF3Q$r z5&!aOb+CEj*@pN{*hUWi&$}!w+NKQY6jh4z6 zrMoyipz#bREVs4kV8Sub^|J)A1mhF#!DGa_>@k77CyTp&*E*oVFl^7#KcTyP8 z-W@+@35#V>*2W3&P!@d@@KPPF+Te~~sw3d%b?%KHq*0&KSncD3Mqo!svI>m}enBI+ z7HuZS8v>v%Y{kIO33mEBXwP*7cmdmK^uD?xgI@4!q!GSKfJ*#L@eA7bl5g-2Ik}gp zI~i2)YtoUtQj;(Bqr(8x|EYXS{4__<1NfM>j|zTzA2^nxjU}+_GAL+NnL__k7{a@b zU)2sM`N!q4v}xL2|MYIDn zsvH1*K!Lvmr_W!s4Q<{nITZ}?%aksuWqZ{hWc*114K5!u55C~0ip!(KF%(9_R~j$ zAGQtaV{32Unyr0Ocb*7o#~Y&bf3*({`ASDvoc>=l`|<9+#A0kd>_fjN}VQ^ZNMo{2euDDdL>}tG;-?Hm)Vc^Jf=IgHg+Y8 z@NuDRy#}dSbFvOa(&goYr05v%`T!<|4?*SsfA-$2yN(>m^MoWyl(=f4_I(M(zGPNp z)=Zz7r+%H6nV0!G{i)`hdFs6yxkY4TL@1=tzEKiIiQ=w>^Z%K-xx@X!NnS~j zo!M205bwQkxZ!UL;0Cw>@c!Q?z}}WVN>s($a5 zq8SKr2rbKfaUdDQk>VacS+zh!)venPZOH?9h>AKN$vM71uLx^(W-PmznHse>el$Fr z99B7r*2?O`I@t}LOiKL4kp!1LROL0GAH+(&(U6|_?fL$&U@(ty1`T_d3CkPV2+`X1 z-~*r+v2w%yp+4+{G3WJ1+D7K#noU%&M->0T`!M(rnDMAi30y3jB06bBodYR&%j)@21O_&!%fvZ>1Lx@1%W) z&)CBTaUdrgpBH-i%uDY?4cT&JJrSut@WDGNbYPvDu9tKGU5eAu!`cq%W=bY>Xk3$K zdLmt!)x$>*J32&0M?nK8rX;@_M@PT4{DOuu+W1^Xjc(jV0w28BG&0&jgARR1&{o+J zzCId}-=bmooX3{@l#lJu|9A)Mat#`$gA5;S72WsI4yOsZ4$!D{Mtz9C)y6XUk^jgO2@eg%4d~H#zO$^c(oFolJhBTho@DfK}ps`}q24$PAn|9jPj5 z+h2tbISt^Gt*Sg*lF21D=l#w++ZSj{2RTv44veN59rlFtrrWI!>Y{Wv!Jk(8Ycg7^ zdgT1Fbqp^9BQa28E3(_S@7W9Z-HJXW(v&T|4#+tgIdmZD%vRNbGwE#%n(#v8^49Xp zo@1(XRldwFwXL1nhJcBFi@L9nqZd{kJzMgFxcR-Rh@Xv#BkAFiqBNhcdSA;RLH8_c z(w!Fp$Z1`XInT9i0)rd&z~sx3*_A+H%q*(Uso&8d- z&mm`@e0<(8JiT{I3aql%Dc^%mF6_h{*WdOQ7#FnAw2 z*he96R(MP*u!-#%rZj1GO;N<`ISe5p3ZX~p@8iqz;~ujS(ZFyZ1CBv_(Z>fqmtEdh zw#I2FIcQ6-M%ZZg>DPTAd(NsHI9fK`!k62y$_gxUHs0%JP=gOYw;o3d7QD4+SADsv z+(dr(F zY_6fD$B>^>;BV1}EkEpUun(nw>9xN?`|ZVN_UOF3oxLqS*Fht{;qc|Q)6igEh>2-d zgK9oUekK#=(;CMg+drC)=)AXW`Pz~tlh897`;Y2biJ1`j9!cs>ueDm~uFhk*u0!9M zi;y~PUTIvxoM%rSPV<^WqHm-@Hu&U+O4d+9k0tqWv1`M&4W4XEYm;oQ1z(#!9~#hJ zUej|_^J7rP7J0Y*W_%{iy&O#onsAqUZ4HLW@g$VZirm}?6Zq91mCBK za%QxuGz{dFRvdh3Ix_Z2yMEUo2D;_hmIfK%?~&qJGkE-5-B z>rhn(4TbE`x7(1HC10*-B3^_9jaYi(w3~eEob;0i`-&W5_P=F9=510~0pqPjIm*}HGRtHAK*#)0go6B%aBGi=|Y4f%dgO(w;yd`poqnb z7f+|FKix_XH6UOQQ(xJkdqrS+YTO11msBS7$zGpFb%^SJ{ii?cfi{~i=-Q8pSX+I4 zFYVrc+?M8ogMZW7p1?a#98#|rc!AG&t9bND302Ewc;+IX`me>K@_B?Xv19*qofR2O zZY``zQo0A;q0uM5kdu5odk|NU2IL1V)44v|_`Dqy@lkO_&~%{hVSjBJza+j!e(`WK zNbpm{2NspkABoj;kn`TPzo5~QpJW+2lfnjQba{`m+WoZAZwDWkNlYk!C#TWISEkXz z2W@WB|0R6bnb{Tfsa%xZN`8=|ETlEx_zTF-?F6;SUog4yy}{S?bC%!HuZpUy)9A$~ z`9@z!e`K_EUrT1vSh!aNEuKqYSQD0BKaQaW#Prcd#sNq@`OhYZJIucPpXPUo^BO?MBDfU z@*>d>60!Krx7T!N`#C!t@A>m3O~9uXhRuOgyHwKNhYTt;3WvTEb=-{`m1#>B7JDH1K-T`ttq)^8=R+(xRp zoOUL^jJBG4twZD*_~46_%X+)`xCcV5J`_1aPoE_{#sJgqwc9DJ)WTQsSkbo2Di*c? zK5QHM2gg~V!KAhbRHPV8aouER#JBUuZ$>US>+HYIxkkg$XzGCu$*>5h*^Bb{#7^EN zxt+N_nW%hQjE+HI!1XSGhPZcr{zbZ~;Dy!Ym2~>Z{`6Xr=!+V3TRW9e@a$!aKelz5 z8h@2WUoI#z{pYktk?DKogCkdbGen3Tu!koDb#(UYUtO}*zxnv`Jm!J=l0u~wGc|D*s0R%K0Sbqk-=<2LNd!d@Hu>)3WEyRu=#K_5i6=_c== zMM&9ZudU|<<&{s}tUzL4a{AyP4bAN)M@$_=nrkJ&<8^Ius6!QZ?Uvu@`>)gIKzqQ) z*aRQ-NBi~f9D1897>C2A=^Nn}{Ol`z_T0(zukA0X9XoOh`Q?4QRsx{t49&prGr<7;@K zp0L06Sg*1%m=F8w;LH2?dMqX5=-MA7avF{NM6i~h;{bBo*U9kd#dJ+un80qS!pF~C zeu2;OEBVDFANOI$T^cl&cn%Nvd9@D8?G!&?hr&P6H8M5YK-6#Y`tYe}t%KGxvf^iu zN7qdoUoO84Ukisn-=G&fTIW!}ry8tUT@oJ+KDTYV+jdUd zZKMyM@!XLgD>Y(nU{&)<^EwE6_Jw?H&4V1(r2AIBHg(}^lcp7zNCI!3W@n$K-~aK7 z`q^W8&KCS%OLMQr<gRoshCL%I+T32#P-j`s)sT-c zjJVU_tJ^T2ZmZVk=)3X6J$?8x+D@ZQn_t0WoAw~Sie;-4Om!cxuhGYMY1D0u_Mysn zv4Eewe}ZQ)N-;|A--;>t89s@&p0)Ver}g}YhUxEZNU3t0*A_jXgnT!{BonjYp#9Zt zRyGC>0AZ^Z(%UhI5rkkg8L77l?41WVXupqyB3`{(PYVl6+Pm+7(S94cNWld5HaBnc z9%RAW5DrmdQh;rHzWnM#+uG&!Q$?BRA4Z61__t4!-aB^ek>jeR=vo%f3C(BE9M>L1 z`%F{M^fF{c(HSJRAt8PBO|_dn03>7zR>+Jvp(5Pv{F=-PD(Foj|vEFAeWlbK3CEauSx_FDcr7W>Ohldif27@7PyB=KI~JFLhwX zt2C+Y4d|??BTs$2^yPPXL}WP0(E;*+d8lnz7AVdJ4rz;_vHeH&0>Mv+_lJ$YRm=J5;)`q1 zamQ~yyF4NrWX1yuyOGIQwB?MpbC}g0%D6`Ke|hTCh-=(W=iN>3f-h*j4;p{B_~MBc z!l*vCqu;m%`O$x(OY|3M7#h9uE8wFJ%6Ai4rT*m?)o%%(fbr1proS0{f9vw=#n%#}1a+uSe9g3FK_CWV#SIat>biaZYm?+0@iU~QlFKUYl@|v4G%0ZWY zm;ea;Gx}pb$sZ;)zBa2Zh~UZVABIw?EV$%X>P6Xtw&EZt0DN9YseCz)@#XTz~q zCfJipJ>X@#mp^~^v-G~9JvJ{|@DMMvmY>Lf%50qdZ{@)0a8GS@`Shv$>NN|Ln4TUt zKWO2_l9rb1)MoKKr^8T*kS4GNUoKVwhraw%ev^DWd^jfPf4n}ch`-VFR4*Cvr(Q}1 zhqQu}$?iO%@}b%(Hx%TU^A_|=w6PEZMqbI+!`B8I<%Y2wx8bNINrtZ!DD=vK4jX2h%}=%G{=fXo_i6Xuxio$Flm+WBt8V_1%63y1UtAxSN9Z7T_&TUa z_XpaxhC>1|5%ME}Jf1<3$7e~up5K;V+*8I^F55@D)Sl zyB}Yf_Y#e_!DswPkwy;!N+sI;__oiZ(a!oet4x3T^;lhug4Jgcp8$Fv*Dl;on;Y6? z`JKxluJ+SV2`+Y0(MBjb6z_j!d{kH9rJwh=$A=$DaN&ezo${?nzKpjbxn@buMYa!eKw5JM7Wbe zzw{?OD;s~K@t3&;TVmBwz=sq*6ff3T722h2zx9XnoTfA$DO6n}*})r2QkRIb`r1dS zpQDaaeu)OvmGXZ{8t;oXxRF@sqK}upd~onmU_*M_v-4G2TV70avr9UI#dk3|e*CbF z^DNMmdcrtc3d(DzrY3QwC3C0v>e%S8=LdOp4Sjs=c-fn`pQgsGerP>S+KscWwV$IMgf+`2L5RX<7q- zlP8Xt5VubSWw~R{L^z%FyP?{;W*TqE^y`24C>@Zaw;`u*A4@s)f7H(>QsPja$BK?w zTUbxO{^*P*+>g}_pH43BIITet>ce3y4c6Qcs9?kP<(f~^>B&>=5x+xkAuAi8uI^;} z)*SsZCE)$F1|_d#H+<*cFiGu56W4kXp|`B_+Lvoy`~I@O8C$P}jEAAOSy=`tIK@+% zD6$s?dZWy8;ahV$j7#-W|5+Voc1H(m{iI3vFFyM~x^j*<%oZD@^N8fvysfac4BO7k zC_4VEB6jXQxR*|8pU|Cqr)+PlpcD7Lk57>CpydEq+Ae(qOO79C1q4gE`UX+&qwasB z@mG|9>~`38^;bmqZ&m#dDgo<%^@l!&K6zbBPggXN$6;Iy28g~np?%(uOlc*Oo{R3Z zW30a23R|oY<-tS|`={H3PqN}A^Q4x3vaP@mS8m$m8k1fxbYSZ)ZPBv!+M`u@7SjFF z<>He>G6$C&yS~kqp<;vXd{B(1bMxEk7@V^)6nTx+*V}s zg`y&ku4=zZXcG8Aa@yM?9_@-j4nAi=6mN~ObR#&I6xEKujjzq#_H50lE~nB3pRRvA zf3^mErk5UzPnOf?mrqNd$ITyxN5(=?l7luGtWD~Sq!Rzmms`z(&b^u6kZxbRNb?WZ zMUSmDiKJuS*lHkO0{_>{GZ`pKT)y_(I0Q@(!}9}0?LSqJ$us%9Y>DYFBj1W-FZa~5 zOOxOD+62zvk3Q7ao40i46#MT!VQ=@7N43)Far*8r*VAu*^Qk>Q=o@`-O=P=%WC@z= z`;IPO=*7yRgZtC@3n$X`>-SB^)B6tE`9<9FF6}6*vh@|)W8C25Fdh7@=NsotaVQ}Z zW?0g{rN4g(sCE6DF8}`3_;{_s@r9ju!U*1(8GcNy{i1*|2xACRv zhvJz=-^#8F_?GyXT#x>bZJ{}vN>%UGj@Heq)~?(I#M-^9`9x##VW5;zKjmBT?TDorlG> zJcV5|=gPbqTg(v<(U<)8HVyN!xuIeT9}{1j!&sR^-YSi-)N!{Q(Oq(0b_lQuMRnku z0E{hVa8Niez{S;=Suo@b=i>B6Yj+4WgPgg!XBrT{(Vo^bhAEi0A4C3$dx=iKsp9aW z-+cYCEg9@ac5g-+I$&Q>loASf@L*065wR`JW_P~rHJ1^CDh60YxD(Bc5wTy^sP>Lj zA7_b9&IaeYg-GZR6y<#8xb~4!cpOV2NMX=?58N@pBTpnOVH>gw@v41f)q!4{T}|t| zr_za&>VP=_L;q1ouu-hNAz`mjXX$04~|Iuj=J;c24w8Ced5*%Q&#yVe;bHK zE=znIG#x*5aNgM)orxFPQ;ws#tNl%+)#>YPtNz{AfmCa+^sr#EUG0I1Z6@6#ZH^DQ zF^KijB_6p1jWtd7+@IIv&dM&^m-CjEaIuUK**(?+=*Z+AJ7a+De@tj12F`f9mg^FF zT;t^m?eF)0_#yqnuRpdZcb39Dym=#i`Sq9D51B1qeBudgq>x`*2hKOVptDGQ`sHwu z(Onxle2@n;%XKx-);?$)?lr-wURmmu->^2K^1Sdeo3H5i;R_yH_9p?*;UdQ_kF=Ko z+ThbYMx&!&e&#fcM`#pim)b{-Pv!N$CFOnzH-1u zL>xQr_MyEz_Tamgc(!mr51liAou6EOJ$-1c-*)@x*Dp?? zKil-hQq#{3(m;On<G+d$D)^X|1IE z@WPQw);sMP&5LxlFJgru1Azs7M=uOQse=J3*YWw-?hm}=t6JH|IpI#%s)N)@Am_wjX<@6)V60!xe24bU9tTa4J35!2bUA z>*?!%oEC;%_S|8@$|RrZpoI?}LpM2(rWGGf zcz6+wt?^auqsU|D88jrmP32eNGd;p*PCK)aO=*aK^i|s~G-Nx-t=$J~F25EHK{5S; z584Ls{ooTaqYcUJ;sZ5)U8ZF*M7h3Q`z4+1e%>=pNPtR-qU|tVGg6R%v1v}fD zv8@XI&{G{w{Ya~9*45v#0PNDy(R5M=RkK2sz1x4je%Drbv4V?pO_+OI&>?U4ewt0A zlhf&_wmD`F1lfhJ&Eo(-_}a?0gdOMYx1V<=a=mPeN9DPGn{i}6jm_oPwLfcP$WH>q za_EEff7M5|`(bOp!ZM)WS_e%ZwK={*A1}IYe+`cauZxd76*ZZIH@D$U`f1LNt_k4|Wn0)gRL zg{Rkbg`dvz#P;Gr9gy`#S-eqBQoor!Vw2?63)lhw{55GicSzY4Z#&h+biTzTqa@ zy#oTrjhpxFU^OD+*gN}|NXQJCavx$SI!CBnA^5+;0OB z(FiA7qE((ZS}f9>Jkilt>uf^*ltH(oa5AAsXC3*`Xzd=+rMT6}AMVqCYKs0{c~!Rf zVH=Yj+UJ*pTz8}k+UFNOxvQ$u?#cgfFWA}l{g1bnZ8CaF%Y>&DG3gci{a^wgv}lZ^ zetat1!DsTWc;s&G)iWvm{8%Hn#6h=;zL9K+@LAJJALvRd>ihf^souv?&`8N9uzm8HYO(|KB8n&I$F#8Y^vloB=dk+(;BD|>dtDn2omOIM>$l>OI=9B>j?N&yOa~e6XurrZ^jqT- zD82`e)E!RSfPPgrXfR>IKl(oo-#v(+hYe>dl8U z+&gT4N?tgz0t?<+wMS+VWQ1Igyt(L)yPZ}uTsPwM=KnDK$d{~?2SqGkx)|aYn(44R@!@zg_ zpl={iy;Jb|BEMzB&@Qww^57HNVH>m$f>9PU;m+2JmyeCsxcamr7K}aziGFu)MH4fx zlKI-2I7Td7CxO3$E#Aq2e=fL9@ICLNO8CGUJbHP(Touk6I^T*hjBT4B2ADwN^~jwE z&umr07hhb~%Pb~>XfK1DK#P3jKpW*8rF-|DC^+o7&RRNbD@tcIR(t;BaXNkCq`iz- zRUPyt@De&O9_cV(E6b-0*~TtRRM+cgxPCKkd#RhoR6mCs&dY9CFTC_h8K8*x0<%yIH=z~eCGRBOg1#y_`+7BeISw?Uv48M z9klRSVQ&X58p;nlYtc}lc!uZrY8wWN?sb{!Z$W-kNnMnIM%Yf+$N)Yu80{$9M^Szv z$ha?X=lD#&!VVNA;z=uAH_>|v=5BY(G`hrLB z=lG(pv@t@}hN%ZR@~0?27z=zAE{d}%63ismhf%RPmEb+($MsylW_QXOz=tMP)_4zm z`W^PVB|h$j0M%8z+xHd?;jU;8;1ffk-_SwP{zMes4Xgez7e(wJM)9=5zkXI7R<9F<;2ZIr017lLSs7sx zKbEfxGB3kdYGdGM>%tQ{^X8*t$F%K{0#u9^zV=?5L;n3AezdIunRLH>XV&I|31Y^# z=9xbC^tqK~6$bRE7ZUKd&KX4dK0dau(xstvJj&tzUAsm!r~Oj)xoY>|YqPSEKoQRG zff#)T+bc58WXu`%=G4l6M?U)StU3Bbh2f-DwbrHgX<2HXAZioq0!4^Fj9tHe&pHbR z19Xfe_BNyu;>a+N`1qrP28wIY2uFwCeBW-0`gzj<^B-t{J*_=7`<$wNy3PktM+_tw zs9!jL!mw>eaQ$@qudwWaWeh~}9nzo$1yXk$q`5;UEstrhSxq}6y}mHTB27EcNRHT% zN$rUxC1W@tu@Ifh)9dCM`7BLb*5GVT%RC=wANa*p?N6!WOUE<-fDV%yBr`DRN-uOQ zOk|QUC=8TF<{ggbo8zT?bX}3K`oexF&qJ03ZRqfj&S{XxHS(enQ{EzC#G!S7)%_gi zdPGaOC$@^bsf5CW`)eIOG%W{~$VrozTDaj5O~d_8_~=Y>-W5SFTPOO3=y2r20|wcR zYM}K>a=P*GX_}%fsBxC;i#*cCg~Cv*lhza~kj%v~?|#$xm!D z*yA7djOYOa@0;SwXw>aD!?&6JnfwA@rr*F9Jc2Rw`~Kw@v|XkZ3~9IO8?YVZ7yVx* zzcxN>gm%-`Z=e13@<>}k2bEl*T5KP}L6lJ4J`j=;_E)Bz;j7e+j^7@i*Jt?fnk6GJ z*Yev6U&}@+9!1RTFYuv*tdC-{VM6C^Fj)oPJOgE(?yysz*{UXq6bb*sgY~pyQCn|W zfWV|hFhl?Vbr31>n=j7FS2$r48Rny?4@G{oy9F&>T+@W-8%-X~-=4J>wI?rLu*sTQ zH$%%W(?RGL+!>EmcGGt$qu56&zs4a|gpGKgfjXKk3BpF|XSnJt+X(%L_vJNh@MV3# z_VH!yAj8+Sk=*{ai_d6OK(OHwKJ-X_UKZZ0edt>5r;txs{jc);a|7(QkLs~vG{8-? zEbr}49?&yf<3pTw`T!D#;jxw9mtTBfXY>3)FU09a*w>xaldKfwu={i8j$3}+$=luj z2NZipS(X}0VZAS=ZlY_cZ+`w+x~WwhM2QnggN;)U+hH)UV4rGy?Ms(VS>OnRYIuh? zY=p%3?I!MtiECDmoH>2ewq>DB1@GIT6?E`@iHtja>Zqc~&)TiS;Mq=HQ3kp35@Shw zvE$pXN@llpkmk&x{oV$32F|#idFoKoYm+Z~t9w85T$ALhI!}U#W6Yx~GLxq&3Q6(; zeq9r>%UX^3OozHL(Y~OUg)ilUvW%a;toF5aU$oz1`%s0}t}901gZkWtU58xidqz?o zc^i#*j+qU4UzhhUK?B-olzW*tKPq4QpbocYfLt?4rJV%-iyE`Af|SX2{6?!aK_&OEuQ4Q@B0D1d`hHZU`udRVEzy0vMotk{-&W&{I{=A~bwa>c(R=Bq> z(HBD>JbW_A&43<^tc>907h~85dU1AM5${JPcW5hy*DCLtZ{u?&Rju(JJjOFJ`l84W zOuS%TQ~h(=@@z^&ZJO3TY~~HyE>-<=OMZ=hOY)2U4Emvi+;&_CqJgYcZwnu`v#Aa$ zAQ|mJ{SJ@M{iu*1Hd4lie_(bkjFGH;n2j{gNUjC%MSL9|jfNBl?Y8{fJ~qRb>i{2( z`|~!|#-}MaL8m`3d?x=!2VLFdw7Ir9K9@+B27zm&;IUu74exNh9r;De3fg`6y6u

o~B6vmHyuDFu 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

>5Wt}9H?iVuinQ#v~*Ctw8arJ>dR1GYtA_Y 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≀LR8K@znG3j>xjH57bCuPT@Nhn3uo6t=(3th@orEk^u-VHU%*=uWPP{H1Z2Z4tG0yg$(`{0j%`2$r~l1BU(|H(ngaQ@tm2aK`dIq-4E zV=jV-1!GT~r+TE-_+0P6&5rav10$N$m`{(VH9?Fc1n^n(luUD0c_)dFis9s9_+3CtffJd z`7P!ch3OfW*Aa2#8VAs!b$zj5f2H=i zYy<~zL4JV}W21rny{fxc?j1q^V~||n6O)t5^<9L%E&+ZJPBqpYmauBcI6gV2xCR&E zlCQn1Loc(qCXs=IgmqrNZK>X*I_LRK=N{L5r+*qQC^uJal)A=xWvnVKF3~kb7ilgq zo_lB^VB>6g0KoMgQR0g4{E=~x(pR*FFaZWv zzH=VUVV}}Df@cy`kI|+>8o0SRCHxoSK{dO7Kd6$E=O(s2A1dk6aGs*kXxh6Vx3*nK z`g$;^p@b3PRR)z-O~8%*?t@>*R}X(m?WE8^>PZmVPqyBYIY=j#LV{=CwJ zQ4-wUS-Em@d*9)^O?Y?mv(W4K=NI0W(!^9r#=!sPk$=*grq6EMkDHD>seqBx92iC= zqRPg&8|2Q1?~%en<9go@J_I-($bGdLb^s3acFP|h{fWH1?{OKM9G6s|{z^iD@wj<$ zGusQ}f?vls57>i3UV(qj{(8yiy|xZMkY;I)D)^jhsrDFbpw{eK+Sp7S8^utI>N z-`N%eC?G}5+|JhiS`cfFTskdZIsBpq(}3HC>;gGI*eSdr=Yh#{(LsPPrLjh;aY%x0 z)0Xi;7)Bj~_+ysj18E^L&C3n0Z?-oQS*ALy;oD=dA&?AlyxYmkzxJZ%>Z(32UV0P1*JU}!!OxP2-P`o!b0;3y%C1YZ4)zB=<_ zDlE`;<`a#Y$$1&9f(QF1fn0I`CK-&9fk%?iY5lnhRd9;X&U94wkl5G*n?-|QCZYc8 zRH)S8KH#|r69T-{;)UG6;2?`bWSTg5~Z>@#|EHsk~9xpH$ZqN z&4ZU++;f?Jq4^b5fi?U=ShJn6Xn!skm`F3C1WY{IzrLhY@h8QhLe8|-B({GFu&Br@ zk~*l%`|;_c^4!kH&Myku7Ca{wcCx`eg`+7WOtDgNk%{2Iu1h+yTKo zDEmA9ut{m0EQ%asuyyqH$hS_tC7aT+e-t znegjzaZ>>aikpq~$_;U3Y(i?liB*cM?^0;$tIv`2Es_5^C0k0Lx3~PnK|H|z`9O1hJ$YD-))2{btB|lfyr&0&hXn$}3AW(Eo3y~%#5-~mDLi)nys!ehOMrC=nqdxmc#Cmsm z-ur_O0b9qHr={FHe4B>t9rWUl&iwEi#!I7w{&5rEEzI^p&I4YKGY&75rXanagL7DH zTAXrnlTgaN$xUNpn%kH|F$m+uIE@#R@ZQngrD~jbVV4OhHKw(_oaNrH`-jz=7jS%c z_qVG%47Br}JiGGDm4^$!uF)a2l>rP;s-dn8c3D-*nD9-<`rCxPmpEiD`rtuxnK*-T z-K1L#ZZXi=&aaSdD+~XSFS4{I6qea65SJm zyK?eipm89dx_(JEf;*-F+%ddC`p(hUr6@T~zW(g5svjH18z4H}Ffm}cNCY=ZgXjH; zCeFM>p2q_Z0gel99@RK_eqrb1@+T+Wki)PN{Q)NRhY*4O^`}1NEUtir#bx|QH}BBH z>;HD-`%<2oDMcw6DiTdZ)r?#r{&V#_i4gt;s8cJz_xZJx}&Ppwe%_M_su6<+x z+@Oi_{GNllre~(6t7zhh8y9uWr&^h^{36Lq0B0xWQ!+TSX<%@%&H7=7x3!;er@8{J zUEDLNK8El7E#w$RL}wN(2pSJd7%xiN`+H<}cCqf&!{BC32SJ|sN6KrVGCY3|0uKTN zIQDIi=NzGa&f1O^>6aPkNQcf}7m<=vjw)o*GGY8Pdt8S4CnY3n%5!mfdo?{;ITrYl{pBSy0E2 zpPuV*>Z9Np)F&3kudQ6GXW$U4)z&{27Vx>VH?~-%qR{qul&y8Xv#g>@MflTUtHY0D zgJ%^GC$wLju+YB-NA7jw5K~`m$MV@HG_p-jMT*duLY)XX71<9w)LI=^yKY{2s|Nx0 zHPy*col^&-P8!;pqzdP8s!?J8->=RHJns6ltVCj? z{l_PMq4S7oNOb4i;Qo<^OQ>uRi76G;gG;GyNJ!;oWy2OiRuJL+ex5H&tvlhy%L=My zn}cLjKUx_hsk`E?;n2cP&XVlN6rxEV(&r-xv?4d{KO``JfFl^gHhyz*5XLLl~vN$qxQ4F5&rf*T%93NOyX z0s)R7n+nhFIiQQ(FY7N$ek=%mxrGV_j#C>$d@83c#vUyt|GO8yq!y-+Ts|#zBUn^1 zPWy4w%R@>s#w{0H&v_7dm?1y{c?yW?y<`3I{t0u2RKI(0eRB%qr&S1u39(pc12oQ!`mvqmJ5^lEMxl15Y zO~a1lkc|bWyyrX!co1+1+=dfeZ?2bbpMF~^OV;arvw3H5;<*EK8mZirC|A#qNpBC- zHKip2PrxAqg!l7Jy^yqvli&T!Uf>UoI+~-G&d5)0otG_;!ozKs#6px=U~i_NI7aHO zkAgEf6)K8J=TB_(|t`r8wg$j|Z>-^PKC#I%&@ITg*l+FCD@INbD)4a>gD zEwZa}lg0}-|E&$7&ncw83|kLv=ROdw3aKzcSeyyNRz6&53hO+HRg?gvXgYBs*2UaX z%Ca=kJXwaWS-51JfWbslyQ7lK(PXg1I0pY1^yTFEtV~UU5P|pPlvwTGSzNX(=nzDF zk$T)&@0EhdLgf=q)94>w{%onP((>Je_SLS>LiP0gR|W!{lQbmSJJ1hea)zp6p+p?# zt$VJnOzA6|>vD`;=0SoZ^;Gj>tOwHf#W3g`N|#vKmUy|ZWe9MLEdN}wJp<<*JMx&9 zJ#LArdm@{A;;Qkb>sEc^ra7?yMY<|j+Z9I&|i3_wNZABY>@T16!BEbEWIDR z6b~K*oOuu<9gqO|?&)`>9D34|;u1i}p4Rou-D02^AZmiRni3;B_9aSN)1(acPRZyb zbgY9o`?V*k<>~z!fj^{aGOBB#A<}>O#HXbb21d{Jw@FD-9*EcAl+TD4XlaqQ#!;CX z0_P7e_kox2;G3QaRV@{Xz?;D!K*OxaoBwe2266FBa8ggoJFPeI?Qm61f+$@Nf;lfc zv(qx7n%m5eu4iNrdfUq+4u|e-SyaI%a=N?8Q56F}u07R-|0EnP=n~^h@)Nap~!}Ez?s_>=ScaQZsJL`l|n*z4r{V zEXnFTPiU>Rj!0cul~t9MC8_G_YEdod>Vc+#rWs&i23XA4*|9a-4{J7NL)-4o*nU`H zI|GAZFfhxqG($r}LpOBOT`j9iYmqubYpu1||IhF9h#N0os0@)2nb$L4-1qMF>*Bck z@#B9#eomSdmtyla@dAu?z?4jn9PlD1`lI;!O(RH1J7P0FKQG?_B-7G#&r(^!GVd0o zjvgOT3ed)kNz9~-N;CEJu@laJLb&Z&e@9`B0u?f$(c0NAGa5zC?2?yJ*J4E9?p6xG zuNgagAAFjcbAxF&$b#Gc5qHARHh<*a!)ym&d#_}S^JnjO^E4;mc0BL6Vg+?yl2QQW zD3F|iIkL&gN#_p)9@C)t7qeB2nfS6&{5vf;8ANq0luXqvMTbJ+o7s{@FpZt$F;Lns zMnCEg;OtGW#x>`WC6Dh<_yWsI&2Xj!GZJj(2IEIcDSB2Qd8AHYd!er3us`D~oI~(E zJgjbd8u!rGZyRr}CYAC#zwcn(j_{x$CLY<)pk4+Qu7v^e?Z8$Y&& z@@g0FV`m?-2acUyO{=Q7%xx2Spnrykc7dW4a z`lhF3biLCl;D8?S{d9pYk|gZS>zC}I`jd9Ns?P4KJ8l;$8)f>S&~0EbF5H9~5Sb1oJg$st(I!(Z$SMT1rwfXcEF*Kt(lQpM)xKnTSb+}te7P0yB}hHN>A&y+K(d>fXdw8g1uJ5$@}#&m2Q7+-w% z+mCzX^H-WL+StOZUDsw@5l-Z#c<@e7t9W|B>Y{RDYQkyObL1RNZvTG5#P{$f`LKRq zvzG<`loq=As_R|`Wg%LdwAz>L-PdMpY(Uyww(GUN zj?G=Jd@=jE9Wqsc7FUrp0SO1jS5+3u0mzS882}f+_b`yia~}?@Tt36-x^EPqE%{(3 zr3e{JeQ!bQ7Xs}c?gRT)h$E6Pbb=n4l0|1`X5?>SPIju-kCP)(m8h8eNC7vd_A&h+ z>DUCqCHD2EEH}Czi^v=VUq>FmbO+{exySr`tHJXVw~5O{r@(l@raK$SW0MmxN5;YY zM!Y-yA5$k9>q}a@Hp@)c6DRL;$`kMOcUXzc5p$~B_Zeo{IhmDvyy+fi3KaUS(o~Ie zRKNRru#s@Nv(+Y67M*!mCwl+2bjf z@Xf*j8@+sZ&&R#h$$mWn;&Y9DM-4B|MTCL%~@sR#J83dt4JszZ{6HFh+DV24{nr^017yh<|V6l0;7;3fx%~fG=Y| zyg*0Fma{YL%P)P~%@52Y$E6*4OyIi@j)%u4RK7Fr&`>;A*2JitE!&!P}f;BKXWmuvwmAC*a#W7&mnv%XL#-wLJS6)!VDC+@++ zQm~`0e`#s@q{wz^O^qXC*m-D}uE^c-0W&4MUs9fKRdwlBS(9P;g*tMps66j5_er^_Z$*?s^rc)(b=TXP-MXr= zuEEi3GurR8eA|sro@kX#sOtS9CdM6*%t;yU z(Y{d|-`u{K&nPb~cP9d7!V-{EmI; zYyZWrYuCmRPtS?Ncfwa+dfqO!-*Df3+B`!5E|CWC)8`&`j@LZ69xk#YY%Cp@z!raY z8h?xAqQ`eB1sv$E{z)JI^=Ch40}~_C$i0}58uU5euRr_f)Aq&3K57qCH`@8CMt5Wg zo0xr?z&f?q9F}M5etjR7jYN)d`S%hg9Nmm4aEDTW4Xs>hR9+wIb&gM{Cc;>v@c_WY zhjB*0&M*^jqDk6Ci2m$31)x3ibB=_hTA9iymLt87o;j~0l6fw#X!CH-NggG5L?{5y zVtmYLo^O@2$)On?onD@|hWZApt*o+4@wssDJPteN3tEJB%S6nWKpDdXJI`Nvi}d~PaM|O(`*HtP^A#JGcKebR(b#=mQp8DV%GZ=vx)Xlz4(i<`AQ`8n zqvK=BbG;4s__X)q_bTl*f4J!+yx7=9hN_wa&?m+hZLlxNii@+|#)5a0%JapACE3_d z)yb@E>*>@&)8!ZR9l(g@wiajh=6FLBD7@ph+i8Pc6#J%EeSVzC;5(p5y6nyZj8Mj@ zsVVCp?6=mAHoKwnUTMB&y^?3$`jARS;mA?Ij|tk4cE?d2{vE<={v%hZeJ(I#11HQ` zQl2W%Ntu4Mf>&ljPoOg!d<6Qb@2h*5%Yh_CJ^1WzfdBfBzLH(|<1_bB;@EWn zh%ad~yiks^bEOC+$K5J(IQmxKeHMwX)E_wjO?tH5$ECP)H}V*0fKtN`ufK1Xy4oy1 zL%u2F=1$hOaFhM-Gl^Pi|L)Np{TN316sr$jh79M*J!s&}FBg@%NB+HVJic$$CpUW@ zpVsQ{_?Ps+k73s)ZY+l*t-iVAFR5F6IUw+WUL#4f#nx6N@yWG2|(;|JR`17M=6* z$($^=5XzTX3qsTm`%nKUhr>q!Kj&Z5!s!pb|M%9vFk?;fJ5(kaft3K@6@l?VTmnaB zSxj`voMQ6)qCHemZ!?SY_G)*tJymx~n_Af}o?9&ITX5Pg0CQgW;7xm3+UJ$htYm{S zJnlkl(!Ec1n3L)6nG>j z__p>7RLbuAlz-;)+Rc?kF0v|4$$A950=$e%>zTzdAwwrO@oU6MO_j>px;mWQc^u@i z*|L{qaT!K`_LTxC6{*qWV0qk~KmkN9m7f*>xTq~RCp}}etfbVgwKkjgc@WWUbDC}E zshcmgef19o2u)A`Y`79Fjw3<&|@W~ zWvhTY)m9YsaX;S&6^|#!5vgs$V*0wUc63U1vDWwZd5Lj?GD^C(9m)!dT{_|C2@}56 zo0}xOI$qbMy~zvf;%)CoDohO!#H;bY+j7<3mqWWReCSyxFkkO#x39eNyya?V=GTAX zlR5(1V8uE*O9%^qUdaCF`N!Nd7-f6~_`RF46rY~UDEbpoV2>!^L3f<^9xJPsgU2iO z@$-*677^cX>5KGn>{FetZM6H^>h0yWD^^ojV$(7)11GJjsu>4$x;4GLbw@I)PlGxAg_{ExjE}(p=3`+H#~izb0#VGc@><>FF4^;xbMR zna#^C@e>!$xng)w-IvK<$p^rCR(78M_RSy5Fi6P`?2}95GtVp7P#zT|sC%;f zJ_M%uaA^Eq3a0T~$?>oiU&L)~(< zb;#i!alE{ID|!2J-)UFq=*A=iG8EkXxO<_;2lf?TQ;f?=on9!DxrgGSV%M+emr>Z5 z0;^+JV*+1Yy*l}EtgbN_lN-MlJ=q2Ype_HpdV8E{6HG}mrxc0KY~&KasXV_sa{NZD zfcp9JZ-XSeh_W^(kgE&pS%hKk@JR``f+7<~!z!-k||! ziW=vsev`^iUx-0o(TX*Pn%d>P+w8Yn%>9f}{XD{|S4g^P0_T!<}`N;rY@ge90+kuYW)&F(t*Ot(lVF}=6>@)l`t^f>ja zFMroQbKxnQUe+2+f3iX*c}yCqHHN(lT5P3<`Y`71&SQiJq;#zr!zk znbr=oj-uaX6!3lRZ2j?7ZQM2Xu$~xhXIO%2k(k71AN{bj)^6BOpMT0O%F*MSBVA5A z6eok(T5tvdVSJ<1)~6l)iYRcWP=GO&pO@!^=3y=PK4^X4-s@?#-x6q*CGdecgOgQU zU%d97)#zB+z}Ser-QR8{(kNQwd1#WpQ|NM->%rmxkMh$x-PR)K&;RO)PdO0gPrv(h z`>Dr1tW#`xZUGUs%VBQCsBC*l0s1=QqDTrS(>l5KUSGS@{zV%YS%7CO904$==4Y)} zj)ohv3+(fcJ?l2*DGPB(hm&*R-~K*Y@_+Nn_w2R74m&9z7M|$%V;uh@zT5QDbxB(6 zn2DL0UeYI7&ZbosEm|qlY99K6^VD?N8K0SwMw@g3IwpGUk@9-yONn@iWRvjn<3|_Y zwC;szYb>nP254Z9Gpu<}nJ}q`J#ZYAPRevnwfr2vkzyY>|Q=jIkHH#NBL+ZbAK)V`9_0qP?uIyF3}(+|D!{{tAo zB9wmMzAGcz08Mj%sO&5O;hHmf-*0-7E@^W0!I#7T_E+NY-i(~IVcWhzc6{ltn33Vs z8GVL#iO1;(wAg*1JOxr5p?v}C>#A#4>+9p(wO42_y7@Kv=EGbr_zYtM=hmFIVIy){ z^9GyL%^j^y<^*^Lv?bn(=+A~U;i&al&sPtwJ=W%fwLCQs>c6AA`2E<#nC6~&$II#4 z>u8$j^|gey{KkyS<}mY1u7LJ2ovOi1B>{HHl#I`l+1VvI84ubtU9wB2oWd{3TwaW& zy7)K!p=@NZQAqSWd@uZcqcpa2->2iRp?9D$Cmj1HMy*MXQlB_;zqQD$YU}KTmC3}4 zBs;|p=33-Nzv&Q4BKR6ko9~1~b>Hflf5)d6AK%|6{qXnj?~U$<3&vwyXBxdoS3x z-+k47>4m?ue^ql*cBwz+a$*3M%l?oHA`l?Er}st`+35bQ6n!t#x|RH+ckVt4(C6sm z{)n~f@4B~92s6oJMHRBqI%p${b2d9OYa`NPV~3u_l3S3I$i_)+ltpwuqQH@-fY)ls zljdBpHmI(2x7&|prtISnKIX;-6=aP3)+ayj>iYaUuh^V~u}leT9^5(dL^#A1SQUU` zWn`mpSb)sv$cX)S0^3j5HHj~-*rO-!l~A}Q%GlSND}4uT!vbv{v1vjeK6K(rU<1a#!*8D+pntoZ z>{gUjsQdwt9F9layD2~y>Q7tsXq=#|R-w%l-{+8hhP1H)hzOs^k|rM-yPjtL{ez%c zy*5ecH=M4hDz7k39#T#|zB~s}j-!|d^np%nc9j+vTc5Ptb90*9I5~>-x!q-^-@}vP z&-f9jt*mzZFi&$wzSanA2I2n$Q&&majKnkvPRX6tyWV9UA`QY(>ASw1zT5}j2BMe# zGpE3VdgN=aLS|0r)38%S+90C)IPL zFt8YtOTorEb>gZ91`go?a!`Gtd5e4>y0`ze|A#S%X zR%&CaLc5l~|LS+_TxFe2N>FHDSk$DE1@7tN0Myu7ro%;X{;}TBZx_-&VWmYCflQiH$6!xA1Vg3dv#R&s9yNme&uyxDk zbgHy7|HqGi-U;L1eCtK4lz)~pGM_~|dHG=POBSUVQQ&Y=03Jra2PAmzk*DpiUV7ev z%m~FCl^v3{*o?G)pQ<};ACgHdPJs|Sn6+I{bIcY$l8J2^2 z4*|1ogeuO2fcZ%Qul)ids&w)++iifY$Oi7RKv`*2XCt!*;1IyC3$RhGVHTuKHZnhE zh3UEWFQ54-%TxLrjb*_4!1lS>jowb#9hak2$uuc>N|R&XKB(^05fdbUdDw&o7y(fB ze8xvTs4KLjOxPZ0QHKU4Hs-mv7lCPs&+#)^HmA9&w`WWL|s zte6%&0KA)bRUU7KhV)tB1M+j~40`Z!@nV^WzsGL5b_C>~(xwVvJLWV1+es@?eE;5^ ze)ar-dbW49yNwa(NgGuP(5ByUiXl^D1HOU7&8GTBx1jcPhkpM1zS2wmfId+pU^7P> zJ6&@6JSKbn{04Aa67Z=gcXfMiMSt3g4V2=-Vz+^UzXMKvgu%*<_~}+@-;K{16Fr*i z;9Jmf0duUez$PMNh!X{D5Dv>c>u~$1n`4T#QG|Ik`ZHt4^GW~iVZVBwc{|DtfXQj5 zJ~_aKhZhwVs!!vO1FFFR5`~*4ueC@?j%%#_cHe?~yalk2SvkHle-z~ByYX`6y%`(o zPFMcfmYNd)tc#LiS}y5y+{Cn^8muBZ#>->b}N+w&8!UFP2@7RzPND<^$ zpZT;DHF9I~Abnx2(Sx4H@1q}5{{8>@@4i%|g~7+}eb|mWusz$-CEWW4=L%EY@8CO` z&v(D`i_(uMuo(q>f7~n%&xq#*EQIXdAsq{rO|(jBveZ^qIc+a&Ap4`HQUBhGqS5m^ znF4;iFvrZw?m?H1I6orC!+wtW@#S~y58wKpV}|=fQRsnR_?48 zI@r#i6qwgB+;0sTdG^~M|C|$a|F3U-#s0SWU1x9j-l~RGJ9`l?yIrjp<$F6RK)>gx zaBWGsO-bwc(nznRX#vrYRcOEP@H6(XPJv`%D$A`DgOfX(jg>G@Lz@>uuQ58PYmsS@oSg1X0F_HS4TM)%sErOS+fX0iw|p{bF@wWS0_i)g zcwMJ-@@`q+@53j{WJ;z~N&tZwk=4xr#rGfpATHs3`Lg-(m3N)p_Mxe92mYgJ-7jaU z_^3hS5OBot6P0C9CM(cJJP;7kl`!!icpLKyWkXA{P+E4#VP0NK{MPpFijM;SXiy z(=T%Z=FtSDeH|^*(w&wecD&0<%G~B@ zXl=V;<$eDp4bpX*rs%Jx1cc&5PPEWn6o|27@*J5C>5e}g@8la z3Qb-dmI6HCNN+^rhf@sz-g_}#C=(%Jd$>NUzNC#b%v=`BtktAUKVcpSc_2%hZwcSK z1KVylRf5KDGfQaMpvF;A%siMMN1n$JFQR8+N<$my1P?^>8PisN{(xqDh~viur+64Y z`Pz77oVl^16C-@b;j>>~C(iBg-t~1os1iE5i-*t4j11uHr)waR?8UC`FNpPH6zd3l-E+r1!d_XR5~WkcoW`E#SZ4%2=5WUnk9 zJkxmAj#t;Y`8iwjbW3-;vx1N%xdd*_`b#^scA@c<>&ws!`QnZUv3j6*+S=c3ol~Qh zrxRW%Z6V8M&Mn%nKl7Z-H0Hap?B~-vqV92(V63P7+u!-OUqXWh0EC7Prt4tB4l@J) z-CyI<+SX71Zlde95{M#26gZ3&5K}=rv_@LH_f*u`)xJ)f)Z~J#Di%Z7$3$=-(D$Pd zQQ&T-fam|yGgJ0JWrL*)yuxYsq<;VT8$WQ`08GvZB51uZFGXSRC;<43q|Hrrf(z+){?SK04PuUlrd^T`&tD;1FZ1375 zO6llOfPN1@Vqt*XTwPRV7pj}=spI$AG8uKY{+QEb56dXLH#Rk4FUaiI_bl8>h05P2cHO88G3& zn7)%ik1#E7^}DAxTAKjBY-Vy|z_$UX7&y`3wXYMkBmHCzZMpm8Dc=vbs>XQ6-VV7V2WaMYX=O2LUC^T@IYR1Z|W2dzCn<#snK0bBk z@N=WJ)n^`f!kx-kl2$t>3-E9A{($;@Z1adYwR>#XPM1_$v6KS5>A^iN(t#)E_*-o0 zPWy5~<>FwMl}R=PY}XM$`;DicbN-CzgLm@0 zl{=!qW)z^WBk&E43z(5cAR5)b|H3!yOtDNOXu+A3!Lj&EE0Kw&Q2_;hjBJ)>^lY0H zknjWT`=xzXotkA2oW9R$q@{~CF5n?oKUa@Tj@$1&|F@P|kZ%nFZ|03Dt$vJo-ic7(7@=DYVXh(n{z*lIFS&vcy zAIsVl*-r5N#K*;~i{N+v)AbX8QvfIeZN}+K097^~aPnIwvp>EZ@#(E56!(R;1QbJ~ zcS0s`TBCe-zjdE?(442A z)1MdvVO#MufGc0DC3ufKT>EK`zj*DE+q7W=C~P9-j%m0(tcdFaqCfVpdj+s_LIp6G zlOrviZBCJ)p|;+QG2+4n)h%3b98o-g_HkoR4``>u7JOgXE`Qi=`AL_}h!JV1V?u_L zHt}G4d|JK?&VPvdEx+lv^i@t7;2#0-*vE^1|0w*X?4IWPQC?4X_`|d|df_+AfZh9% zStw2F1+QVg%ScbN!9lI-mUP-o+U%4m+-9BzXu3~LCE4`Ul6<9L?ke$I8p`I-e5Fn) z;^~89z#mZrB z!>DZgOaYA#CRP^w{c?horwRDIu|DT~two;P+q*lgsk%-=_@Y~s=EWTvG^!)nxi?SXo`zv+}K z0zgKe{5D+fYP07*c-?yDr|tgZr>#tzpnyT^xUhZz$oYVIipIJId-?6xt*NHoEvx}j zHe4I%{cw7YkL;G2xHJRWQP(-iTR1fY6vak0Kr@@T9>^5YR?DzqIei7UxQeVUu&!K` z97o`uzwd6u{ULYqMY9>DjFJTQ+v8r@_$PVAabp&-K9CPu%-FLp)aFp7>h6Ks9o3zB zs(R43N$rgsJ0|leoNxd%#v$i^n_ zGM3hXt7@i7`LN;H_0}79tiDlzx$NA^J~bdN{g-DhU(uL;+|tqJ%p`G=0RSK03B>D_ zX^t`VB{qMsdCi#g{oSX*Z^yS{1axKA_XU}l$drj7(xY!gVRH(&0IWb$zqVBSGM)h0 z0WmpY!byP#?m4FuApO?S-RauE_X9NHec&FaP3T7i+WN2r`UHW#!gv1(myi12YJh*x zU;DICQC(i;HXfWa&26L^&KDXI0CFiKznucQD6Z?w%3JAzSo!<{5P{HnERdbHZO2WD|cyKCm9p2}J@U%8!_0$#aG2 zS#lt{U|BKw3T^kx(t3YJ{GF2rv{Se*xI~WFAK%}cNjr`CQf<`tN|V1#ve|Dw`Dv?` zvKMn9{NRoXYUp@*%-1h4^5}m>*N6fU1#XD~Fc%o=xCE#Pna23}N1m~doq5p4=VTLE z3)veoGt)gWV&^4{&CA9+wi~g(ijcrgKN>>V8r|zj_LeFWy|gZdbKA93I zOG>xTKlTv^kc5Rg-!3CMRq&sG_zyOhA+rcNtL0je(Uj1SaWZOovf~NfV=C| zcYTN6ecMDS9Bm4?d4G?_!5Rc?_Tr^??0cP8?ZNuvZZhGSmkj`J0M40LR)q2f_SuuQ zpf#&&%(Ri-1!=Ac{L_jxc_olbn1YZsvNO`O=$W!prD^tw`yX+{f3NkLz0!QiS|^5V zSzuyrX^9mLE?d7A=2h}TLmhdSs}KG=W#Tg|(+Yu3dtf8l$BVyGX4Y5O^dvRP-pIcqRCC&$ce+`WUeaLN_$%0U4`Qj~lJc z&UQTDG4slu7^pK~`;@f%uS>JNy1dd#N+PNN06+jqL_t)^@PJl4i>GV+Z)lR}9-C7D zV2opI!Sg$LD8=fuQRGcN&|f*BKwrj84d!QtWS(IFhpdv7I1R%IwMI6)w6TK8h^sBv z1>iTi`=rUq6wC{`u^^C=G${{&eZS0dF`Sh7f1DG{<)RF`+(xiCjfDry7Kw%G(9(#D28~F+sIOy$!JY$!zs}? z+iCi@JN{}NR7d9j-2`Y%UqjJ}anH#BH>dAt#@bB@=sU~eF}aqUI%o?kQ!89ocJd~a#BRg15y;_Ik9BVIkbv>MN?<_}{I9ijq7OVY_V=0q%#QxuQZGbqc(s1+sH~Ax<+Tko~@P3XHha-fUm};1xSwRU-gqN#MpBfa%N@XtRDw08Vw0 zoStfNH?8kuk|}1j+21+TW0xnhtzq`K9jhvEiyCi7JV$0`hNtFiabec}&Ch?@DvQe8 zX`=7QL`~1~oHYtS476X99FIUl(}8w%jSiGc1O~yM-5jUId|__B1D#5>d5ZGDI$0*h zFwj_=pI?%_dC5NW+6c^$>5beJ=PZqd^-hAP7Y;~~qp+O}2nld_Ol3y%p7IswGynqA=)?!m4K4S50jtHRgY6ApyS=#r*g!Kt zS~Pvpc=vrZOv`X?`%TwyUc3Gtn&hYtKo#2Om<*}Y*eua;c={c6+D*N97m&M5fGhoA zTw3awWopxjKb-0|2t?=kHG%Ek0W0OfaqaA^#=f+xi&Yj(Yy_KE%gz}hTGm%(_UCv* zlhZ6^Q>?A4!`b*JA5I$jHYB~qx_Sp(?wW3QNdmMR^kdU3Z7|iDMZr7@bcLUA3gkvx zi<6=Fjl9I>2IjZ`JQ?@!o*Btz*R)}kt^2vzftj$~^ru@PKkZMR^l^VWh`tASsN1fb zloj6tjCVE%owAJPCi>iVg+WI%X|=K`l&4c1!vYzrwW;ej19w_>fN07Aeec*1=HDXq zPQiED7W&YxI67~tZ*c8(kQ)=UJLO1I-zmt;vc;llo9L1GyHwe6*CvUd`vKb*wN4(N zoU;4wkwbUAx9Ixj(P&*)UiI$<@#V+vJL|@j)9_Y3{3g}3#{0AY_gu*#t~F^NJx|s6 zy3*6`0QaNXpW$&#n|$g^E8T`ek2Z7vr|Nu^!>#b>2yj2j zEgqHq&`@AdCNX~h-52b!>PAbF2K!6W7%P(Y4+3#XPQDGvZdIxn%&@<9a7+)GjgIzQ zvm?4Bii}1I6V~daC7Q5!sgdx_bsbofD1oDTZ@X>3-FTbO0Rb1SIj%2XzhqxHeZd{; z<9AYm1mA%k;&6c#8TacV)k5x5VRY8f} z&?%Js2lMTn_owWy-s_hWciGoYmlm1cZyz3Wp#1;#E00@!RhcV0nz73o%(aCjZeE(# zQD_1Sz9xazeS>{=MVhkpQXVKOEOZ)}E<)%JWy6UbAIx2#En8nxw;nuJ9;`11`{%8{ zTOiF6Ko0eihJM<-Ro13hVKLfnp@g^iipCzB0D}XAvX?sIG=0(VMV11T;28l2hJZTI zn7L&Z4O8(pwB5U;fqG297|v9gmpK(ceTci?fqbY#z5qKMnF7MC&WHP*`5vV2%L>Sj zrYf5n1VFltKp~V&sP|!>Kq#LBJk)1>KLCiFn4GlMu6CWyt9Pd-_F5C1yfDqfW>Buo z>78sm?#z;~>4m(+DZmP8P_s@TK!1Qs09?wvq|G@`cltis)_{@C?QPP=uaK?rewqEL zv*MyayOnpylMiW8XYToSb(uteHl+ZxqW{-u1BUPLGd8!NDS$dAg5Wi5?lIQsM+E5X z+Dz@5otbSl;^%Fh9d`QoN!Jd(O*YMZ4<7pVrfl%W-u^y!;-)~p1x_>^b2(6ccqZnI z*bJgCrmA1@j&lmEKDguZiUlxVboO*R&3@PSb^zS_s#AW-0eDOq84G@V_&EL=$gIKN z&G?UR8{WGeV}bm`VO<%RM}6VxL*a;# z;jrarFI(%CF?S*)T}nQL`8hdv*T!w*X|v*TnX}u#>G+-$Xg?AW4*+0K6TS0A=OEBZ z^t+(7=5(43V@ULQ#*I3e>%YXmGT3b&QT=nJG_d0_6=ZfO{-P{*;ncm>Df#jD{^_gs zVBIkX!29*+p(x}n7Gm9a++i9K;J!nGMbRS)gekxz!T|jAg{K^-{)5(w)|4wp5Mr*w z$r4Ot2f2G;$_jP7IbADGoD-rsFd=Yjcr?St(QJ}!tGhDSr$YpDV2|ruAyZJZLS3aD&=@h8+uOI)E-Ba7> z-ifC@*^x!17W9SEuo6deWrR09R2|rCM~Hm<%>C|t7hh>dA)-J;f!$Mpg%yjh35~b^ z_r-s*Oo1JY!(llt=170GG@nuh)bz+SUH)Q{eeomDYB85qqAbV}fTl6~@Yk$v(f9+UQLVD^JNS=^2bbT3)Sk<7AoqKGoB zB&}GbwB7-WTDv+N;Nnb%2vmxfPl!($*)YW{2DXW@t?M>c;U~&}pjRjS+N3=%Fflbt zlO-%f%w$0t?`_wo%}y)|beDs)Z7#Ag9fSR3G%xF_s-31O?)R32sDoe`2k6NAdNLJPUA{i@uejt zPM&J+Xt7$IQUm0~d=Y{8oc2gg)mT*e+lTLbj?ong&}Z0i^55ZWv;%DeA7N9(@l(a~ zn}9B|{t%CL;&cmk_c>KWo0BFV!d~_>m!SUmwEYGErysDX&SnoAkem+kV-)^c5Hq>W zc&2Ys5BMei8%{JH+ff;*59z>nk@W%b*=$@~UUc;EW!&zSu~{a6Xl-5X8kckKvHO;v@l>u0IpTdaP% zz|Yvwh0dpromj0?qWt&s9(^5pVup-Od7uuQjQ4a*+U&H}M9Mt7c*Ty@q)9=I6LPUS z>}R3&IBnW1P4nNZOt|$*UaKgUbMn=e2{N0I%(0@zqTeESxbYyFDo5k2jWH#&GG}Cl z<){Yg1Ya2wKl?ww^%c8Nd(6HdpJ4>rpZc!r$A`G0l#@0k>_wR)!2J+6c2u;(PXPuY z8V*cqKmG8BtXnpZm!(lwl$vhYS~&9@fvQ*n6<0LgXUCQtQ*M=TRVm?paeBsjrpC1p zZd}!{@)Pdir$AIfD4=F`0>iZrW@SS+)5^a?f0O^)3E=_b~bsQ6QqgEm45+#5hHU z`0H1`XX7c$)+qB3t^GZgr&ZaC7XO{HN4}&XTAGw*zxJWeIIx}fP6%iZ2R}AhsN%f+ zV^5s5pLpnmO;69cJc zbv(prE5|q#@fQU!ab!G09{|f5f#8@55ZjYx{gU-{ndRl>2+RPC3Km|JBRx|QlCrJ0 zV@h^g(VS#q9?YrX`h~x@cD6g<2h$!b;0Yeg@@4n&!@tST11a3+gP9P_bKtZ)SLU)( z##0<1gcH!L3~i7L93q6%@oC@6l`;Ty(ge+Itq#Pk(#D3%Ct$_5lI(4H2bxfy6oCwE zWZ-kES-@{@N>fb$FRc|XyV`u+Ib5yK2`Acxen7w2 zvp}CxV#srxas=e>kybl>3m(LV55egYS%z^?@e^ zn)BEMVZ+3?A+c_?jO%kq{EPCUtv{`kSDY4tHfZc)Mot+A=AuIVVYMu=vF=k1>J$9+ zwWJH7e1lmvPO9COpdvv_=7(&}v%@2!R$p6Vg{3LlbPxJidb;|h>dL13Q4F*p>#0=L zu}gsa1F8h|p*Fs!jcNVoPZ$UH19{Auy3?4ztPFtrYWp4`LQsEr3l3qw`s(-X#_YKL zM$;Kr1KR$u)@ieHZT4)ZO%nm`JEd3@KcYY!1w13omzG(c1m+JWhpb%ALFOlxwP4G1 zlPHV`K_xvc!)eV_%~#s{S1#G8c02o~C#*vDtN)xO! z_HM_xpaqU}3n=-qOjJ~BanAx~Oq#E!iz*}-CfS=ZN7E!HH$}3AjPODE!a_*=?{NCj z_lN=!1rk%hj~mA2-@W!jyE-*2JL*;Ten+#NFRHeme)Pi*xV)s_S9?3{Rc$Ly<#}1g$0todI)DdkJfppi zDVA~BjYdv!_IG_`U9VifqQ6NFJffT~D2>T+frXZ~4s7Qc=`Ss^2*)X;z=p{sE0C7E z7-aBn{9n}>aF<1Gk!VpUg@rk3=o7*`DgL$aZ$~Gk!@|Eorf)EVGbB?z+2WO$fPhE7 zcjcnffCm6gO%5Ep?Zj4bIKS|B-{!Q@4bc+1*45NHTCO%^_=O|$eZ{I}7K7m1f$Qpb zwSIZ&vR%G@)rO?eUoK~IQ<`JY45lyASA2i*?;Ld1eRr_8*+|%TANJ{ zco+E2JnYBTew2^20a<-n$RiQZzTLb@hxcy+Ah(-96mNSJfB`26+v&^1q0MQdhT4E1 zVV9qi4gk^g!@cNpqyeahau{Y}dgMEdF<7RPjX38efBFjXHY+#dlz5bjlR1Mjlgc$s zYajye`;Y(a9)$kzE^~;}bQaL>c%R-=#-Ui-{Hj+d5B@mNw&x_uT2euJYstcse7dpO z&ixKj@etc1Zu;1T5 zIOzPjkOk{w0wM!t2sMejf0X_(mcfCVhk93?Sz}_whbfIcl&|6g8}5bLWVs~MKOfOX zSiZi~#+!}B_%v?UZ{KeiKYahMKl+yaf0tjg&!2d}>S7zl^urCh=sp!YJl6LqiybB# z0q#2_SQI^?z)cj0aS<5J(M;+ za_qdkw8Fl3@lAW7x7iwVimXb$D1P$%lU6PhSj6!HlwSZG1;Oy3=^o`5QD7?ybPV>| zYwcHcGA_-o$n?W=TBLkL;JP2LkDR*C_z>2OVo9i zaFMSHEp7CG|2UozE4O>5KfbJ_zc3$|9`VoOufAOP!NL3jnvG~w`TOzlH~LMUfHVN= z4b^ovIx!}*1UR7$!1W3_u2;gv-o*SjT(S6<}Ul!YF=pzqeCx1I2 z*G6d`#`~T|Uf!jQ+=I598o)de{)_k^2V_uaiLUVNJIzjvA!@9)KC(N6P?;%}bmzP^5KFpfAd`DD{^ok+@XeV%8OW2^q=<1kJ! z1vA__VprsxH&=kSJK-cgiEvif{Gdo_;D107w^N;jamWJ& z6Rw=dS_{F4Y484}l+0%AXPE*~f1tsk7ab;{^KCpE` z{Xk}A?#(&jUt;eP8z8<84nY@OQO8ZZr{TB{wN9mOIW*xlmL0PCY`<~6M zW)K1Hw@SI_y@&!a3itue!ta5mQ>%389vim5zw(AvW#{SWRK2vBGTaeS7^}Fe6=)Gx zmQ!M%d-NGw{NX=XizeJ+P3+ir=XfD(!|#Od+vK-e+UU!zQh<4cHq|;!0wz1W8>fU# z-en0qQMfxOz_>-2Zj}J_k;bzQZ08=Iu#m!U05*=|y?*6==OC?K+O7awJ`e}(2`5tQ zM6e)k0%6COp}D8i-X7?%I&B0v@JDge)ra5jZne4e6nmuUv~>;-7@8TmT8t2!kmbHf zR*wCS{fsUV1tJP;g93g`)@ozx-+cC$-6Bf^%TCuey0@LCYi#jATt8lY(*C!<`t*1n ze~;gO!P6y2R)7E2i*{Wa^>xY{xrN0z=09K)#0|cnBml3{Pwn}WKFEGv#~?~8#aZH%PHfG=nMGQulXfUTAXO~ z(zZ#WQ`ltDe$v8?4dz~LGWQM1;jchI`Zwm3YAUPc%(C4+xO&Nfi1dAR-lNxM47?~D zY6>t$=!>lR0HNWl*IIA5jZ8pb&*NxH_z1EZAw169jo2U3A`qAF*lF(_=oe6%ArN17 z+O^pT&jZ*cjg8WYC3n+>Gy!zk5Wp|lqSApMFUb}=^9Jc*6CU{&E$viYGcz-6bZpF- zY-*~-S#|zuy>7~2hc|rry$_Eaz8;DmXd}aiI03~*GAFxI(^9Qc^JTnQrqGMq`>JMP zQ=GsibF${$Zuwan936IZ0-EfAmehwf!gLQCX53>FU{WV#yJR|tckvHUsFSDgRoa>M z4CeA+qhoA*+jmT#uCI@mrS`wv(`NTJo^Z0+?n<mlY&p*|M0qu!}VPE;4b^Ig?M|HQ6s8uM1fsW0Hz5eg7N;`6Cbs@ z!czNRzWtY)R8y@~wplYYK_Y~(8(*r4@};h3`-#zWcD~`1{n6L{*d8pduvrQEBg26M zuVhW4907DY)v-x>mqm$u%+J>{FAEj>oI%Zw_<{1)PZi%17bOrvSWwu{%B^ zyNOAu_Vm3EtybD=ulgHaAPL5~+5i4eU$H8gnR?>bS!*n(koKm3JMeAi(L{AG{{p%K1uLg0P(Zu#oGKiJ3fs3k}7!HYu$>r=9=gXDnOV3IsL= zuxE>Q)R%wsO?&wGJ$A0~E#b%hC8eUR7&l1;qg%97}+>Xp+5j=^gv}%R3yvIOSaqsEr`Wt08ro;X#Nu55iIo4)W+5<_ot-YUaZqEfG9ZN1F*yt2kB?$ zVi!FCVgT1YAmj69-n8UJo&1tUp7Po(1n&f(6t?2gvh+$1o4uFl8FV2%z$}8NDfiGG zERd-LwCG#g+nil`?ANo&KnbA-;KtfJq_D=5DO0dP8l+2nPA{UhiWV#Hh2Q7xJ2_Ba z`VE?*e4qzF9N=PLw|Ko0jvQIIw!hnS089|d@o^Eg0lHG z_0OYgM1j4e0R3xOfE|5}c>&PWZE6B<@n7R;U~o_yRl|V^EcIOv;8G5F7lC;NlYkR) zmWiEq(#5GYGVmT7*~L1Ih7ESo!)bWCG~%Z<@4_e9tSnI55)X&qm<*cLTvegd zV8y~7=sTphSM=Gc&Ko_aA7*7{>-4~|e3&#l*#VO|Ns>V*Uzk=KrEwVVQ*IRMSTEgM zQe|b(TmgFfI&rdaQjUF7GXxfBEYOX@-3Jpw1?p>8hkNC8bixW`rkIU=uPkw>>K!Wl zloKm@&vX$Bu~wg5_|^c zr{$PSngyD4m?SeLto-oZ*X-#t588$DdV8_?l9lBa*yxgWxOL2~AK**J+gP~XO^dUm z))%~nUU%n0prIwFx8k21_Asw~W-nzWBJ?)w* z0jy)7&%W@$Q&uDG7{)LX7SG+sEtP`h5`S6vquKsg(>-#W*lmA#?M-VN?YFDlZPp=2 zZY*Td#8)_`=Xs6KYwJ?2kHPzBx3)@Krh974X|J;wK7ri|1@0aStnq?iK42V$L;P>z z&uB4?mN$#BufOw>y))Kp&NSWJf}O1koNn3)93S9g7TCf8BRa3ltYP zhL0wqx3TM=t$Se`KRlh{qXGaRrvWOpb#*wCB16&?#nb>Bl9a)L7$PKfAugZ{>A~xv z14M?eJF@_y6JR@F{@pImQGYidibBwr%?&njpjofvUNp|J4NZUB?|_!+xHhgR59Wh> z+xWgt|DsI~qAdGe*C_qNO##otkj3B|-2zV0AZODDlU^gEqt@2b;re2w%#Qkg>93v# z&B?3YQT7L`=6fLTE2e36OR?O?*D2?CH#v z%@`c3vN2gNEqvx#eh+I7=A;>E17h=x%^Kf6zPyP`y8m~{pYp@+;q54(VaK0SWa^FX z^aXSv1auGNq5Ut}-sHf#eoPzc#|ujBWOco(gR8TW=Q=HOGA}n@wsgrXDCrTXC*vFw zI}8Ul%K9hAtUkBMDs;+@+3$9@n=5GCA73W=Z(UiXJB|IlcV4v$@ftRc2tH2St9R|s z2ynk^n?9=eeo_ENm}y3ej@fC#;b?S@Y<~C8Oxp6ytd8U4 z*kg^S?Ta7!l+Eer*k8Z@s^v-J2K#m}V}ukx3GHXuqqKKU0d{w@q{TNoHE%s#i_+c* zK=oh|o+Pkcj(A4L?bNvx=M*mNg`GByCZ?U!{4l=Z+ERiepaJG!uJm= z1S<(AwDm?Gcm`>(DTmg0eP+I0AMCMtITf5(S+Mtd+wJ|%7HbpuzNp0)n(w5wlRo6* z4$Cg&tJglT{_zp(ofrug5+Z7fcnymqg!*xTXEV}HI$crg1gQ_&uG@=O-nDybo9vt7 zPiHFX?BfqUCL74()+fh#1ZT3p11z) z6wA-gk&Kb*WQ}y0lEP;B=rEw@qJVJB5(En<%IX6PXEY|!tm6a@8g*!1vN1?t@yy~2 zo9;Q%m|t94urc{CQStRzc7Xo;!i-hatXNqkHqyz%r@sEmGat}`M;n<1`@oP)@kvXX zjR!At`FP>0r(O8oM&F4`KwA*ts#BVT0|Gn@tz@WBQI zKmv5g(&9Q@j%xwTpihZ3=66z-jmmh`@B2PaJv<=9;vMroXuhMF3n+6CfqdCWq0iHw zJ>c&9I=`b3QQ)8`K)-`WIABu!F);hJq)odC-Cwqo+O%5|aLWlFc#s=QVnWDnfVO>7 z^5_zO!uckkD@t2_jD^SDUew2@$JGbQ?lkp7n`!{6%m-{F`0?fAAJ!{%qAr+rVPm(g zt5c?~v>umi?0Go612CPd|L`7d#tC)8tmcqW%?r#4g95|d=}^rZWhEtUW19F|(Zti2 zJlKrv)jW@{5$0F;C37H~9N-F-0zgZo4NveOzJK4{JOqEB8JpJFt7q=UaXI}NIxwd) z_Y$Bp;joq86)NrzZ9b|s(>*2C)+kwwK)I;_SJqrFw_S0kI~Whtjdze^SVQ6K3$vY= zrAd;q!@V)Z3E$UTf`{mjYZ=vny8X?|-?LX+uh_@6*7a@WuZO6}x3wrqYRI5B-_~M8 znMV}3Gb!L1Wxp1oUwiEbR+U#|AM~}`Qf`(rDT8y31x=ol(i)wWX6b`vb#_6ZJKC_< zy4vi|Ui>FZ&Caq~94)dV>NxkENvoq=E4ZlUO$os()_QH$gtO|{pmuo$YGAWHId$HS zok_LwYMoS&L)Ac=IRFSQ-?-}R#i9`yK2CU)>2bG}-H&s$69@=hL$XtQOwLAs@ySmZ z8sG!~q2cjS*UpRT7dThuh%F8X(Gd5?5V?mSMriNvaT=^`Gh+^1n-yp^A>ald5ub0m zU$z22>NHDz8Qe>o{PFS7ko~{E^%WaSS+TmJQfFQwUO+iX2+MW2o0#IMT0%m8H?Zze9G0)0%^H5}RIjOlzY2>1T$KqLg0nCiC7}plP&Q9-f`l}2Es;Kf<7TO7yyBMnd5n# zj~CDwuq4@;((2F&AT&fP%dvN_aw-k#3kZ)kA-3MpK*iJyr317@yATD5A!(OlLI#`g z0J-g*?anSZws$=c;`5EJLH`Co8W1prZFiiN`u5r{`j9>V8YUQMt0p-u+^BEtR~e#o zBMNLp0r(amH6c6}_>MUecu~DJQsKMfoT8SD1`n!|KMgkfkl`Gd3+D{+?v3)>&-;|w z6(Kx{>}Q61l(yp$+AP3)3-;5QfS8t;3s9`_8tj<>#r#%WXpSa3cGvmt<^^e+E~HvR+iY;3Y}dW`iD zj%wMQX0F^Roo+`}DI+Hi+hsHV=g&T7=cO>^WCbU81ajN8u6Fz5H=cL+j;}xM^=|8R zTbh`3K6TP$?k`{cWLze9e*2k!W`&{yaS!916t2U!-h9!@C5N6ranGSG@9pRp;XET7 z?qO;~-y;g_F$LV@CuUi$1>0{t`#IU=5)db#>V_PajY`NLmUb3E`*AHSQe^-1`sAp6 z{X2hYPnS2@Z+`k`o&D!OyZow^OPE@omwmIi@*%uzbT9lY{5>v-O@H3%dz&V@jfXqQ zcdz1ZmCk0*-7__Wbg*29S=O zHbbB{7ktl@R_Z5DJ!p@fKIg!8w@6YvOw9c1(?4l91T4)e9c*Dv%MReA%tYMi>#_j> zTRD|A+oHYiTY&8^Uw+r>^GodN zBxKeX=G&!?76*K7s~}ONhyoD>wnYKPEFZs^<|W2zN^+{qJ4s_)Jm-G#nTEV#>(cj9 znWW?BzTfO(ZepVk?I|U+nkQ*YPiaxUk}ALe(=KcF$OE~>u_@(~Cj0L5(ony7x!`#Q zFpDY8? zV9!2qK8JHtfb=FgyhjrcV1rFX0`FGKfo!*IvZK)sn2sI$Oqu!uymhFO^2Gdrx1kJ> zFeO>9SbQ5GEDASMfcEN>IT>h$z3GDpWVyaa$`1!Y{V0#EDByt8 zKu~mi-^~T;v&fVvZJ^DL{|ro2ObFaPDd*0ZMFMoai4Sg-**-sC<;VM+&t4}_xuGQv zXK@A&|K~S0xlyQMV;RL10QvdFad)5g$d;}0a@kO4)0w%4bo|^CZkz4Wg?Qx6oQm%Y z|DL~k@SXbmdwWfby-LrQkF5)6!Ea0tF_%th;}dQ7=8jf(N~1)Z+BlOXQ2)aikhhSt zkTvqNa)Ki2d$7Y4{N#iiTTaMG%kq~+O@_32^4Sv)+T*A1bF#yKed#+oaXe;A!V=mf z*8sR5=0Ll(>%{e-6wIDDeg9!D>TNIE%@Xu&FH%&1hyr&O1z<=_vTj1rLim?I@|^wA z^Ix;kscC!m_&GUFz3#NoFdf5U`O#x%?5pp*Vrkz_wU0jVn0;ud!LCYWx<_`FbEK)Z z6s!#IEF#@0wTVrzsi~S&B_BxMa+7M`Fxu~$UeyNUnB9Xl;Ya^>j)XKS2h;gy!_c0zziz80x~4}eve_d;8`y}MKQ za~%i*fS#S5=|Cz@oRK5|iMBCR&MBugkDmEYo_c~t3Mq;P5uaVEZhI68KeHzhqXB2>z@O-YwwwOIZ zQ=M6Z|1OAaFb6RA5RW!t+TiFv}ftBLLN7wXIA2ufM3{c>W81in4@Ir}4* zd<3{3xh9JWd=x1F1M-tCi{+ns_(PVdqq8qvdCxj$<&E03Tdf5j6Ej*;PswTGe|YVA zd-~oB_DfHH+CI>cqd$M^hgMc9Z}6JHS^T<*{wNaT4llCCTmNU3xRq_g`u7EiRHKwbN?Bsb zJ=tkT>pexl;Tp#X$6EiLjbTjFXlQF(3pWTc0(gdVYRbl1Cj5qno(ru{XWcJF^W4d6 z+)(-@otg z?exm~BigjaEKPVLc&F(c*7%-2UT$D>x~8hyojzg?zafqHdybz9PN}gex_-L7t<^&2 zL2)TVV~~>&1TP2qdSRNAwS6E)CE1iVm`^qxcX3%4QXLd3e&NYyE#<`|`^LrB?U{Sd zTdCG*^f{l7d*L?z0jFYfx>tUJ{^G^&*uVbF7hD-{W08(T))C--B$_EIZ;{N6(9-35Oj~cO+f+ILQFmid{Gs^9a@)xg&Ui#P_M4 zUw`8Tdw;Ook_0Lh7s%9r92pTG z;oA)}wP}2y9T?L%$to@`wJd?};lT5o-vYPanGp8owTt#&Ui_9jj#?V?8L$&gbo!ku zORNqEiFlT`AEo=_E4tmdw%(y7X+v$Ia`^S6~GV7^xTYdTAZr!$h{oN70V$LG4VOVOE|fb zlb2#CX*v!+2dIw2JwODWVp=6xz@rv{$qSZSkmlmYr?b^>Kfl1I(7NO#OkPf&`*4!W zKaWpG(Y2_SBej7!>uO21ii&*2W!?)k3@Kk;zI>!up0!+^u)Ig)oHaezm<+U)=M0lD zEZE_zEP#u&Xr*ce;>lMpj$7x|71@c+Q9i+D_V}Po)=V$i{SVjbq*;N0tH6BBMrEYT z)C+KhFfDU2@H>DIzfq1oUrY@Ej+NEQPlkZpo$_p#c<2xB6DSvXyYlH4!2WL24rOzo zUmYCGBl~XQW9vrPFA~1onH`YPV@e??)8aOA5f( zFhl8mOVD@WYxn?T0}oyU-6J1F!)5m2 zzZTWHY7S!&ekcO7({_uplejyr+?pufi=9Uz~!W|2-6odm!&3R_YDIs&%$jgMGEX1;y; zp#W^}lBWBgzVvMyOJ24bnHory&;*U=V|IUCJH*-s`V+jSqiY-8E0C@97p`BlbJC7~ z>fZBPmc_U2W)aDQ{Muw^@83WFS5}^x>wpa$#9`|h^9I{VhdgeIr!k6lAkG6bWF6u^ z|L_}jUD~6czUN_UD3_yWH-3l|)OWLTM$aM&+|3k#2Qa>{^Z9$<{EEFZ)@Mx`L%DLA zUMC+3f?M44^zu~u>-S%_OWkcYp-uY1nF*T~K);l*l2tqf!8#oUAqb!^Y#loI)cphqsmr^|2N z>+fE2rbYC+=EE?b(gvk|XJ@BtPLx)sT%$}(4O&NcuWal#$}C8()AWSLjg61X??joK zE0dB}tfxaD{*5$&76ncQ@@2?P%8*8Uy0r_yFD#sMj$AeUCJe4l5}Gg>0MO1xIVTa= z9C!1%PAg{WSUDQ@<1(d#EqCT@=JcC*Xu=%U-y}Z*bo2l}vH<`!bws0;&3N)YvcS6< zoq9qej;K=?e%}hc)>CieUq0<_nc~1i1BwrkcKgQkik{p)3UCq;ISYI3V{(eki5Yl7 zu(8T=X~o&U##aXBI56kMSn|R5b^klM9vuqMwzT!w=$Ni@U@oAOwcnlIroMj61Dp(F z{^Q=3^Ma;J53D20AWyiobmjCPYa-IvtKiC`vaz|3hI=}ughIiWx3R3smfAj0+3+bd zZ>1Ts@h^oXf|DC`rH+2h_JyZE;nt8m2aG=q!PkXrfs`ls5PVx5hB6-3GOX_vhqaVZ zxgrYOVHEI_2GttZg6SXMec7rCimfO+&+e^kuzSSJ&=NgfS!cg{>YVkC4%%P5{$0zK zBeGO2l9Ob2G`42l5oMTTG;h1b^T^1eO;0lMm=>2wmR}e+A@ep(ca-pcMAqcE?XZ)$ z+fFnVaX-@zm4yk6z{HxYHfBfPO~T5b{!*-onWO2=9c@-9$1>Q(C5{73HAy3o5YPbd z{fjiwEaV>o8~3rfHYVT$$4WVJ?&3jxo<(7E3P4Ye?M@36Tac~apZUnM4(z}o>Yu*+ z9m~kiwPW(b0LUKLQAXHXqpKGf5zGL=5zP3GcG8RhscSu*_KDh4cDDZ5<^|coQ=dQP zWB%Y5|9k7vrrw{w^1R!~@y~XU+-g*4;T8b`w6w<{^$lrT3HbXTp8Z)nRny?&5ob4f ztY#K{i70TVQy|7C*vxzGp{K0i>bur0b931;F~;KB`)U2VM~6I%7!gv)nvNGCimY=`&kxUkU+`$hrUi#EhTcY(}P(kBvb-ileW)(eL_ zp{=PqPS}|jm;;%AxtAz#ANnA3xS(h#t-K=J=()W>L=Un-S z?`f|g>OzH_zZRuRK2bR)HGiL%bpw3G5PV#|vo>_~01NOs5Ii^p!IzUOWuz6n0@)!b z-k~l+1h^mS=7|b-H&6hxF#}WM_QB+!Q=O3e$sl+W~P^|vt>bAVX3i+A<0H{oVvef-f9|Ux}+dg z6B84_Rw+i$_k#j%3KM`S{q=RpGpSXUS2)|I9L>iG8=89s0^iYm$F^UxW@nDkqal`~ zeuYyXgcBx57U~1?h(4`}K2t~DS_Iq|3v@4+rVMeG1RyYZ`U!Pi=FtyF0Y@8+i*}ik z`PK6uHUy~4GW+oVy!yQ13>EM6vl8ft7f(koB+m+jnVr!`PEyllCZbHHgwU3sotU&= zdEhB~=)_r<7s5<@8n@C63}e!wPXLJjNI+hmK!rkS^sycj<8EgbF=S^j)6+C7EJl`rPp!!v)IVPtgF zdSq8WQ>MRg(wc<{A1a{0hIg*YPVnz`$YJX>fnX;ZjyWGK9t`)-U1a_7@?czRn+KPFHIRLP@TI)U9 z*#);?i+xo*WQSFtIaVv?hV5bmu~!b&1^!H*1t7=VDkr+wL{GHg0Ii?_b>?K-yp)*W z>keqw6*^979bBsSYqde1D2<&~o;*>K=+|b*iJW5lkgOIExbNpRpJtvmlp6|4t$B9b zDFrme9Nr_p#e>$oOB&4G$R>v&z<1bGD3($gn-&y{lb2E09tBdqq_DlHQLKmp5e4>= z0-mA5xW*^OZFF(gYKlq&&*u`3W|Ed|aAC^6{(6i3=*?LxNw2izrCb{wO0vH0MNLBT zR4%P_$L~TDZ=y27w*aU>SHCq6xkY5l)p=W4%(mP-O<=NLnwBOfADLR%ETuY|sd)uS zDgz5`B^~k7MC9E6d!jr2BmB|q>jV$_3)<-bs6%qj**h@cfCn_g3Z>DaHMY~N1Arga z#~p4ow29y zyI}9NT(dtG*j`>%ZunzJ1Yjd9Au#sJ>_CT(uFtAH{>4vx%AP)P&c;Rmi#=_2BDdIn z^%=zgP_v&QMnElcB|K199T(Uy^%;z7(j{Zgzh$xVV0)Cv}Nb5hy zq|D{XAv;so5bY?`H{&&e5i=Ovo_Kxxd?K z003ZON%7T{f}kK3%)0^hX-?V%6+J`8LXYSV<@-F>}oq3TYt z0gfn5KJeBszxVe6S$YThWU{8um7%V(#>M4%g*M84o}`y6GdegLLvY83r@ugV%(I1F|_IHowm)H>P~F!{b1K(_)^h*NPdw{P ztWY-E$_L5`sLqu(dadh*<)^0GM^2yDn*3%B_waj%0c`huXG!&XyXA`f2$lqZyJWI( z8~AcZ*TfWv0QbaniS9-eI1mbWMuyhw8=cLT7qiU`pp_}7i(`G#Zt5+NJ!COB*;h?Z zPjwnt8Pb05?Ls?s!3s+_UZvu0Av|gB(PDGKrpD6ca4geJHo?|6i%jj(W^mj&IKEh* zW9CsfWE4=J@Dn$J0z3Wy@AQD3y00V$_%+m0k1+8}!`@c3EoD zCLi|*@B{*5&zq3hXzaU)+x(-fT@Z^BpAzrahv4rAzi#2Ln|q|CzOZCh-W7*+8( z)8CzW{k`{v8_vDox##}x30z<6L)n~X;g8??9&LI~3A7)d9CyGnpg5p9E@+%ArnYgf z1KI_$_v-#+^*@{G0MKZ(Q*L{Ar|W-QurRMMa6EVbxPS&A?&qi*E@u2SPm4Q!q+S3- z9PxioU7ga2=9xYz1^|rsI5p63FA_9@_5@GGy%4S&Ts?KpB{z}nMNPsoLJHiV06|g# z%^9D_`=i%VN*iOj7wL$$GFLFBS-+BK zkH0oQAJBmHZ*5hz+dySLB%T55V`L`cp#ge({?6QayUCZ^qWD<9bn;<4Dg}wvV7t%T z%OylJ;}I_`1PYYPH5=Exh0B>?*j={)DL7KI@RMItPpbk;O!r zG(poP*w4$P7O-9Of&!M!Tg&wYX(^@2m8gPeirK;VG-qn!iL-)&44G$-SwXSPaI;VN)Cav=-uVfo7JbP^q1i-aYhBi`4GP7+`7x6Ga zef&7${@|(LFYTDsIO!PZv8t3TtH>&}_qv*$cGQxd>(V$$P$m`S6%ziZtwZh-#%<9a zI`xQk4))osHXgow=AykJgze(-bC#!aqwBg>{lar01r9m|c>DZ&^3c)K&SK`3D<4>= zHbZf(k+1hCRf|mS8 zo@hCl0jRK6185iWPr9`C^NIwg_s$6TR}fRlIS%O7Ut}uM$f$h5pUal3n;cn&5u|X+ z2IR^G_c4d%5{AV)nxdPTqf>wQEU7~P`H(cX57*Ya`Ivc_ML*{5Xw7>KR_)#4{k*We;DCeL@+xcTY;$=5B;1eG^dHah3xLWcqVPdJ7lka)= z_2E0W^t>aMe8YS03?+>#f23 z`5wj4LaQCE_-0v4mr4n1zbAMEvJ4j89?f`XP7%3r*|coKpdX|3nog?so96k8VEx&(ZE zNm>k}(lYr^SKhG`m9-Myo4qE?VsAS0?+3K5ItLa(wYXl?SqkCn;~GTXpk@MOF*7s zxs@r;%C*|O68oc1-?abX(HHH}<7aQG?@g5pe}ohWDR2`7qWJ`JL5F;WUuti(4|>{c z&Vj-TAQqS87JH)tVA0?r`R8uR><<2b&rNAVZe(o8I-BIaZeE~eX0qmzwM@a|1*nf( z{mBKZtjQFxpv7o=voz8YrQKbkW3qL1Ojv7+0=vr3d|HM~!t)ocs3cV~(75A&r;i4) zFV<@^>{o18n}kdD;oI6goy$fx!tYuU)W1C(?92vMH(O0LYmiS)e=6 zl|uB~Mu}Vj%33P zUM@cg6O*F-?AW;d_A|dIS2Dr6Y9qxf%K6LJe_&Uphg^SEB&6A|KKVJx2e{}|eVwGR z)!OXd{n0d}6kJp>rf{ta=L%=Rt?j485Ipm)%`di=?(3E(Kur4V zT66|1&6|-2@K{j1m-h)grnn$lEp1ROaYfBH65Q~Yso-ieOhhO@+?bGf8s@pEbMXn9 zoRR`f`jDY+K-Yb8$qN;?R7af`%LMM8*Z5!&jLABInGk5YWa^FY$8rgAXk`N?A2e+k z-c7WC`b3BGg;mxr4enRFt~s!scdEIg)oCLZV+l)>0Iq$Ta=b+iY#IttUqOA3grBH$8|ehSYg+P zNA2Q~vl4Q%>}7%SxGkC!V02}y&(4%qIf2&KCp?A}2q~~R1^j!%!*PGw7L)x%o5#+$Y4F!SC%if7Qs5d;5g|Q3FotrHaWVyXt zfEnK4PrfYQUgF6#wRT#3>X-xESx{r$*Vx)BxkWB?v|6cb2x5(7WaMbBl9{;tpcduL z+L&CltYWu5`;{Xy5BtWc@>752LYiH_jMltd(kMVZbzYWxzM3NnpxKb-o{0t~oF*uX z_*F8~O6IG+I2x$Vy#u}O%Hg^O@j_{+N8FAP2vo4`N`eNI0Vv>IJun}WJbnDl{AT_j zXzJDG>(;A{;IiT}H-E3(tF{6bGk=#X7rQ*vL?`$8e4>v$#~5M`*v*72o1}i7nwmDO zuJB0@u)SKYSZT*@R%V^NDZ5abp+50m0a*17^jo=H`>-(+HLd&GR*v*N&oI`#?0zTP zvr@6}%f6xj?;GQSvG3nIC$C2jF2}PLoh3|ewss3|WuGy%$&WwACh}gf#y48e1p@Hl zJMg1*nL|t^gg5Or1zg`n@n`xJYb(|qd2%5Zecksrl_El|Gft_9s` zBW-4mTr=tYSZjltF%HB5lQk7}>6QDlU%T*31Z=9l@CC(-a7=X@w3_4*KaQ!lIs--fg~?1`=dJ<^~aOG zTc(Ve0-e78>=&GmXX;Dx&v}8#KMEfyl3Satrswa!XrDR%s9kPrwAUIxwr@6lWM4b+ zu>JglPsuED&I#`?UwTLJCo&aJAj9Tl_6cmWAb{dnMeSCL3-1pp5K=%C;63IY_L@)l z`mB`IQEg&{1LB9L#+@5FG=*7E*2t6`4eE_}&R!6fd4zx60)q3!3-P5o(LW-8vT~1? ziSN&VPu-}CTByxDWSwJ2%58eS-?@u9R)5%;kTVzIb|r`}lI(agIpFS$MKi7z3iAq9 zK&u=1-ug`>6~B@xxZKv9xGzlstmW>dv)|FUwx(F;1%PRK3-G5K!p~~ndTY*6XVhoN zQfRB=L${`)+R1b`fy%1LjogE0>9=SY-t+OOoL9cO`bd7O5qNObX)k8F`Pu{eY!(nC zZcwgpaA#9hUg>DH)?`FExOZV;ohkn9+qzQNHoo}0D1-SYK^qE5Nr}#n?yUNIO4=fV z9bF%CuLmBtQRI$1%DD20zN`>Pb-gvv$OrI&zN`C(`qM@>I&jIxb$s2rcB!q-s!aEg zRzK^@3Xcba0`xy|ad=;|rI8EYh9NNi883WDj6FYAkiD4;wv)&U7fG3t)ljY(5`QQu zk_C*)UCocSQ%?Bo?ohyw1)qELrts=(+~fLNeT#h1Pz&gOU1KW2xyaftyw)HE^Bt z>+@^aIM>s((43l{xA9ReI<@ct6bu+^oZMR|5MuJIRn#VFQf2|Xetxbp;h%es0)CS9 z;6RRiy8|ANN;`nSs`xTb(`JnWO*B64St(tEpT)CY4(smea%P)xnd#0yAZs4L@{aB< z!`D5)25ub))Pttbpn{A7bg-aFNf7|1ygXf328{AxF*Pf}Z){}53ez&IcXY_I1ga5e z6fGo#99##iPChSuqd#!?gae>h%=3vR zM*_cwl;P{a_b`PN2q~~R1$bxtd&B!$l#_2I+BAbd*C=>ZU2d`cto@p0YO@YN-f7m} z!8IGa4wnVv6XT8t;zq^d;D1Zj)iy6*vw=4LiglgtPe@cCv)M)K8Sb;z#AlvnG#SgS^}qBs9tsoxk|ui5@F1&bI9AOu6L?6dRQ7 zZ6`_q;P639(I#CBpuMF4H{AsN?fd+edm<;e&KQ6;1k~-&;-5gN%qhN&e8)FBmTJKJ z&M!KO8&QqpUKc2IYRUyKB@a@p^o&&Jro&44DhE37QK8Of?XavfdWHw(b6>HClG7|( z!D}aVjyMH?-1s8i4+$Fi5AA`@0F?s@Tv!l^#p3JfXeIj65A=Qa$e_*0Rot}PDGkW- zVnLt^V-0`>S~$643uD%o6CUpY3TS}v`eE(TDmO8>Xc!qAar~0^8Bm=M?=`k->Rn{oKuo>Rc{sEx)2*O-4;OW>A>fZN3E zVq=hX!bZ>Td4pmpaMe5+O@q~Kfj2X@XSK0ABCG9EZ7z`<&*nwkV&XaII4Jq1C@$H) z^zbuI`N6N5*2|7n7j^4a;Pp2n~^NWRvODj-fK!7X9v8#F}Mkf#9BtLu}kr(@1WhqTKZF>+bb zq97xC$;zt)-X{k^%Qnn!gQ9lilIn_JNV=o-2&!=4{`yH3tv7(eGGtY%-260>$S_*-m`xpjrDv1_Xs+3(ti5<1CP7s-Qp`M6JI}0xjxX* z_t{^)^+PKaF!#Ch7gx@4pJNZ|GtVacapf9cloZ&-9SNHHx9|Vdo|A^d|MJQ=EJvFH z|MKxK*tv#d?mCM`ECAlTddcEtY4dFD3HxBM(=Fy^q{(smXrTGAnK0@y3;%=^2q~~G z1$ejp`x|`|AYQi?k{8OQ-7Zj&U|@H0;pXN9&D;dwE>17e4>-*hn(}*;G=xt<5(pP3P2U7S9zJzdIM}%ie`-b-a?|BmHg$-rBc>VyOn4k z?ZB_|xHehw>0T{OcHeFf;MG^v+BIosr)Yc-DA9xeo+elpq!V~uM>aEj5caLsoBSvn zK!VYVYckxAO$c~i)W$Nh?a|yKJ5pa|RYj$4?r7@iuvZlr7#BIzZ$Bp51kIS&$6F_C zSpAx(O=!j)3Aaz&GpP6_Xe~cnR&S5XJsk61quSRz&~2@X(bBsppYZg7HpWt=(G2*$ zrfjeui4fLlM<@XQA}+<4He`5D8szGOca9B8;s*4|qLjecSoP>uZCVcM9ba_TrHmK< z&TgkNj8!b7GsIt0C2tN%L8MgHtMi+<~B?(4E*SSd2MS z)YUiNYrjPfVr}_NEI&_ewV6D}dWSXfxcL0n9)HojtMKsE>$BB)`&Ab)t`=1vlq*?3 zDZq-wYH3A^mM(MF-aICIq$COU5e=sJIjcJsXJu7# z-yjp|Tc_Ato6S5del9^j&MIqDte{xhVl$X9n%vUFTY84fy}3sw)oaYzw`RBtXQ&Hh ztC=gn0komscdAai(9F9gOU9=6iI<%%ElO!};|p*|Kt*X3*m2i1D29qU!AgspaV?4l zq^W-L&{2Wy^0h8O%h5xN@BX1dD-&pdrVv6a=Mk0`wQ&XTg?~N-s?8FD8em7Bv`sMU zMKip$uiO6cy;tnl?tj`n&OOu#I7y|gBy#7sD;rG}{rj-_s=eCXWcNwy{AqnswOPWm z+!Jf^_oCVU-02H;Mn2qs=b0~Bnm~dhm9;J#zyyR(Qf*P0{dWz=rQtqlFU!Auf`rPv z1Z~pDKQAfvlHKj$pO69}1=gVeT!8o7zoRAE;Ct@yY5Unwj~y+ma$2;2m;U-X+3d<` z_zatl07ooJ@hb~Z={SIx*I@-BO-Y@#?zR!}OaMnoHgnScO`fyk_sJJ~DFFd_W^rY zI#PFNr7qAE8aZny%~{l!;CtSOe9YDo>e~QF)I24+^^3N|7a`_HS$ejeE2*&i#=$M5~fnfV_ssCN_x2;7eo26RFm2e3jzG)tBP%zuD5uI10H)+lKyb!fzN{&bJ+WwpkL*+mq)Ay!N!g>lyTe(>z$15?SM5~& z!+Zh?Fh)r5A-5KZ@M6ySYw%mFb6CguO~Og>dHnYugv8v-d&LG9W8AOfZl~?gxk=V! zzi{+^w`mNGd51Sj^pKzbS>G|wGB?j@Bdu4Px8qVC_>tgqP?!HGYSHWD#*FUpS z-aCEGmpi8o@@82#|BKIj(J6qrcB;-{+8zZ$zbV7rHX$FV^D;joplN1yk^pjPwhL@`tDG2lAv{yqoO>iKT>-i>g6gXn30o4w zSntG`*N!$^nNbHfcd7h2Z3N8Cv2(1zFmi(v2%Jn^VcKg7_=z9CcPu(96gaHC3$sK; zgV!PeAOtP1yPyEf1Z6kRtT7Dg^s&nTCRenj5G$kjd?BUwumM#q%?)Uk*o5DXK z1wsnkHU+$lJW&};X}aIsO5tGFb%NyEoE z7F+<#+cB~CypFo!R?NA8ko>ajtPef6-YQ`?zCRcT0snU{0wA=Cf>zYWfdTqapgCbk z8x3qSutC9G-YFTAjS&`sL$Y22gkhnL`#7FOTb@4f?c%srq6}QkVO`O!zCW2)W=E?} zxOf9>+Tyyxr+#f<|L@=ZODoi746ew~_Rf;!)Pm+ea;H7}EzxeqQorVXHrg9%YAr>- zr?q+0ruG&{bN{QSFWQ;^m^sPckEk@A6SFt_N~YY zwu z?D7rzF7_gJ>P|l%*qr$4)1MFOqWb&uJ5|m>%_juh4{Fbc?cP@ufT6?G2E~K{%^r}} z6`Hb`LM_VFFEvfRv(vpxnE;$#@NQ(bx<-lI@4)&fDyVqog*%d%lZ0i;ymHBUJ7r=% zN=0a|7CT9E(tb-&Fjp;}wVn*qouPme{Z3^&iIX zS+tay%g}abqZl9O02jDPi(d{jNjK$NVu`fbC+;Ut<_u`SwH#T5?KDv4%Zolz3tv9v zGEYs-O}R~R_%QWi^8=6%&Dvbmt3#UM{7C$#{&)1!FaY`~I6OjT?OKyvp|CRX5qi&8A-RKM6 zjd8hY!&;EO!YXdl@kVB0x~nO`7(iizjV(q6EY{Aj04ZvU2ToS&dv-3~K>7 z6PO!HFk20dQ<*jRBv8PmyG4Wo#<=S zZDty6AvD$`{G+2AvxNe6vR{jG)DK5`J`(1#rwsdlTR3 zkDs{Da;5qAM{mDupNtRKPu`HL7Hzy$C`c=oFK>4=+lv)PS2Qi&Z@OY{_BK10FKh^W z+}>oRGDkk4U_2y%m;gH2dM&;1wceBddP1Cp{FOKplo`IJ>(MMcA5vf^D8RetU3451 zfXU|IcRzl|#^WaiFbA69{{7sE^480PG60u56yt*J=AS{ZNkM{=a8Ipe_d+KNi&$_1^zDS^yrzE_l%I|T-q5^`0)0B1l7{3R2g z1I^_|Z6McG*E&#)HmsE#57h*N`96znPh0NCY<*C%J-YjQtWulMfEpe!TPv@fJV#m3 z9B_d;%?e;(&MK5B*6m6jn!=u^-7Uvd=2;HHqu5eEgn`D8T2$sKQl-gDy_qZaYoh+VSGfFGmJIMg(>43jnMdsDQx8~?=2((%?^*y1@(6kO zHsag9Mdtbw^8#LT3*GbKpMyaG#sQmNXqB@$w*t@c0+h?P0Jify<#Mc*^3^KFyn3bkUvplyzfLf!?Olh$w?JzWmJ=5Ru zg7-m&PR0}gdOGF>wx?NEwp@7N%QKRaQv~ECW>{~>gk@wYxGO1irG?cyjNZ$^g*7+GIdNZlyLG5af1LAW`9% z_Y;`(Z?C*(ErY%Gm;xvN#$zv7pUm(P$OZ(I{Mm=EJ9hy8#hEAUg$K~Ih(Zz=EGxPFfkX6Sjg~nHAeu!t05V`ZK}PGVYn8=97TGtD6*lT+3)I^ci; zf@gVpnZ|LO{^`c*KwUZ+UJpbbtzGlZN>)d63-&*bU&-)|!a6j~X=V=VuFo~jX0WNmF?&Bjp!78jXZEA(<-^@aan|&j=0v` zs$AvY^GYd94ZlBX4LOB!(|L5IDAsY+`6XJv?SAJl1aLWo+%qIMps!zk-=4ki;alQ; z?L}Qy2yj5Ygn;`2>FBVTcLxPnFipsGskW+GeoE8a!slLQe8_l`ADrg#`{KkiSq5?6F4$TU1SAdwiqdT`%%eCa+J(!PUsxyKJ0v>{Tp|sS{5M=D;$z&WL zVlT!l^pVV@*{(B66Vn|8XO z+%D7|v*Mh5E73+=*_98hDzDgHyzsc|r#YG9W0Hv3XuRq+K0ab%w+hYHrZ52~WuiR}2%Kcea+N1Y)5gXpwONQ& zU$W$$S-D(Dw`s`)DJe(j|D5BHk+Aa z(hfh~aKx2Oeth;a0RX5P4p66FY$zZkp+OsHl<2QmVvN51=?ffWle% zALrvV*wr_rw5DYFDaUQu8RyFE-@N=y>&}|CWEC_rGGfiz6uz&t#{SFC|FV@zlb${& z`SIv}ME*pN!*9OzBYV56$ucG1;@6z|t@TXw^Lzar8d4|bG>&K_5-jzfKl6*$P+slY zN^4^Q+N0~fG6yTqL|F}xH~F}^Gy2ADeBY=awvlc4=r$-opTP5Gw6?>A60Se?nn$dz zK4Xs!LpFe1{D*z`91!YjdMOa>{4U1^(4H(+ppWJRYDYrb(7u$p}~8=Yew=09cj$RGXhDW1wpXCGP7wBN0AH>%S?x)uWN2dTHiw(ffh zpmDSy!6!iso^&7>peDw-Sxp5?0u3Xk$2WIWASEyv&Cj_hV`o<=Hy5@qezA7doapG` zE5tc`;O_Ve%@?qRqaT+Xow>dikC-=>$UGJ8K!idB7JuIsvX1RmkpcM-ZTEKj;_`RiY z<&SWJP>cJVs`3hVOEiFR%QHH$S=*zps|daC^1CY_=Zp6}Zru`u-W}?+hKg!yQB?c) z-+kH2E@jw-s>Alw@$*hQ5Rl?q@4RN$`n&8)7oN1z?0oxhsLMtN2W@a+))K}??2NP! z|KX`nm|ClU!gC=7?j;KNMPN;FxwZXt$d2UW|9tOP*YJH3bM?sBn01RUFHR^Bpf);} zmc@s)={Y_srGn8Zw^^Gg4K%SbO=-)rkV=!gg((NR<5~u7bvD}_KVOoSn}SmUptGUM zIg;n+`T6PA(L7=mN3v`@Zq#yTi(IamV5A5^nfO`v!}P$ zX=5L*lRGh;o1N7Lf#@(iJ!v(`S@z_q^R7bCbqqjxwMEZ!p3kY;!>)Z(at-vx)sJj= ze%kV7F@Po8gyyRM>eNftIn*x;E4fAy;LaEfHba8>k3u|c$)CJGX=}0{wqLQD(h3Dy zz2OFD4=A*yBJho@<~UbK6LLMYAi({yHY@!2_U+jyQ)n2S_|16166NJNdo^x_MaA$h{jld;ms_o442wB`Tlv%g^ZS#sf|JsL2g91C(!#DB_zl9VCDX>Kfc;<+ZydcJx z0E1k`G`E=L-E+GdFF8W9kG?>NTT(zBk;6?0tRL3A?Uv{6-V<8GJD>KrNLi3?bm)_j zEx;l}7eoLJ6Vc+%w~q-LFgjcQVTlBPrRlnr78N^<0y@cq96Mc8`X4{+-EA}aBwBfy zH04ATe4#r)M)X1(a%gZ#Zf52zt3rT_18;5+jo(;Qj8Du-+j7yea+ zU!j3t#}#4gMis(uAq7GT+#?k5EUPdl*Uncp*zi(dULNZLbEnAQ7HlwQRj9XJ^YnPR zRg|%~6rc^i(?rG*U>)u9q@*C&B;^D8;K~Hh7Vw?>0CAUfoS$EGT9}@fazDxccJVtD zLt=4KX5;ZgcBNVKkhJabmpm(QxL6=L{>*z6R22ZZL2hFlAQ@y6$!FPVpW+S&P#O6P zK290%Yk&?k<8wu0wA@JmuzX62N?d!ITAQswpt~SXH+MLCM9SE;1A>tfetmo7XBKU_ zBXx(|h5+-=lmOnQ?hgBw5 zKnS^3!+K#_G{6z{sT^>QaezwwL*d|gKRz z;v2Wy_uH){<-)g!b5SgdO89J;_7?@1bE3xwd==|ec*c=RT(Sk5+xx55ds~}m-sayo zYT)0u0Vyvr??cP2Xt#@Ly1Boxx6@uYbk6EZD;*!*jPFOces$e=!?1{|D7aw-7~Q|o z_ebZm)$cwZFBAIby)5|32XD&?^0NKT=YK`*s&MV%p6I&xXTsyoQXmA}cb1-EZXpG> zMF9Xl2l9zAlU6g$ZDqbsA7+9`O~X$+rrH8HlY>RMp8y;wL+?e2Q1x-J+0f{|; zCJ%kJ(}^*GMowSXq60xF18qk?W|s9GOOdSXG#eS6(`LYe3&_W!$KMld+YtOtroPkj z^81bk03>CM1+)chM^GD75aXKiO4p2yz-#hG5Jvk1-+^5UB3Lf1Nn8^6#62^!a+x5| zVnOw38|<@00p`VtY4-QmKD3P79A|PoBvZyD35v-AQZfacXG?o^Qegb6J&i6%UA5c- zpcy}@V1fNTJ$8RdjaB3n*bDbR=8Iyv?V5R`%`2C}FChg&3fvXCo%;w+Vqi(UT4=K#oL9e_qx2(%Fml`G^}bU+?v5Lq09?5Bzr@{M6cK#;rtiS$>k{ zD$QY(MStQ#<|jQ(c3Rr)0OzlN{4;w@n)84{BrG+_2Y{hd{%`Z7(Z_cJgU{*~uIq-~ zCXK7hmj0+u6Eq&zR5HKE}3<8p1p#>R|(7igSfvB5Jp%RL*F5MJ93 z1y=VD03AVc8T<4X)-%YG>DtiayT5-sW!~(&V_Tfytm1f^H_lAJ`UDH)z zMel721gsaKCs?dt%6xCPnARc3vGz(7$X-|)Z=KE4mXjzyty+{bc?9sRY1}t1&8x#X(`2q`{c`ZdDbdxQJK?hLcj-1?9mb=NQ>+2ov5+s1O|f!dbS!1AWpYPqmDUjF`0Bd4{}dD{EX3J{DF4uR~*d#{o~T1ol_SMMA0r-)jm8 zuETqSS7V4FQ)MmWvju#dtZ8sf^9yW8hkZ6qJnh3{NP&<7J5PamnLz_=jw*O4LDvC$ z#CpUhcD}4Nb5uE_LyH!_oFsn724n!f!n5Fw@GSs?Wbwbbxp`?~i}&ij1#LRc>yrU< zSK?mgdU!K!AZWGoneKQrd>mjX(8gv%b6$(<{ET!np=j6g6Lz}>8ruX*u zx!|a1XQKfOkWZa_3g!%4a`-dBeBpnQM{|3db!tNyEqMGMlXxzu>yp(~)!6lxCIw(^ zx9W;2H;4G=ck9R;2fr_p<~Z}th+=`@w-yt1Tn`M-Oj<#GV8V`U=@;J{)u&kjQQqus zwz}dnCyxReMkn&A(S~oU%9>T&kZT`y(<`q0Q3YDXeGMBP=VWd1txF0Hs{TDzR3RVu z3NV|J;5Lw@S>ood=zQYy@L~Db}X;No;-8G(aO)IzHY%d@xOwjKSv&X=b68e zulkmeKFdl@bMGFT0Q!{VYwatO~Ibb#*W9^2VpzTcz!hq2BE9q|ac4?Ci8J+k<)E^!ar}xz*y`mm~=NXc3tNRiD*%Ae?K5|xDqNS&& z?|*(X&oL1?qtJ^mT%mvzfeuY73lb~f49 z9(q=>KnOC9Y!rLG8+hPBa3RfZ2f9nM zU5n$S)Oo9JNS0v80)Ahu({_ZenkzM-%QMLQlJ#{iIp7+w9k9YDG^Mh0q_I7)Xu0_d zx4J;_H{PKmf}7&j>0y!SHnm~2sDx9fR6eO5gANTi6w$xARu6P zdIrL70N6}Sj@iJd7Ot}j-a9)lfmoW4`sYmK^)8Zab$KO4xy46NZd4(wzB)PpdP%z< z(7m;@&5i2?Rjq$^${sDMwg(=$U{|_Y?ZHDQtx}6H5{sQenHvL`eeT2sCuINSTdz0` z4S*(iLcD}QG#963Ha;$ad|IGJW?Z5@P+o8KMP*i9SnBek4qlLVC&E7=1wsnkvlQ?= zjs}hh>?C;U=;)Z`N>TUf*bWaeuQ!)@9T z`9;5U^%K`Dz*4ln{j+|-+fY+y*W}WM1wXEA{5{dM*wOE*DE*%z8kLs{AXi`WfhGh+ z9F(OMns%hkk(xy<&#AL_HHxphn+ z>90KcSvUVj2a(;ViqPNpKlkAy_vQ9at*WTh`j_UMH6nCdmQ`M&=J2}eS~uVOalBF9 z{u)$Aiyh6^3H2v^%w~SRG&oUoK;EDYE>Df=hT3}TkZYW)&DZ2Ysm_h#ExA?j1&7B? zDd2fhun96@V-w@*p9KMc>Dp8&aeXzc_hCrN76eX(FEC#2RB~fo<0nTk8Q2);ltl~L z_{f$ivSxuF!}qX|p>0_A07N>_QT&Fn7d_|Psdn5=!m>ivaJ`*+px4W0M21USZZ z85?Lv>kl~|0lRg)5FpMv0@{6SEei4 z?c$5EBxC{B*=;?&_SMsmTCp~y=$oy8?UdvD=XCvH>y<3>{rBIH#{7uAHP~+D(suv1 zZ+y>w^RXAKS{vHDbG&=oNv@8OHh$;b*Q|GO#%<TIJS9kU625-KvBPj(X=H`u!$k-2p;4X z)f3Hv@v#}p&R?>;yfiH+5~YO{EGhuM(MCbg;^W)o1u2)w27kDZ#cj5<&2k0SJYIFw z4p-DzlQaiURySBtZvKik`h*rdfAjXM_R(;c9jUHW5V~pm=KHUkl=p2hJ=vttEwnKo&reLXlX=B<_)w))Yf+yspx!6y8f!iMGvP6$KuCeRp907a!_qJ=6o2Vg zuuMQ6K%c!zj{S=FrDw$3a4&r5M#=Cb7PHI=@K^X$S_D9!oWgQz$!VyKO~}eEOWMFm zG7%Ru=X^>^l4UN+9mDXLw6@drTfi@c=?_6cf7~%@zx`;Hoj+M?^H;|0&*UrorMlC0 zd92x{1#$qQ=H%o!FcJU>K!ZSPfar_NQIR>r)mHhkCAI zg}h(5`WAAH`_X*IwHo}Ne52ED@@Bvo)!G5Y`1zfZAOGyUT&vd6FSuhZp9MLaznIfM za_o%#`D@>|tBM&?CK|3y-T(kV07*naRIq?CMq+-X3%W;#tROzw{`-qBIxu-gWe;f+ zyHxk439$S2$8THT$dK~^kEuS-J5V@!aJU@r+#l$YB2cka?r$EeJnVe-QX4?V&C)9$ zzHOH~TkM7Nk6LX>g*NYp?c4HuUt3acnc7?c#AhJ*p}@HEn--M2Sz=rPvaw0TW>Kar z?HG%I?9R$U8ADG#(fRRQb!C-x_x5P~Hd>whJ`;l`1l>2I_|~pN^FdjZj1gQ{AUm4K zg|e`L)&SL9r}y)6^5ipp+5z0itM2?hcn2!V%H7yuTo9WAOCqdOsOzXKSO6~p1Q}0g zT4ObnBi`UPNkia$)4@VN0}$iZtVh)o z5dl-&To{i%|9yUEWaf};CwCeW>SO_p);qEVi*&$d$#(AdK5xlwR}T^pv{NmG@Lh0l67uMv~Q#2ZeNbG%DQA5=$Vqsp(MEuAn0iT zr~~NC&kt*Smx3!@t@oVZ4v-LhEU-S3Sm z6LrnsOZ)M^PKp<()IK_37vHc55^CKILThg_1r!|O%;DlZTw2R22T_C`$ ze7+YeAnJpKRd%SP(ki6EiXXt}Wyy;2=-{ehACN=j*5fFDIvDT7@)= z`5jA;=N+YyDwA7~Xf4;YX}%!yZfz0=b9u1n18jgt0qkHh4?vZdlO^-;S-D^sm#c#% zxm;LwE*O%f5$%FO!q%7Njzgf(kTwx)NdSeW$$n|DYprVk&6BnED=$9annAGWhYBj} ztTr}#M+WV|`s4O?+cgEqPIn7x7Pi@1kOG3>=3!F}^yMOFsfC-CK>^3`S$t#zlmKu? zFJNgG;3(R5h0?qOuw9A|<|G!?%u5`1B_R{&9~;lJvIaO;TxDJ3!TBcWG-k0o#r(gG9P)(L0qE{$h&v2-yW+tY|os&Ae!DhANjm$HLtyK*Vv>=_7MCV{%LYV~RA;pFDZq6%nnmzEPQgG>;xR?Z9^KyV})e zt=gP8Td2(m$@5MoppnQGkv?)VQ4HKb=$b4BBjvFj6KFM96hS)M5u zAK*P}Y;AUNbqb`l$#YzfzTf8)9%H9~f8X2W)`DQnM`|1N-Ul0VyywtAI$@EJCbt*# zryCd17w^z_59+cx;5Dy(Rj4QJ0K{YyZ$Za_;UViAlJ$=GTdsh2T+{gWgyYFmE;!Q1 z@cb$9O6HDZ4M!aKi3J4KzeC!bgJ+|d!v+U*B%n7;(eqlDljj>ZXMf;+!3%Ne2A~ct z*{EP_`o#Fd8aP$_j&U2SD^vQ3Ibc-Qfmw@jZu68pW1Rzh`O!z}LcW0Cq>8*En{E8S zxqQjfIp)}Z_ml6~uRr;s6=^e$`qI8wl9%_$pAXM<^!M0*eE%o5D0!<=Zh4=7;%OJ4 zocy-aj#%mw-V+-ILcl#XI)!(I6xb6A;KP*V7?Uu-`+-XmEC8L|T10;|mq=(0erx`^ zrxR_(WsauDNIQdRm5F;+K|QA?C0OYD%(R5~gas=u$LAu8v0!6jUlB)DM|el5M6g&_ z5Z8UQ63ub7y7c4uZK+VT6A?9=y0r8$%;t&zaz;mpje&CE|(?U6XE zs!P{GVcCWTr1>y5Ex`uOwPnjMi?_UjB$cu3z@J;o*xGCzjPFKwtQffWdjv>o9I*D++o;^w~maywgl#09ED zyD~Zf{y1)-d$((r7@cqUJ)}TLfxC|a1n9zjNRs9d+;}8LG%WY3C7v&5;JFlSOeRbv*@<%kd1bxS^y#Qg&S*g`OE(sy z$!QCA_MsF3R@#JYo3glx1pCU-qjvU4xm>-Jx_n`v<#N~XTc7zQ$ArJ}&a28}+5zCH z6B$;J9{|tzdIh*AxV5X-1_YwM1UamgW^u7-+T79VwC5a?U*kD=dyX^)x}{+TPX~Y- z6dwn0sVuF~9F?I*1HQe+ZGb}CDoCp{mtG`&}Pwi*B z)FW{1!@hQ_tEi3u<%>=eJV&$IfBwKTcEZOEQTdTaTwhQh{$*&+dgkndcCxD8ekjX> z_j=mpq9@n#WS$176vQm@Pu_O(Z~H;|m!V0J^Iw!JHvkgqzM10@ZLA zb55>!hNa>Edgpb$gGIr(xYUn6T34=8X8xM9=8#1O;8c^` zRm@6D-uaFf?Oi_6_1dfw;q{v+0Q~?|PaQe#K*09y4)+cctQnr=`@lcMct^ZnecoTc zBge>Cq`s>Y^`w1R1vyJ8-CH1jMnK9wxy)h{lGqWsvL52T5O}|tg3ymokLCh`7&Grc zqaw{C%nQ7m)8f}-;?cLzGtmdD^NuC2=zDx$l25VfoR^epvx|ybvz(xKGud)Cwq$<<=>GIe8@%I<48?kwH7mlW$<7G3x7`_5A!1l)I?reTgD z1#X)HXr4H+hj}94mA9SO-TL6_Idb*yyR}^#)!TKqCdYKSl1WOLlScER0~P?4M@Ocm z!5wHkGjS(Nqhzp~K(f~fJPjCURfX_jH8vcvLY8TkOkBneH7?r zQf91Em_!SBNsE_D0^GR(sv|V5O*zi98B8!#N__Ze)JuCx#Nn=7Ef4`1Z^}?NnG!fsbsDMvIV(HxYE~Uzxl{#S2Pv4#|u$> z4?%XQ5T=j<2b%((f91BLf zW$|hD51zPxrQHKhLzkjCHpoeUnyc$$z^NSZVokIO283k)VVe5rWZL- z>bOw~_Ys#VM=rSt{@SlL^8rN0O&8Z!%lbE-J~-caR~Z*E z?07}3b6xhwul$`=X6I{u{fy<~9ze;@P3zSwJiqr8Nch)EdtYo=Vn~6I0?`!k3zTj# z-;es+Emztr@PTuPfA|4f!;ZNPtxLc-UXn`&CYTfflvdjz^u$Pn;MU^ z;h||OEKStCftHr$;ya$)VuSXmCioBrctD^*aK9l$1YkRWcYD)}wOm=Y;Xe8O?N@a9 zZkgnd%U5Z3g4!%UhSA`Jdr@vQk@k{DdWKxZB+IqTQm36bS!m^z@{O1#Kpi)_5t@)s zkb)B~Urt1>M=r*E;Qd74BQRY3f4lO}XKWOMbn^o2?mOR}z zyFa`hQXr(jT}T1(BHnR;v{$ZuXi4b;rv>~t5#l!a+wD>z;I}GNmP4bn9hN2FJS&H~ z&C0b`f@Nppw^lA;*nm}{dIXDuQ7>o_+NYQtL%oSMJDDWQE^S6?^Et0DQL$Zc6UK%q zb4#3nj4`{f>ag=G4EP<0EO#o$w1`fY`hpn# zQ9D;sZ8dV`0{?eYX3!~{lyLK9pLe?Gb50gkHCcH!FR=Zy$Im<8?#ySjleAicE_%p$ z+WGmbQ0DXJY7U!1u-YdbEjA^MzifdhxDCABx%lRq$NtN;Q4~ti+&ex$Ym=j+c2pn+ zw1uWz-!SPqcjOCb%#Rh}06Z)Z5UUFp2v_Ge8~+%-tV0UKN&(N5y9WF0@<5m6N{b3+8>WLp0nMXM+d4Hp zURr(2HZnY8LxT&_sLODZv(o|-IlNg}hCt?FT~Ey*IGO4viTu)L;j2P$@TAx zvORW*@-buyP;VxbV+&)?|pE5DN0KgMa2e6$)ez7LX;%=UC^@#kA_4)9=kOCnEwod{01!*hq?(LN7-gmw0 zms=a{)sAZlZkg{~b?h~O8C`dA9{tl|ad}$)#l|Gh%v-{2o-DGY9WK{-ES~weBsu{q z&dkm$s9dT7O=mh#J}F6N<5O}W(=sJ3ce!@S1RPXwGXWW6+FY2`CTG0@RRSbB&_Ybl zl^fx`e$j~r@`DNfdEpp)$s)jV8pYV_L1s{YZ-vbNtK(O75HY2ZnOVR zUamemf$4jiHbACSUc3CyGQSagaILgf9sHc*f%a)_@b>oixw<=Te$5kHBhmI@&AAU( zAJIlbfjj4E;C^iJ5A~sZ`U#-?bj=~Rfk8GN3|OnqYZc@3V$P)A#4|ZlUT2*>oz^N} z^ZBBu_b0v9^SgPD_XlnL_j_919DGq!gdq1 zUjf`B8pOAgC+%QNQYYM75Qm^cAP))=E*?QF@4%{p_lm!*Dt2G}WIXf!;XV<5QYat! z_j>a0gy(S{c<&qR7htFW*IKj0#8dBaLP00S#(*{>&|>Gi=jXoZ+~eq}W0*FkfFE}w z+At*kil6s3eroNj^aC43^O8G;)jwZ*_&En?J09uflC>Y*(pfK?UF&MKOM_ijK%jOh zUHN_obkEnh#*sej@9VRgqEe@v#dSY-f8)(p?9Js1U32q|#yQ@~HPE|63>@!tC#zFrG85H$Y^ zXik<36tU;UcnK9uq=Csj0tS<*eoCNSmWg+YjSQk8!H)TQncjS!XSGIf_p=`4!*6%~ z=3BS*3oRe&i)N#6fR#k?2?EjkrO7zhlO!L%nOe|Oeqb`qjd}TLHZPy-oh@kklMmMw z1Z+OIhu=Jdw*S=hgf+>pZdF;OTRbjHyKFZE4$22CmpCIg2}3qAHDQhN*?GRWS^!S2 zovb}<4=A#|U#xq<8lj2$Kmv~V)cv4W+6oGKir|INM{u{1(F9JcEd0*WW+r12+z?V2A*@IUImu%I1d zWtS{>Gqfe}bG~HRIVrk7OPjN^0_p+Ac`D9Q1?>FQ<+tqL{pjzkU;fbnCgHNa-O%2D z$87u0e*8Vh2N&ft7r*Z1#icf_xe2!~fJFXYa$lX?HRT703STAI9Uy3Q8LOZ1*Wkwh z^vr{0MJ3kO)!`P#Xu#t}hY$0ltAEhAAgc)PXET9o6Uw7m?m(L5hnqavv}oyUv&Ob& z>l^6T+$i7PqD`9Sr~jX9`W#pa zz<8U)V6Tt%TaL7C?sPDz1KSb%py3({3h=3&cez-}P#{nQc*ciMeC0PF#gfg*UwPt9 z*ZqB~kCG=OPy`=bu@FoY6aoO8Jh>iK%<9Ku{>|i%aEX~M!URI6TZkxgm%qwsZ@)rL`z9eQM6Y4u<-dtfyV{7?kF}HW+4SZdaAt4PbTe|YvWd;HXSnW5KMru^H|Zt6~o z?k|3Go^x2SeCO)Vqy?AjOxangH_LzESI#_Yrv=)3p^tl4=RrQ3CKbeUXigxo;1htDj(@;I93O#~@GrP0`nl-u z+)Lga1HIxa@4Mh!p4Ud-x1H~l0WgkL4@WkE6Ll1aa^Ue=e2QmC#I6eqG)%H$%qZMjn6U|IO>r{c? zXs@qFx9GeGaEBHvK8!u+?i#wzALhXhX}0550Cx-h+N_ng9j6h?{0N_>jlLiK*Z~aS z9IkUZd%A2y?keyfUr|!#0&Sz=$A|mJC&r!T{fO$Ok!DXEJ>&erQYByab*dNBY4YGh zkNWR1J-E(IJ`ZGE0J;-0i|>`|g=^CCE0hmfXhOUAxTJ!EHzD}R^E;Vb+eB+N1Kc=Y zRK4^aD>Ez-eBZ2BrhlH}sC>6y9qw^5JU*F4u=O5`={z*p2@Q8&n5P}IC!Rot#$;<} zn?{W}s}29&dipy}eZBAgH~DZc&l7-kULQ7v4r=m!pDZv9pXRtzNfS-i<0bbRom~6% zcJkg3D*%3lE3Giypa8s|AhR49Cv3#|_wdGD;kS(_;OWJDIzB$(<_+(j&0pK-`RHr# zICy*4$bg+xyptF1e{7{cwwhOTzW%$LC-uY68(63R`1%JjcT1FYUSOrSx*YDs$|^zb z_6Fvr?8;EDz1MNwJ{jt^a|IQ4@z5#zt2cgV$BN4Bt53e*HtGk*N9@&0@4C%ze7F1Z zd_BVB{-VIaohA2IKZLb8=oE+u<+BTOx1~9B(8+f%wm((DLoGg7jMKj8$y9T*TgNTT z%N(r`a2oJ^ShkGJWfx>LIfcdD#`$c8)@bpKk4&sA zKBxn0=m6}e>;QziN%+va;P0E8G`sY(aS2xls!4h_0AR+)=B>ATLOy=AC{8GqX1m-J zh!(b-Du3`ZHY#^Khfk!s{I|R2h3;q}j!P>tWp=?Xme$*&`aG+kae(a6iFT~Fy!M(7 z_0q)uN9Uiizx?Q@MsU48X-ocG)iJwp70@$7vMyL|Y)UcGL+pzy(v z0wD!fC;*=z0Zg%=epi+y-}&@C%T~b7i*+Xykg-97L7?EM#AD>;9;yVY8T`mL_0%nsK!Sc@#A zyz8^IKy;Uv%ECPi?l^j+QI7V0G>y536n&20oX7o4zW^893LLF#FxRBpq;dbx&4GLt8g4wei3`1mfkr;5)8p*ht_WtQ7cNAa_HRWfi(-6CrdD+vkh&<7B(z z!{@iwkum@R*}xdprWfz(K}w8!-pfKQMutX)6(2(`qQsXNFS|+iyM@Ln#0e2^fi{)p zS~CO&F?UP#_f0){&lpd*5hY%YhTTf?*H%uf@x}83)<)w}o{FEDw-+y7ba~Q0Y`E@3 zTB%m#%lP!9bq;*(JWMw)p+)mam<})n=zaj{ z%xndU%bv5zi8=YNO?B>60IWtf(3tY&&_`&r#P^EW_rn5u4(Z! zmue}g0y^}lWpDd6902+<)ICExk*4f}Mg-^vP#Y*usnpI&~$${Ihi6U9}Q zs>Pn;VFGAyQ3aTo#P@hvFu zI|FjiCIC^&?^M9A46)>j%v`rPO;EiE%GxF0+s)Fvt`N{d-RA_bkkB3*(;~A^&%Gq` z=O<(ZL|Xu5>MD!upa1Gp*4aC(AbV5N7SFODzIDa^bvfqpVMZjPh{o$hdgN0XU{xjzyG6e+Q*aEtwdmUjx^;z zZMtr!4j&KZR$msGhz`(z)Gl{0&7Ey_sH#@rcaj4o9p_ge^bIK*u&2Ik5&(+h5(dz{ zp{8B{eBgqCdO09d_W)Kdsxj`U@;Q%xZ8jDtAOGe6SR~KSp(h`HCy4%7Grjo0<8Dmt zB!J)w-K9USZE6FX3BUZOKJQXc6=7xJg$u zWS;YM*iJR+59-k~Gimo%Hdwkg%VJGl0w~o+OhIy*&B)~eZjZ<_CgC8~g1C=&V2yWV zD_L+aYGItNxvzD4z{yq~Z0{Q$v~I~(XB&>%Z$1A-*Dl7} zZt=F8YZ?B!T?z!Vwm5G6bhX%b0FSUaHB_6rJgxGN~2Nf!YDH!t%=QsJ{6dVjB__seLqQ;Rhy3}RZ6%ugL z5;vvKdXz(m0X%9O?6rr>>TUwtx#qRj*L!~Tc?2S!Bh@I#+CO{t7o8?L!s2cSOk1tr z>iUMiLkffx*q8$Ty+zaWCzs#1mzyt1Ln*@=WXS?Qg7;?0rOAXWWM1oQcJDdQcs>y9 zlZq$kKRht_1n?c-9XK!GB0(7ebmNAFBbrbgQv`es$dy66T+uaT)LFcECX0GsuZ?TJ z_Enw*EWi}HUGA>V%cS}9=P$a=PnWN12~Wot`fH!i=F19bnjv590_63tL)zmR!j%8X zBcHWH<<+hbzX%O@bew!h=erLVkJJ=d@5@bgtTe~9H>i6s4>DKG$c0!!(!8Z-p(z;f zPoDD&OfEybN*6wFZcNS;IpKP!V>$JpZl_X_ubd+FW!I6xz)%M zNZQufW_8uI?tV|dI6cGM)!Nza>ee8zeMt01BR(&(!9kuA6BDlUvIM$CZ+cK$+Fnsw zW{s`Q&SyLTya(ghh)B@}vL-uGPKg2IlO9H!-_M=C9sV-EsV8l3m#eY|6it5^W+Cxh!JM&(k|YU{FnNkzJk`uw2PL#0iKskK3yAHXowi@C)9J zI*siyxx}F#c>n#!$q`ZS5xfdTA=*XX)l^hjV|$Bay>!LwrQsN8y7?q8n1bgSUh)<276hy8%Ofx4$w|uY2r$hi|0As6>zq_tj--R zi}A(g!}RpDH7VvsmgE5}KuDf{-O&o(MTOt;u8Q}t-hfTyw=z`0#gYKmow_pTml zJP&VUb8t)+WyE`F$jG;^Jn@obv?@ml=J=gVZ(jY#KIv|?#nEj0#+y=BkXzW|tO8k3 z$@l#9qJ8}Cq}3dmv6@4vPT}pQvJn`Rs53m2Pon0wKY#OO%T3L&V`bHL;pi#nI*|L= zM7V`UTnN*?qd*9_@4GGuD|FB(0DonP)!5Z;9}ad}l{5rcKqA0|>0nZTuE*poD<{cL zU(ne2L_S)Fv2I$+g1lk~H@H)vX;} zT_o&G&dpfna=blrI?$SQb6!}$ia9?Suqa(CZN_U@}-O-yo5F9CEA1g8mtF;MnuXN}C^F z@FaqF=jO-{xj;t}WswhnU%o&%v_JFYa>8l+J4>!WtIgfK#vh*NvsR)l)N4lO=84+0 ze*E}(ciY{f-5%X0#sTeN1L@bF|0R2<`Ko>A^1Ie6w|Z3t#cp#6S4jY)4PZ4v0@DoDZr0Gey&GLcWdNXWoTu2^3|ub));aZ*7)P;ez>I4zS;Dl z>*E{=Ajy(dco*Gf5d(ki?p!0sy*ULRIx)60WrbK)SnLA& z9y@fzjdj22xBC9={-zGT4}E?7Z=W~k0lf(Ziww$dz;N1zf(Q3gZ~wf1ZYxKgjV_nI zpP!p|!5qi5`Nn44K}&wzl$Dga%|-Yfd=FahM2e>OPUN@KdHC^!H3)nOS7ij}E-EbA z_9pmF*Y$45kN#%kESi@%g)0H)>Ef$XIv&X^uuI*o^6Nfk$(py>2>0WSxq!Zyk*nTT z#keU0J)2gA8-5p zy|^33+FsN#1l;$6%3&EH1=gVe43kNLg~Sg&dDk*!LJY%2vn*ty>k#dLoMr;P0lFvJ z#K?T0Eu!=3@>!mijv&G!h(+YaMB(zx6yQb_%fIOvH01!Q6KrN$8bKRpx8YScrpZUz z?PN-zI0O-2oNJeGpwzSkJ9;|Vu3w(8!9fMflV3ikxu7=9E{$5gaQdV;0+Ft2UnHZ| zK+4*c@};hQb+fa8BA8Yerez9{3H;*nUT!bfpj7e+1*XkZgg zMKY+=rs_ZbxfkuNE0IJx(uTJ1hferr!IqXP4n~59G7-zqW$SR9d^7} zu5q-n+B+djro<&XbkeM}QgJ#oH;`7yr|*sg`a?cwdo5{k+t}0L0QZ~f>z<^{pwC)# z&y0N1fAyIc?F&;++f`}k{@<_ut$_1(x0o$(?lA)Ga$L7nmPvD5#p6pAElyl;G_|!z zE56;imLZTTK>O9EMpqKx9-Ge8i+OcOTAu*-b(Pg_QOKbO98pFRip!KYq`C)b^=m$^U&pW{%qcL5moGT}^dB_MG~Wjf`u} zjndMtaUh@9tOcL}1o7k1$s#Iet>lI@nQH7|A>k53ZtdG|$-?&|@f!ZygqQ5SmaBF} zeZDN&ra<*gQ>+2rBigu|iFz>3JuPD?%a29ItWW;jdcXa7{Jj^+eHI%ayc6)DOlkFE zeSm^Qtn~Bwt#_nd35f#Al%;!*BjbfW^)%&O81U#yhrbiw{Y4|v~}+pV^iaadi97O6C@R0lp~iVydR|fROdD6yI)SiGQ_vx z>uj766T!O>^XJl;4-!)y&0jqCi1myO+s}r(tXi9Yfx@E1E%61c?Gok|>~r;}>_NrJ z0;neW&CwWH`=*p(48R9S6I0WcJ62%zCHW>@Ey)Z4FJR;^EC_g)jFOd=VO@%2lV5~I zx%io$cbn&GGjY9g6O!$`0;C=*tFdayR~b>7W1iQA|a7pcd;wuEoi}DD5K!LJvTXNyweC z(kl5zmbpIb+pV?*dhi^JGF&~KEUjJ<)^_6H*|gz@Aco_ZOEQSG)gz z_TD_o&+EMJdocUH@B4z400EF7NQt{hY9S@rk`v30YfDMo)M=VDX`7z(^qiiiCw2Qr zPTHQFE^!?-&2qfNm2JhcC0PmbwB_mdqrjoq;p?OfZa&ns+ZV85juoOOJ{;Qj z#ei;-1Df%*($GCv+hp%tJZ;~VN<^KqEBiFr3=n)oJ5XqIavQ zbNaNL>@26Bf#VuK$N)|F4uO4*wGD1K6?xvOBVSN|3`~q#!BUES_0ebjH{pgn-fA3o z;(gLi-YCZ`0qeU(E3>P#%DM%pV>1B21o=fEYcxsW6hf%?9X;Lt9#nR;Dg3cvGA0d3 z$|7h$dPyegLdd7fRBd@i9J(XgAbGH{)!$iNhl2mrS5LccQl~0p8{lB$PTM2UBwL_! z_duWZO^&&}0f3eDI?_zr9hcU0Q9)r;wg@Mxip#-}#?aovcK|@Xd-{1{)jP{CCw(Cg z;gfXx#$OdSAp5x5UY7vJJkcNU8~GF7W;p1m#x)n~8|=4X0q7VCrXNd_7AtwhA%j8D zMxf}?AgUW=P5r=Nago4J9WavvN+S0Oq-BTtcyIL0~kSJc~M2 zg3O|JofzAe+j*i6s~$nsf?PwrMlM?+XTlF*hwpx4)gR&xX`0q)ica-E7<}H@BqQnS zgM8ypezqcwtCDih{G|7%9gnD;oo+ktN{LX0^{Nl;5mo~4`i$z$m-ZdC2b*^J#%#BM z_4m4D_*vTQJeyQ~W0U)cPTT$R(PwSH`eNuo!-h@rCeW=4&ihxDF&p^befOvK+NE=r zIwix&J7llNyZV*>FVq9BvuX?F)tZZGPNUh3^f4A~Y*?oXA9&PW)F#3q&0(<1!(0MK z+raT|2*+>4f3}4L)<#~oMbhI$#uC{65(u3p+G$1N5S`b=BW;H!$-dm!{`re@uyF}6 z&(nB%m1CS`v61Xn`$>Mb`a5rCX9Gm9Pz)@`!$X1A)I|)oVKjAB^s9rr?r*|j0>Y8X zvXY3}ATf9Ke1*xY*L`jO!?9jgJ!dId7||QGTmdOH`PHr^H9a{PMmXSEt?0sCa$4&meI{ZLIS1YYfw6I6iXJJQURsaW6 z3i|a$?W6)yp}`A)%#my87P19Uh426nQnh)&Mq`uJF5kaa@>#rwem(f%d&@i|_D^nm%uy#?~oa?@1d+VEhF2!;-*%3cL93RrnhjF7>8r8q`?3eAK zvnOmw;OJ`~zH50Z%X;y71KI%y;SXTta$m2@k4=u<&8^NM4%JD%w0m1cJ#*&bIV%?M z1}8j#9$+6D@Bno|&dF)o$am698BQy{+3^Yc`V%k8z-Pp7e?7TxB#t}j7x_?P_?gitVn#;H+)#(JdNxg?^prfbD=Mv;$TEGi+4Y^zvU{fo~ zM)T3V|H&iZZC>l)IHXToC>iqDh#9-E2pgfI+kkXqULI zD<2z7NPE{M2Wrt!PstRwzcwNIbrOfX=S#B{fFF7r+6DkTWgPlMqT(KgT}z6KwFx#U z+YmDpQX&=f1D{M#bW8P6kHT~E3+N88+S1VEFSUuQyFs=(u+P9I=T^x1lc~G=?s#30 zppZ3oE4q6xYYduj*#%jKRBPGc^7j&uOu6zt^_NGX9!I|^1KG0DSXHQgl?@f*;8_6a z3HMgzPI$ya*dZ;1i(4yf>e#So%!ajzgB=%acF)=yJ$gI-yAcUc1{2z--rKy> z#--){md4^@$+k##VtVGL>{9~L_c!hIew}cie&Au-FKRoCiJt54@>7OSJ@}+3UFtmA zP?t7)eDwOFIyl&9>mveCxIAn-*!b7C-`2J0E@Be+(PS~)xt6--+}kF2KRe0?{S{4mH^s& z8j3X-NB7a><5(`ByT;rNJKkB6wjP@CIR&#eIX<@xV0&PC&Okn)`&qJdmz&^tznQq0 z9I*I78;$QAr&P){`HT{d*1Ru%rCG@&8SdLb?dSsvWec<_FR6$YOqzTs)mGEE!`jbE zJ8g8yGPBZ^PA!OaByV0v1apfPZC39sjbW%O(t26cqH#V4z zifA)>?Kh7;Zw)$C00%eY)n>b};P-G{aFO(a3^zNzc;5zY9p$!cF~L<5D9*#Uh3fgN~PKSf*E3K!B$`YA7$m1q9eVk3|AuYk5_Lhlin z$p!-V%S+3A0}Jq+699mo>Dox-cYVT0CFu%jKGe2x1(L$Oqy@!JII^95*Y(NBlqBvzjNjLq#Sf$f|etC2kbPA_2?9;2cE@e^Ornyk+ap3;AN zf2s1}G!(|r`8=|Fe^du37&*!*Z1Atdvbo=w&zu<_w0)ux8ob=6`Y&2lofyxP;=-Kf zC8|2^lvS;V)%&ZT)c&Bf+oLt{*vyobi(?+z8(bLA<2vNxxF`O^lrr~3F~*tLt`eX# zWuRx^Kx5+6&}A#qF~!x3fbE*UINj@%0P|4|$eK6EXz7CW^~~Gwz>yDI3mD{R<0F(o$F~ zpu?i0s7$zbq|94>@uD^D%CzEAv<+wUiH@mS>a11PUGZmW8Mh)Y=%`{Xpt9BfR?LO{3VvaeJz2+8p_9Tcs7Tm>Gn?d1*a$BxIBI0Y8Qcnx}R7Ku6};Y zzm+KZDEd%7!2y5)CIAS)t&Apcf#_n&%gU^xw8Q~-Kz9d_Gcs*TN3&as%59HmR!B2B z3Hc3SZuCmu?qNwTzb7F3t$_~PRa5Wa+zxG`9&C_ipwb!SMm|cU%{ZxX;^nvcY@%1T zGz#*xnUEy_J40IeSvEVFW?dcAR$R8jvU1XVLpEDL>zoq%-i1@Pzq(O0B$1)S(03Dl zG$J`ZulS;zg#6);bU^X<_}+suHa>12OKYx7nzaBa9BqdlrmDQsy2a5=e8?1#h@WFmZkMz?;T#7ba)96#%09@3^29)GuBEy$HRg~!3whjV*{tQC{17f-`o~M} z>Ut2;vzhU(PD_ZN(`KhS+iXUvv6-4{gfa~N@rQf?WC7lxbO5}G?n~oP8zInr3~0lI zO_O|qb(EKv3ALO5gh4qfj0OG1IPT%bUCSUZ&)4hl8~k(qu>G8!9PYJpX=$=SgF!q1 zL?}{v^~q5^#qL6K9ig15bIFu4LFNF_Yz$o#Z#p1%tqe3m+d*9`Q{CkX-~Eu*7HmLJ zmdSP<)|-!w`h%7wKQC{EzGnk6TaHU@lJX6j#(>+%f;I(cj*M_ThrYxqV^p?iw*!pA zBaeJmw~0_5ynibn;)YwAd33MlyHf(p!fArlapL#Bb89pc`hIT{Dj&b9UQniMeJEGT zFHL|Y>k8U2V-wo#)N6jD0X?Apb!>b*q8HLT+~-|fXeXYOYt%t6E2YcpnbHOQ7Yajc zRiL&P%ev zP$s$Nst?Q58aT^(MH};1M4blB7)H(+wtaj`lyw*nLf!IB8x{Umg6)9$bLx+Fs4krE z@3u~@8DHG}pndMpgZ6*__>@%^W{XBF(rsqT9|NlLYRB5NM&7%_Dn*@o<;o80l2O-R zeBh`XMJ3(LKVo-pNgxK?@2&ETbF&R4z@WhZfp*TjUFV%!Gz=WuFgtOQZ$<)|6fhs` z?VhvFwkx(cr$yIdhORm$JhDT;`ujH~fgUr>iEXG)yr?6SHZUS? z;l&vNDVnHCd%+FjXmJ}BKVh=Ol{FRoc7;Xa;4BvSULpXdJXKd|yDLwbGQ3(^DT8F? zDOOgsLx%Ozt+<>8wkr^9I3LM*X3@q(4Q;sQ(n_D;k;ag|WWVwESOT#G?oSE$f?XXB znxk)?{m{l1wV^4Rk5PdDP#3HQ6TJV>Vv6^+(yi4`5houOiF|gXNaJ%(8?M@botqU< zW$Dto%CX{N@wO{*t%c>zk4ie#rQWgwaKVu_7MSB#7A#*NBMVkeIUTNRb$}4bu#l#| zWur57KFj{#m2PXTE%tUt`qD73xD-O*_K%hZ! zOwZ2FYFtdyhDMnHoJiw3Tj>hph`+FoKcpi#>XQRXx|J<3_03CXEp2w*wWrAsbH^a( z@XkiBAwJ50@0{8o%pkAi@WQT}^l^ol~2CYzFdUSH(>bQd6FrNr{ zQKDS#$PSHfsC_PVce-X|u0S2y1Aaq(PfjWee2^pe%Cpws4KQ7|Qu(uf&H#!`e0MrRiL)4LH&e(zZHZ z@$WSxAThcuB~Px``_RWw*2owNG&a==)ov(j442anV?zLcj2rY9JX5ud;!yOVErv3p z9dWV*4G1fh$5}Q(sIVFLw(wu<|z%CdG_K%Pek=KNj@R3@pb!4Ali1>{`rV=5KCa&N+1je z<%K0yAj{OV8hkP|$k3s0TgN17RpLFLA+xKV-OoQMW7b3odag&6|wkr(&To z?@ss0S7z3VMho1&R5R}1tYe}!r!=FvII8Qvc=gZhAAbI8glg}c``Dg8{Fn#5Ji)%% zh~oER3B(e(MRN4FC|dF|P>FqyIny6>Vs=qXGGDr=yPzPI#6L z_0L;x7suZPI_Mv1+>ttGjZFgKuS|O$f`5A4mAAv)jbEA9(7#q`zBAr)-l}z-(dKVe zcAje#5@LvlWBj-i=X(WuWcj$bq`rSSAJPniVk|c=!^Xz6FrQeEeUE6vbwOZ$m9!6s z1;G4^pZ%rf2`DcXfLfw>$^_C>NISJWzs#nmC5O>T0g`Fb5H7OPqFhfOeLG+c01ww+ zc=Q>|{UF=E`Sy>jR%zy>z=8k*z+1GG(K5y_6a;AH?QPj9U@$wq?%RFhO#P8+Id(NXjyo(kfX=0-sP-$2TeL&S5%@zO8H@|N+;+e;QoCg;Km=wl( zz7jtFf<|Dkj6lA8;vKsz!>oC#+no9$Ef@vmyQV2Rk(qB#isu|H(5-Z#{_U=+w>P@a z`zcW3BhA5udJ(SSez8KUe)F+u&#q3rkUclkbP;n{t&{ku7PY zFTapz_YdxQV0ois%i`XY4BTabsQA3!Q?gb{^7?6{o`kkRInW2w2H4>AzELMSI5m=; z$%&SN<&!Qni9o3Y&`vp`B*f_t%CcBC51=A)S{T)_5XbdXqjV?wiyQg7Z=Xx4uq;vx)v>b2x~JKA69cF?r{ z(j!mGhKe?3Qe_WE>s`q4e)p{(*mKSMWshc`eQ>7Vx`wBnM(kj9fjxVq*$(Y(@J+-Y ze{@WCJ>Iil`^;B-bAdTw7=N#ozxe+4lt2u)Z_jdzQ+*Fgpir7EHF-tWH8-uJ(fOJf z=$KOI)wfZ8S^sFh?I11_9Cw;Y!6VK*c^hVF%cLJnxeg56lskiD0I1Jyd-mL5%U0pbbqX3K_p$|S0)qS8T|wd|pe0H`n#yLLXpGq5R7;~ME?;~==;Km7Kq9tR&p zwftQ_!XhvD_lci`G%XF)2`&0cv=GMsAHDsG?JBFbAD?>9J|&ugT!AUEizN_C;Qp2X z{RIFJK;%JbLccfECEn+1@yvGm;vet{;25nuXe!W{>+ZYkpjl;kg)i!F=Qz)pqomlN z!1m4yGC-{{CoMYywtb^f)GjAaN;_W^EiDIYyl`){z`dCoP?}$4835{%-hf%M zZr&#J8Jr%rk0*NV!doNOkg`k93!H0}Fxa-2a5)J$%(d+c-7(On@&3~-(Pe>~ZeZVi```M`v>_-N+P^&=9_nBadNYX;c(a^pR|cl&anIN#nI#`K-`fjP`^hd@uauEa*G+ zcdHy}B;IrZYa`N3y`(7N1b2`>QcA&zY+pt~f|QM*pn_&cl9&z)Wd zY-|9m({ItoHmkot_V^7~{jg!p3l=A*>~BB$qSec$2G4PKL%Gn;FrF~}^1*Scu6uIG z8f1%%d;j*toA!Kli~ZeS{jv<|E~;)V>g3PLx)Hk`Uq1S@9ckHT71}hy-3@v3gv5U~ zT>>%SzUd;31B@lGF$vJYGLSF{XjDgiuJg3Wwr|du&&FcjeBX?RXiKAYHawsO?wBV3 za=8Vf1(8uRIJ{X1GgppXBms8*XD79oolmvQ95m{pN&Sj^0CdDDnvpJpr=o$WyfyhH z%YIqG(ibW#G2YBK%6^BqRSR>=1zgMsWXJNlG~%Q=80t70?HQS=Ha;dJSYrYq%2K^P z5TC!#muuCH>!dL`PXv+d2v;I@4S8Roc{(LiJs|&R>m^TeXon7PXrebMBgQkTv*l`! zXZkPO2STVGYuuf*XibhO{vJypmcaci0T%pd{?ez{CqSpw@&K3tCvhk$uIT`{IoqC!!WvhyF?Cp+8@5h$|@-O(7lcqas-V9N$bzYp2 zan%I@+0pVwrnz;ZE5&LXvwT5Zl$vWJL$g*kUufkOGIl79v>^L=&0GHT?G9-pFWGaC z?uy1O1*-rO%*r#V6bc3w` ze-R+yQ7!)ovgby~a{w`@mjDPKT|8^w|M(s26YX2AHiY0xC+!Yo`WUAql#-GJ=NYi{gFL? z=+SFVQP#|s;=$23REj!gN%fi22sqMBzIIpC*$+BS>f}YCIDIRnqxT@{a_XRb(lKr^0=B{mZlblMlN9eWA%ne%FA0qFAgSE^zNcFV4$KWu;i90IsE zXoIFuedVJ118*bOko}e=Dh_zLA43$-K&eyodu*Ixr-V%!Xo;Zt=#i0W>J1;tt4ts} z;4hnZY<9*#`{q_C+6=O$f4L;OtaP0+n}Qx@_`DUX-C%bCW2ZRU7UP-siRwS5Y3tLo z_MbfcrKsPeTs5!qacFasdDEeJUqs)g5a?e^a|&!!c4^M`c3PU&x=&U#+jILL^}OYZ z{xrB~jUW9&J~bMeltxapR7@@q8 z*4mExzaunzkyh?jLk+ClU6Xci42ik;@QP|Br1wozE z+|A<{l}6{ZxQe-_wV-(5(?r)J@LvnUIW6o+JK8QhpU{GSw=^(Q1tz3wk@`pPzh(d6 z@fYo>0}uOxmE(iB?bb#;(ea;H0hPkzJ&KO+0IP8R0(t?M z;rDhr7OfNGi|U&(kew=!VbS|N?Uh`EBNGC@hHYm<#il0@IbhWA3%eh( zZ@&AAz0`WpO0@vTg+7&`DU1#Kn#%2WU%zC#Dht$C2d-@wwE*)}QG(1{YSx_fcc)l) zdz!d)3k5Dl3tT{$w$lP=2PW;nksN`U`Yn34j2$vownJKHR~R7JaFDT0fuW5Rh4$)4 zJ+`m8LY&NnQ6wtIFjSKE85xw#U`JUp<2Rb?aAO15@S8kv#W_$a(AniKo?xg8FuDpb z5B&_!;iLu>0$hXwp+q21pfv!{hu;=(4=wB{u57;&&z$m?C-Aj*X4t;@%6IHn9(zvO zauJ_=NV6wojXxo+JnB-KUOsWm-XH9?a%tPOWS5AZW6{S(FB7FBs@Ycu#ItGv$bjJK z0WhYb1a97C;Q~Q@@{T*>C^m-B*`E@*o4k z{O+0K);B(4B|6;-*o<~Kn(m~Fdcp|@>J0q{;1t^6u8FVk*W;*-ywfi#q9Wxb7^5Vt zP`Qztm(h9xypA8jAS{er0-i&M2~yK+nYce1a^KqPVHAgteBVub$GW7I^mAROJMM(@LprQUaS5|5|a! z_tqzYXbI$T8hdXY$p!NW@Qw}R>dd@- zVgF$nn{Tuqet67IcDGx#0CgzWBA}g3^sD=9`m!j0w=dmsOt)VGG2njtWgf>EOJEHN zL>+LXopU!1D{CY<=@xTT=IygHi+1w;IZM5gD}yJ|&UNrMp_SOF_a|-t!#cXHBkY>z zXpjj{@8hdvmnJPc)8ZdFB9m}MDh%cPRIsr3Tp zp0c8}U$OqnbE3#uG%1nGn5$WF=?*IwT@ITzn^8ABF4f7onI-GEI4?tnXtHbJr-={g z>$^N-1*K!Qvnp2x*aWOAVR-`5Ij&A>4>azw3TeOqax`iq?9p8ZtW68^m!Pe&qa?<{T}xRSew?x*y==scNTa%2#`}05W3m93 zgbio}J;%86icv`9#JqrU3*f)5tkMQVlkhKo^5^#T$6l~%tVKN81jr^dZn-=(C|+x3O8TIk!8HhsJ|ivVKY#l* zJ1pKfs1ozCb3L5pu-s=<&k|pwi%%2uCm~n-V=VLalkeNB?H^l)XdxbK-IHivD`^9u z>6H;)_|JDj*P}f8=>dT`XhoydJuToD`9b@G*7Z60Ezrp|=s@6q2C(11d!P8zcR2um z>iii8;~FH70^}_jr%OIR{P5@Y8_&GtfPQj)zA7K9eo#Ni+L4yM_DApjWLdVFCAm)k z{J-<$7wy~cy>7!xV@^@jP*Z2^ogH@i{8=wA)&?D#e>i}zx2Ol%$UF+d!@1TU%8h!2 zmUyA$(A6hP_HxKKOWgdKs>@lL`($N__D^&v>k8CExc;9E0q)c9MD&S$wR(2 z+=!pD0tD?+od=N1SD667;df8#F5iekGr32`6rq>l9kNW@zpVRp+K56Eo_k&%NZRYs z_0x8(r?in|M^J>#DHGDbNeZ;4iRXkD*?Y&ZMl~aI(+`AA*Bixor=AD-@2qLCe^ByO-;f>ArtQmZAKUS<0sC#`;R{DFh`LfIlhaCG zV|VXM;Odd(-p_BG!&m}$odkUFO!T)svc#RDL5dD|Au#~mbqT&!f|Q5uOHyxI$hLx# zOf7WKE?DtgP$+|PLrd1vF(dwNG=!spb;ZXfepArNp(m$f6JxpMphy?o_E}jemR~e) zV}o-tCMv_C8lV&N4lPI`8lHuPSt}|Pf~@27SLg1Qld*XLNa&f`OcA6LEq;{2Fo6qK z=!QmzIcA*cnte<{=B0VwHZW_0eKWS}fQ++c2=utc4H<9<4D4OHpdInq#*F&k-3 zS?U9G}Sh}<$&v$oORlc|!1%xz;gE_by0TrKp=+piaEyb@DebyJi z+}KtV^^l?X8cQISz~)LIG0p)hv8JN0Q}?qx2JstU2{5%oz|x%r+cBy*y)Z2xE8QCM zOD#8DK$}2c#!CQXPrJq(9NOcX2CYe4+f=4rsL@1 zp%05#`g+FDBGJcBWdau~Kr2XA|&xY$- zGVc?83}sPMTIPUgy2__lU>_RJO?3?pQjkUf`Ce%(Q`5+2hVs-mH)a3x_x`{RRyNqF zv3_kPx=N(V>e z-|TO<*JTv9Sf?hca|^9j+KQauWFw$Jz%S`vE!*XIRJPD8eQ@!N{pG25ZTQN(4BA#I zeGw%JXcMRBl3j&BYc|wBK6l#rnlqF)>Ht@OW|&bFO*4f1MH zxd6;jHq8x9l6RlCS!jR&g>Y3$`+L%GKBROV(q=-ar^)G9>wBojC93l;?s>?LpFd@_ z+8|j0q0Kisem(oM_P>1Z-+Nh>sxCoq!-frYHG~0Z#Rfu!>PDvKCh!7ZQ;s1qi9QKg zV8k>EV_x-i&gVpIMvSYzqFm5i*XZ&?7B>txgum*_d(=m0bV?<&QPHm;SLDT&jgLZY zqyU!Vk5dP=(&`5cMdOu?2-*zw9SwQ3{HN9K2GuSG^x-4}bTuEJJ*~bWQzu#qJY4!% z!XuvRx$rzWe{4!17y4-0wUV%0zHDxgE;a=6v^mG-$9l{Ddg+Lt-5v>qa;9EI{Z!Pi zhx@lD6}KJ>)mlwU{gVDrLEW)=z_=YfOWfS>g>fvB2Qt#)OYUanL)%~+WMh*}!shxW zS2hS6RAB>z&1chp+HA6;oM?}1Cf{rtlEd5T?@`|&`!U)qWP|aaeCz+Q&pr64{bxEA zeWLTC{q+0^d-lPj(L77C*$#QyYMI@S;m3gc{aEU8p6@ORgbr8(CPzv$r3J^}xt*NG zMO&Dc#dq25%FdCdm=<5F2NmvR=cLPzC_H391U`4hStbyh>5v`iS>8?7Z?yHezu9qZ zM!G3#(pFg`e!Iz8)7nHvrnFepq>72l-0Y$>-=?j)L0tHGT2S1j9QeoVbZ^cryfmbcFl#jO{)EN39;;q(h!eN{3`e zU}jR>xJ4PR;l}-W8O}q8y;K?&b23)@yFd7ub=$|br&tEdw9q<=28>)-lqDwti}ZYA z7fT?PKrDe32}GS0fDbzE-gjsL8y3Z3EJRBZU@2dH57Z#x{z^Do_sti<0`5j-h)nz8 zRsw&y0Om}M!*e=46&$o6GXkvhWkIy6Eb0rxv(31k?Y?Bc^ZIwKrL4+^WFTJ3_LeVA zT|oFJrKQ|bUGGpr=>CxrX)h_tv;XSr&)OHyciV{zz1lFCx5nxsJ9?l|8?@>6dp|m9 zr5Zy3RKmNYm-iW$m~Tu@iw9hruqjekCQQa1jGM9GADI=;uZ~-l37pjsAwX1gGI9Xl z0Jn_OggY$&eOAC+A(IR}gZsB2KVMpWxpuLm-9bhGMZir!_9_9n4zl}zMqaMw3Z9yq zv0(vvS=tE6)~7<0A`dp~wXU%tJ3S%|e1(xAKY)!p1w2y6(6$~Eh0Dy?xII?Wtg$uP zB*<2rY!GAE^JG_>wNHzpMB^DJE6B&ZfRt&aeSA?|*|JdraGNiXza>kcvYw&Uj=XNB zUV8SDBws7g9Sue70$iLMx041ErELzX5+bM+fb+ zHVimr)(l;b(jC$#Z=Xmbv^(Vjp`n3c(*Tgx%b2oL_<%QnxTi0kbC4DdYiNJ~g~p_f z$Yu!+zW_pLG2;SA#C<+hC1v*glkXVXj2LhwkABL)eXsq8dLtOv>)YPCX8WIB{+3Qr zn0@~6r@g-LROPlAi@X*Sa#>0xYI{ zsrOkr`9P5o2KTxz_ehgl8(KL{*9u}o_X)G6DxtifED%5QK>9vT5Fm4aY#bXK(B@FT z*vuQ;b_-W9F1lsRVF;SLKGv%xO()Nh!Dwl|#H2GXq*8ud9 zf8y;Cr45|^v^k9Q(yrvqxxk?q!VmR~F!;o7`$=HCmK$Aws-OBM*4Ya-GYv@1X>n2J z3nzma-?}vR&a00tQ#&lo%JogB&y#-yXSayZU?V3kM&wHeD}H%Lw#fpKq$tFEQ_k z-Tfzl7;wM;$~?~TT`GYoE%y2*$8<~--t$$H#k(}kB#Vgvb59nv42{>DhceM!oYhB* z-t=?^oz2f@YMQj81fe`~(1fr@ z9D-9?_+1g=^WS~>*X>|yvlgKdM`)NhCg+Xs+{cBLxbjd6fp`=<= zUzet_F40}MY#iKC#}okG+bJ;mEkMD!#d)1F8?pc5`LEcZ=)8XCdmo9jyvVh>eJob` zW_2>HXK37h^{G}-TSQ>rX7+c0shK)bo|d0ywJ8xb3jHxa;71)79B>B!NOr_e9@q?c za8JE|lAljZiQ}201IiIC+#y^*+q6V_*ir!)AZ^tZRd(X6Xj!Dyiv}(rH}f4dvC)`i1ae$S<1G*`D^R zGHWeWb<)T#u{X|sWT%GvtVw_&+~w3m^6QdPrbtgjAH&=&&zvMtWf{kKL{M7|{lBed%T1CD7^fA6yNfZ9Ur8WoN;d2k#>0B|S z$c9&kPP6T9+3DGWhZ}I6cZoO1fZwDj{N@S(RUlxuT_+b_{@`u<@}tjqyP|wuqSujM z2&a3v-}?s>Yk#@VzH;O#*ZM!vc22Z8r|ihCeIBOAukg5D%Y`tn^?a@S{*Edm zeH67fIJE8AusD11ywkWKyO4(9=Vq<})DG`b4z!JWQT0$xoJyc>0%k)IGpY6m;N7Rq zN!k=V?H`{0SkKcuefY!CU!d7us8a)g;P6DBy>!7I+Iv775?RX|3;3m6X^Z5M`cB)z z&?!_FIKrIJM&z(gi|iHk1$Dyf!b;`zjkV2?hesIyi6yWB38?z2j+%q)ooy%)XjtKLzP6zc4^y@^IPBgLcN?*E0-ECH7Q3o$146FM?EB8{)odlQ!XJbKJpsOw)=&a73{rAb2^BRMw*;%;_Ylfz>!!e&345cSQO z;=*6jDF8HV&|na+Ii~@XZe=ABZSu=^(Ra^>)^KUcNAs=>*DxO&S&&w_7T#hJN|EYd zrjD|cujEq@(Ih0Q^KgicYr~-^vio+^xnn)4HP!OsmAaR&#WGqIXfEYwu~mvzq2k+J z8-eZ1V8j}eLlSZ~Px@|JQ1Oeg1Y!x?k_1?A(KoPZJ}po+7hs1mFX8Cl0Oja=7>{nZ zBYps2^nL-`S4l)giK)&3IrV`2#VM<=kP4Om{iLno=GC6gR&Xh&MCggvh@7MmXr?9Q|A zcOAFsE0gx+qfdL;22d3sm@xyuGDYJDgEDCghEt)*K-K_@o<8~D_oOub=0w{8Xq#VL z?40Tu0)UHj%HZ*Rhip(_U#GO-0-(s|4cgtm@W|8l)ZRljEG_KI(t`fsspFyn%Cvv@ zxnFjT-|xQjx_#-9r+l0v$K>Nx(erc;_1lcVm{}bUI5{oz8R91cOCRb zTj0nKZKJ5L(1u0dLLGqehkH=|QSNB9L!DG489_$_Z48@5q#0S_2#0nB?F>eUDZ@wh zAM&usOOPA>(S`@0hn8tVCm?u^1}@;b$E{~wst->2r1tGv?8N0YI1&Qkg)pN#@!wbi zTQ32syQ;ab2iwkS!&a27`T6PIZlc&TZBjJdk5TXc_2oadJoRg(IR(C%oUfB_C}3ntQy=QK z&j{n;R8)B9PNX-E^Ug^i2HfwQ?BkeY3AhBpw6{-_Z`cddwOHV&@3xuTDFdu~G5jfo zD(e-Gdnrd^wYXUxD&+?r)e&i;Ro077RFi_6)m~n!+At|WgMFZH&a{#22FB28$1zyX z%5wMxEwDwq>9j1&0hs9DO^);+N3I#-bkEe0ejI}{CjvaZcUhX(l3&ONpn65MK3MAdJ7`U}1g|3BXN3u~#Vw=!vczan5G=Z#GJtB*f#|IxEAE$3%a^7+=A zKeAtY`b7cnrT!tI=LJYSzvr->kT&nIHYWfNU;p^H*ENigsA!$0jk>YeziMdF4={8=eA0^u4xzyd^KsG$gYi&l{YLX~dWL{TY z>5BH(a=0km@uZvwQfjcb$H5VJ` zU9g3@4AFE#*~)30mAaXimtkXLOV-~zYqbs0sf}x;Ig9}q(jL*NjvX5J{>t+&IoMA7 z!;tsGJ0EZ`{+mDlp&R$69VBl)5q1cNK94rX2Iim)q*j)dsf~$_OUX+f2iHmuVK5&` zPfwHa^D!G48L{V^_q#Fm=)~Fbu)Eglch$W-0qNDU0k)*gLBz+cSanX1(qhmdqX;s58$4v zm*L3o6LrE9drGxn!-y|n*cy>W0mgr03B(eJCGZIeM2kjk5^B6T)!XTOX|<^FCd6Q@;GfQ%X~$ZO=lN=YZ=0U=Qg6Tn~LAe(1ZS-%;Abz2JX6 zSHj>ufUTyIN;}ti+DZhJ;dnMDptMK^HuDoUGS(}l5bn;#O8ckZc+CErfAf}%U`um6 zC)4FWJT+?>0w{jtsVeKw=nz--yaU~Z#hiGPY{nKuWif1j_vt5WcVo4U&xmhT+G=mL zopx^aKRbEMHO--J!PSV9_JNXW=VootJ&c6nFpyd*u#)s#?KI|HS+rb@I~a;BQl5Wt z&k_6A@4e>6L?0=uw^z=8WHka6AAjKRa=pnHDEQZ&{(_zFxnyMp#jXMWKYZukInX<> zW8VJc+;P#hL=;BTq9;jqg#y`kOCvY}CL_-HPo^vRjobTuE7AfW1Yk`&1k6UGIc+H| zq7hNO18B$b9A0#I_c36+Pn$j)Nlz%=KG6rHXd`D{;ePx0>!QD@S>6;;fNKggNAWgk z1LwoBJ{hx>tpLsW0j$zelzOG{it5R=-d!`mO}vQ=I0c9?QZ_5tjDTt5X<3F(kwm<@E7QT*}kZrGQ z84IU9vYrlIjGB?(!?5_|nEE{_H=%qcZ_9p27XFxe(6-Pd=LFQm*qHsNPrN8QABEmO zhF+^j&%X8k>oQbb1fA2ZVRl5)0v=)s9_} z^U{j1&&;=9d*UT)s)9x=$`kKjFO0Rqy;Jw{G+tLqv;EZMpjBxepsv)r8XuRGj|>6v zr+eBRaHp?}`NPlPB*f8p}5>Pq2W%) zbsLm$MeX(Mby8BJ`ivn04o@S#F*i+b0>UZ-Yjl#XjMXf zHj)h%p8)<1GMH*@Cp>O?bkc#sK~-k9P9uF%GkLvnJba+pe&;{WvsZq8PRHS=yj%(d zs6Kaer|oH}w$6de_9w@FB6^lFE7EDFO!4Q8W=+`Rd#dfz2X}ikrG@$8*sk+5{;Qw; zz&fYL1i<$@S30t*EH1OZ{n@YDx8Hu%&ZxZ01=L*5lhFvJOHNgh{Rq{TNU5Mo+K z%K_YP;2RBr=F&x_^Fr7I9yzOYT2dWdTND8ntWX>sHfB9R;WxQG2A#>}+hYOFf-3+&bXe z=+M1HlrQtvAgU%dw5Fz~9BeNsEVdF+C6O+)NO2*JloRRhRvj3dn6TZ=JG~zGsiQ=q z*>s`&d4~^a;S<70c#AKw1n!swm?o%d`dSDjEGS3Ay^tuL5|q-JmVe4 z720=~<^os+KUiL8k3aIf)oIh1=X&Jx0!~)_;ae}uQgD{{P06S2z5i36h0?&VwBskV zSvIDAv|Jl=RRZTZmBJ~M(58s{T8=SnNYq~A0{uVVa=@P2|B!E{5eF{JQLgp=U2{KC z0B@i9$UYeAwpvlg5ek#VR%G-{^@dUWD?Qbw_J!=w0mA4wnv-0!2pjss3?EiZC+dAqs?j7{%j{EM+L6j=S9nH(dlM3jbEdX2^`{N?-mdndevHZep z2Rk<#Y$sj@X&nx5o>Io^PfnVnSqTdsjHOvYl;-&F?U4Xwq_vEtiAtztZ@Qg4K5k2+ zxvDF05i*IqVq>GT0$nC;-{ExUAq+G+l&5QK=*!GByttIJwB@zA6LG-<;&`F^B#rR8 zdbH5eqIg$Rt5w#D*D!s-&YT;x>6CnF1?E~t%91_WT5QiAX_0ojC}tFPq``T6j-CC1PIuz%Qg){Sj`>7geCG*|ezIwtMY|Lv!LZvW(^U$=c6 zi`KuZf#n0Sr>HQ}$|j`M>AYU(_$9x%=DKqK0G{EJ7w&Ze z`oH$rbN0_)`L;oAb43%D$*~E0_V9D=molQP$XlHZoxQmCh<)q$Ph{hx$)6Js8xa^i zeWYctz5Ua_&{6&oo1LArmWC#OcQt6|<)FFU6;Xy9JAcx?EF*H{_p6_N&RV1u-B?lM zysmJ&2Jrk1QNsM=AN_y!Z-4FY+vkrw;c-K?^T9}uQ)&Qg+{lsEjmYpu;cbWK$Ql5* zS!Dr8%&Cb!X*aiZUUJYKFbJR(>K`Z$#|8NCJJ`s|Olb=*?SIf3 zRel?FRobwrPRp@heBd$r`Gu2qX?8+d<)UC*rJcRea5uxh*Kf%UnjQGn&$XQwm%6B0 zq^JRYN)$dY==Kdu7qGPU85tNdd`Rkyrt!QVb98IQX5d%M%XRF+qG7IPC^?#OE` zkeu?O%})zB9F~?oV0%da>a^oGd^|lQAa=0??h*-jbySmKy@T!=z-^koGqi=OnrKp9 zk9X*#%vvYt7;o6{gMR5qWs^O&YrhP0NA1b$zw%3)VdL@NzwtxsUz)Rqf(o4!n)h~! zALa(oI&oSKFG(Dw5<4xzipKSLfy#D zO;s7lz@Yg2Cnx4y(`#;iR$Q~Qw(EfmD=12wKA`wiXM}%f<7Uyi+UBjlM_jvuGK@R8 zWRv3yqNq_>it8TZbzy>s_S%#dTP(Dw10oQz9hvi%mpN^J^O?u(vAuQn*!~)OXiuHm zTV%ZV>bkO35{Sc%C9pLT03Zw?1~G(%z}CbThZ-ahT1xnN7Mz- z8qlRVt%0sv-RH2#rdIS14cb=^e%eYz$8fC$t=Avt{aH zNufb|Knuh@bxrpC?n6$m0zgS-sB;^2fyMryHb@Uw)H?tj?z+i>|3r8PU$R32DGqWanAE0QLaRhqi>#(oePS6Q_LOnvZ}9 z7TDkX(SNY_x-K{sOjARnzq`8J6Onp*%$HW%vCi{WpIhWI1hj7u*bZMk00oXR!vS1; zx^AZf5olCnQ1$nI{$mYxnQnU|eDk%|P zH-P(P0Y8BB80KWYL0jNA#yHQlUo=j4V7$}oq~y7%vYHp2$!El)PhDaIhEk&}uIuz1 zADII9_t!Q12Gg55HIkW|v#i;9!!WKJ!R9_JRDS^G%cNtoY)?Pv~@4iEmt=lAVQV^@$^MQaNDltu)jBu6CXl%^fZa zc>YvHll`?PKkujJLVk#AJ30Cd#tZtK2kKi)N7(G6fi5fNq+0+&lp)Wz{BVjdb$-G2 zssE4rob6Q7o0C?}nqwDBAeO-0Ac4>USILM^q4+-GHpBQ@7>w?QG_EHNVW5XgF4=KE zJWIZRtKXTB5O8i@iVgJ0iu;ueAIy-O4~V)hYeJ_iN~>DhW{Cy(t;QX{zcC3={%Ee} z<)_)6gPMSdci*}G1h`~sBI)I%=lG*snMjW5q(uAKMQM&^OFM04$eIx?&BZe_*0@s( z;FM__8ya;@CKidQnjkJps~|&@I~K&lgTwX>X*TYzZMZ7Ip^jX2GyV}vU>ivw)M0pw zKaghf{)ScueZ&22l$C9pQ~=QnGD=$HhBQA(OE4t5nS24O)fF7yj>e^}%q(#LiuaF? z*kK(VZ>_2K=px8(CFZc;4s(wa?dR=Z9e-7e$7ZY6V)|ogx$dcMa2|NT`ceUpxSP#G zcyCr<=G4->6>1Thszo;aG+gL_(i?R?%V4mOBOi<*IO5VB|DSvhKM&Tm*n98)L?_*f z49(d;K7GvE2Yc;{(k6G!cfA|QFx7v1fP|)ZxeoyGxr2||iT+NTTx8A>`49e9Uy-wz z?wpq9+aLZ+;C{8j&GkjOrJ4oHu!?tXGVY8R(QtXbU4ivsS~6UL3=*sSNI zll0V7RZCuZqTuPWvGFk(Ijwc@&H?O1+uBH+7&#qPIP@j%)I`&@0Z}W;AIgEb+PL~k z6eiecN>TrSF4YgIcCiAbm2hN4jR_q{uNm>D=rs4b97KXd~&2{l*fw zn96L&+}%!VWVNzu08 zXlH1w2cVsM=ejT1Z@>C&dtu)p*VyJB?QUM#bk~8a0DCqa|G^i3 z)s3BVg6re1HXE85SKnE-(#{D?jy{ET*%i^R9hH_nZJd)x$!$3DxqbdJrwaWgvRD!R zaw&Lb=<{+!Z`L7=G3M%QxQF+)Pj2Is-iicP(2H9MC4M)SKrDexlK=x@CP1M&=nNC! zzG)%f-hkGz2HBJZ5zmtN!Skd^pI105PPkb&*y_^`O*qh6)BHjcl}W1>-U`orvIfAW zBq9!E-4dX@0<936AHks+kxV0_Vv~l|l6AK)O6w`tPbKhPaCvz$oHc27_SBGl@v&O# zoD;8Lsx(YkkeN~>^ZO{2fMqJ_A=g>r~5zQz)`np3U6>t>5GZs`VCL6WU*VWtY)GTO2t;HF=6{)7TBn@jh?gx$P zu<$#wYoGlyEtFqB{egY&^oREA2cNVNKuxl$fH%%sUi$V-T8t#DdIUr~Ni+U?Sm&6P&&&gy#mX?L4teUM>a z{nTeXOqZQUl!#+hKo9NQXa6YuS7g+*(~k9v_5!LH7T;^k*hmZQGgs6cZ;QwE_g?$1 z{mmDC(E*JRY$zxECV%HWwBWz|;HR8s@YPfAiPL>%WnCWvh_5aIWQRs4Jm6hwmzA=I zR9#smx}qWh>us*N4owOi@0@gK5$K*LzZ4sDMNY^KkB(Y{HmTqU9~H=Z;ZmElu8Xvh zsX8OT{o$%s-*gFeZKI-}5@_5tHs~9pX{r+#HohAuWkNo@?MNN~*lbYjZrSPbI(^}+ zQ@<2yuhWU&<`LTKg`SO1?W5QE)WhNj*U5fqtOmf4;@fL zOP!~yy{kh;RxcWw@w1{^Vsi!BCHko_$75rRuwxfXV7p3yp-oLgG@CoDX;->+w#{fQ zJMWuOPq+D4#`i#$btYeg~h zkDvXDebn7ym06-??+$hKCAR; z%yZ=_r6=L=Kdts$EaT|KxzVYWwJ30c|Lt(~IiT`|8<2tn^E-ZpxuHMMAGG%;w2`>C zq|U*1?q6??65fli_l^Ws(2jd2PjOCS32bW#&@rR&HRTh zo419zbkWVgfqb>*D4HBsQkSeerOe8+EA3)hua5GGdsNyS6@?}CLj6wrXFvWEtI8|1 zUwY~V2Y15aFT@#NV+m|`2{=Hf={-~?k3VqOvqL?<*~xrZOx^7J+g+aPO+O2&a0L2n zUzZ!h^wnlk0LT#Fs31RI^cDG{Pw2Gf`o^0so1~zx`;~YXw9qckFS2)gI_$uO({{LZ zFPLJq7);a;xL5(DO7aVR5lwzDqV~1Y7wl-uKC2dpjJuWkEA|H+w!tF+0J-&_5CIX#I1V^&mggq@KtO?h3t4(qylm=Dk3OMkGc(SCCI zyaVn45DfxmX9NZ;yU>ObafJIG20!$Cf8$R7EWG)${Y;>Hb49gl2jVB$ksjncEkLkZ zl!5gn6|ylhVc&oE4SQTbMzix*ue=k|Nf=#&efG^)zGLkZ!`56-YMB`R)@iVK5|b?9 zRo_+7bF#DDI9+XZjRUaR(k|R1nmIJvPn9;-WmPJ!`Ey}u!JcT?D@vhi`^lLPtaEJ0sx)U=ZTsPx z0o;xU%*XT(8333!idP*vmrLCpR;-gDRXVN1#s>Y{a(lc%x^mR+&{D^70J}g$zuEwB zDrmb?=Lru0es%l7KR_Y<6PuOz+11?Yv@spp@B)Y@Y|0cqd>Ve+rFIAF2{U%F1h%sT z7*5nReq=cS06+jqL_t){EF&w$ns;Z4igQ7ygCj%1nOQpBoiEiqZR}4@$!>v8L#Y8d ztxJaP4NKwZv&{#ja3pOrxgBcD$&R+h2`t*rvjWU74EI~t}q|J&kw zVp27s6E`OZy0tmZ$u(}SxFF-%nOWOg9hCzz4;vOMKI3oqvIJrd_j|c?{ zm^j?gn9CQB;j-b>(1)+A%eGzqwkp9)NHl(F(y>DvcH-mA(IUXa+nBOoxdn?>RiA1l z^AP`zC2%_=5THe05UD|hapZb&dmBo4 zz<&Ub`0l^ezSa}Y_2RgfpV7x7pCK)9zx~0RhGJPZo4mTW+HnUyVfdm8wJ8W-6tpl` z``xVHlrLIl#C1`i)ZvDm(yS7F1;Ca1%|2>y;+oxQ@GLSYD2dd&qsVBp5}a{7_cM+D^N+?S%MePxXpoq@c_WC>_CFD;;b?uYxW%bU zXtO8FoMY+-#QD0XtlEmRa_xovN330-@#v!Lo~&UnAVhn=UMUyk2SASDPr&pnf$fwP zpcLHg$Qup#L1}Vww0~TiAD6{(Tvl8v&GtHPAGC*A)zcoe*@oJB-!Pext(nyMMSE`F zL$1+@jIUKkt|fo`|LFa zgCj#WAZjDH(vdCw3D0q>(;j}~hj+OS3b^NeHX@x)0%0c_E8(pEP@XvMhxG6p?fVjG z-NMtJr_(VQN98&HhE(>hd7Ee>_~$2zq!GgkX0F8W?h^}K%mgk?yHs!?D*VEbBW z3t`{wSMqtf^P;`cecmcX1-FdZDB+%G%?YNkQ>OBJPUAP5xwzHx@tg6VdsYJR*6%%A zv~k9^n*`{5!+`XHjFSAzw|?N-S6NyR(1AM-X=2c2{^|2Z|Fhk4x;5!#BEp=XYjJ6Y z_;dkf_1ib}wKxuRBwHvmk5AzP{Cfc@es;UV{jJIQy&J0LDc&Z?Au`lom2Zk+WEBBt z$%x#|J3>f->BA`tZ&z_-v`|HpD0xx+O@#Mxu5&yY|C9vK)9u_yDD-6E@ z1%G(_XSP=y-n(iW<92i1x`*X@G_$TA#^ffmYeDz`Z;HRssA= zetz9(Zt@}FGjAvp!2QwaMf-saqJ1SnmqL(myg%Hq%Nk@L4M$yYs46iJ2{$)0ok$E2 z>YCSEH3k?*2CZK5>HgxH{QQ!fA)5}8@tTT(8hrNT{<;jKReZHzxtUy zwx{X(o2---;2#>d6{%VFcaA(~yAoP}BxpVP4u0mO89yP=c0_a|dsN1>Cq5w@WIZUY z!SRt1yOJ?u|N4#ZYa=AX_LbE**s)s%X*rJm!xP8s@4fgdelNVw21MX=Cp=CC;5fM# zyR{{N?9gmx17}p5It2w0eF1!hvr}+dQXk~J= zX+JFu&IX+_U{mB)T&WuYjp|2*K>kD3P4-&Pd25iCDH`1CaiM;MI=G&9Zq`qT18sNY z+S=GGW6DF;Eq;8A&{mdJ$VNq;w?X=iZZ%J(+fc-%p#7Eh&84%JN!e%og*|l|lyWa=KEUbZ5Ki(tcjNbv&Tu7-A9P+==C)s* zW=?C5>7>DtvRXH^?aveQnALvc-}kNrVh#6uw`}8_Z9@q#ATa=zOKYP(uh?EY^PxDY zvwcA@FU=YZkpkwXr2)<}$TG3rh8f+WB)cpm6M%PQgY)kRAU?XYHGhdO0PPq9otuG& zQVYKf8K=>JOFH7RTEFalf+wL4Nz0vM^f(q*Y@p0(;hU8yqcck>HmwQX-+ca28`M$A zzS&7D%E_}?@ry3a&e@^HUCR-!HQ8K#7=MW+aGyvZEE2{A-1Q9hI{*rZ5{3~BU!i#m zrzc%#+-|N>F(fd6oFZviK3LOiXZpKrK0Vd4(nMR9q@_xqH77v+a(|!Ih)eo*Xt#$H z1N8Qe4q4jVqCMXFfK?^HZOSxTnxE&pFIkDWR7<3J3Sb?|nyY`7Yefk0)~?hs>L2OC z=p^YuyP~5=S+K_{lRPJthz)-Fs0F+s_``~RT{LpoN!99_s{p*1C6Bu zTr*uWPcQj|fOsem7XAN0Mk{+4X2iRnW#4%EC2OjzS=L%!E9$lGh4#@Y?dTCvnSHu( zkF|{tIv|TiAiy8j2_2ya;LVkN5delBG^?|-?DE`{{q*8V>lg6*gs5d6ZrSUn3YO)s zbf36%-Y#D5@{OHt(aW6EQT(@bI-o|N3Sr++W@{zidyorJM=R83NYGplev+@q+1ruIjIf}gxe`=;6Y|49&q7@Ihx@%->Ee_E zb42KRm{aopCUuul__p_MCw3Pm2mJoP1(@xRPi$p>2F3afGFR zIT=~@>;n%;p#_S*YD7lqwkpOb8dF)hd=jQ@S2=KJ2M<8J3eol{ge%Cmpf75R*ejoEWM z4?4C(-?(ilbdt(4{<<*<#2W4!lUM9JmcZ6afI(8Rz;E`qQeLoczVVtZO&8e2h)7Zv zrPZ5##frxuy19BxZ4B<{B4BDMozg;i+%Avy z*g1h7*?GCHcjv<+P--7X$QP{aJv?OELMrz0e+VH`W+Uq*OLwJMDLm%JJl^s zu`Gepq7>6+0vp<-e{Nw>n?)HmIyq|}p6#*c9^K{Gnop0C;yKgVW@p9+{JqBnlEdll z0E7J8Or0;1#&fBtV)p4|$d4|ZurX=Rmt{)3S|EImHef3Ctb2IaW;93GEluj_$w})J zM=o?RP2w0oKGbbT1gbxvqyGVXbRa|N0Vw=$fAEL4x2RmFx3cVO4?SfqIYrj1Q(QIT z*uSfIzpqz-xA7VE1UbUvPTQQ2yaC-EP*2o3mov3P|EXI+?#aodj4J<=YY4a^qV(wK87dyrPoisZ$Im6x0ae(-)y5D5^i$e#632^NT+Ws zDuUFx1v@SKB*!nFvClmC$Sw4!H%jg1JzoaQ6MfL>?sl7%xH3}HeWNe*XHMy-d!sXx zmbW8K^l{-d;Ywe=d8vv+y4xiXYq;O-B^0OczLP*SP%)R(F{H6Y`}PkzWhp#Mz(}qp z-lCV8O}F0eC7Yg}6?ICQrAXub8gtM4PIh-9!^l2W3+ai`dHe9#oOr`?UHb=(sq{1% zxEW2go~~(e%WJbFM;dSO2FZI8as$vY2pc_XX`-mlQ?@AyVU#@6DmT8Au z_Eu;X19#VwrYfdpBj^~o-JPyc0U z%oZ$z-0P2N{XQu}Hcke#0njR7_Uq4lQN~DR$V>N0Pgv^lopgshtUrcZ_vz^%E&6Q4 z;eTpo&VF{H%Qe~2YzG)1Z=+KazR=GUzzq~CmN7ffTDcqt8m}|jsAZx5{SV)^F_TeQ z&8NO__|wjvt>Rf1KoQc5oM|T$qLKOEfAGilCnt~DR}MXHjfG`am6a#M?IYUs?Xv>S z0iNA;(4K7FZ+TZzoa!u1n*yA6n3m>yue94I7w2W1bJPvhE(55Fi2P;?WM35bd%cXh zwv7+j%NIVfyn=iy6Ua%Lmj}v_u=u(x0py2@4)lqpDo@~b#8Dq&^H#pGrWIaY_tn#`j36KCY@y`CXHx0JRt2YeNEd)P zTDB6fhaJ+!$(AAI1DdUC0pPqlEE=YZ9c@-uRpaHUNN_+fQFd!3n)G1^5>0$4 zgebpZDPYk5!l4|-y0zYo@5K_>ZW5qfrKnB4({;h#Yd>q3db@2zV+!{R)JKHAW_7-3 z2g!~x?OJ}5{qdbw@qa;v+5g{nU$FW^$o6#ZrBlHauI$=4c zO|VpLnm^FA(@tN$Btzy+-e$vGWp#Xa@^?rRr_DZWJL@OnkQ20h-+Av%OO*mZrt-{a zK~IO=F(QktoDrRldZzgS-;j^{ojX~IcQ)==!~M?6KaM??z$YZ&3pp($$0nxjcfS3O zrDf*n_;sdu4lyQ#CUuIm+;gn2dqM#2j5Y3*fi4YbvAg{e@Ck<&_6ze%cJ`w=E%NiF z(Vl6GG6usl0D+>?EE^w9v9l+}?BLN<2j`R4AGbfz+ayLNEs=b8NJ~i-|4N1yblI8= zO5l39DB73|8B~4sM4Nr_z_1)~g&#OU8P5nr6lSOV9S01JgM z@h=e7MR0yU@gssq!jt%VJqe&qhNEw~q6H+I7tX~jAtGlqEwco=_YcoUof@9$+*A%* z;aKd!rMkc6kc0bxcwyr)IlfQ_lJ9Mo@8pq%J-o3)(j=b|Xw5x<^(z9l+xkcCl@GMA z7mzuk#XUyL`X@#m0PmO`x8a3Z`@(}yM%wKv3xI)}aV)rxHtn|Bf)Y1M`%vp%8O40d zhL=QXwrihrfdA>KWA>XA?^Azx(J-tI^4;#>!eZuv(p(ZCzu7_TKqZcDQwq z=Zn1H@&!o##NQ~P;E?E)L|=pkHd>Wy z0!cS0_Rv=@>3zcN5k=FXgzUm8jg5+uD3fRGv#PUE{ad+9xpwIk1e)2Y$^&s@^q78x zlQMwW06CokfLf)s4Zs!B3cwX8T}a!S`QB)v*YdB7P)`Bf`OweRO9Opc8w6|yoNYUA zH8P3_Z470CLuP&&MW7q^Qk8D+hZ6NY_@giF8|b&*!G3F&aalli>|l(Fnt`}HPd6w# zPBh?xTp~J}6&d@(_)jc>dqe_kEMh}uc45xiG{zmj&|?{=kK2F!xv#kqbZ=*gac-rZ zMU5!@-iRo|m^m;$W{1n`?Zb1Yt+ceviUshu>2w{mX>200;Xg4k;eA3&L-XlIDJ88b_Yb8Vn!+^Xspr6D3MuN5Vd?U2oTCXJjh80w$XG4TvdHZp8pN8H1pN_p`+ zH!t0W1~Y7AXx_@J#VZ?ckle8RX$NVNZCCq@jSgg3Sy`Shw3rxTFm6#Y%#hL4UGok0 z&%brb_SSaUY=-=gp0}f#{5`V!zzySwJ;V~YUnM{v6&6{czd{yaVR668}~ zpL>S@cgANN@SuTB@0_f3akXd2w#T%%(Z_92V7h~m(gcT3dU$S9W3h}o=8oGBySkN)RLhpu-IB^= z{>q|#X8#cxznr!9{vIuacX~E&rp|}<1D(w0q$U6JvnQ-Wn!SJe^VjU1p)T7~UGL)+ z+O%ad4EfP`za4v{-KHld?bi=Tt6t^vv8ZHDj`rDKedepSM}||s^Y&}@&;IQ9>>qvQ z>z*!vMSxeRXK+md=$Sh-mR8xDXFsw_+GwaOEU|e3i`%g*JyVuK?l4K7z@f~A-z2n3FW+;CEWZcclpE914(NNkbT9i1_+9^#?sBl^YrlSo`_+fK} zyisQ>MBRd+>$4ZnNi#IZHTiQyfy3!a+60d9mjP z$r!CDaDt4uLP3K@JVun+Bn!{TBl#uomj&AIYHD?Wjxt2sA21QwG}P8Fzq6bpi7%AL z^1Z|t!uJzBs~^O_V+q_N5(uYbvP5$S{aA@kb9D9fXj6JJ0^F5P`i=jez4r{VEV=GG zPuW-Ad*9wokLmFaW-x;p46p>U%hhs|K)vI^}4#MyKHxL)y?jD@4kEUW}ZB0 zPUb&Pp5w+3^#?+Wo~O#}U6o8j5tz&P&0cpyAHHw;--+LhS&tn&W+$}K{1`j^8dTGynwny^nf;87Vx;m|2n`Jmk&C!XI#IXQc=>L@k#r9U)6+5x#kfX)VsS@+z zI+6CJ&o=9~8-+y|-;|v^8K1i}zhiU%%TGS%vU>0GdHaDj)Av=@IJxZecRXfeQ3`iQ zYWK>|k2V}#YCcBzy&E|Y0`9x9*26MyTMjV5`^9l<&xqy9F(kh^rp2Nvrb#PdUT0fV zb!K{QGSw!=W-X%xQzcGJxaZ-=9pr%6J~}d|1y11DGd_=5Ai)1dlV@}|YH>4e3(v!g zWjG+7!Z(2RfnMyWM%3nm4JYn#qJTvy8cVr3nU*q{WP{RnAMDPv+S+9M?q~ihry0m( z(D$chatUvR9N5(yxYa^xS2Jb}g%1{E0mzL8HJ}`8D;8Mr7Y*n(f$f+O0SrrAY_1`j zTSkQj#zGc&EV?^J1{gf8Pz$|#AwWODFK+#{yBYuR&-i}iaHXC8**Qx}oz~n)azL_x zvL^{>h)rV}Y0B#BWa1)z+6?fqsi(tU*ms}Z7YErNJ#cIxdD2`@NTjK;TSw(JKRZ_4 zU>63vbUiJbuBn06o6@fY7|)e0_tajFzFBQqwbOtvI`fXT_IDeOG+%n;X&ZQL#D4hB ztM-`(9$x_3FSj>ao6Hdb%KzZhYfi%s?e^5sNgZJic()$n%1@dhPEpN<_ z1e(^@WjlYLYbXBsn#!*Fo7MaSZOvvm$h*?kYj(S0wwl79Gs#7AJs+zo0AdQTjz8F?{ZQB z&G#<(>siWc&woxd_`p5?N51e8aF1)!3`59)ox}m(Czu0(2e@{w0#0gt@F8(cbhhz| zeed+^0^F1BrGpO&I6v-A%J{ge`S$B8HnV>FQ=hZJA|JBk4|K6Lg z*s=0jo6L|rjQ3?vD|tXuy2ig$IXQph(i!`D$!Fad;QMqU9f|KH-rvk?Hy&whO&pg< zpN;QtKKr6`N_#LW>WlrZdG4um$`cW>Q? zCEt!5&`2F0v+biR9d@mE!g4dEo#iHuf%b?e8^JR*6_W#1v#jjUHn``@o&H9{ePm!p zPHj^xL)v#N^cE@+V)!XRi^I>H{27^;QJh&svIKf4f0wN;xTE=-O!LfJZztvuQLE{tSJ4dBikm4j0ZB)W$^N#cY+b3dC>(DXo>4~V7r)Amm zhaPkq(JoWTnVXl7?#ZTpFdjqC!kk$8gWBOU?%`Efe&nrALfJieEiB?You zojh+>J0_G)iZuA9Y)ED-rltknX+d9Emt?sGa-u4^Kzd`cm7Xg3`=y7Uamot-5*{cZ zj}3)5ZHEN3ACsed9HW(_XW9Ermz}v7pAQNX!?L^0v!AJ*L^MzM^zlcXW+1ZcmuKIz z`|704D{%C69b0ef@3A8S*a3Clz51~OB#!SnXpd>5V868IKWe^e{W4oqAP|5}9fIfK zhRU;zUQTQuOUdFHqwU7Fx|HIZe?tfD;?%VZHYf-1sz~{H=$5&lF?SjU`V&pz5I^zH zr%2v_>)wt!w#!jaz)o_v%(A5Dy&UXtI`E`i?w@;C~{#0>c- z)-~6?{k_iCJ$$2I@GdlB?uPnnSKe$w@LMm_X#yI;&yWKs99qleQPPgXGC5~QtJ}*xwC5kF-|tSDo$YC}e3_eZeKw)nK`-MK&dV?LwA;a=3TcJsy17H} zEEwzAIJm6MPEPK*`^qmNnU%;}^L^+Wk}0nb8!x#HL=+boPdJT}rPD*LIu-EmPX59< zhejDP5p4IFK_8o-kJcVA%r=rH_rkDyIk31DynA^NmOSLZw&4KdvEPBNmI;mVsSXK9 z?2-l(+axU(7`Oo+=LFg&CC>%hGVszWDSb;(4;$yi-* z9JZjC1qTrV!OQwk)wwO^{7dQJH{ov15u8Rqk_bUNKodT{U<@W(5U7coqY^ESY1s-) zlkMJdE!ukQp`&%-Bqz?B@GIoNW^y20I4p8A7==u>xyNl><_>am3!USvDcKYsj>>kp z%)wnB>a{dEbFP%LMYO(Hpdsfs%17i3fGl>*lLR{d=D~-pK{k_11!Muj`w%RJ{jb}9 zlkU=xcqfovL5yH54rCsSY*(gL2n{DA zo;|V8DvERM%$05%9E)m>G-aJ5UDllz#>qrR-l&RoA_?E(wi zq`mvCXI``^y#wIEg8rowPx+{>zNzzqOdZW1>b9}8hyxD+6-hsluM00Nxk#*E&)+3c zZu@h&e0;h-P5;{`=Gx6|+J=9JG@Q1wUUEtd35gJg@)D<40548D0Z^%D+8}Ke@HR^} zjrY_wIM5x(qxpIHK9zNSlW&grj-BLj)yH<>9P;-(AR~Ue zhRAn3xc02}2jJd2GH4xRLspcP>l`2Mt*dwCNd(*dd&_+jk3gOP+BgaYU?-qW4v5XO z5{*BJ=388Zb$<9dAa6ACanM+-amSgt5%><+#KzWuKzB_0(2fD$sZ+Gu_trMJIvg1r zk*)epS4VIPEz*XXdPk?{ktdPgQH`e=+B~5=w0GY|a46f^)8+VveS0+hDXTNFr8dN7 z3vGt61v5Muio z6s_=lRvRCAg=v;wEaz;4Q7bAAw5XU0xWlxntD%8OD=M3jE%%5G^~dxM^(Iq68QA7z zA$}L@FFt2UNewi}-A0aRN|AG3=X~o9)5iRY08gMPGh4P;duPNid4T8iKzxElJTy3_ zw76pf3J`+LsfZ?+T?1n-jayBGT!io=~{`XDa8vlX? zsY%mz!2aQrFWFvcKKpRn_kBct6E_%k0}y(-adV|5rQZaF7D9(Kv-UJCyx%pG62Tn z7&Inj1=qUtK~nIGcxXGr@O`ouPPzSt1H1wVZs};Vp57j(>CNwovT~&pw9~|V*K$qT z(3dOlIA86P=FD`W&@$CZ45AE6SPK5e) zK)i*ZOWHmf>d?#y0MbN@e@Z8OFj0fOc%Heu)o#eYskOzLlo#5!q@OE3b3Y6r2X-n4 z=mU(yrMU%mrmxKge)(f7R=e+z)904xh#jn|Q_G~N8?Rzep$Ul1j*TF`a-k?ttH!<*gTC|kO?Alp5i@wy> zWQS|_xby;O9r=>#?85u^{21zgZ`OB<=>52_)Bf#O{-GS3SGi<6C2N27;X8I-o7`2! zWilO@wmjJG3r+d-KQ#5bS+#QSrxOD1_kJCQCD>sc@VmN2`PugSpMSvq*?Qs`!*5&9z{%Mn6G|EgFqU zn@h*~quW8{A>_av=YU@%VVnBZk51XM$4)pu3I6^aCuo~w z=!eA=Ee5}F_%UlJ73d?4u6!+SIerW#dfa#t6f+L$2l4xII+b~iWp z;rUG+5RhHhWp_PU@;@yr(`op!fpEUP$?k7BxKKa-J%HN3lI?ajA>hY{?bqxRG7E(E zKf#w52W+o=c+!%^YhcwUEB6YVXtS}{q&D<(9pG4~jUMU_T73F05k5rTfHWD$QBv>9oGA5^i#EB+q}dH{ zkEs&;DDeJr`MZ~I^WonMfT{qjDpFrhSKfbo@^9^%u}|0odk@_<{Y7n2IT;lX@jF2I z;3ab#pU-W`S@v<_yH3+zWyXo=b%EoIQ~7y;i3H-2XCgqqY=X<&qz;ErjJ?_QuBjmsiSFo~4FW!OP^o)qp$_H@wGZJLAldSP{S4+=o;{{SXh>a{Pm8^zG zjPq}PeA-^Q`k|#u`#x}x8r)ADXGN9^Oo#maDQD7dwG@Q$b~*==)W8$l*-kHSSiX=0 z_Y4QYqOK@Z-lLNzPZgGOMTLO#R@d;@Uq(^P

!REioem$bvBg@+a*GaG0BHd)T+_NQ8QF1AFOKy58i@Ni;c#s;O)9-9jCD<}>Y(bq4| z*wlF7SS(Y3Iv^05Q(1DT8i}xA#nyYO^$m{M|M~Zxk;AkiH;F|1Jq#fSLJn*W2Uw)x z2r5%!MJRUyp8Cb*avXM$xs&CK!~9=le= zH}H5d1+=K;SWsqb@?|>ZA3gtN2k--Caet-Yr~6CmjfExP_JFkXyQKlwHrQ(evY{N6 ziJT~)yB46+`jaj+B-yNx^mzgA&(<8Y69N}6wKv(A=jXmGCucQ|&pwWSXS2S2TR0~h>x0tJ z-d|B`e|G8@HY}4jm?6m&;Q2p1|5YoLCLeqUxPEKw%L4Z=PYwq@|C&xJ&3ph38%CgB5Ek~bt zjxGCEZTi({LnI|N*wBN&83N7M$`9gG515fbs~nSwwB;Lusv~GMi+71b87Flz5!>zr zzX9T(EyiBFq6|Ez{;xD%cf9f&ETl)^Ip$`P)y6O}1Q1X87*o-XWsDit7&kaH0g+PJ6W9+5uB+w^~;sg3dX5a>(plZ6J-td^21Lr(79GFlNMp6 zyq2ctY3BZ)y!I2j78|h)t>>jOVcoM)t1K*$R(o)I3?904-S`%)*;!{YY{!JrXiM2f zW8+pI$+q8l`Xwjh64PIrcldjEa3BQScSk*krMyQukT^(>O=$A2MQ%=ZhJF9k&+XFq zpp|ClJB^st3YB}54fh1u$amHo2;NyC?5qJ&WfEm?KOY2&TizGRE18A3sc4a~f zZbT-7@`|Rcc2C5;bEgUmz0lXw8MBV&Br7Q3m~ODJg$BwoDe!yNCZxSDow2Rl5P)~0 zrMGj+8ZT+_Jg?In@dY8;NTroJ4qlsT<0H~)>XgmXE^RjDXUTs7wg!Vm9_D+Rx<~Ar zPdC_CUI>oiFLL@$aW%{*Ar8_ujB~dRweo3pp0G zXte?$p(Q+`h3?A-AJQVV!pRcGWtXBZ;+HOc0J}ValErc&mN-`+c4BaOYmw-|cuaJl ziQFr2y<@1~9W(Eq7`9OXhVzn1*jwfgunLEZn6e8Nl!1+Gce+TxVUGaqX#r;`5ows_ z6>1YE-OW)FL0d;J)arutdi(lpL>kt6>l;K7ej*pOjeQw#L^-K(A2U6F|Ixrq2cR0f z!*SZUw4h6*1-?>%FXZdzMNP6{i>BR^M;>rI@cFFt{$|{#TmakzG}m9hcFw-`@F(s2 zr+;m~`M^{5v`oeLG6A~&SRnc{M;>(c_h}EUGOtlxQs&AGK>fkh3zjWl^pLdv(1Isz zP8FQIdfraU;oXUv{q}`NpH-QY?T4pcvr|3I?l^p!fEKi-;Rm2&v%vY^d*pfBUtQYU`}Lij+85n`@o@PaGHU- zB2f1@=Dga{XvM1g>WV4{psuDaX$NRUH?=i8^E0GRzP^393^w=y9e`T2eRve~0W|r8 zv4Fh1<~rBz&-IHWck08pl?{@y;_J{y{SU~|Ywuv6Yd_3WG0}3Mey<$-W-b8VD<={F zcGLyh>}bqmZ+$Hr1-`yW!__@~6(%Y8XDj9Jc&v8MX@z0^K?7q-x%x>&j%yu{mF_}N z(*YdgJ)gGE7ssy6?X6ZOb2iwWCoNCM!u#Px$bp^40ftk$oBBku`cA*bs)mew`_$1B zRxML0^rwvm`W!PA#=zG;de?q*_N3L-);Wc&M9r?|K-Q0Y>!L1*XoGZX zvYDYpE`lu#+k*oLU#;Qv7c3y$yhS$$dS-O=8i!5PUE<<`xYEALOt-O-m^8ZQEG>O= zwA>}z7XozM6!aW=VzD{v@6l#JPL^g5(tJpuZ)QfcWu*%INted{w3Sz}A&`*pO^L4W z2DAeF_xDJ1>Fm6K^gPE0pIWX(tiN+o3!{E~Jajycpu)qyN$bpapo67+&lQuWidp|Yg^-7?Pf5xJXO~ND9d+hbr%Qk~X zv3@g(HOu*9aZ;N7*H6E^U^{d*Tv@3;xX(X;b{4=acF#6lvA3?Dx30-C>78kTEATN> zU{z*buH_1l^Bb5DI&ui|| zCy>8HTCwwrw-n^^^Bqi3OlVW!a9)}1bGBw#+y-+YPFC=DtH8KVzMj_&<<-WY4=dG? zf4&*t0I0}!0KUieAGJJbZ9jSVerMkv;GE#;fPcUF#K#+Rd;wdjMFMg1w3Ftmhg!(V&LbYMmIkWe7-G zhys5-oeMWN`NGjBo)yY$OF@3V%a69%C@po*@0GIjv=JZQ6P$wVle1bj7%%|?FG+tj z!N>Dj?fy6KCSKo^mg*5Oki4+lPJ3V+DVD8x-t+ajQdx)-m`)1XR)N|$ar?CaQL6g7 zW!^Ut6W$0paF22zKKv%BFELidV$=4?hqSq`Q!fPH*WER8n}4h9+b#ip@DBZv@uEQv z!QG}h_u^x*k9Vu@B}3$`qTcijdIKefz%<`Y5tiIw?gB5GyF2Xr=iaf(GATM}Ea%ix zpw*7QhebY63>D3V-maMSbYPBE_vW*-W|l)|J*kq+{lPo^@-Ok4{lRZNEl1nJYxLq; zc^Tvqe(nSggn;`_sKu}hJDLLw&5Mgw4>`cKqEy;!8hrh8@?$~FDLUR?2+E!~iGlox1L(;$a}Y-lTSku8nne1YR=?!S8FtR1hY z6K^rC7VzdNY0y_FjsNuCuk3*= zx%cd>%&(LxZ=R1#j&lsb3ez&}!TfT2?!HGIT>vU#sH-2!MtJkeIm?%cj(Gu@t(|R- z->zLLF5fE!Xh?jTSWm7zn$L_1D9@9v^fI;EnE1Hb`XnvS6KBgdx7<5yN={BrTAS>@L-QVK)_dFUv_;y3`!70I3@%F0 z9w;*oWdnz+^0O4*IN;s2(zarL;e(I^+l&LWZOlI*Uq@x;Y*v6f{#XbeB=;n{KIMO` z@tZ!%xPT+~&mMi)UTL{tM=R@Am5S@ae&D=CcU~?r@&s)E)!Fyu%PY&C(y6wU#wW6v z*VqBA!`iU^4<~lCb>KrLouc8=9GzOzJou+Uj{Z*osfk zmWuNZ{$*yQ+sNRAl~!mGtM>|v<$P~=MA}ZhZn5-0WrICATWudUUa?~W4ghW(2*fHZ z3?TUU1`1lN$x69YRgK%?lVYTl#f*0p83+XJmAWc#RoOdC(;Vy$D z+-LA?nNP~XCIE|QoQwiuJ35z%yH&Rmc^Jrle59n?-}&U{oe2(?uLPOr9~Zt3oV<%` z!MmcvXM~=DkAt>0;Zl2(HI4M!|Mr{T31l8=#^VBZ{QXaU!LAAX22?@I9^3Ig4Zr#0 zf%h7jF#7hVK5rk%%*^YTKXN8)o^IGs+~V|=zb|e^~=F~r@-e*ZRBdR_BJ6d8H1sD4Z{m%z|YHJ z*`Y7eDHbo=DEm!8=_1FF4L^GC*EX4!WYyYy2C(*qj=J)j`CCv9_iTF)+EVxlAZ!e`V3H#Lyl%(Up57rpv1KYwEeL4Lsk zUncb&txQ-nN3znwGSNIMKBn5GZnWKH2Ug}0#-x>(BQNuA5qV>Bn@W3_Sjd5p10e_2 z$^ph!WI5(PK5DvbmwVgYrg?2ig#gjK#WC6?%-DEy4t`c zt(KdcD-G!?jhbjC`ZvlU)j zxb1n%eCXf5{!`f%|Ag(4IT?R{A>tjpfX_aEuT4ny9<=5ffWg-xzn5y|C)O1_YL@d$ z%mAF&cf|g8wVNyf^ga*XC-58l{`}o41e?=Ap0u9_N`ornaiu`UeM`9dOK&Fn>7Eu+N!Rx)b2> zy6NAd7wK!vv8cm&r<4(|OYw`kgjXH%CxH2ux~f`dnum4^uQsc0Z&x(h*qjtG3Uzv7 zK&F&N$HsITGB~AiyLVT5?)yrf#@jZTl3?>OLvu&k7$-$2y9(&mTX(9QE72O>-zFSb zB8urZ_gY}{d1zwH9+Wfh2QhU_;#7o_>!-_2G3Y~-YPF<2Mc{}4Lo+U z3ia9jRjbpa_vK>BG&-YAw~TBjcm4gP-%46*db6qMtaY}|Ydp%b2|0$vHwMpqd+=qO z(U_HFsJ-~jhN=mVN8V7wivT`;iR` zaLm(hZ!>d;6!o4j1`~_Ik~ACWjoJ8Eiky7v$Ty`zaBBiGBQrA5=%m%x%ATGkLV*qS zwG|sd57>^=mJ4TMS~X`$TPNM6&%!)9He=`CAGbsI&s$NMj=aS+-2wL_8Oet4xxt<( z9R<%+#w?}_nuSa${0o(yGLT!QsW`>s`2SN^P8xFjE@k9H+&;43j zQ2VS`jxfLX)+_e=&wbHts3YS8Kvv`KGK)^e_QczMk=HFd+rPf}k)7(iZW-BG)*ww( z<_ym43-9RqZjOnR=~hw%`p~||>E?NvHaRV4p^qFqw(2_bd;oy{z30E^zw;! z+5Cu}E?=($GLh0E2d11jKvwzZK4)J?)H8CI-&|3S_P%cWx3B%!{?{*m*9v52g+C7< z`uF)JP44s0HzL~1(!5+;cRw%#z&mUP5tgRgDSPcd|L~+eap1TekXa93o+;Uff4Aj| z9jt9o`%T|e1rTTuA?}2LD~h9RjURDdM07HswyH*Rn;E;(cuiW)IA{kj3HrtwQ@!V- zqvZ{#UZRt-_;Wzp)A3s+19YB}mP4WXVr{i}rc(yAM{g&6xpuTw3}FKbAiN+i-}-d2 z7r=cZ`SUJi#il(QOQRZpN93@>jitQ+06+jqL_t)VagyITIuVksO+VTP3QnFUTUEX= z-R;c*h9ET=r`?R;Wo^egguwmn9%#RuszX7qEIDFd&?$KWCZ?9#RNZKK+}bP7n7?`d zO*=o>WyiFM>;1f}n7;UolXiTW5WE~*F@F4k@1OK*OuYqHn+?~6iAyO~+}&M@TLpJ1 zu0?}uaBC@A+#QM*m*DPh!GpVd2@aFz{btshe~^{jS@+rdTzen#Ucpgyk-Jr|B3|&K zyqmFt)2zlSDV2&w;1G7Wo_6RuNsNBk!tpiKWvn8u%bbo+K(x}s8jCD8fsDDTWwR@P zC8FZ~g{+#$F_fq+5|L)Jv%E}{{ZwTuXqI~h38W+-@^+5LwbbQ(Qj((0SXqOwoW@`% zz>B-aBG$UHXIj;hMWZ}4cYIfJj0P!;mQ!mpzxF{15)+Jtwg6u-iq_7_Q>x;R@9A;! zH@t+cSc=Vee&MDHBx2eOPbk*UMHt$(^M7CVX3>}Gr>JLTVU|w@?C$%U@QuIZ;+g#RMEk&7DP>JzBKQ0cDY+H((lS!V> z7A#@YWfl9*ek#HL%pSmELIn4eyW!i{$&Q)VS8DPpO(bzL%ChGl= z)xjcL@maC5xE&lkVc)y6nPWj7CQ=qM?)>%VucvkSiu3cij8kQmkhoGnd1gKYq ziA09%0vRCs9Cq3$*>G3thA`^nBols8)HDA?I+n8p^`cU~R0+;<8qt{rebL*$U<&8r5EhZ^& zSJ4Y(dn`!{=#ZPjU;cIwSEnu|?1qnH_?j_@d$5|6a|@Tg_C{RPLyWY&!Y*gpbi5Ya z^yBvn8t|6^M6La0!bofOw9!L<1d3*9y6#3caE7yv1QeSP?8CSp%TpJz1<32LTQk>I zksqk+;p#gvcGD9bzf=3;iWETFl~WgldP=qeDlX%R4_e1d{4dsY9K4Jfho{9nuW93Q zvkuSCa~h+FEIauV*d9iXDAVV_f4h>>wM5;&-kl&m#HH&MNcsb8Q=zB#;R8bGN_eyr(XNq92~AnZ5=p_vP4= z@-gHkkm?muwr7-ytWQ1Y$Zl`gxaQ19{_JErRQwjyg=P)6*AeECV zoy7x~d}_Qm>9-@2tB*3j+SFgLBh_&#%8OhXA?A@jF|w?G$L0_X3viVQg;rom)I8ZE z{@1gvFE2Vkh`G|)Tc3&~0dowX^x;r9&|;Fb(ECCFG0m{zXXiYAC@>;4VC|J3upO%h zwuuo%-`qexq#`G7s?!J15m?*QjcE;5Xfu9j1u?@k0_Xrr>4LRU_c20jasE4(#J$C{ zhY(0QWXKJz>oZmeISdcg$MU+obM>wF7-FoTY3MFS^5QXG9C_FsIcHRqylwqv%hwTT z-_HoT|E<6fCA8COHDj2NZioG@R8rUI0*kW4_o2OG{k~TDm|DY9{;zc5NN91fAm4#y zk1b#|((8Bs`+-T8L)XOk5T$%iAC;IIOTKnlGW0I7yDI;^ktzCq-L<{m9|7edi^s#w zG%2YvbIJg#n2)OO4Nm4ti(>CEdbgEU8Z{9JHr6iZc_!~+O_6!{5z>Z2D9WW2_k(S?Lq zIovyE20hQ5@b*3J+i{ppzFJu_i;`ucp4^G3b^WazxT4qGw-R`F=@f#x)#e$DNNTD_ zhl#1A2vAV?v{M%>F>$mBsFVd^EwkZ$J<3X1YW)b7Q8;^S9fVaAZV;xgJ)_2Um=cIg zYzqK(%A1DQJ-F!wV8&p=TV`<20>A%Pu*T`ci9Zx| zYC#{Mets7DL1JU;e;UHL$LtCyfr?YQ^xf|G4CMK=vir5c-7No1Ar@Z~ZcfS26X9CK zdq*ee6X?<{Q5bG2{ddnB_}aZm&J+R1#&POo8Rg?pa)5inKzPb=E8|%a2HknSFwX2B zRvw&O0XT8*VGJi2qe$0k(k3$WAqZ-?xi z)x4QdhuRMkziT%PRamK-7Nodx9|2O=CRhMs{%8Gs7>V`rfSxx`F8_&ld(5$$Om2b} z#II<=IIh&Y-A0>mbr8gGs^Mpu9P(QL8gK`HN*8V+C1pjlV?tnd?QqbZuqbE_&I0hL zI5AQOguf-4>@sH{lB|iJQO^XA6drH$vTcM)J!uHgW$L1Buy#jj1>36Akhy`scB*D# zAj$vv81bjbb(+C7RZ>hD7VtQ?A2UhTTu~Hvz?vqkE5J;mw~LB_4E+@8VL03A-F0V^ zn*wo({{xAW3s!2f;>@8!rmT>r43zGlx50qS1#(kv0TybSzIVt<7hJ40DU(3Y)*sKM zUz)uC*d0f?Cfm7f?!+6ezN!Dv<2X$YwITc#amn!5EEh4tkUDXC95ToKBda6 zJ3%yuCO;{hj!j7(CNvv)`$=rwP451ORgU{$DmEwz1#w%35%p-$$MMK3XgGc#;R>Xt zc2^BzZEM3bug5a==w*=nCVC^HaDp_&X|`m<%IMLH3nEb#@_R9*%H9lg3gJ&hNj^i^ z0ELI(ytV9BMQs9hIQWIZAU0Jvyq3QX%n6F(G&FT}2yp){IM0X}3g+}@FB^DpPb4oB0p&S+vXJ+J=-U=%zIVB8%r2-ITkasV*UelmbY<7X zj}E#N9jA9OVXZl3^WwS5@9iOdQTND6e%EgGB~;Tu4@@kJ5esJ$=YY0`#M2%Ub#hOl zif7seXx>op(AZY<=-7vMn;bDV*U8<(us7Ar+-!K)02KAsX9N}JfscDP%hCs_D6cMa@qc%j z@swuYBZvhj=syt*0fCeq?8h{KW0}l>?(RU5l1k*dHVHQ6<&}Ao%%rBMFU25}(XnQJ z=BFvld5`mdh?%_hU-ND$vol=vTZ*?JO?L(#$R*lKgu8WvX~BgH6GW0pUChx#Su!#| z({X0>S?a}x9(@u|kAKOFUP}>vxo&(1(%c=7d&aXUUy}gc)f7yPsO?@*P&XHYda>}6 z4N8^yDvl=bJBK~}U)YedTzK_c} zs|FSu5B)s8`&)<*kcyj-@}F_{^f0RbzgF1|N|ndc_rq3E)@=wuk77i?z~GOERLNAf zDQ{a#)aVWVVc?*%^~D-NSFb(obmBdnv|vzAxyg+4;%csslK7_HStXE21oyDqq92|C zf}crAwIaDK@*zV%!Y==I@Wb-8mmi2luuB(O(& z%idAej72Y2C`xdYv6YicHLi-TY*CtDSD?5{iRlDchJVH~Eq{u%&+2Nw3-Eouba~nw z9a3qVOXm${h;*w)Cwq1R`rEx>+p9e+01hdBf|Az+vL_-2dLMrjU0kp^LZB_T zynvR6Q8k#~K4piBUODE`7*k2R+6asATj($r)cI$hoqn$_7GoQ5IWqy!?Q}5iD0^4` zyRN&NM}^Nr30sYbw-v^>;vC<=+|z@uWxFJv|J3Z2a47p)$Ph!}K6>#GH||q=tkO)~CM5@j3w|&$%2OUBsrDvc$*PBnWBt zORn_~gMpbWWFRPT+07%Y()P`z&4hPv>qYi#?Sv@nh~MU%gw)xt>S5>& zHySDKLU#6kD!$Yofg$u-m{d?pL2?oiI(p++U*N? z1b8QmCA6(_eXoNk#MRCOL^n15EN3RS5K1f`{Wn5o8~2$#05MUIL5b~6ZSxSzFc*cK zX5m-eJUSJJMXQQ>;rYnOI*PO-k{>szQPzW};VPo=txls~d*u72G)c`SsS%IdJz|J*9iQWBaD)F-E%V zT)A5ccYkFV@!D4w`6^*2yb=M*_TU4{9dW%tz}10Lc#5j;M^A5}pzK6A#V>VA@7*z> zD}u3#7~kJ;eV@B|76(fTuZ(d7Y5GJd=ky-~?nVDkt$Riz1~Y>K0BSi$j; zMW`N*d2AA)oKLW(fXP%$o@g3jwk@fDk0NR$l2PH5H7}>cKRsOvwyL8jjd) zlDrc3-FZgU&M~o&J%RqsE)xDuk*)a4uifEJ;YrmdOcby%Gh0Ll6-Myb>-R4LQsTcA zt8NI`@WJIT%@t=mC84&fLg?xcb8<5;uGf@JpAZV>2RB)mWW-d(oKj&;Wo}_yeq@`O z65QNEhsWc=Tj0q%cTR?=dk~4#)%mOO*dhxGBu{ZDx?I8GNboTG)!H?~0$tUnEiI)d z=4F2WWU|=5mfzzgBC+TptjiMx)rJm~ei%YtINGxR{Rw@P2qd|nF%s-{ty?4CNufBE zQL5$^(sQN$B#}hOR-B z{xuZ~o%j7EmCS-uJ?pzS6V@iK5(doyx2J8qZpl_~=kOawVMS5;x%;XGB3r*>f8}P0 z0}vU979piFU;GV&yx#gtmD-sDM+(Ciey5q2r_x=^r*B2cvvA}oGu8YPBSuXsJ=VjJ zeNe@nU~x?o<1yu0dn>eLkX?OD*R%rgx+uKbKYqDW1P=~{D3zT{zDjlMo2Uy8v2czP zOjDLl`JNzdWoZ4z`1vcycL@y!mF$pT_Fl`K8Lyb=9b_3b{PQ?M)5*=YORg_Z!Dr(@ z3BiP$&1=2^0|)g=vVcYu1jJ;LJ|reWm6;5qh^B;0IpWz~Zn9tVgB`Suv(LraoEimQ zS^;Y`T)aA))s7}#MIY2p&XT{>RD_Gtj#*gplGe*Xlg=bbVVfDdwSUfTxbrMzyc~-b zPO6i7baf{g70O9}ue|Lj((1N8E0;nG+y23iuZ>%DJbz0>*H?~%vy@w;4bY15Jg&RW z#{8V4WeNq*t0w+$2se`#G&#!AKJJV_kO;)_RXcJD^zxO|u9fBXt6X7MW zN5;SCx%^!~@hqvV?Dsu1s~#NhxmwC+VGn?nkrM7MMv7D zMu_?XjRPwM_U(9r??sak18j7q7cbSD*qHL1jL)d}+#g)$UYaoTL+N<2pY7 zC`OntLo+-$uxgQ{Vnc$6Gxc74h4B`?w1T}bPU?;umH1vb!_ZjE{?`W-dF316-gV)) zgB+gTrj63j78;uNEB9=$a;q79=}z5Q&P8mWLlCOMLPoW8Qs4=DDYDoE|HpWU8z^1 z894Gfr0PGy@n`k3>=aQQc)&`Tcv05nUi<$ZSI2!gbCSSG`jo+1&pq}AepP{R3f+3{ zA8XIsr033&5z%G@naG!VjL3uft zanP3S5Q`v3kK$I6^Gz&m;ZF<#oYRtn?jz7u)YS&4Ijbp9iuZBJ&$`gaQq!<8`V;ED zrvmIf&I;+RsTYr+gh%?s?NjEx$`AtnK8~7k`+&hfp;l`|5+7CUC z%0lkD7G{cPdxMScCi1fIrs0-55DQ@K8GV`8$h2oSbstKOj0-7+gg?SsE>RCo10M&? zfq69CmU{=N6-S2$&#$Ljc-Jc*(mH~-DDA^!#v`px<`g2IS=}+Qhie~`x}TKB5{WW* z2yRu_I&0aS&oQxFYhm9OJL-+YEbm*Qx`mrOFDBj7mGE-Vc`&00UElCwi1I|tic_u- zGYRzf_$AyfYUazF%l9Cez$ue9=!aN*TM&~gTRRjsVt7tPT#CZN23y^k2P!LtA=4mx zZfJ}Oz$N}7<_p6Z2_pufJs+(k4n9&$KYXVXeH>+wlg>)gM-zocuttRB3)Gd>0HgXU zp1;l6r~f=qOfQkRdt+c^Oy(ME1M?m&pr8yCc^nSAG_so?lMcs&tIxN@ImjC!H}hmp z2ive^efMs`wPspZ75FKykw8B9)!xf=FmepUJTnq;ySsN14@yVNX9%jNBHwh!{I{HF zd3$andc~aT)b-i{``rI?|5qXqf19y)5|?u`-1OZUH`VS6v#q(;aOoyFmehU0F!zSL z^f>mJv@N$K4{9XOzGPL_uUtmho3b71R2dp6fm<)!GpxXT$K%qn*z0T1A3Q&-!&Lt9 zX!9w_{_^`t$}Ad@r4M4|Hm|U8N47A@I>WRIoc816Qx*%(c(!RZ86NF8-@O5*a+5hK zmah2pIhgKgZ4RWR9n=&Fb`{1M=K&20{;Y1=d9uxEgYF7wTb=pXCGze3V96)RP8lXx z%4RVU2mLfa9{nt$@=)45UNtIw?vEPN>@u+URJq$&hjShYK(t@?kOl4NKa1MD*tNq)eKBU zTs1OSz#t<*`Po_CS>pbBJYT=SD`F>W_s-$FEu^Rd*HEQeqdxHZPJ*NI zQfW~qfBxsj{r2N_VlMCfx}^6MdjZn-*RCRz2!;i)TP!@2vLo1{=m>igL{G32YT6|$DR!a7dTh+Y zsf$j4RfZq;2#apl;L0v8n7LC@v6VN6Qs_VtI`GXKLnXOqWIRH*@M+EmETf3Zo19+0jr@9xG|8mux+D zTQsm%pgIe!bU*s#vrgGlRlKs8>VKM1A>Qpq*j_Z;xZY3j5NbAkq31}&#mKpU6^M%4*;`zIK<2!A=Q z_uT8ZlI%wG;j5iF<20?T*8!@CL-n}*rr`%uS0|&NJHwH;%2ev_cg5?&wr0#ul6FkS zQRcK4Y}_Ol8wd_eb*=E zYK{^ZOer#tmNctbtLOA-o$KDOH6gC%hk5-Lobznik4@*L>G36FVY^7+BokF(G{qVjYsRh1XNlRJbN`) zzN-r%hVVps3Tbq}0>*~>4K?ajgB`)r+uJ8b9bcg54e;e`lgR=iqyEg~HduK)0SYCj zV>f(f34YN=j^~ZC7k14o29L!2Sfih=MN_9BQLw(pgUo73>|}183!r4G{H;T`V-aid z%mZ`)NNm!g7TGrsxbLav;Nx0^65xxXR^AV@C}TVeju%ZqI{W@YAOCWe%kk#b6&kQTCd9}?4RY4am9u?n4K_E!UHlMNWj!omjfeFlGQJQY|+ zI5}O9gO5&=5+846-ltxo9@uyDD|~ApRERo-$$4!84zJwI2vB~$pT&|vy=OVAnU(jl zCW5-}j+6?<3>my&bIF3KpjWb?oElkd3T(=L$rp>$(9Esa|0oz(*a;8oo+t7OXBH8* zPi^d2^H{S*`e#{WZNKFB1pdxwYx>ZhI@prgm5!10?q93lOBq}wE}&sg^sJ%in#u)k zDf9?uJMiuLDWz=S@i+Ox$I%E@(u<(8q?u$AmhD$AI=OSJU{Cq=a91hx-Zq=2gM$^R zz%I;Tl(+bou+^7jDU}Ts_4~9qx;0K=-RMy*DR237ayTMbq{j;WEGF(A_2K)U@QI+Y zXq{xICbLZ61^Cvs0t$5|WCTc?kMAk?mQCA)K^i69TK8|&hX+rlD*rbtb0ps*`}V@I z4P(*HxXz*~aY78T-_b*|@R$y!cOoONadfb~m?z#G z+Vx1KHilMps%K8W>c(>iO9^9e2N*}1!ZUK0xAW1@uK3EFs#`XGn3}eiH167X{TJO; zi_zDi&9cFjoW4BCbF5mG)tGDOw-LH4cAFb;)HZ4L^mbJc=oJ4$%#OJ-PP=0~U4F%% zm#{$~+RajdO_j-_csA@5TcT;oiplk~!%p0_l)cN^O`S~P9CQ)zijji1k#>UxS?t9a zl`}h!XRJy21G|J6@gEEz|NDI+x^NAJ&?aNX`{#Ft7v*gA)e_ovfzKy|zRjKe9C7=* zHJE0iVwClboo1r$^o$0pB#z%}6E52vmgy})>8HRbTw!?RD5qK}t1z;RECEm_4IgI# zAzi3W=2-AV+-q6+Z+6C{3~9Z`NRPqqArS|zJ&W}Vtsn$JcujXAzfAMqABp8R$~tFT z2^q*W*>rIj9AmP^oQapl|4o=}F^D~%nTU1Hfm9`(B`UDch;`rS`%W*u0aeFTV?@6kFrKJkFT zd-OA$#`;!^I?0u@5(^=<1?7DZi}DT`{c(@FSryXuFuvKM3&-D(O$V^MidQoBzHOC& zpnfYqT`gYh=V9&L77}+SZPKJzp0d)KVc|b#M4KrolUa^-_Z^h26ls-2`FtWDEx+{j zIci#{Fj?ssNLGm{^hFPhQ++$XU-XfCw@xHJt(}MYMZmUhuYxC!=@5oP2>IEyxk)L@ z!acR`?H4U?J!v|yvhFZzNGT+%R{TR7wM?^dQMPC!vJ94JqSWb0_z3-|(1_4n-RQ(Y zU-yr89VU;9R)!KLegV>dexA*GMMcAsq}b%jyi@#16?Q3mb2EFfbfQeeuE?~Ht&NHm zd9|0!sL8{Cu;DutTB*Qjj^fUH3}Z9TxTyAba8ZevT{Ich zCoXb96g_0m%2g##>ioU^z}dwa@h>mN50uLW>L=$vRVzMvwR&@1`BWZ-TzLwhYP{C= zPI7+NZH4{#QHW?Nug~3qrTMF_2PLOxibndwn{hVl8BekmN|Rb|GpUr|ezS21lgt_} zA7e|?J2v#a&DZu@_er@@E1N&Q1)E#Ki5nvkX(4`d?-VsTK62FL%A}xeaoek6sePQA zzw8DvrvA;a_#SE#zkokc#aIN6BaIK$Z(!7V)oWLY$fPCn4p~a#5BYZh#uu7u@~vu& zuadrO2CcTDKAm||KK*uk9@{2%K!i*wI7~5+2mEiJ&L+G$h$5J<+OaL_^=*fo7fX3f z2c-L~D11DcvcOfWuIucGOnpB1Rj|``OIYaelyGMWTe#C`Q1Q@|GvTlKi9hMej6erL zv`g)liijC0mvS4Z!<-KKntTJ4&LqA}y)GKD_?ltRjao-zgWA*H7e$>RO>KFuw33&F zB&%p>^w}LkTCm5@NH5FJqUg31EOU~Ae?^8yZ4`b zNq|Mil#p>7y@L6i;p+Z7!IO-C!XCIn%GoZ(-y$1Gkfv3274EF|+9<&JSZS)tN-DY~ zDg?0JJWkI8*DQ!8GWD59RIRS5Z_1Gk%LS*x|L{4&@*@ZVU}qR!N?fmn$fJ zTtU1=U2T>!Fuu4CGu&AVhr3I(Hn7)cl;PVIL<>w^oC5Bn(*&5+|+? z#m&3kdeNVvRmtnbKNelLOITkt8Z~@Je|NB}jDRbe;pjr2pHgwxvOk56TXgj6{R7|f zCWxu+1M=W_b`q@J*Pc4LJh#ROgu*^l$4vXQpC z@p+D@Z7uli^qYkZwi@#kX}$vj-GE`c_VEuBldAe_omx>A&Zj^ZgtFp4%~s~Fd9yR@ z%0E;zpQbmuE2Inf5R5fecRfC5C}sO_e=LqzdQn}z3Pr4{oWbh*Z|e;cSII(~*}PRA z`5+A+yN)U1VX1KY{*>F?j)%x>3c|E+#%JB^SrRwnBa;n`ossv$--8a`!>4f6DMq6( zVzD)0gzqoWknE!H(l+zV4a8qjfu|&*Z`D8_b$ata?u&T=^nC9|L|W)rh2S$;&<28oiq9i>&3D5w zr}U8|Uh{@3+kd4D8C1{nqtZUe9yPL5H;Jedryc6k27&+(33#b~YK!WRCu$}l@ZOx; zXMVdO{U#nA6HS7pKa1S178n5%?e$zjC8JCO_L_W7R}!4Caa0jso7jAs{C5hfuZ~^* z3pplD&mDC;iERMyuNcLgipuWog1%&81fBm*JfR>m!#(0<8W48&G-+B9TYdj@X~$tg z{5I*v%jVQ0&fivb?SwaIPst0$ z$^P~XHvAD~_|X2)QJfe0$@X_ax&l?$XoyG2!8(kRqD6I-n61TABuQb}?dIHrWdIOD zFGlP9o}dRgaU6Ys2N)gWln`oy@ayBCzG zjE0}IA8?hB`XV5#%LFnj1LT*ymeA^?^A>F0DcyJTkxu|91VS=CBX}O(qiQTh&WJBT6QGt;u zVfkmc^@atRHp!DTy9>{{m#Saq+~@nQrrF9aZV^jTwgK5aU{<4&e#Rn>#q|yIy#z)0 z>-OOOoob1@dzx&m^t!hLoyA{7U)@PzXSJgL_Tj1fzM97S-|XQfU_@oswnJa%W07C6 zm#ith4DAN^6=&M>gsQuJkXo!KO7zqfzUDo}?TwKW`t!tbk@HNC0L(~3{J%8-xvQ73 zQWhaIkN!P=+&omt-Y)EV!(N zXW<~ZX(te&Azx4vr1!UrD9Ni~2{t1sLZL zvi4l|eAQHBLv6IOV8oD`s@Z2t6kv8Zq^DrZ%#leXsrl&t38$!-QBU0^1rw8TW&Xw- z_^i%z3+T!6$TSm9>t8+gFZYMIRH0%jJUKapbK0{FSn_gZp)+fL>`_J@pD zG<*acn3&4ZBT5-#<7>^Uv~{T7c6HUP2Hat&D)iB=h~MD#uJHrpvkDoEMMFcV{?ml3 z!@>7bKlj12s25F<_umf&)4S2y5SZ(uoHZECG;>ob*!-4eLMW-vpwClI z;V?EZ-i-6tfP0pO1q;iXmcdA_sa6&S4goH3-9#xOab&)07)O<%hu`|IV!l)ZK}#Ds zfm2m6m_n#dPrM5BbS{K~c73kvP@q%dgom*kqta^+9v7rmh+2v;Sj#Z$aW#^voEo55 z;Prat-&im*fhj5?qE&^SZJOmudJ=Su%v+Mgksk9$M%FWv%~M&rh_A0FE50$J(K#jP zyh_3$?{F>rk#EXx$yOro%t%|`>X!!fQR0o%2IrW^)NI{6|9##1U#H{fMCuCE&4vx~ z7R`t1By7K!f#U4H%r+s7(bqXw-o|GYb?u|`2g&<(+6H=bnuO9ArmqVB=-0zyBmlTu zrU?z|Edo|P9ur=wWY_+*SJ{^$yWPNDxD%if+e}xS>Hzpd;4N6Tv8i3AWarxP((+T= zqK3nK@O>xO^Pn5{QoKI_a9<J%VwGV&U=4 zF<$zqjs1_rf-o&d=kM^WS`?=J5xWeY&o57=-#Q9#^`37_jN`mlE08mc&=)kqe+lXY zZjDWl8HT~0a#wOWje|?Kj=h|)yZ<24rBCFSYik(D*u;jj->*#Cpz!uh2t$4u8}0^p04xT^*6zdZBqJblJ+t8-GvhycX#*Mf0UCutJ01o=Uv_SK;6cM zQngDt_+A=m*-pu}Up5|AT_|Rwn@84t#QLB7E(V+=KOxtc^)@%v0nNZZTq#V2!n@ts zn?ZOq=p-C3*_SqBocb5EaBl#BlXcb{kS)a^cE5@LgQmBT+KGfkaqYO;MQ(AW*l`>s=~|P&?t0vm{DdcC_!s3 zrZqv1e7P_d0|;JC-0o>!j~a;}CA}OFaeSR%GI7qZ>0I|SK6!wiRjSHf2YSEy`&O6B zmpooq(90G-AR)nl=oly*SozF-BfDc#UL8eq46ICiAAb?luf2cNR`UCa{hWns{WtI* zbjr}b(H+zp(bE(9QkAu|K}i(!*}$?YEi=0kFNHv*JUg0(Y7=ummee5Q{SB2RIO%R` zE7*ysf2B-H0wn)x!zKi!P|H3q#{}g!%@)sFT?O&>-LR%3eDB+-N}BPcCV1zg`^6pT ziSC@)2r0|>)w=PU_vzn|B}QvehjK|=c1493OmC-HmTBb(lvm&a~2$8!&QRd4T+sW$K>ste3=qE}v80cPo>&8DA?0E~bo($mY8CmNjsx7{3{Rg{>n z9)bTtr@mmVqW@RPdx4bNC-y&EiyFxZKcweJjhZaIFUpg>MZm(lItJ&|{!D8@!(J}U z&#iJ08YQrv+^wB##?IC(n6pnFw+%dUO7~lBRU)mmuZ7tU(EcCr11X1NMN(ioL zwpMs-GPCv>;jCS;1)yxl#<2bMA;TELnCya`u(hltt{(X8GPQ9h?b_uLnCH1*Wqzcu zbhV~lXuWTx~u4SQ0lWwuf4O4nr!0`(VIoRyPxZ- zjI3;>L6F%u?_U-!rq%9jhkD8{>|{eDFT!K-%0T|r6%kR;2o|;P4sGr=LXgI~M0y^; z(W!wp-Rv*E6cyTsd-6+2YAo_&1rlE1>4Pjk(MWQ!hp~1eAN-6E>j6!ox~N9|(EN;y zQp!WC)2VG!;4Q>N^oD1?PCjN3wubdOKa9kX3EBw~NLPy|^jwju79ek}P$a`%`ZOel zRs6KXoj2a@%LMoHb|2pVVg#w106;N`QHa7`(#cH{f`Gy(D1T>(TbXiNOIK}^QD6W6&&Zxy94H8@1$7n_!pTT#Av46jc`sa}EEJ^n{rgzRb^PN` zC{szG<%2$2+XyGE&Ks_&SZ>lyz8S}7XUF6M>0~$EKLa!2FOIQpb z3_r{o^u9r2^Lbz$tiEIQo#v`Mx#{Wk%j;5bA8+yKxEb*bVFzN z;}?t4gl_4>1eJUn<~VKesgfVhIm7Lmsa0CZ4&1GRrS+bio57@d5!=@JYz|xzFES@S znsa)B|C`}5aB3`tW8H}SM+9K{+COl0;1n&2($&`^!oHafIkY zB$Rigm)Vb1NmKAaN(b1?ISf;9eAfJe#1vE>n`)i-LN(E9PB+pO2f3MK~ElL{O~FZk@he{{+iy*lBh6R$)J zdy0$>;La$!NS}_Ow)JjHA{h)}VK*Q%*5z{LBQf|B(A|~Icm~SQ*(q5x@X;strD?-U z!!4`*SFH;NvbyWLv9ZK{_vfW0A`kV!uIhg&7om_bXp#} z;+9Y|4{~QbST^?Bg0Yl~&I)g*?jbkvoDjl$#>o_>-)~DZw;*X@;$QcP5m~pU`fO?Y zn7PIC`vdwx#}^kl0IZ2@1Rh&Ar`2cudqNUAHvQ!hL-l}vF51mHU?9aPiTCtCi`VG=cl$Y zvvoCGjZ3Q^A{{|s*><*~HHS2uh1Mn=AVy*4htJQ>B6rhQv_!Zpt-PwSZPF8!dOc7N z#_=HPX#Xm<8?VqjM-odu)-rUT{%ea0Bfg>?rO2~rQ#D)eHEE}jL7Xa5a{Ry43rjmW zCo-8L`+Id$zMlfgWgEs3mi5C$9Mg=3E7N{dmC)h^tHnanvJ-NzP(20mxIfK(m{zI(o?es)b2t zajepjdYA0Q^kjLeAT+aAEvP1nox>t<69 z&<^z)FNuj)D$ z1J-;TrbjU%*9x->y7!6*&V?MMN0N-h3U*pLGA{SO(pUUMKIp#>iJtfe=%q>)$P9U^ zxZbAu^iYdN9G|F72(amZ9a!s8w0M!aJg^CS(!cR&;;xQI!ALx+%)v(rvF}pVF+#Tx z)@Hb5+nQN0W>uXCb~h9nvArwSoBcL_d)O|0P+Uo!P??DBwosY)A-AIooFlYe(*O$j z8}@(ne4@~%C5F{UPH5xU0RmRf&*)v{(eE@Q7L<@adkeY~p#fy#)|$=vjy9flE}Z5W zj0pGfjo&eM9B?|H9>ynl1l$lQxZyck$R`+Hk2?fUBm8CEKUYsj?t(;RF&>d~%9Q4K zXs&YFYIhN-f#T2D#llfe31kj(0VftZo(hZg(Ana8XjBSDO4%?j{J2m=--UeWzU8vW zR$O|90?Ir}eJT zOo2hNnQegS}M@=r>bg8>NoC!t_%#&WhYU5g1X=pvhA4VI3E(tiSl(1h2 zgYe=tww~VV`5%z#K9lh=2fc0ob*rNA?L$AOb9S;{Z;^r74Jaisu7y>tgM&pFz>#Kz z&bxQ;oIyE?yqnDz{?4lQeN=nsidGdFGhb52K$z+m9{9rXzL>rWTewo78oW9&K zMy>4p_KY~#ymm=9b2Ml62;D<1Y-i?eyAA1nzpQ^C3DCl?a|~7ncaq#50(=BPV}?do zxa|3V%#3|dF2?7c|9smmUh(B9SXdUd_(&k_qjC30=6SEn^gFm4tFCH>hD}w@?ZRkQ zD)w8Um7Wn`_wMYJ3)n12^BAU!0Ph?a&L)X3E@!HTF!M?18@Djg|JMbeGdaeYytp#u zlTm?!rLHI50pQb~f*}6@m(d+jVJ3>ngh(ks{ptj@EmKu2K|9oay8o)vo+}Y7M6M zQtQ_L(vvLxa^c1Y0RB|=O^X>44LjZpz}n-|-_&L7I(c~;!Jq2sqs|b(Tw{yfvi=Ud zMXD(=+ME9mO<%zkb@zok3@s@s(%m6Qw}6y%H%d1WLzjR^cXuPr&<)ZcLrHfIH8c#( z<^A7#*Zu;te(TIRdq1^77F;Lao`gTJItxlk9Q{dn8l&_bdfwdT)Q`qw;3|-2Jk@x6GJA3Ki+&5ReYer zMa{MUew&L6eaUNSnYzp)EoZ7)0QJliv*aT{rukBne=j_epSd0)2DZ0>M@Ldl`)FzB z7%AT_CLCqB*T;a{LB$}RgR*>~thyK)_qKbRgTn?Akft-G&A^X210`WGpRUS}jQ44@ z1%fNqR4V;aK4nbIt`4yvPeoz1Lus$%5x;^o1n2G-$U!@v`W!!yNoN320K1M z&5~r7d2^q4J15I9l!D-4vS6?D&7|!%q!9;hF!ry7aO@&Np69D%VoSpnlCVEt-yXDo zqP0ic28|oa#H*C}Ss{XLKCS12nkcnQS6$;`hDDINjuGi1P4lR$*m~GO z8WTq7-J;A?v$T0uf{XOZ?Gg*yXz=h!&}%^QZn&?R)T2j$$+75>sO)!ISVM!kB4<`T z)NT}Z=SqC)lXcaUFz6Q_$|(u_uY{Qqgm{rbzPpj$Rj$6H(Y$p8_6G7f&vECNxDnrR zCf|%r+6M^{^#(QLJw1DAe|t@E2>9}tpRb5-5lkBJkuKloSeokD@PPFe7ok6A=9~Y+ zO33QryN1vduQ8zn^NIP~#!_XYS~nOQl_#sMglTGbSr_mf#ht^0OT_Gle}wyH3SW}A zZ!6Ru(dFMW`U$BC=&x`3%R=w34h^)OX=fosI*WIQ-d5LZ%#k-9?`xJDdpQ*4RqF9P zCoPyyi3E^5@yz@8Z(&x+a|@M3?$V1F#QYov(~a$X)N$D&Mb@d*4t1(YB36wUE)v?K z!_>6weR>@A%ZShtWj?V;p^I#so<~@TFys^Yk(<*hh3ipysqw3?EtC#0-J6O)6%cG~ z88i20k?sHVhK zyv(|P=-W<|b%A~ZmpTWBuQdbuaJ0%}!IQVwl3x3v?2 zr2FS&EbFi#@^L|y*TgtOIu?cz*V0jNx=7gTMZHBYvAj$EkM(`}W%~!%^MHf#TQ1Kf zZWO~1bAGhe8KZ}7;uy*q#|GKh9B{7hV-8WF2JF&`!rf~lTZGN;yc(UCuE7cqE$|^H zT#Sy4uC|+Q<4$x8BNFyWE!imZT`ji*zU5f$XI@1-wAwPW?k3dwBga}2yx1%}M5|)nB z70@&?uYph-5mOumqL(yJ^=7+~^`X`|wU!Wq7IXHwFKp{59<1k%yeGS8ee!V6%6ab2Exytz%G{Rj9P$Zq&84L#Ovb3^7Q@3mhb)nj?-00y_6ykpo9I#3SV}yI zN0zMcR1@%pp6jNF<>_jNj5R{POL<~qiFG`8DU3Y&rg$dx*mpJD;%xnhBr2M{)9A)> z#+`MtT4Hdx3gzO{6XX{pw(T>YZ&FfBf3^6@JHcqfa9seA9TZWBSTpbxt8saE&2mif zOXFrJiQ-#N6Z$w|`E8K~3gxEn+Z?-pa3sq?j6fIDO`JFrj>WhpR53Z%&*u`_ifZ|Bt*R{s3!bGkUBUXT)%fca_xsP>g3w$yj?S3wfM-w24NuR zWalTQ12q-=z1}u_G!-C>?JFptPSpGk9C`~MFDy404ao^h+@fJ`@*HX~UdtR|71|kI zDBGv0N0ufQZj;^0XUE;zj(It8TsowjrS=@M!L}i z3YSiu*wlU6`tOb+O$JC2&*_H@9V#z2uvNX=SHX6+)Klz(K| zjD$1eCk~&HlMs`ThKmW!yPMH}uY_*n8E)fz&-^Z5CW4VWDej*(N-ymDI?`wzx1{z|b}VNnnc>iEHM-yW&i(}ibqO&S_XpB{g?(Y+iIoA z_v{9d9D(@#t&0**`1~Ikc2J)}?J5T4)$h-Qw`;c5bk@$>HIhy2clGlG6OuW`mes93 z<_{Y#ws;f^v|P+927^tX?bk&A8grXRYN))jp=-w(m8Gc(71JUQe7_qxlB z_Co1@Ya82Tpek1w9ex9%d>3FD7^!Qm6JVtscf5{SPNn=kc@j5#)7E)%+U2p!E{iU! z1ny%Cp$ZD73F@oprA&H{cK7<~%i^5{GeZ<&pagm^|3V1O&4s;57&PqbPDm(0iP%m5 zhF*cb(l=wUL(lHyNE||JPn$)!)3!>up)svag&8yneS(Ri~ivy<> zp`P@fRX#eAX3aH;Rv^s3zs4GyHL$b6^+o?=i7AGo4q17%=5!Tp=GH_U>tz}2wR?aQ zlEg{WwB3(8AKRDa%mK0*OQ1}uMJ2oG7sFMO?^;BQ%MQ)MX73LVH8FRG6hf%SLpWZ(DT`Kb;Pm&Q zYbTS->`F5FerrAnP(G>KG3DWO%7 z{`!8y(;+SW%@}8nhu%_5*H>DLMBCjn;99+oxc3nE$C6oFOfe0O(}HkvJ3c(87JfNX zPC8uG*v>d_IUYIFT!p}(Xh}ll+0sLm?zVC6Q&fNVve(2H^U8`2gn?BPcjvP}?{L!qR;4A&{hAr%Dv*Xm z*+`3U{O>8jTASG?eC^J3Q!Ko1<>s`{ec6?{(8p%tk&}n|GvQ0Ka9C%xB`f|cF1`Wf zX>H5nkPYgRb`CA8IL`18G&xIyLE=VI>DLhQv6bzQlVoP%uebPgxUc0bLAMb!@a4M7 zetGM`8~BumbCq~?NtS>8Bk?`QaU!s*1rm~mdjQ?O51<@D5Lf3LYb?&PbsPe;2yNugZ*T6i&buv9_31S~&fkC?4HA>67#s^?eoJr=&5VH`Bk1Fjx zT-D*v2?|+vd+vQF%}#HapQX6y|0*sh=6F{C__V%a?M?bS5!Nw38-4#yVjpxZthKdZ z6>mj*7hB_WA?tT5hNZVf=3e~JRL@rTJ)X#G12GxXA^8<=1F^&r9h~**ARPEDIZHib z({x-rcg=LiGK)u7DHVv9&tPl9BBmaC>Zy^?kDHLJ-LpkS`HKB3w>-OcqsDN?)qi5e zU>PjNllc@h{arh-20MxQO#5FClp5VUwl`*a(dUY-{`gBa&nWJ5qE07%Pr8=7S{WTT z_sSIk;8hA-B9wH_a`esx;5h|H<2rf06^l34p)>fbyC=n7cKf!CjLJEw3gqcbgAsWp zMJsO-r|tFgob(f#lHSBEz^ zEeKzAO#3QE#{G88_fqpS^zDX5N}7!Fgdf)U0g!-aKMH`}oB)!2vv(Sl3|v3!?7m#l z(YyRaU%$*Evd~E^OkH&(^P|Wcq>A0Wb9qx95C||V%y|?w7{`GHw@eCm)ZbMNwkAV; z!cf>`BQaIc)}j$sM`+g()MpwO{&5~T;d-qhn4nDWl8GW&b?b(jdBtpxW*ys4r6k#- zE%>Pl4&$HVVcd6!vu_{elm}%yLCxW<3zcVd-;xi4mC`(HCCc3DkbZ zc!QDpKxSU2?|fF9v+H%w!>Hr&;UWYzXR#O&E_!<9h+kC2 zCt*Qkdsq zWAJ*^m(u(?e+=m4843b^7%GY;POa_Z=#6MJ5OQ!FiP@#B!zQgqKf*^7-^#K$O^$o? zdAJR)hg*C_tl9IM_-`Qgp%3a0$gkB24|5BCZQMX6K+GmPENx@S&~~5ij%#c7ofgFf zVUj^xiOdx_a05p@cTf=F$Zr<-gJk@auvTK$>#93DikTv%<*m9T{bxVoi1w@iC898M zK~%ITm-Zt0bk_EZ{bb2kY1EqI5&5xeB45)yHYQG+Jk9b-`p0`851OML!oaVZ|3sNH z?0I@Eytdldz6$-kXOr(ZN^}WnqM}+G_i-2hs=E80f(%SMvV~_P7oRMA^+6s8rNzhC zqCZsxcI#aY6S)5kFSq{=R?)XHR@>np7%3W=t=N+0^Yx{|K8*2+*olJ;d5ASKE9H^$ z%0Gm~ideli7Z?z)lj5bsl-#&)rytkdlz(?<)X9mqTq6`SDmLiNn46D+Q`M`a@n^3- zGTEHWhN|$B{r8oAAl+0T0mu%T9o-uiOjdm-$|J|LDYyUS1E+ySz&2BNL6)T?1cZ#> zJ}ExBJaW?r|K`tgtG9CkXo0JsSu8Ug3BrHmqEDSJf6@{D*t@fI3d*|647VBB=$(yZ#YM`z8l|5e*QdY6@?v#;Qo2c5w9hiR=?O2 z!(-{;*XY#rA_v8l=8$W2uzcmfZ&%T_CcL)ZPa3jowS`mqKFs>u;MG>}YE z&!=3o!Ob4-zqF~PP79bMi*onb1q_(QZ{~p?MV%_>iVo4TJ-lg z_O!cV+_{!OD0~dos?)a-Bn(lx`{)-j*5v=djmDx_8LX2 zRa)m|&W_^~7Wh~c+V}QgLP$Z}0+l}HCB6x)uG|FA7^`v9@|D;?L?~^$Vm(4n%AO|? zO~#32Z$O>bymN^5SRG3onE4!ZAb?k`{V<~QfM5z27LO-MfswQg7T~taIbR(umrOA3 z3dr?#PK-L+ceM^a2KRU!JDq&Ht%u^}`LDby+$*Uz#&8sXDA%XAN8a3Lt1N6;Oysuh z>^*m=gmhNQuE)G8aFE||ei{s(#m12LLW(aGGe*#vEn3*NtqBlzlr+vYTla zFY=iI*C8XRH`BY|BrOy3&kXuHZHitYP&SS0*qln7O_?A9&r(-=8_PvAgN@>vaqI}T zi%(od$2$X-iA`kMwbH&~Hv{fj@lq?l{wG{ZFxex%C>pd0XP1K++V7_xO&49bec@@ zBb>S)GKz;Kc?}m?*;yXKzk=_r%f|KFKhBlml)fNGjn14< z1LOkb0As_zgJ*;c5A_={NAuV(de&+4TVmSJUQv{q=~B&Rb-AlV>yIlKd_sbb!I#q?kkW>r!6FEMZ?LaMBAR>D`sE6p zy>^AD>?4;R>N13y?GSKDx#qiFh1HsO!f)?TJ2CDyvK3Q|ktXlbH%_7fKUCjo>F5>YF!(LR@x&u+!+PKE74cYfk1oQ#Kv zh&Wk1R*K!Od96Jz0(VAh$xn-mf^fet4T6s`QTMx9DXv5~i;X=eK(`*vMtl(0j$!~u zf)>Buvg1ggcWGB0M{c}^Sr6!wZ@WA3_OojCVM1eBpg0|SL`1=NmrqHbrt1ZRS@`)G6iitIfvVC zQ;K&{dt98XiJ~WhU9h~_0=ja%7X~Xs%lMcO?!U0Dd`DZOr6feRJxwh?gb|CuvkC<+ z-RelAKn6~+eyL5oTey00Jsk2>s-wpVc~ac3PX#+d4OM(BDpnq*V~y+I~9F3!TqNh|2ffPh7=|YGEPHwFVBn9RMOVg-4t2T0sTPRajV@POWTY^}iOz&zUWlNc z+W^Y^&mwD{1M`BjtAj|0`b+X&1qfU)7&Gh=@!Q7gs1gfKuh%3IkR(+3yWyuPWmAma zLl5JPu!)~$V$8?+HDB+#gOE$Apw~j+M7URSUod#D@@?o7LYv%)?9XMB^9l~V#`nv?4sPqW+;8B z_g9}%b-YK{OisQ<5OJ2#58dbc+L`V4SV}*v9^#|>&$||%+mRH_MgE*VOXcj#)S7?p zKAfpe%!shniJ>PEmB@yxZL>d=s&v_#_+Bx?y9y=*Dpbk60;YW8NIM=l$%LKOr(#mg zz}~4B@>dUhRETSWL=Vn~>2&248nP-2X`uBeyZqwPZchC*xlGe3F3CJ049PovLpeOr zy!H}43E?vr*-ckPiiGf^b&w>mt7ZUzJo%stQ%gPcmN2%^xYKdBfh$;DMqRrfiW(+a z@SPU2`PE;RR^50;SePGn>J|k&+XpcT`w{+=zs=2qO)6`*%#MU-BX=zS6+W|(SY~Bo zsug5+>DC-G~u@5&thkx*CIMFm0Q5Elv$@$*}*u)TIy4l5h7g`$px-19j-4_x~t46G= z_S2WY4)}`mMRO)5zj6I>_jDP@_P3HSeJTzzir*Y7#n0kmYYxd!iBVy|3X$nSomC?c zYb~;3jMDNNKNme8&2wLDoI5M8P8|hTgBs>_rd8dEuaf&owtDS_XE)(KN#PoPO4&0} zX34IQbZOJj>A7*D?T^e!Z#mq}>lOnm{Y(p>k21nq#SXO!kv;v% z5*a(Fc69z@(?u!rUey;vUPk`E=~u{k;@`@RWH-f3$?LJO>1w;ABwJZ5jX~cWX9vYr zszK^*DfZ1n>feyk6y9Vo|H7FIR~5hdn<`I z-y81V$6tQgy}7KiGXHEqYz326GUtx^)kO7;vF42NbyV0mQwV&vyzF!?!l8+g4BB{I z81`*e#sYi)%x^&<;nED4avX3Ci9N1bv#em}c)?^k-Uj$0eROcNbAQt7^flVBPVjsT z^LcvW7!PaMzBGGditi?DZ-VM<^?2D`rO6lud%uLhoksY=OT`OWvtezgN1Vxavh87&XcW^V2-ld=}#N_H(?&57vF}^7RWUPYOL!JpEQk$7d{07%3m^PORNOO6=bsZNeDY%ac@Q#`TUI zmF6I5u$C{SFY;>3@{J=?NJppHb&oW6%yOXxA6&X8N&|?`)Fd*$P2n2(Y4xublh|Y) zb4gSm0v@zj$uQj`E^9M7KGFA{vGtSjg`j!I!sqFlclY?`O1>rOf-a-_Txz)Q*|IrkE zGzdd_)g!0|LtpUUGI-eq5o0zOdkxy4|Dy@;z2nVH{FcEvz-2Oe*WyXmzN>oqNw2E@ zRx(BWamVPv_<`Mr`JiF

g}KE)eE8lKE&B+FK`$y|`c-H9$Sek=3f3JOCXN?=!E` z*VcCq`u5aE=c=J#ra3HfT7se$1RvY-ck%tx<#ogCa~EGq2B1V(q)pVQEcMO9M$^T4 z`zy>fX0r7WqG;ku1zO)|VR9?lQ6AST_WhZ#B~rzcvfW!dgd2 zUX`ZJWwm@6tK_doBLzT?scBc7xYkyz>*IdNc93 zyIiyQ5KIoLtep1i7AI%_1Z-k*gWm`Q)^tes6z&u5lbZDoJ>+7ncOX43RD6ZyV-1@| zGjtTXND_bZRh}3HSFBd06dJj7zOR^R=;6c%_|XtbQPf2ZqUA{|tKP+M3<&>u_~E~M zT}?iI_C7w5aZQk{^xJh*4cWy{4SflBqKO6M5p2TIpnN%}e_&Fs^E9H7@&@O#I)UEq zJo1F&lPe(|dvNt}0_ofp=P#5q6)~?q7q?S?r$0NSUVywp=pU%R0t$JT$Uo{JF?_*6 z)Du@p)T_x(v>mKILbi)3@~QKAjHV+sgdth`JSWI~`wkaaU?%yx`rdXOa(OZHC9STJ zUuiM?auU<8DQP%pfE3e*Tbj7<+oA%D?nXXm^NH$o$o6QJ=N}@hM(VR9<58>~V0zn=IetOQ35s^}?(>C9kVj}!SLU}17<)tFYLd5{9V5N7bhOZP8^~rxv zyJ%{l4iI6P9LGm9-&kdk47V}|D3LF#FiY8W2j`>p@556Y&a;O{V;Oj<|MWX*tr1X# z59M}PHTwv&@w3lV$KD9AGTGFB&}h0YYU_kg&LVirdW*&E^Emj(y zPIM*=^x}yE=gMNEN9kY11h2@W03Gh~(Btj)ShdOXpVlF=VdYq&_1vnt*xRFMQSv!v z*+rEc0caq1fT*^&>O3V>=Xu6Lt)g`L#KIqS6;Q&Lh#Qc9zMaOujz|Rv@B~k zyH+;*1*8c~4Q3vHA)-0vHV1Hxv0IVaVBlnTN0I#^<&gKi-+GE~hHsd5WYZ`IVi~R1 zknb7%?vzv%uN#LnJQDhD-8l!t2(!mqNhbMH>Q9>NufJ6^=k-UujnwSMZZ_v6<>lpX zqBHfQHpI5J;J7zINQS~HwbU^1K4J30JVb=!h7j>xmEhKZKB7nnFn_o18)HV zeT64~C1_YG=|ASE}gty{CN?MR03I4B+ji}_d2(`iMBFsDjhwnDy~`9!$lA|)spCqV(N_#C$t_9 zPEtOpVXJY*UtfDR*7NEYLM z#v(3}iTRcq-95vgYfFzkn#=MDCwtTsC@uXJtIw9S~ijLHe6 zOtx?ax>z~7FH8)Ur4G{CE(gq8RkMt*9M*p|ONR@ythC6J#V#3IanPNe&i%mA2!}7& zQFhvy9cmbwP$EzI`d)<_4i#M2tUZO#hU1}BXa>^HtH?S$k!7v8c;_k5@JVGTB7D1LtjpkgX|$pM!&^r#M3s3V;nKWukcM<7_1BiVl3$r7z(n zjuOh;rAT5L{A)~s$gVy0Uxs)nNnS?k=A~{p;JHeR-9Gy+z5p~Y&Ta9X)uWKJPQ)E! zrxu$+mKS(UHz$|vq>O(}1AN+rd*)L2rOWg1t)L0HhGzWp-kQ+^JnFuB8aR>U1|FPa zIFDCp`&%Gf?z1|xacB`rM&(*wDMhw5kdY|iA@y{BZ@d}*z=3{A*yBInpHbArUYa|d zdFsRWz8m{qDYDvCflZmHdX2ul;F0Dvm)bp2vpMs0A#VvY$m3_NHpwmd-NW~?*X2)B zLYtnq%69eJKT%&BozGK)&5t?MfxLhG4i1fb954FgH@44*k_)!@QA;XB>zR1iN+FDg zv4R0~Y+QFe57H!Mi1+9@^6`k9GM!G7Z{uGGV8FnmE-B4y_{fqhUQ9a&fuY%S2HpypomF2uWlp+<&|Y zDNaZUp3vWD2@(0Im*+8%{V*-BT;zV%;tn>BM8l|K}sLn&nlD4txHwx7qtkN$AG^^>0UJp;* zo;na!i}RG+-#3Awnn<^$z6Um254mY|I|Sdq3OO4IzMVhV=&uwtHnEM(ju$CtT`p(i zGyHY-KXFG_3g9WFjfB|tjUvobrt#8D(qw93)p5P`(d^-7$Z096sao9iu%N!o^(i}m zNnhxsd)l+_`IJ?>&dK=x54an%dM0&B=N@{C{p*D|HQ?Jg*twE$Uf5K0^`C+t!Bf`q zryBWhT`gX#-y{t0r|d)e-r!02YZR24B}AKjmdH%r>G)F^wwI8KFqhjtzDdCeo`}8gZGYL`L@(%p!CzC_CAL!HAW~RwmdwKhwl_`k>i92xaGt669aL zD7CZ_3sPgj9SA-aDZ9rRl)V>-Ve$0^Z$5Cy2ZBD9w*6II zzAvg-jYyoCok*6w%G%Ge=LdgcEg_sV;d5(RqU?MYRh%nN<5#$Z+45iDO}}a@(b17G z;MsAuzh001E1eQ#CmO7Sbd&5NiUv(*8iIbBUgd8>9BCNN2S5C zGx}tD-j(0>K`PACJEw7!1Ow3*NXcyeAWFr^#<#F%On)?(5(64aR$kN5aPvz~!dybDWiLUpK zXIY&L>`YQ$w=){lF_HP7Ms`<{^Ze%HK#e(F?z+=R5{tqmA{EFGCAqRSPxkDaO)WqwVJQScVi9_ zKS~B{U;{8+EWe56gb|e-}^p1#haalP?`Nd?6 zbV~aq&N`^f9#QF@N;!nkPPI+H8M28L8#?WPpZAV@aUjk<3Dt;Q!VPT9aE@5|Nbo)+ zIVUpKinHsX1F`7S+Yn^eIx-^=8XK~`QEXTH>fPRxtZ@-ew^)!bS3plXJJE&!Srw7i zh^;$VJE!cA^!FAh5m`LqhS$J&2a~?+eRKmpek{|IjH1#E8I{pSBj9fKNAocX)6iF@ zcDnlps>#U}Yg$_ju~U(5ZQ;BZgMUC`6lDwjNtQ`Z{+haKDHQRTZ6jGC24RcE2@d={ zlHri9nSfj6_s7!`FMHm(Q917o46-V{lWSgW3bHse#X<}xYHD)db0-+TJY@d$u1INmkXZ1K6{>D2{x0O+WQ)M>ExmsV;Dr@58teb3WLmC z%6X%HixwjFb}~^bX)PZ;^ZF-CwKY5y=T&U^7^^W8$;bO!zJh`@GrP8)`yK1~%1PKK zs(jr4i9@Lo74Z}vs(AwtQcEFxV?9h z4g|Lq!@7EBkZPs^*tv9<@Pct9x zoIJq|5dS66(CFoxm6*w>q+c4I_jm!hil(`b)GGU>z5t_3q$})Ug-rPOW<(nX26}xR zo#t!Io5i|U_31g*tr&AHNl!X*w2R>JU%4^okCK`32h&?dtQ<;pUDYI{DuosoIPLmk=u=UpGd22?SEyibOKY95{AA$vCEsrG(uNT$wZm*DiW=p)5buw4bI{mH)c}mLywCP zhc9O8?Z0~udP~O=EqZO68Q+zaWhGMsWSmi&!BKOrgm3tW6m|2IeXS+ap7OEI9XIUB zhv59OORqSg>SuhDy7<%B<$*&pkUkaDX8e63-_>?^{a)Qy)(LhuVaadq1=s%`{5ytH zdk@@fQ<=fjPjbR0fRzI~-&}%BkDT-Q?&tnXP*?lf`<=X2NwFX}u%8X_UBu44+RZ9E`TH`psnS-`JG_{o`_q z&4pWE!iYkj=b%1Sp4$OZj9NOhEa^zX?$iVCtCg2FHnJ+A8bvVKD0?D@xtMJE+8%{+ zs)%Jgr$6TKTj{~>?X@_BIp~nxA-mB}wX?=V9Fwl$zKWM?i|rU07@jrEzL}<2(vU5SUhdkIG(Vx5gOxCc>yU0Mx>T*7X=GaL6^dOc9(A!8$kbQ$-x;rv3+(!8yzwT* znee?2+AC!V2Lc99qv$B`5$q>se{jLiG9Qefb%j{-#!t8855X$_mIFW;1>|4!l=4Zt zCx-psRQ&{>gsILlD0`R(qTPukWWM_My0mc=ZcZT5_bj}T0j9+1N{dAykbF^A`aKR~ z5A&%!wwVwxa!PfFYsgM4Br-w_s@*6h-d8q`xP}g%dNfqLRehfW9i~YRz&A4!_Jm%& zO=8p#vfGwOEnZi0#_%#kr7L=@>xJ`7)+fnvSiSOe@#SV9k(&N?&w?ZaQb z>jV#v3eaaU^P_1Ee-QUAw*-H0I~stZ0(zpkl$4nLX)>+n$?uCPXAgH99}Ejx=DQ)l zsItJ>g!G^bG)={>~OIRKm1olxbRmhc4k)v&StN?^r+;NWS?m{3p~3dkuoV zKt&gk02)gI<-|=~|3Zk97H6w1gG$nYIy|&7I|QikJ0BjT622?Y(qaOO;L;C#4(<J}Xp_xCC_DdMgjp3;3210+BMazs>M3;Bbw9egtvz9Lvg!1~$m zr<>P+q3}_C{;!w+ke|EyoUg94X^PvZcov^mRY)tjXtml&5(ciz!^;kJ?mMn=zUY46 z?a-Plk@t$#Z8z%`C^SM`dO2K5j*T?4cgEFQ>0o)zS$OF4`mfL4Ob9$Btu=(33e)ch zz3kJ{SiwhO3@1}Qk6Io94FQ|JU$76JPiDqI1#J)oq=Zr%HsHGv!ZV7y9RX+5$*@y^ zr~pxvFI=`7D!>&QI-4IK{~*CK%}|9qmjXz%BVq$YZLr52UCjI6#yv)0-r#R2w-4Oo zcB7FO0=K5Y+4OW9j6shVITqm*st>crE)V2WLL-|FniIlwvs$pj&3DY!W0%KOzLAq^IOOWxej>+JsO?~i|7ch^}d$*`e!m`*y zXv64Y?f1q-4S#Kbb5BqSpuKK)Ioyr8;s{YXczR{ZwvjMH7!3d-J4vWR%tYRprif2Z zg=t@Yny=ia+onxPPBg!hnYM^bWUG-7vIm1!tgZG++MNbqyPtD@JMCe5z2`h5oTkmy zK1-8&N}$Oj$4#Mqq=5KFk1luSVvD;X)ZJ z{y8T~bp_C7RUTbm2zYhNpV{0!%n7v#skNKeg@?|p^@{PUY>}s@tfNjNX_jK6vt`tp zZe&GQoLWh4J=32zs$+CJda^JE0dWQ3 zz!4y^HZHXvLz8{{LJB#{RWI9@@$^+~b>2HI>`Zsmr+uP!s~v%i(>BTcNg||o)BJ~G zPZ*7rghel?m12Ck<^Q;+!6}Fuz(f?L6J(k{PznCH4oNLqeBf_Ch6FZ2l_9n$RCWP+ z$Amf@3+MF*>Kit)!!$IFn#?P!w1}Ym4hYQKxkv9xc72U3uEcJ5BB0}szo*6fhO zghU+RRLBoV{oGj^`wOS5=2thwW4(FB+71l&HmFoxDHf2v>OOyH6We+Z%|#UhC;+|; zTIdbGLzCOtj+&@{pnlX#0nEjn@zke9HlKY)nFB7`pp*u+DTBn1Nd+KR-Y8$*pC4GvbiAFPS6+9vvNAh;$^&X|(f)o6Q zc%B7!hA#o9!<-iWQ)@P@yFKF#JO8X-f}~H8?>{aff}z=I6uGsJ{RE17y5Q$?HNo>F zvEq-fx>Jwop;2;$S2*RqJ{nLx9O#4zLm#mL()sBAf@4MJg=?ybJqf@0}*R_)3UkkjOob}z7%DB&-n;? z)gGUN;5PF=oy{RDzaDS-`gz{62Dmz8t+x>Ufyf66L5;em7QZd3dv)FYP1T0=fjEe# z(zNEgu;#6aKU=z4g>^S=AB6p<4pe(}xUS254J&%Jcz}`KA$4*ml~zR(SH$So2mnb@ ze8?H;eS^LMIkHG;309*qyChTdwW=~mOtRXUtl@eydV0j|kpJ~F18clc#c!qtDCKXkEQ{;0 zwPeKgM1z6CW^J}e;wb};@)QVPUWw#mtb(!}SXofL95Q@Yxof-f1-hDL&{PayCQxpGmrZ1F z-!AwiQ6s1S}?!@~-I=YU~Mly+t8Y=J-JoxA6J!%=60fYsXfNWc)57^+FWoXWd ze4x$i{ALuL>@#K>o6W*Ttfg@ShHU$zN)t?KrzAT4ryIjO2nzHFV^&pOqRYiAlQb7O zQ`=UmfUqX``>0TyTkHwGoab5j*%Z6wi1?V?M-3B`PljlCfslbE)7ZDQJOr$la7UA7 zM;O;_)sRW82_FAr8ffZc)Ro|9Ww!3Z*(pW4A0T*haZnB=EK_)vq0{#qON%Dv@}H)l zD#~>X3a8YIUwdph!|Y6_?soV3gTq8V+(fcWlI)idlpyi_7}JVLpuyeb=uLFk29yg>q*J!|Ro8 zwm`o{csqbgaTCcqv@C z504dS?y8f;Qp}?&pNao|NcrdmY~}n-1?NQ5TD-Cnk!+(D*Ya%p-Yy@1ySbl{E8k>& z5&N9%PNnTM%O!>kJ(ZPGgq=QqX!py8QajsHzK3Igt<(Cw^x%aepNOENc-wtW<^pj) zjAJ3jB}CwV9;zCo{nDq9T;vXqw)a)K4Y-Euwl7(EG0|1$0Muj`IaKSvUOG;(nP0yB zmOI;C-%P&PQyA2JgVkG^buY#&Fxk;zAWT+GJ0mt!>6&5=uz&>NKaKOoA?<1GuSQOjc?O5m>ju5=Vf4+4#Pvnu;UeKRy}w) zN?XQ$WQO%LB3sI_l)gaX2iWh$K=@og|L$j-ou}Bz%d6+m`vYCR#z%T@2~H$q2Vy&q z|4~XI`T{sQ&_Uge!;2t6EmQ0|8$_%{Y?9hVCdcyny2)tL=I-s*L36^3I4&8f(mzAD z%}iu@SZ+st&5(7D)Z@vvc(5%`%cqJB;#P&~wone<$FQFo=irn-CpI3n__eGXi}?4( zq-Y7!Hh1cibQJxgbYyA<83_icb{FRa0Xs8k~ddsWBaHAI(7&B@$+=vsM`9V+-K3C!>Or6Mwz>< zM(b?BZ0g<(jTc|hjX#t=Ry&kM6Iei(cT*Txnb|b`6!~ONmiliC8rR}!y6B+4U79k` zpC;YPpTyU@9Zfn^Els=+i$L;pi)U9Mev^ylCL$oon4!bU>dNV2!B$iNP#lW6x%`#$2Q-(6ySgS>9MSI zHYd|l6Z`#c_s_P-iVCX<5!+l)<3e8G43Hf>F_v&s+vqyl#{r?abAOkU)4(ugl@-5< zHt*NHx#pzh>AUzOI*c7a@G?LguxQ+Q(NyT3mQug>Gsuy6s3zP04?@1~L@pr~mT57L zmP|2-rewfCH^*| z&l#|E$r4%0+|{yCFuWFi`bJ)F(FW!V?}QOlnsD*5E;x7GX2Pbr3Agbt1K^b zBRZ;!bZB7yWdB(AJu&!6XgzWqDk)a_B5~x|wpa8tT5M%Rnpd;rP@DbH235D|C9FBX zv=F2I@O6O=*jj2W7-^3FKeZaihtSOb?v^e3p1cE8761Q3(_2Nw)iqt)jk^Sb1r6>5 z2^u806Wrb1y|IMg?k+(S+})*dcXxMdppn1t=l%ZC=X>)j_lnVcp?~Q;f`1=tw;eqR7yM#%t{%rX-zvbk9~LM~%f6N+Bp zO6w#Xe@xU>fBL>`ZcEK!453R5M$q>A#_)p>fk#6FQl++ zx^Kp_jz2)O1oWLqh%p;^mgGn%_%~35z%)J{uUccrH*pMImWY=zejso6P-=HONXXXA z3`zktQIXWYUOnRp&~1Qa?FDJ$EdHOJ&sHW-0vhgo3Rz$mwss%bcO$_xintVh#C#O* z>e#?StGun97<9pw1;C2H;fHA1nVK&#$Vt${Rm;bQCbY>GkZQGsRSc!@BPd!<^ zSz!0ntO0~I>%Ow$U+*L}2} z@Tr3u%_X2sz=@KdMk-UwTR5s`zC;|eIp@!lcu>~G!AKlRL@l#+uBlASfPg!eAo{m= ztv*h$h{GB8@kJ_}MuW^C#ULlF^AqC^nq^!QyZpl5LPD^8wbylaG8EKj}eP76qNS$WdrDSFvVZ$^F--!chlO4ggLb_#_ocevdc`LChgM zRj&;Swvl!rS)%(xoUa(#EnU95xV|T20}xuI^6EY@l%ol8SXQ3KLpGbpU7zGmBr{jv zfE2RuuZT|-*zSN4bX^V@wWUA9jpITL+?*;u2~z75s#tQCl>^OvIcoz<;q0W+#fIB{ z1k5;q-IjEJjcZh^*~s1gO-WBIl=)d0R$J*CyOw;PG9hc|Yf z`kc4aRjL26NfN2tAVnDdjmJlT{nMsi4<>`&t# zwcU0)IiK3*U@52{=>R`Pn3?AE(kz74zhALl#so!_;75G01uIWasI4`f3ki`6#qTWvQ$;bA zv#@u+R-qJtba>$cVDYbR)GA^$RQBx_DZHX*h|hH`~DW3hElPI6IA#IgZA?jI2R zs&=FB%kw3->yF7mO5h22v~hm^cL#eECZYQzqZ@`%e8}d%W49p_2=lRM3M-9X-p;Z8 zhk>nF?X#q{VtfK`)yBbnCi%)wM8BV!L)j{MzJTKQyPMel`3|ew+PSOimQ3(5dDl4( zTEb2*B}m_^{h~BE{9j;2x0HA^N6BwE*u;G39X`Oo8yXOgP^L6q6H{p%B+r{3Ee-nx zUCLO?kJU;vIU}o-o0IMNH&j0Ai7ZKcbDpo0xMGMiF0bKcB71ske{7uKNN@Y!AN8Te zKDOgW^f{N7t;IvN3#H52f_x-Ldqwucz^rN8(+q|HewLW~H62KyRpPFUivxKxBQYw; z)ix2Wg7;|yktl8}iUn9nCuDAo&-(x~H)aDPJ7;5O^|Lf4`{3&AS%Yu%HMt{-om;Gv z3X`?P*WYc=&s~;X^Da<{{I*|qHL}tys9;|cirz^ZAEGZ3%DDw-raBBU6;cbED03(B z{UNEagYQk`{vdys`(Nh6<;CxxHQ9*GhWW@B9gmQWxc`E8Hs8E+LQ2WTeZ8dQ&`?zxUARiZ}|q-?xK2? zS!Escr%`Nc9!jv4Sjw5k{<4`z8mnIQ7lo@GJBJ$Ji;Zl~%@p?bHm|$A3+hiQC^$<< zILP=HkUShwd}#L@2^D-7@w7M<*G?GNwj3mRJd)S#V{~u`F4~9d*R=aQ5KIbNYi2m; z6f~yhru;$X?J5tec%0fWxEuL}v@wja2+ij~t`?+n9j-NBzpQNQ!dfJEyoO3i?B4Gu zUo&1y20YJ`PuDe)X{G9H=;RM(aF?f@gtw?krxAoDqU_=9ItD+m2z*WpVvncBCOC#} zTmSn7!XNPfbEnwn=$t5)gYcPTLVX3B;jh&7ejM>G!f-E;&k+pt@8;g_!fzozIWJr+ z@78);&h6}!%7s?EVG%b8xWI__#>%C<mH*GX!Jai=C=$x$UN# zJ_n;5wL>*cjzBw0@d6$;qNp&31A{z`j-(6y{V_0>;%4|puWt|Q$Z`uGqz!AMTAPUR zqxOv7^DT60&KKt={^l?UKY|rG==_Ny#V6rb4xfK2F)v|D%%9yUY`#o7^bV#;)l6Z6 zk6&FybZ_l2sns$*NCM&RYu1qq*|8~JK~7Ka3b^U2y8v8LT*RVl1!-R3$HB_uxTA(@ zN41-d7>HLh&YKUQtR|r@+W}{-05NVXRP#UD!LlI;d4G;}*ycojwEv*{0ebW*ZF}5O z(URh?+)&?iwaKl>s8SDqqgQYrCp_GZjTLxk^9@kTog&;GyVX+YAP&$cuN(2jfdF|8 zbK&DSFWnr$y?uY>$6s~#n!J5U9m{eNDx zCK@uRnvZu6=ZewTT_!zyjHO0MTj--TWkLna+rp37@}Q6k>MA4eYRhW#E%TobYs+#e zdBYF6?^}~=3;PLwOpuJKKXv7bmG_Eh|F8j>H7Mum9wd>bf#cqE(oO>A;FEZ` z2DcLT<^Ff`57mG@>=<%h9yRL)p?B-t6rcLZ=(;XQw~zI#k3dhVgwW8 z;9J(VUJ2FSb6S$sbY6cza-bbqBH{bM{V&za&svXv4;n)QXPcW_?FvgB3PBwf=wEELSA9i(K#Gx4#zEpR@b!EaBk!EoVnx7L81G`HGXdzX!26ElinDLo}=$0}&1 z5IAnF$$-WXc`{n;T>aN4NA>9dArE$A10hY5C)GzhYxT!*b(w1Wj$28jClxp$ly801 zVg7X7v!0l;k2Rb3)NL#J&bl(2L9l$!w#@dd@fqYi?T&~4vDu{!HdL5NHtz@8K>Chj zs4OC5JTww?`o@YNS%O}-G?T=+r>VZR$9;2j9J}{k1F${Sm$0KQQ2~p9tbHEZn5DaTK`(i23jg69Mfc+eJjgat>kL?!>II;w>u{lk|;QVTZ2A7DjEJBG%EU z@RjB)uYF0ns=d)$4q^Y7s1D~>F$h@r#TGKiX*fd}ofU4cqP#Y76Vm)Ymu@V)Bv;L4 z{Jo{IasJ?+A@Kxf(0Sg>2dQ8w0Q&Ct5W+7e<1?jQhK_k`@MnNWkVzfXST_g)Q31jM zjW;Uz)-@gkLq!3dmwJvbNasQ$QslXeWG63KdZ)xuIxXb&Kfh5wnV${l_!yWzG&D*g zHTwpxM|RKuz35YU-j7t$>Wgi&2U^JLL8~lcv;O<(PQh9U2zgu)N|@{LflvvsN(Beb zCFM@aqr1=h1kv9SxS67>zFkFME_?0hL#5fyDQ7=Sy!n|wT3*n^rPP@u(=fGPJB>iP z+kPwe@(P8(H^vN~_&b@5NxGjA&nb+^1Z%neR`qrBpp2n%;!@~F9?GA?az1=g||0OHHn29;bGdf z7G^z$PJLj(@t$V!R2>d_kx0LF;?RxVQKrZ!?I~|A+_COtQYUJ6{veMN;U5XMA_@!L zm`lO>6Xs>eOzj}# z7giVTxh|ltitg_zB7ik4m-FB4NGNAwD33jjs#z_$cMYoq5s_vvRJM2w`z-Oqq(&&^gL6;1Y{BU&*@9L)BGq-T99o1+Pt^rh`mT-x-* zD7f&{zvO?M)pDwy6SHMC#&r3ELIw}?)QhQ$Y&m!>f0?R2^iO|-ybS2j$yXsOTK#!* z?0hG9nCyJ9o#0z)3V85q!rk%mZonItX9&*f~S%i!4hj8>;h!Jo4QMwUK^;|V%i2wbF$17%lSx7>w5Cp%$Rz6cxNREx=S;<`BDjtMPaq_rX z(1vA7rY-cEBJwH;a}nr9$UlV$cvWrCI)W3>^k48AXAvzdF=K^r-gH$R5>6A>*=g+~ zCLy5j=^%sU0O=IO^ah_YGUrkcR(B7{oZV$MWsQ*3V}NqXY*Au!uL&L;M)wnsP}(Gd&VmvB|H#NzKVZbsMp>9D_DCwlya=j8elNyC0Bb9Co{?Y){U0 z3`_i4PLf{R4vaxSeEQ~n0V!t5trP4=f4l@Ma_gXJo(7#w#7U(8Q!-tbFaJ?ZY=uqYVQu+FP zXxNy__HDbd`i6Lm=)6!IcbG_l3t9dPioCG35|oYtkMa$Ob9IGF<2bv+7Klqh!G#Uq z98%M|#&Q(G9^HxJWNc(MG_tRid8xNZZVypvtOF^w+TRO~T&9)(C>voSEp=XMTH)mW zGOUC*X;)cpyzL^aqk9RE5TO82(9zB7zU*zNTRhg;;)uKjj%mZLd}@fBFC>j5I8kbS z)~;}1?5FW-vYwvbH71T{;PjCW^03r9w`yRR_7cJS%Ak{)EAYx^sVuu+PD{L5`6}2X zpnHb3@fPH<`;ku;pCo@G%&;TBXnGLe;@lo)$+F+_!eh8}lfr;bH6Uu*TW?eH9S0-J z`{|Yh4F*`P!=_GJfe$3R94P!Pd#qnl|D{>QiN9lqJRW^3B{wI#o-e5UIPiw)OymA~ zGg8hx!s6ppoIlJ+x6HJ{{{8{tNxbh*9ialDc=gQ3IXQ`eVMT_)XsurW$pIt{N*9}kYcx^Kn}PCI5bn}J4cQ+hm3mY>$c9!SN(>r9R-x^VUyCE5Jx zPu>eli{^ea%H{a;dpQX0N-IqaO@x(^Z+@0Y<4h5!as)YUuA9j@_s+qlP=_8Zbd@4( z_mymfn7UdHhgVtKln+*}ifgSpQDsc|B(dnq-D)P#oFiuD$}X3|Hg9Q*7P~bTg%|Y` zm~~=Yz+hO--qXybPY}Y9mqkBmN5iT(xpLRo?x)>oKlE`v1V=+9&E7EJI!nZb?-9pc zRL7>4)=4=}uZwdv0>}xumbx6_5E>OCIjVNGSMca$HF5v`P5v1f#PoxHwj#eyJ>`b# zp}tuy{YPFui3XBQu4Md$F`JM`$qQ&=GGv;K0Im`0%*MsAPLt2?=ieN zxYFl$Nb>8NMq!Fd8Ynz{-G(-rAM!gW$PSPY=-vtSmlu&HpYHrf_C9nlJ&<)e4S@M- zx}4uTB*r1Rw=xIPju6MLyE4S0#oW$YvCR2DCO$t&YzL38v@F`Vk`Tz*q|A1oZ95=* zCuox9;b>cAy{|YT8qD4Dw$7${NfbX^r^#9_82O8LzUb(%P}l;Vh@umTT-?y(E~2vj z;K>5l`r_XRLrdnqMHbe8EAWNyQACtTrr=;2arK1U_n!N(OYsdL@Fbeo19-Zw8xkGL z!1bSmrQpgOhfJNUCV7_P4yQL~9;|)-8?a(@a+KTyRJ-lRwPc<8FScbJ6KzDq!6YKP z@}H}Ej{q6O1H#=M3;nvpmwM~QXVu_@aSD9hiJI3(4*2i(mO>Nv$o4U%>v!V+`FmJo zyO|W0UAo;m+ZR6V$=hf}++;nj*6kC9Zqk7U?Y`p=d%`nrd7(t2HvaLU31oI6|0Qt! zvBYBK6eE{kC*6$UkRD4Yo5jL&mE7{?%O92$=!NHUHKEDyw(T6&OC-3{fDg8|WNS($ z!m@mZw9Ikm@$@xDV50Xp>G6e0{Od=7nv(HqFSy5v#-;yqY?e{hK@ZkhE%`=>%ffjo zy_3*8u{i7<67Qp_%QB6@j*Lr5RX+dOR=#Dx`u!cL?hqEgLhE2@nNosQk+`Xyn1rhz`!g<`-ambEyQu za)kY~om(D%ptVgWtW^oRtjs?3HayhDUhedoONEiTJLL1F??bT{=B7=O7 zc}(bLynpwFNO@Sg3^_NN*7tl}x1%~?t42m#8v7yqkl%c(gr~{d#a*-2FbVPr7S;Ti z8H+bbCA}3fUE$TmrhCVCqtrF3IO)LWaF&}I6z#R~N=fBxlq|@_aaR6l4Ti70WxXQ4 zgmdEnKE?o_1cQBXM97X>&k{y(mo^w|IQCL1u9*xpfQH9nU8BBy-#APvY7^L|do7Cx z={J$C(Vlef%~CA%w6ft`vkdUW=K2TRSnxx&nw9}G?Y zti1N>6O-mNZTCowhc-Z@_(f#@0h~K-)~IUAg^&CLovrfnirNGOO})eaJ`{1rYWrE6 z*OMz}O@ndxOtYcFw^-qTOS+Vt?ENV0FjLXRn;7b40>#J}>3h+<802ptzJ*I3fsFIm z&F3II^8>BqqoUG)gDVizzjff)<|!Ha|IRcs;3EISe--R344%-b#?EJFNgMJ~J!QD+10%bpx#|PtTo+ zO_BaaEOL`}1LQIZ+sqG`kIF`{De+2vzyrwWBee2W{j&iOU!M$w z)Sk^NYLj?3b@U`~af5zc)LX7_?Ek~Ld<-n_a>Q_JTaWqssm~e`%EH@9+OcYi=K8QA zb*Yt%&L&%LI&jJzIC4Zi`zJgdoBla>^CjPH%a;2eLJH5pZGV~mHV zz5F0v!3iVet>h71>vw*4Sj zM#T};J$Nq@lbQLi-)`=1Lt7koc4NrGn?rF7H_ZgB=Y%mAb9!;H$vb7b+#)=!0g54|+ULT)a0ZpZ^0l zM!3h-tb5M}tv+z=X=ui9?j*Q|vW$9F{*QhmBd!#8D4a_`1wNnfEAK zEU)NcTS!i|>IPb8B4D12p(hQCgE#o~?3mBLWg{+Jr6zU0dpMZcd`OC&tY;SA!K+J7 z;uJr|>)%;}l}l&@M{BY+V%!8!D zG%42y{*N!wE!W+(dj2Q=$+N11OnEz z^#+$oC(c(|1sbg4jI?3-V159-7gZ~NxncRhnbQHNjqt*8ml;^H6w%U#=PBVAD&hC) zr?*!7EOOSZbckEt$+kMXSl0Z~pJ}y7iF*$14`*`#_iSl?YyX0Rmql~8R z?|;>9Q;N8ukmGXta5WF|x{6IoMM%_RiBUjxdmjb++lbbcYqt+w@@&+55<4!fDlDFp z5+Ss&yUgm)h1lC!Z|KlT!8Z~J0J0mEbh~TJU46@JZ-20v*!^s;EmZOxZP^~$3QQEN z0t_M)o(n^Y9JkJ?mFC_X76cZGZ}=}P{jssvW;aint*@86cPP13(pOL-gTy=0Jt7cl z`|cGC!{tS_bYbrzwOS`_ltV=fWqki&0>kWyhdz?S*t-PkYU>y$o3AA2udBgd?DkDW z|EDeMY+Aib;(eM&!a{ap!Kt3?wF15fWiL@(KXR{EW{=GS=?M#Td_0|%pGvDaB@mSVun9chmX(=6w`5elH}H{{S-$UlcMEglItJlM6ItA zvrs`(WvD}Y7?;YeW6Nr*A6uUA>%1_Ho$7h%BJbG7f0PdO2Rc~y;G2`aH%JLx=70fh zlQ5IG{8w*3;#`@^mp#V3r)s{9q3-cksu@ADyi9m*Cg4!3jUo^> zJXA)!KDRxZkB=M8*OjQFEag0b`Em<^j?jFC=cV;6K{lh!dK4hK5dLsV=8~o{i;4#WVZJq&i^@T0?v7{vE-8n%dx-DssRKQ*#P)=Am-2O3Jg3 z;5M0>Q%gU3VGF0von1Ka{+lQh_sBy$rGugNVE>hE+T;@=JRfX2N@w(pkaijzx}b*V zT+p;Z@eqfukHY9uUI)w8+dnJfOkaLGtv6c>GYl*dRHF{^6>e`@@+pP6Jv`l3uYanS z5hYq`d#o&&8?y@T|_O@%w+s`zvWZWAjR%d{%=4P}lPpHR< zq(aum!`xr<2O7ndhxVyuXzvP`4&%VVEwuhqv}!!LL&N8nf?za{?{8dQ@A^dd)u{qC zUe64buN6QEbmnm#f62yiG%L%VN~KrOz)w`)m&fIOansyGlQVEf+^)-DuS{GwOyYmT zF0J3c&k#{axKO@`+!{L_cC} zBOrdl;$|Sup$ENa+MGY3M#g=kb4|&%ES_hr%!gapz}FL`l?#63qNm@L>(~FsSPq4j z5ELhg0RFWCmTA0+l3$l}3ygez$U*+F8+YHe0~i>Q&K&3nrTOKPN*e4pgDh&Pfj?e^ z-hXf!9qZHEPX7JN0Gb^IN4aUEFd1xORjN zzTf~dwN7U4tXf?+gDDUHaM*J_`DlrC^TEkkRwyzrIcW5owh>{ZePGVfw?Lyin9k_u z+8O+#P{4k+s_Z%eTQ13K$o8;`%Fp{r#pQ~8GDvmV@&>+yg1&zZr@YsX_nq0*;esmP ztTRzp=bDG+Y^JJ)!3%EPIIP^~2*yS7XK)r`VlJ3@I~FdXXk(ap-LeO@zxw9KZiwGH&*xBkwgl0ZAy_b#XyJ{BjW^*c;# zBGIS2Odk!!`4w_xYbk7rP-_Hs_F67?+iO|kD0fq8#{a*{D)L$M|0*jU%9k$%M(o{v z)6Y;VSp$c5nbMe|?mt>R&W!qPdi#d%TY5|&E2*$)m*26sZR#wU#*_2K4qnQ9&gSu{ z!QY_VIyJq_BzA+pE63l?)L)WFnW)*|k_3g|Np>X5Coh!&UfpX>+6nySOxwIvCXKeQbelnQcy)(^`EP^Ju{HxCk6q}E!R76_y z&NC5oCQb5v@e)}FV1DHq^==HjPxvV+B?b8U-PE>@nPas)0GdZLk10JJx0SnpbV`ti zGCD~+?+kvQ-0($QcGvUHL88Cx03*ot#>0O{^NEm5(rnT>N%8Pmoe=jt8@zKkn@9~$ zdusmB_Mr`zm{VYNdR<`FqE(F3o?7`2x`fO}K?!I^l;MBR=za_EHpC}GH8;?1hjoB$ zy6^)R3#NPD>SapUJ;`LSVam^0s&7gG4=c&6+w$C z#u^#eK)GZ$oBS(v_wV8Ihw56A4l%E(SQ}2S+uI##&*wm?Ody1wpaiOeI&w|P&TuH0 zIq7!8hgre)A=AB|n%Zjk(vJyqq-Ug|s%*c0;|;UBUWM_z_h3{oBQ2AGTcEycslk0G zS7a>G{(W2m(aO)gLg3>skI;kSO~R_ZU*mq5@TtU!HFHVsQA|Ug8`fNb0mdhNTb{h% zQlkFs#4U0n>#xL=7_U@{B9ERoTuBf3l2=ovg&D6<97oJ=|VP)r|%(lTAaf(K&_Lf(7L^=2G;BwgSegvWMUb|SSO zcCWH%?S7l0u~E`0o!p$0|L{QbeRPVmD%R_zc;w^4YAQXa){JHuUMfZzk zOw%aYl_%TFh;?K4*v@)HP=llwoTObURKO^U^{Y$=Cl#i^_Nl>Y0I2ymG)N}-Dbs)M zWD!TtcTQ`e#Vy@PWCU9h#X_UnH)_x5uIEtaCZ?pB?2-x^mz(kw&%NzRQmhe{pT_bM zW51)9ekQ_^_(*aBi$o%C5;Fi6j6xt3mv(ME4m7YsTV`afo7uqunFTTYCPEmIRo|52 zr1v9RMIav8kioei6Pj{)HA%@X-8hsV>1TvyzouA|^BB~xbJXmN!P(eVaho@lv2hoW zZ1w3$L=aXaeMtXjGI5*J`4AO(<=?=&VkDZc@!Q>1% zEOsYcv;a{nDDue_d4@M#$2yX`ZyOqWdwJ-3wJ(!DivfHMCo$%F9_D(Tfeo1fc^L(sghi$IkRiPZYoRHl8 zqD5Ch~7LTc7~sq!B$}H^t-hRv1k=*6EjP5z7W=fk-SV&dzQn- z9w6qk-SNyKIHg8pW6K!mb{Br_tDGV4+kpQow5Mm<)VD3%=mjYQTrEowBF z@RM?PL1pb=1x?b|!aj|xCYPg_2eno%)@p@I!pBj(#s%=dq>#!7u{IW}+tz5zi6Kef zh(xcF^C^lpn&q5ofqA}o7FMN?uHTdo3=i}>iuZBtWIs92p2VKctl_q8Fw(5Qoni@7 zkz0Kyel@Ue`N!_~Q)tZ|A)Nz>+LepMVOsG@qIk!e*mZPM)sUVF8Vpxlfx8a9qj= zSs!qz>DVO_1cLTUZgAme^l2`!hObbd`|^^%V; z8cU!yiI+d`9y3YAR7Dr9^0pa!6@qLlvDi+Wxq^iqq`)Lj!R+E+R7kNClVr3Uq8`Bx zzw*3FnFG%EEcKq_!-*gzSpKZD65$W?pd8nUv7u2;_@Q(+W8}}+qDGeAyUAxLw}HiF z%Qw_CC^6TMMnwyOb<0Dw$K@6OoOux~SeGbL?wIyF)_9ySX6ClI(_p`hXCG&LrKC6k zAwIXJ(MXtJcV}5yJGx>TmQm-&{`)5H-Go@dez||rnS3ee55_qr)z4P6@01TkM&S4? zb`|BZ$s>KPAIU))tR3OQZli+`Drd3+u)JX!VROTTH6Ejqk*2^xB41~J3c3SsigdXW zhUo*-Sid|T6AvaT?UG&O3H!4cIwq2ke2tNFK|9ONp(XZp9q~V(wj{kB zBdZd&x@_X%P5e0p?@z*yD|5?RQK zi#1>Qg*Uq4H3@}9$578g*jmW4=p++~vX`OepoaANn_ad2`>K-Pf)0&0`g%x#uhR{i zu%LN3(ahQh);=KSH35>6DQC{bLpKcdEvV;b4R!1CWy3c+LZv7^iF)Jo4-7dOH4#yI zZI!=H7TWc7cvQ0HJpZLFM#*93_~q<%sR!}r7fGx$q~6RN|+P1=?Dx%{%<4LCzgqa_) zm(;5EQ_t%6o($DzC3#oN#w5RKoLiH>{L1*oO5VxY^nV*>`}8$5wQRC+g82>9_JKlI ze%EQ+`h@?L+a*GH(GXwst6O-Ap=^XGz)rjSv1e|t@c+If$S`3xbJB1o%ZU>;G!{b7 zEyEUnT&pKHWEK z2t#0b)&c9XV^OFbIAKxGAXxdfuBx%WQz03Qi?Sx)&Shz`-AYAm$oo*8{W$u*F66pN z6|)^vFYRmCWT##%fcvrVb~pU6h}*LrOYFaIZ_mkgU0WvpT8c9`cwjy&J;5QxD`ZkrYU zEcml7dQmi(R7M`6uGK$3=;^!y{F9>7i3qv;USAiMR?bK;d%Zl1efqIoq8M{0_N%`J zki6zSRPx2qW<23!|IVe4mlym-1gRf=H=s|f?-BjgC9z2jOR zGFULF8w8Ivl*%tbN0+`Shc{|A(%FvF#=&PMVL~}>pqo+iiNQu{gV2&>4Paa7K+62* z8HMmEvPLnW`^(wcu}3Fb+}gh1ot7a6_IG~^^?{;^?nvHw2^H!nQc4&Bz9a?f8u4bl!Z1J@y>{t z*R;}vO68mso%!3Jn^=wb4|dE7@QTcr3+_YBR0=0IAXk6XnG6yzY1xHgg%ENKjt2J2 zHf@PQYkr1x2DiixrhtVvTpR`nrrbl&z;) zowML_bJK>jt#C4O@*_1o%w0~_E$TpFXgIN}HG-geo(Z?8dwEho!Feq&AhO{O;mgBH zuhN=pZuZ-gr`y!uU&5qsq-D#8wXr-e)y?DEm)NiZc(C~xV0E7fDz4Zp-w>oVQN#qx z@3&^u*T}Zt{mVX*`eS}}(iAZ=j;W|==!rr@{&JvSd4}fibl+ZNRWMQP(*}1g{h?+B z&)MSFu23jdUj0QLpuA-X`|awb3Tpl89lTp(IW9~+ja^A4_g`5Kmd9r{@(Nh<>VX1= zWF{GE&xIWNYA=PDOBBQsOw#ddQY(35knvxt4|C`SA<5eYzJ?E*bkr=lwBebCdc5}5 zF6FwP8(hgX`Wk@Xej1hX_xtR{b0sqWjhMM}f(=Y+J%iUPD2BHpz98?nGof`Z8(n)S zv`NA4!ZykYa5^scJ3R9>Ns;AHXf}jcZ?4)hK{Od9W!KziB)*d)vi^sy5UU_y^RE2vO~CV}Pc5iTz*@5t z$(c8bf+h5WwCoJh3ub2`E6(EnhvbQUx%Mqej5~Z!D~@`|bJ4lSzwP$<{Zx1%ofIQ< zcERw;j{LH5ep*TDbss5?sxZjIRS6ao>?g;bb=Kg*3F<|@m>NO%r6rT zB6KRSyE68la4G~jxgEkqAN6mhyI`VgHb4oF^OLKFQz`LhGX)f)HCoiM-eojF+8lD*@dny3#+AQS_zKh6bKE-l$zoo8Io@S z>1rxHaALiCB(6MfXu7w^XIk~B8N8i7-6n1AwphMi-)}YfBCfLxQ5n#O8o&(fm;&~wx-Es&Oq2KQ8MZS`D7YX)hJ;M%I zaTzdp1PM1>25f`Rw&9?$n(!MB*F%iY-oMNHpqeUCWO0h>oB`5=zGdkHviq$=@{0z`jwYK=7ofG173_t`f@iI z{9j+V0|&c>pT=%Kqw=&m>&SP!H%Be=v+_Fz$+zxeGBs&`#al^m1-g;Z2)r;qC&~ws zhG`Dc4UPH3U>?{0FlnXLL&7D3edMa*KeCOZ4Ly>rO6R&LAjf*LnqqJ@oqv~n%hnL9 z6nX;OJ%r?z;IC_M#wpZ>C?tq(1`11rXCCvF$73c+in)h925B$j&|xIpAeaR1dSSO+ zrIFKrv7M>5v^v)V6?a4Z0bI1sEFu&O<#&=|7Ha@Enj>shVx0CA9r@ zIt5-iQsx;@&;%mAr-cd@h&@!jzfGPQcD!H+P^@;#^+vQ5^F;x0&+kv~Z`?PZ3^j-+ zF++Z$g?^)v81QKM+k-eDJ+4V^9AVLL*CZlMA(=^Qm;p3EeM#YMI{xj5hCa}jeDC2? zJ$r)6n7y!T*S{7+Zp)+2PBCF8A1VRm!J)-Czm#0QFO4LQE@0+na%^}D6SBcCh!T$a znUpGp2_06eCn_eK$Z&HCnr7?JdCK(qG+nLw5(w8A@D&Pbs2MAfH&4zCWIcQ;?6T=J zW8t{fqPNF&njR=-;^!J|lto#XGVE+04^GMi+aR8*h7?XupLOry_^V&}Z5;s{e!C~~ ze;%In8P5{Id3#BYoH;wGb{Sxq%Lg=X?gj(^`uuxhoAyr>Hzqa{$0nQme7C(==PfXg>@Sp6hAP?5aRh+7EZ} zp=+O!&u=riuFB;~>U|>i+TMuy5=Z;^&AeZC7z8wwyNq%yz7ke+&3!RP4r(KYc3XlW zZvmQ-vz<3K0u*&9?-$zy74lIX6k+ur4`9Csjje~U`~->>;=vj9(SL?tK!FKEKqgbe zj^DZ-Tg3Ifr~wCf&mYt}Hxpq?oidw@52xME(do`mX$}w$hFirW_X4EK`Pvj@w!%%3 znYX@^!nr5}{0h|_`8;m&vcI`)c6iT8zJ%x90wOxWHTNy2Y?>mAH&rQQEa|U)tK;dk z3>`2EFrd|=S4|J!HgJ{WYi|yi{4VDY#(;RA;?WTyL4Zx%hSK{**0?!LGJVb;7C94s zuwifb)m>+qs`y>Um#ov0dbM#3+2z~6Aj6*LUDzEtr=fBNzQ1)iT6Q08o?{}s-C1rn z_(m|DGsOyDa=>_u1~RJ1dZGQ-ytRGaI@~K^!AN1WFpeRVP3*}P zhigH3{m}RWqKM#^j=G+kbJ9HFYGDEOSCR`0?n^15el)mC8Ontj_`J z&37)S&y4c`5zLfZ+$29(FiB6=g3L2M7$;~>b~*+CZ}8fx-U0>o%vPQS=LF5?AC8}} z`jIC*o%X&|7T2!4m)ev4|11E~2?Y5qmcW0E0E`%o4-=~E8;YjT1az5BbjfUC49q;q z`!UjJth49XQzMuV-(*amh$9to{E08Bd*UnZd9@(R6+9%RFU)P4W69N0z z(uN*Iwez~vSYcLBi8U)Lteg=1uFz0l*J^oNuBz3?_fxhv&L-iN^7cO9f1RAxCs-JF zXgzCttB{(S96fL}F>$JW)>Y~}<7NUNQ6}+9YrSsWwWX9GoXcSeGVDdxMH83&70PWR z%liy~4##2PDV`|^b$kTQ@0En=H~k-6O_JbC(SPp4$h72=pX2tVHJz(mU_X^wDGtYz z+RS`eYYH*bA&SfS@(`R{1&4m^uxvx}iQJtxLV>lP{60imy;6Z=%o%z3NTCsA-2LaNZ0e#m`=?vY1E34pEnQjUzIy-^4lm2Vi zJ;GE7@bS^l^j}2ec06-@2Kf66cX+G?&xV-L|JTenR| zbvIvkAWU$-Z&x7&yI&v*`HJ|rE{ip_$4>#(-1`y7YP5Cyw;aFgObICNJ@YZWKMmyl zglV3f#^d1u%@PrrRB{;fVT*Kc(?%~^Pt(o*31zGuS%4uwDih~3Jga6S=XEfD;&484 zHXwn?@RsaAmNLJ%1WUxe9)bgGZoOMl5>r~rg=uHH^+I}L{`U0h%OngsR10Pl_@G;T z-}j?KGUB1ejZO<;P?T+&ByBeIPd4*c9ytlu`1i?&Y+Z zk3h?I<$M*}{ZA?CfYv(uqO3H9J8le`d3q0GPeiz^z)V6AoX9Zv=YKx$kH82Nx!(!= zlp(15$SxDgNRs!HXQm$;L@OAh+H;Gv2Z75X84nF_*ht&`{Ei}15E~V?C(P2nKQxZn>}e z+2~(tmjC}p(>I1i_Wyrx*s!^_t*y!0?8)|K+qP}jW>0S8X4|%H+nQW=-{1ebAI_sQ zbDj73ocFxA307Tb@gbDH6Ti2VEpyhf<<^S|G=Q93Rle{z#Vtf2s!AY2Wm+>l;!&!B z!zZd{wClWwB@Hi`NXjFqHO za)zjb8TYwyB0v)fFZ}((>G`3QVAwR6b$ZZe1U2j%2D<(1K#x@dcYVcowUVJMJ>2uI%Nc=(keM%zYrko)-vfA#VC%Gn8j0wY z$|yD-N}Y8SBdBBM$xQy0em05cGu4d)?=qqmu6JksS1OAr$k*eU$MbnfXd=3;@(ZqF zC&&F|&;O`}Yj}ToMu1%wkOH^f(b8z8I@#}#+z1G*NWA(pb}G)gk*!OCZWa6YVh>!L9o3Cz}0J(hVt8Y3?Q z{H{KR&`oet^me{8iKeAoGAUH3-OA#op?7=*EhUYM6wWWN6#+HLpVRkxQU<-5K6zuA zI3VddG7j4L3GpSG6!exek7-NtwF5(2Z zK-xwz0B)Q`xqR)pR0Qc8->jQIZ%>+)9EHYlq)SC)^JlvZGU(`aohmp1(K8t+L<7t3 z-|)ySI(?*@xK-5pS@l$kwX%`lMiiOO_eo+T5IP5@dj>5YxVYXJygh@{zmd5?C-88( zg;#Td#l_ywQP7noG5baoYg9q6NKykIq;Al^ zEB9+Q+m1pGb8tD9Zq1K#vG+|^U!x>W(oEC@US(MA)D^}3{1J*IXnBe02VS>I#)$s(BP?y(z z+!xbx4KMtr{l?%Rqs?K<^BE%-1M+n?PGU?%7lr@aX9$15J-Wl?f!VS>hS3)D1D9o* zrj}`Xn0t9_9|%qcUR_O$`=C$a)Kh0(%k5d}v{t+10}V-{;o4}(J$L0QGeFWBx%tX9 z{Z9XesGPyGd9y-wH3F@~5_P&+e8$;a*ZE=N1%bVx^4Vs$6=6SN0W|Hob<=J$(>vvE)1~m$Bpu6d^6mJkeaSyo5uF?t;J#y-vHEh+?WI8UYD9cb3^EY}4pP(=M-cz3K-c8%Pex1) zGV>5xiz0P5?}6=4O)WMx(nZS!aAXM#ei{I|2~Eci95OhSjyhS!Z}sANHZd@!t*)*S z37KCbQOx05jC~6?C-8 z%Sbe4Yd`hjue%E4IEh@W(;||yx(Uvd0A43G?DXt4PXH9bJx77V;qXyqk%&e9j^1>@ z5TaWo4R~Fa1SZ4lC(|rfSZ#*0-QmPB13Bi2?v=UP-*@YsZqEqdL-eMj41%ynqcmr? zAa)F9#f9SL3~~_rIr;Qj9#f_w*{$qWf^qm_fAGcB=2*7*wqi!V&)f7N-fe2()WcJ* zH~ew3$lJ%A>)J;g`cHUaeVyLf^|xkxdAs zcVxB7uFXx3+m5$k68cX#%p1s==J~#$nC)yQvSg}-_^yQaICez%B^$f*qmSC9&WF#h z6Mlg7&U@QF$M%%=tJN%mZj3b*9SwO^8p8q8LeEdRE>He#vs}6+&N3)EG4n zUUC(6H$%dgzp2jYAU_051Oh?0H6m0!d>GsaXlpu1;>__r<7KMXoYLVEQu8gg0nPcn zbThSI_2Pc)!R}FM+sce>jS<_(+6I(>`NF2YKoaJ4i+G21lZY03!Y_Fi z_Jlk@hU)bug|Gqt>1(fSyTe?XXVPyh)6-a4dAA4+U!QTg)uQtE_?>AysaO9%NEE~Haft^>+ zYVvL!?@=)dYU%_-k!UAWxC{FhW^HtJUFC9|D+u{?S0FingyxFa0_IG?Uv}}Bc@rhM z;CZ#3+LJvuD)gJQp3?8}X<vUbrSLQ#FcXB4+eqY|mpV(2LNk97`wVic~?joo{IQ}~`ZlCQ9SiHC6j$`dMSdWYrX8H(`&A0B^ z?8eU5eH2zYk203Vu4htlCh{n9Q{IA$FueFYiTrw$`HOn7eb^)P74lr&Yk2#j7=j}u zTVSwHaK&K`nMYZZX@6^Qp|-Kb{Lq<1Dxl!tU|-^ec|5A$?BLZUisU5biP@@N*V;O{ znJ`r^ZqGdgI@GRYWCa~B2O%ux>E{B_jvKZN5R#md*is+U`&3|paT{XKoa@d^J@9(; z*#Z>-o0SYdE~bUn#fF^?akaFIX1De-J6e>vFniRMLuUSZa59AnQjDgSJm134%&NP_ z(Xv+F=JH1Fr+)4ASWiV2e`NdSYBJlSX6}!4)LhRbFU2x8_&Vfb++Lfe3@(y9|&XpyQf#TCPBRP|M2CdutrG`Qb@`No#-= zkTQ;RZ`Xr(!L!dHLEQf{;oHlb!ZkF7Ty{CB9zdX|g+)^PBd-IvNM zog^o>0_@2){RzVL5;LdK!|%7p0$BXrBm~Ry${1NqJVY;1#tl3HsXN4Fv6q+CXvCiBO>cfW4i`EQNh9RD~R zv^|2J>3-~XCv>m;?pw^gbF3Zk>|y0H0v=J{dUJ-=n$KPBWww(@7|!z?wJfhLAJ!Oz zAuISaw8iAPSbbqIPF(`%^vz6dDh>^&-ZaodWHU^x>Cv{Uu z`!BY5a3a!Xtsw1kW=X@#6_&55;|$p+ue6C5r9DNKqZ|^QoSS5ESj}yAFT%-DO8bMm zzoaIKPK+%zDJk763sX!e!sn~Ys@b+2)eHr;2svF+m)G=u#dNWi55`O4>DOnBfH^1x zL>6;-%jz1g-a2{ad9QehG&sWoZjq8?>9PqXizQJ{(&Z12o4{3Gp!A#gZHBth<^ zXJpSGR{&*U8z1F?>cz9D(P9hxR%%-Ea>Ry>sV&I<&oFU-CEr@9crbTcb1zH345M9-*0|_t zgFMKZl*ev6JKDj@#$hCSekktmN@LSU_~CIu-n?gdW$Wt1eS;>EOVQVa{%bacqRjXo zpu68xShv{A>YTzsX#ZR#gZ0*ix=RMea)R0h_FrHIb~45^0pVvHje%gT5*u81tjGw< zXqVQa+=b|*g_U8?XpV4isn97KNLS>x7SeT}meS=XH8pr0++s!UeB%m2!dZIrkDeeU zE=pQydh7Nz?9cy~`LHEjw`S|SxH$1p^Km|_1x(!%;*qxdUQXVWZDZ?}Fn?Kt)C&~w z7IOdY4+I}Tc>}buHeD7ny_Owe7wsO^)m66ZVng;F4Yg!sZEv>GQWf(1Bc;+8f<3?e zJ}-^ov7JXdESxqL?wy_w>_C+g6%{?3k&D?M74r4`g4_PJyxGV7J! z)O)`^@zlK;LRVaXH|_WBhxXb_&2p(cqaqRsY%Ao2#hHCY5!-(u`3?vPE1^knym~1h zkY1*@H(0n|$1(+@X--5&-kY~^S7yDK1UBh~%JN5vT}At_#=rm#k>Zt0`gE6*bh2Kg zW19qCn-}|(&E-9dx{F}VK3T!a^azj3PM3ZP!4%i8IN7t4iz9aVgeFDAO zi6>ueBNwi9%&Xz~jD8Crzh=gT%=5V!66;XZ*KPv^#LCwhZZVq&Dh>& z1rG0zi%{E^HdFAZFH^ z7pB`~hJ|Krri*Pd|GUN+TcN<5SXwsTBA9abIWVFma5>=lf-vH8+dFn*PoGu?H>S zB{IL&(}aA_jK#V?it65P3K0LyI8o$t{YPUf3G>NznC`lK{l^7t zXBCPuQ<2n!nd#myOBuTXS(t`3`!-;4gqyj6fi_0}8kr);tpRxMMs{9+zG0~=Vu&=O(IDVNf3O)mhPfngbD!^&5Ow%Ic7C9}v zH_ekQ)!W)&hBsFGLaUBGF|-JxAvd~_T9&WTjBAX467?+MYN&56DCy6zR7Sy;NaoW3 z`^o$oPnxdDnMqf>`Uc|?=JP8wEHtID_hm5j=i0M!`!SqmZp_XOEEIq zHPzS9>FE%a5`khGMS}K!T9apXsOipS6h4^V*SiC7n18`Ir2`z_H%RE!GQAW~O>05t z9ryShkp&K^s^*x?Esj=03h2|{k?htS3}+6}Ml-8Ny-e4yPKAXO^JdXYVhQN#g1;Gw z7D|%0==B|r5Yey)RB1eI$Z*;8-b%&u<{$>95e|v~KDjeAw z8%lEH-d-G*_$Dn#(8RcgmOHC$^?f##?fiWK=B1oM*Fk}R3!ZXwX6i}=&VLmS;^1dG zW7x!DOhy$#8kBDVi#)M)zZLqh3=qb{5k992B;Kw zw94HY%;!}U-cw-jX#aZILsx`Gxp5#r4#CI#gRj1?%K@#Y9Mu5SN+LO2^f2*Kf(VOY zDK90FM0xRP9q=ATO0m`iWPCQJA!r#-d&%=7;hK8QXJdWgxv@KLVbG zzS$)gvgUQPEQlIkKoxp+f=)!9zB1X${W2{L1QL^LL}QO)VE6|rk6jYdcFsc4>RmFI z-a884)~Xp=6?AEwm^XhiH#W-#Qy;s*DCNHo@E(82p-}Imer&$F8AdXgHr0ytx$wc- znFZ%)E0Bv#)p7j5`BBT0YH)=%R4Oj@8`Aix`bg(&im#3+?a#xx#VLNxWry=JoeR?P zUd9pclhhG@R&AC{Dtd9N$ub83ETDVd780n#$htt!b?(^nwdpzNuO=}@Qs>8%>6xB# z=7yE`lCH94bGDIMyB8%Z*j00O?%z7~_%Ez~U7Y%(?0DbtolXPCAiCTJCpa6HsY#_L zA5JB@yXj%$%*4ABH(3b)V^8jN0O;2y3Vf4UcK(Ae2;+qk)9>u{E?0QC4eiIx(aRIt zF#9z?8mw2>jDilA6FfX&#FfY^Zbx?+h5b;VoO@tLt?{*|-Ef zmf~EYBbkiffk3z&3 zPRhSOD?E*lsC+c({ToXR-XbgE;9~6m%~W$fN|EJ29`NI4;UP(*@Jt*3eala`WIzxH z1$QHqD2N}cblxLZIom&G2%a;!KIi%5} zjtv}=wWxpG+AgIT+rS*q$9pi~c){6~UzMGp2*N%P`7aTga781R)`NQ(Tr9tZ(M>=~ zjVUcF7vcH5T8Uutc;P8Zd^P$roRBJCBoxKJ;w`69*@fhY#BP88#-F)^>0%j-VF)E% ztB*$ot-pWWg>(F}ckOxUYIsUO@4Yv610mMF6z2~_%aLw+DpBgc|Nc`Q4 z$_K?jXowFrvJ%*TD6Q`EdhJyN%?At-r8u|M{g^APARCgh^sh%Ax{LLTE$=Na9wxPH zX0q|TK$F2}@0bN$)S;O$geoQUlBf`xZiyM8U-P@yvv5UZ&UrGVHB`jBEp=aCUwR*m zYCy%GIe13AjeAyd(JG8_bJFev$6>9)A*_%yE8^UKI-i^el>nI#`x)9e&BW0~i7&V{Hym@4_)+*g-XP4426W zd&94SLMN9SPvM!k=d}uWHp7r@+OsdD-BijCVop_$c>}c#MfptZ*!s5p8b1g98=iP$ ze4=-$LX|&Rsl5N5gvNqaHFiiBsodD=sx)R_!cry|8J9y|5_8-!{iamP&szQ z(J6-dV*H#1ug}_A&MF*Z&vjW)LmDHSJBDi%rF3anav0D22xE0K@vKv7mW_Z<^?gdM z)KIi7%CzXTfHyBz(N)+6w6PBP?A14$m!^zAYIXM%-%t^yL$W|_oLbb!-}bjvpBqHY`MLm~!)X3cALMFlr6_yQ7GYs6nuU$J>!**0^XXj!^L1RECR1qn z-_@h6hHL(mG($!$A!SHx<{IAMbX~#ca+{L~4?JDu-k2i-X;aeD%y`IegN{0^-}M#` zkGKB1GxBnrNo65fUhG*|mz0;eyj|=*-MvqEf^OSqg31$7%JcJu2dBggBbahd2Tcph z)PRfjEi!hnL%e|^t|*R!R=zJ3F75_$6Y|t}7a`Y^OM9`YP@m%Wk(nB-vCnQAJ^2v( zyV=I_^2$~7cl>{4QKR=<(fmJD$b!1ki0q&OD>=+Tgf4JvY8TZh+-q!>sf(_w+iM1% z+e<>x%NJ-mXYL`4LU3m^aO}mr;<{*pnrMVouiVeC*9pKIaLjoPXo{5>ozgxJxV}88 zg_Y-T7Z`rx1LLa%cM0{5Le_HbPa;a$svx{BOL}i7cOX}?S2u3^k8mKF1SikIHKvY! zh&A?KNGjrX7|Y9pY^UY20kPdbtkJ^6Hgv)r<@pyf9;m>TUR(QS+_&@FxBTOH(466? z<0o4~HCf=r|I5|A@A_^O-!rsSxFib&V^L++wakf;6u!7d7(y*00gCJBLGIbFQ_YaG zi_bjyiP{=8f_4aTbi+3}_4@WzpXK-Mu~o3yIK;~Wb7fOa-e9)pU%rY$0p)rDt7-zT zDVlr5;ohMP==pS>S^dG1*0ZDpSfdhh$Q%$#)tdm?%-ULzb`clJ|Dza=CZR{mH}q~cbNxuEEr zjC*)-4g3kMZ`Ei@yD1c3o77Vms)oIx90QC8(92A^?~vcNt+J6XIJ33y5Et zr&z-8em&3&ID*5jPK0fP^UyqCwa&w=Tf-oGA0D~Gk0B0c4-oKzYcR!9VQ)_H7?vis4)rUgI<(?q z5)+bM*3_cZp-4(qY$`He{=rQu9R+5Vg33V5F$vOv98+ptrtiTEHwyF6%}S74u(jT&Wz|MciNOAaT4)u?R9n-B z?K|l6usjKi`woZt4}&PJ$=;Uu(mkYY&y(K-#uwu*{c0mvwoD$K(38x*I-c?;7RSwC zF->W%VuGRyh4h!67Cnq%+k$l4MZ<@UqGwoV9m@9|TYTO&S9g)E(_3wTFHsi$>(Z^g z_pvtdA9uE2!(4-rF zq*1@5Fu3Xi=P{F(EBB_!2?UYK;2FLy^foPx0R1o32=p{qT@@j1cvdk<7axQ_lTR@}iirTb~?4Rl&&!(~s86+3>(46WS_R{^%jmx`Klsi0fSPT~l zViG2lBh|WJQ}5Ubb*DkdrLj7L+=}65@}?6*)3N@BV%fShyM9d*I(48&5)8%Y4a<1z zb5m;Y6V>{)>sZ8=5d8Bn>|tXda#-8$D(jhd1l^(W)#70EB-a~Cw8fcKtu4T#?}YVY zeI@6))&2mtaeV&a7FG9KHrGv+_W5zuT#%7D$|R?+1TuI!vs&=Y4AzOoQy?QnG<1G| zFVg+sd*pKxW+()_NS~4oz^M4VGjLZ`)uNH?;}qy_cQuZ7j=lkB+@mkky-wc z$1x{r9N~ii&Nzdr7?=4*zj6KFgAJ$%XsLt5UmCFh0KpEbaSSRaKhqk z2R-y_^+}l#YuWy64>ZL&5q$iQ+FQH4f`m6?!9`Lz5JS5!?w`A@!d}IbO0CAz}$sKV56zAOo$isKpK(C#fKQ<}0x_9fnfL#2S@Ya4UI*HLl?V&EE z2zq+XaT8vygE3B~wgMeAzbX74+D#JUN3b9OWr&;+S9vR`1ObD)GV`s=0^xU=ooh{$ zct7T#;cm?>b|!&v(|fBlWK#z4$~#+XB67H4?|7RI_c*PpF`aJ7mghA?u{Ek2lt4fS^cR#=^(pkl z>M_&nEJQ^a0p{$AsjBAJX|*7cVQm9dyA-FJOpBdXucJAueqc&Ka><@zpr29ByqaU& z;?Yu(er1dj2y=PHL2=fF=bb~r;B^dOw)7vIr7l>mv6Vl4Nlvm)XNK8e*sZCr0Ny{W z9*0D@SWQ9xc}$d7g>S$P5vY;1B^|4Cr8LrAXrQ%c)D_m|tkHQktE;FJR8mPuuj{m~0qJ8F?7> zmDQhA)Rk;>mwnePhy^i9^v0xDiqR6t>SF2O!B26^!3QSc@SK#Cu6n{BU5T<%Gh~I- zMmwTi=tRs|UG;HoKbX|-_}ldzfMBPUgniF*{ZuO=hG+vkf{2>6y6m|q&J5cY11uwj z>(U#2r-u6y?@xgGr$HJsmLa^&t3_sd7QX8(j96hcdnkCn*Uq%v{+Kv(r}OFN%{FE; zTvJ)zT*RQ_;qGB2>7evts!8|`((yI}P=1-@^5b^7=-!>yS$4L=A!Pu=vQdREB_wq$ zE7$SgCbALc60;bAmN-sj?R2Aa@iT)}KjEV6)drW$DoIu+KMT9s4DUE4;_Xu@H zsiMc(KKw|anb2vVJ1KSPLThP}z>NfNJq~r(vhpvr#;v?USPg`(=1{Gc78B%sk7bcUOH?_6KU}9p9l83GpbBTX5R^K#RLhyQduv>9g3F%-%{|6=^K{AlS zJ*mgH$xK!g;RP6Th1xJw?l#r;1cq~7L8Gu2_Kvg-THC^%ew8`vs_hoA^K-52zC*3J zI~`W3{F%ONH!$*=v0$@pgH7Inl&&rcS{z5!JJTa4VWXdXzuDC_%LG)J#_;Yf$hvmr z+fqv_%8n9&uAJ71Ui5D{%=eP|$M#yAfu}F~gYb12&LMvtRN= zeP=w-d#-NieLYX0H9ttObToR?m9+i`MV>VfycxfL^zNGdn2|?@MW9gzJzAfL6=RQA z@g2}aP(oc7lU^zQjZOKMgJBzrhM`sn6rY_jV*xKt`sb;lH|oCZE7eGWWUK^EwodOd z{9F@lH#tOlN3i}Xtw7qJJw(s_?t}`Y(&>7-8Q|;ncv({W{pN^I_Y-Xo>6m6F663bq z3M?%TIc>^B79D)%m|FA!{B3V~f_nMSJK7FGI2o?+33)=4&d^=9>tD87bzZq(VY6iZ zQNtE^(+%-@-5;}=&02rkw`BJpzKw5r7X1C)GQYrlV~K@4y4cP9B0li-fPxXrOB#nl z*8|)i+$baf6`+}6t@y`czFeBLJ^QG7hMyVoh5(uWrO0yvwN{XZ~$_djMB zH&lO&qiJ6N4iA#)lPS9Z!gc+MY7lF}(XW+%blcH7b3)r!2dB%nnRyy{?9U?*XcP&5 zUqaPiA=h@rZnSzKWYSCAP+*f*Z~tN6I9dYE58LLoH0(|ApfIO^=QP?M8rHH23a@md zmbMSWBV9-6JL~TouL3oHOxdk)hQgj%#_%2j%$=~CqsO1Ak#>nH%7#q&sY%i(r?wS~o)I4$I zmAg^@O&GX3DC~ClhjEb=XdF%qim3maoj9kKJl4wq#D)rVuu3L|cP2HZM{HC}<9t!m zFHkRrN@KoE;y{+^kJ;OyqF9Gd%C`Ve7s2?C zf{J98K0Q@|`WsX&2hpbBYEm!dZ*!V!Jh(v_YJ)5s}2XxI>RX+_rJ0$nGRGfnoWt-QoT2DG`MI|od}^@1bh3pht zaxK@eiIHZluhG)8Qwtw?%>8heCa!?&jH-USsV23$aGQ~x%p>ywHHMX zmH#Wz(lVi(j=PP2edOKhAQIMD;DRJr#xqcAE9?tacXn#(amHnru;3p&cELvq^IA4q z4{k|l0?bv~9Sq1hjC=%F>p4BTswc}3R7{M=tmijyxDutS#LDG9EWYc3>%SY9`%$Vb z^+zdhz2Dw*G@!eBjo&6A648D2o>q&jo~74q(ovBb!K7o$b;7WlKY%6kGlWe*Uh~72 z)w8s)i$TfL^L)@Q8D(lRnPy^m%`_i5q?eQeS4zujIXl;+i^Q{&kJH-wRq^C1l=Dlb z(y}QEj~PY5iViJ27Yi%0^8Bi|!Q-L02Ct^!;ipi_ks;`+=(X9>5gf=&aCBwVh-qTP zo@9D9>A(m>&T?>oX{r%_83XuLKO@LUxb_`>My%1a*pw}sWdj@I^Hj8J6!fF)^-5nH zc<2S@tuT1o=ZBY&LdtA%jo{PyU^jIzBt0;aZ=I1oq^~U}O8C zFV%6XabM$N1_4-h{S#hd!b{U1dtDQWeiD@XT1qR;nUk7yJ0M6sMs0VHtk+OfRKS4~ z%$ogdCoIY=BxV?Lbjp%QaR69SOzjwIyau4KeNZnOIdaK zGCAq5gyMFHOFA|n`vm|-E^w=kxwA<2X#@xkV2Kh(g%A%8>nx+B~4Qk}L+KN-_&Lj9cFWQj-_{e{WL&{58NW|=tPjPV!BWVlK^+=0 zA{=yH(y%%e9!6Z%z1y;h%sCvieJy`FPYy_+y{yx!yS`Im)H2RfX=vcFKR!K%cP+{t zkvz8_0)}C|g6&mXJlW;)y8PwzEMVq4zLR#NLj|A<4oWyhFv|RdPEm>Z$5x8E3TEo?+Yo~8ymL%olCBBGF5nZ#=qC_{z1b9W+vwvON(m`2r~73ovBob7Ns?%VFr!|+P zLepoQ=lAC^UoWP`rRa?NJ%2lrH5z%v7T`6Mnn`qHN@CH$?RnsTIrw}-RZ2;T66V~U zbuG#t@D}d37h%wenfPPZ z%l?SoTDP9nu~{v#L}5Y^GfDlJ7BMdi?o5}r!5=b-4<_XRSW28$`Xf0$^};hhGW&~x zFB$&wxuB|;P1R4)e%W02eE!>PsIA6ig}uZ_-Zf>KJDzF9$bxzKgp_WrtS_0P0LF3r zkc@LEK^G4EbM%0Hda}{If1de?V|x&bZXvxyExVlSvz@}*>dK;Z%qY>7^H&`l6NzIyTm( zO;+@rr)IDZ?5L%cukm?}_tqeub^rG1-?a9NKQ^sJ<9VC?r_6;+hZU1tfD!!ouBJW$ z<}IQ=Wv)H+6w0k(}wJ16!No{qqAx!K!dnHf7p!O&7~{G z&byXsHWzG|3MR@&4iu5Weyv-Ni1O>wUF2B8XLEZR8P9vR3t7am1+ z5}oaPCBe1QJ~+>;u3&>YAwi5BzH8k~uWH=LF%Q$-nBvwkE*>ku?MURPsH{W31im%0`g;&1u0%u_O2JM77l&;^7VW<*bq`=RZw!J45yZ=*-jP17YY9Z$`y?qgq+>SHYW z8r)T1@cAA!y@fXFCJ37pYGQc9_g#1My|kwA9=7@(?$S9IZA@XE$4B?;yu3fR+e8JM zixbAE-4G!g8;%gGJ9^u>4gEog$N;Z8Ses;;dK2K_H_#Kf$sx;+YH2g*2mTZmWTD;C zSu^(aD<#l8E*_p~llXC4JEvh>Gn8LF)Ts7s%D99rphb%`3*<>Q5$QiRsM(y-n7XRn ziKjWez;4J0FfaWVXP&pbgzQp`5ovLxd{$4Q{8pYvasJ-^&}0GabP~nb)?{;ivl_Fi z0iSB5E$-kG&5(2y9Pnc?!N+d`EVa%Qb$9^&VQLZnhHz_G(6NIHTd)*$Sd|FHaMpcU zxq5mal2#|B*S9;=Du?rH?{IJ+(#r-D3zLgaDqrX(^HRKZxAb^tp1Oi> zyZ9ZSVx)KhGeRJb_?k7GqI(aW%|^t)tK5dZBQ{p}Ecz9_R{`BH*VV3TDHYm^HE zpHMJD`~j2@+Be;&5f}WMiz`0TO1hnm3aN<3e52@;_gWc4m4O`}wM zvR^T*$4CGPV9D7S=jm_T7-NF_C}jE zS*#;OrJ2)3sc)6Zw8Ji-^NHrq(n=z?4jXlK^MzFoivr9z#_G?^3*W!A)1Mbw?s@wZ zjQ5-Bs9jms=V3R*RSYHOh`H39)kw~gaFEI0zAQWm5d0P3q&0C*u2b&rK2v7eqb_c3 z9HbhhUh|4HYCc2KAR*yd*Wg?&=O;I2{}KoWVK{=iUJGe53@~1owth+{-pnvbbhAOn z-y2jI%D^b?_OvKDjbLb3=Tl z^IR;EzupgKH`d6?E?cI^ENku94DOA^-;w%D8&+|kFV_s?9@Lu*lIJzI&s(z~)Q1OF zA)dJ8%|hlnZJ-sk1v5xZnK-B+J{r}}a|yJ>5x-|05v=rg25$k``Dyf?pLn$%JC6J> zCA$~fqrAj(00n`^?G%5SJC#~QmgyxUpWlb3Va{)5H!NkNrGJ0@AtpOhF*J^vM@Z-v z=cG+3_aSQ}byro#AjeZk;7Gb1`kTklWq6=GQU8%Ps0)Yai=v(uFCn%gVCk>>&ftT^ zt!X)(N(Dk=wsRg{U6jdEyvG6VOa%(D6&iwRUg8-@_By zr5fG$g-! zHCl#2?@k`a$EHm8U4l$^Za{1=oQMZN;)dp_JrzR;=?dLfoSed=KXUR%FG^^XcwYeS zE5w)qH$*Mo@eSR)^=Bf}p;1cH^tDQ<<(;c)G7DL4ZB3b2#v0l@g{(#r1Hz}HZjDR> z`Ph_arR-?x`r6*}XeogXSGA#o`C&mb^yqobe)5a-U%5iU>TABdj^F5QYLyE(*oKh> z>+wqi9h~aIy&3Uc^ZrJ_2`6_IoSkwx?7HW=0n!5{oiZ*fSpxSdb4xj~8Accv4eTuJ z+P|q1qoav=Q)I|_AkT_*g9f&S#-rFwrJ17tp9Nr@?P&LVO+g}4*Sy2xDd9w^+d8TrE?TNfi#}!0dw-i;TF_ zftBxUI=~%|?Q)DY0zu0;V;~_i_=9UO?3z!p`BJi=z zm*LGGZ=1zG>98xVT*`+|pGyxPh)R@{@yY9m^YYTz#KO+-n7qcoaJw5t6OerK2wE!X3a1P_&tI1Vm9kHKTbbJm$S&?2sRmwt3=|K zyfD%{xz>qtKgPLq`3~8L0-)Y9c3;ks*-xU4FE%ec=;rKi<<1*`;q`bX2nQ=}(GiTO z{`<&Z&86NJ$-|WZKY=3|LIO4&%1Nr5`o_ct!f-z6@Nllx8w@ zlZYm~q%Vob7;s1-3w4O5tZdS6!i2=9dL*He8lNJP(xWnLcg%Rz%jXibled2#ife1m zT}%^^Uw2i7-6_62dZ;AuUdzH_#+nt+N*!&?{0<5X(lOVU8nVLmMD4WwV*_hRXKi?v zRo1>($XY3m(2FOwJr-<(XVJgnqc^PoQ=c&~n_Fdc@LojeYdFd*k9Pd6voh;K2@k#x zkxskEfREP+9#%q&;zB0&6e1)AEpit;fxa0`rj51SCJZcY$0pVwitm3ZUR9j`1tZVv ze;@d7*tX~bzCb5ajM-H@=aUx8oN>{Fc$Q{<#?)Zd5ygjPU=DG};>7po@*LL1k&IhF zZyGQ>v!E7ksBqgGjECOs*94}~5q}TWdYwpUDM$fd?Q6#{`~=i$Ll?56sAzt-Iv^}` zyM)SjD%*cyaa~!r_GLi^GP{9h#GdI1Z$AdeyM1-b$Bx`0#|b;@W7_9O;5$Q6!$Q97 zMpi%Qz40Vda~%V~b16zq*KB!EoqKS%X2mSim%x|hMFbOzS-Hy32!)=3DQ4yF;4OCG zc%MjAhHV7fS-N&5=tj{ywjo4aV10+xugH(`hhG9R;^?-0Dp_D@28Mz=jR?M?X)GM+r;q;nS(Ip})~r(muT-+_CALBF8a&i zlqzXi#!C%!NtCUE9DiwMwu5jR<2V|V9WEA{%*c}wT-JrOlSu|%G@uN>hq_k{4^XN&3Q=`-Er1pk&4IvOO5C|FW z@zN7vJwgbC5QrNHc)|=u2&842R2UD}?sZqIoP2%Ke8oQQY_hIv{Z2wWM+_(kZfEaN zn@obw!~IzF#}h9wsZbwAA_qr3Do#YboTkP=ctZUX7e*7rVr^x$Q`yEIFiyEB!v)XK_z_Lm87pF3r*e)7KktIvPakTCS)l5c)&^1M~S zkNf`7Vf(bB*^+b^it&X2cLz*Af0zkQ%arZd8u_|#3_s!C?Wp5&ZKv+L#pD~8?RjTY zR_jbmxPQ3}x9B~1hXCI9&s$W~rf17|L~6OSyUW2AvjlN**m6@#?<~yiZ~z*B&d$az zOBHRyK^L?N^Ucq>dC^LlGU?Dd)M?OF`zmT80jkUwY&jG&7GGIov^<; z{iY>~d5>8(Z>K#vK53X&1jYjN5sdHAu~A99x4Qbk{9_JcTB4+|(Ait}^>qn1_y=Y_ z2Lt_L_Lpbo+R>6~hewODaxF)~8(DG&xtIYPjY~IJ{2iT~z6RgJC@jk@wD)>j95Hn3 zC|U&!8dJ(fV`R5g?@6*V?~iLdC0cT-9D*{I70^r=8=a9~)(JUG4FqmT!+7+8exomE z&|DZDlU?ySnPQu?L%F3leDo-vof!O>1c!Ev3^>zrk>$ay{j`bxK#sdv~W} zz~3V?Ge2v)sKc9n``m+1IE|W}d`RLO8V$cm9eQve6dmYa`m9m-_{l2m6Xh?%h3Eku zogjP;ArL|!CI~FSO^GR87%7B62!Rj+cRU0j;0X{RklXyOl7msM$H$M^#kMB!Z15M<+J#rCKPE03WIMKA8)~mvbUSbuWwL=!kt4@^;co0(*H_m% zhG0A~gz0bk4=KPIF(kcdvd!$lt;&nKb7(vu^C8$yKDcMUYfIc6YV1tjTTI;s4TQND z#`NOg#+K$ma%!rbZN2Ik?n?;(M5lxDNY$M2;YjU1EBoXFYndI9)A2gTc=g|+?|zO` z4?n-KqmJEohtovOAlVM{yHxbuW-{C9Ud)N4UEgJ2+wrR+^5YkqQ zp|i?w0H?83Dq1K}Lk-&25vZ#qTl`sBh(Rt*(V}EKc;B>LK09QIT z-TOeYWn{`xsN#}_z&IkX?!aK58X2>r#T8DXn|h(OfR+a#nwE1fcE}%ENONgl*O>M% zNr^U}Jnz;8+Qi{Dd!TlieX7>s$2T8&-Z9&09{Z+m9ecw5pI>~>9nLck(J&d7g!{S6 z7jzI_?F5f*+Lw@U69Q%7zhQ8=Nt#Z*RwR>CevbRKI9)Uh{*c&1l@*m(eR-w5)o{^z zemZD>^2KjD<}~?iEj_adja?!OhvPI*PhY)gjolsgrAMD}f>_a$ggA`dVF>_eCu&a~ zdcfu653`oYHhdLAAcR1S5C|FWF#;-#7D6C|z}*W02r`JwU_*q|I}R(e?4bikoEP^d z5iqBkFWcGPHs@rO%@pQloS6m1^(GCFu7arP8yl8%)tKFzTVhX(08NskryqX&j$Q2O zaO#&e6;)PIfRs8Lhec|ZdWnNARG<4q)cTDin*m?X=uIoVMwx7PCsgJ)jz1YlrReuf z(hZSa1BVI^i+PJg+K3#hV&@N4U8Kig4iS7gJbOZp=P+y!1UvyeIx%iv_{m?{t1tX_ z+f#5@%3Tiuk8haw1b+bO0pmC1Bjcm?A7B4R`@`qIEVB`}`ib!IH*%*A9@m|ftSgjR{0=66uOo%bmszVlR^dkMt!NFSlX~lxp z_|cCQmkb*t8k2Wo0LIfZvZbwm&=SnVTi~uZjQJeVOBeb&9KC^-%!urnXG-XRap%%S z!HE1k49SnHKuo*2>k(5ytMqSl9lTHj-|mWoL`OeSg2N0uUdWc;)Ho{~0Ty8Gs7tj+G1 zFuxE2cM}9chWp*r+hJQn2!s&W5CkAfJYgT0EHEdrf+{rEQ-ghWwxvOg^LFbV?YAkh zxs$}G&XSGw^rRH)9~-eD5p$@Po;>l0v*+mZ`<>^%XoHdOr^USgdHZF@%u3g06{fe3 z2UWx~_Go9sSVBVNn$)S0c!#L1Dyxt*duoJv6HrjZzuev|HRc*eL`||076mpvHzU&! z6E-R4{n*rm4TwoLCbj2TG5LFRC@`RnB5L0$+PGvTrCOfsVrGfqk|U{ABv)a!Vdp*! z+Y5mRU2Juw6?XdT|C2N#q?RvJK~+U%3mcp5tx;Io-39@Vj{?Tg4aT=0n;Bx5ef7lC zVw?p|&V;nK3`B!6C(|}LVnuoRHZ?u%Hi^p>M!nfocXV~y#jBTXU+o@ukhqlnSmJUh z2?ND53>N3>;)r3#hJLLf$Y0WsGcsKuHST1s6>eSGLRc--QTX4p{1)CVdZ5inh>wnr zx&wjzb$cBg7DbD@pVS-X34PMo(kutnMY0i`eG_x#c2$}K9v`45sH^_?S9iqS(Mf7s zpO{uTSy`fil9oK^03)CY2#wP<-|sZG?vo?;#;$f}-+aGlD#w*xggTfv4sJ>h4KzA4 zWxKGYt-ScQmVkY29I57Ne4t@MzFcd~C%R0RK0>E4uV=>Rtt`9PG27{Br2b)I1vOn; zeWS|>pKn0G_ZJ5?hvjhgy}lN!E-03?dNl2PBmSyS>J}v3GqMsbGe?KAdS+-PB*46t z)@bB+bUxT=pOQ((w;RseSEb2-#svYKPN1iKJ>82P_=mYo!1uyKWwrKcw+^o*DD+U} zUiVW#4`F$^(x(X>o8cZRX+`yj+l(F>7Y!Cvbc>ap7F0{hyD zhs0>Fapq}gk7wLN@FAVURVSjTwxP`a+nKj*RL;Iir233B7I7h1QSF};W4vC@eNcn+ zHi{vRsE_{*Z48lHm{;ITKFo_y{P%Bu&t}IatXS{n^nGk@+GM;&HYvqi6645SlGI6+ zRC{J_j%yb-;Kw96);}!*biB_o_@~vz4DpzL`_UJ~_^ov1(1vKjHJo0cZafb!8WV{m`A%+^{Wi3;{RiK{N`CNq5&D7)=~Py5D-gm3ZNz4ihJIf>?6P z;iN16raulpY7<={r-(4qFJ8T3`|9eQ`b_Q)EQ`!W> zZ$u1foWA*ac~gNa{9u!di2=&lEu71tsXIJXz8ej`FBZc+`n@+v=F3{xTt}KoTBP6F zq`_6D!_|0@5chRm=}x`5np#`j`bhspOERvMb}PTZ@IiVK$DLC;^yZLfLI>VRTKaz3 z%JR1(Z$Eb?|9|%0JGjpDI`cdv0U{AO=fIr0$!<0~2X&BJQmZA6E!pzO>$Sc1?98ld zXT~#I^T$@LtG1?Uw{|`I&v@-wkJHS^Ngi2}l`M5q=O(+^&2BcE5jkgohy=qvzjN`T zFE0TQ009snzn8qY_kQ>L-f-Uhobx_MCkyaR5IFPaN}E1Fz?$--)_MbQZ|U#0-+$+) z_9wse+g2)NiLZMS`UFqWOlh+i2yEIoyYoiko-L41)>4cC^n)s$D)ja~4G_-u%#E%Q zCviZ_z&mTCZdsHzNE!ZE@iaXj>1wSQh2@t(XeW>DIbg?MYP2!+u@p`)EwN5%a+l>0 z)x`JBXH}he{$uTx?;%jvPzGggNU~BXn*a3!&)U7)V-$ZOPvPG6{!Up57~1@^&wbSm zh}yNs*;~EM+I0#F8oB#)@|XJpz#hsRo<)N60Q%qP*qA#p1_Td0`QiTMekXnAcpNBi ztFE>B=0;a?<4igJ)E4&)itclZls6bJ!TY{Vdz|;W+HC6epV(I)dfHF?hW@_X`CO6s zrt6J8L#B+sa`W?j{0znfjDhqQSuEHy4;}U_F!x7e)r!7IFMz5sBpzp8-(-w0YevK$Ok(psdI9b-XfgI0nm)Yk_-@#22D$JWKNm?Yr;2 zW@oj~s}|tFB9-(;1<+t+f#n#-wi82G*!p#4j74LnEY09b?Cl)13?1RVln&)hvK4O3 z@=YiC;2(fetSoxh4ucmK?f~#v{64+WV1ahz)JOKsSAT5(_UC`iH<^j~h`z791mM#A z4=?;LkK<&PH*bM)o@h#n(-(+aFg$0GtY+cSo1kq zsBUp^_(su&ya2$Kh<=7m|JjD~ZuQ1SoXvI!0|HUnn`#|oG1+V9A4ZXuCs|ofy>Dz_cNmVVm?QF zQq*MOmC~msLJs%B>9KiTZ#>uBp9MCo%Hf zktnAJ0Hje)h4sL#%;$2Y&04|%NC8&RI0Qu&@gs}S2l>utoXtbS*QI{+%7^dTq)w^) z+sB^wlYM>;LQU{cW;K04sNt_5A zmZD)$bbP7$X-95}J^#=_(Op&geeq@Y3(=otlK}0G`pDHf`{L`*`G?spO&wWk} zw3M-MEtWgVQzU`4B7q2SUn?~cL19dBbJfQC=mB_i_8l2XEW{s;yS0BfM-p zxj#G`A7Au&871J2#oWo%eU;m0oUqaImIJt3#+*h`-G&lK?Bjet*>p}8sYTA)%J-GB zj-ri+@$1-#U&Q&3s>EeyP~YzWglc3-=5+gS(hJaH_$ra!vSA3lrcWAK41+r)0S9&=wGsw zS5sc}9m4}{ku#&b(n7KbbGJWnAm-Mg{D-O8O@)~!P8PcEWXW>HhzG4zMBn$KRn$KFFc&hW# zGo90Yq4m3%Owk5Vt~^t<+Z}=OY-k@Vk=|nRwvzW!wouO5(wVR9^qFM6IPHTmQkncF z_}mxU0nHZOvR)%^%n6(@+NAj+KJXj!B=ZOqQ=EWfO@Ouglz@8ZSdO(f+Y{nBFVotA z(MjEZ&4*AQ7+DpG(x-d4+j2w;8ctwLs%&Yt$+nkPd0E2xYRwlc%3vgcbs~XlN1An# z=_s3#1R@DU5?IR;U~v<_2xDOy7G?{vcnQz@!cW#9&m4R}oayQIx1Stw-gGP?KczXC zTN0#;B|Oem`*pM#4qhzIpg|ynMOcU-@q4)L_o_sJCw`OSq(t!IPRe@zXRT-KZ;roi z2gUvOo1guPbBdGpeDTG{9erNB1VRf##=r2$Grmb6mKdXTpeU1%8d78>tD?h9$-*W#5E@7aqDA6uz5zHA&98|XWL z?)l!-hSI!gbRkbf`lbVTHzc!q{?_|_w<`HQmjmL;J8A$NGKaeqYgIMA6uLsp`)q>Ils z1{Y{FQMST(9ee-u8uJjZ@cUxryc+i-KfqJ0qnl+#UL&6VMCs(-0!j|aEy zvL5-5`Ie{~p1SL>Q&$A}gg87t{h=rAuBx;0`V#`YC;b%OV#fi}<$p+nxaSMx0l<)X z_M%RSFb1Mr$dOaj`-;SUTv;d1=h&%*5YI}U^a*K1?=cBbkF+bszMtE7pZ$>(I5}xs z7F@rJkt1oL%WvPwMPgwUoJ6VH0RccFbIv3xj}MVZUVu$b?X*?l}DKDQj-!x+Ll zFXjyYtU(~GsY!=9ol{9EaeqBX`?n-1u{#HQ9dP#_*2$kx_TsEuJJ#Q(T+7;D z^ODzr`pYF54b*qF+DTD+T~wQXc=z4wk2+_a)Wu@5$s9%7{7_DcGqrwz!Zp<8V&aMJ zy|ogE0QXxf|0wlH0+9sn012=#WplXL;G5FvMc)0p?y^BSG5xO}yl&N5c>=i7t^jknW$p z_&s~6tHGYwu`dRC=-N^M0G{E9d3IKoZQWF3^(~Fo-rXe&w@ps>5$G^#Dytn#Vf?(Q zfOzP*AxwW?Y~GOt0RUiw#`9r0+{UUK${Q$4va_;1zgQciU~TDWv*Ln6w>kz$pnk5g ztX6amJ}S;w+yD}>&*W{f`SZ-J(jW30n=7w4FK=O<$}d`p)u1T2Q4xdO8l}tus4Xon zak+=gymW4f>@N*d%`M ztxEfId-mG4vdZfyHRz%0I*}55l^e02Hd31S5II~@YsUuLttzj`DT+e7xlxv;hu4|g zsK?m?*BO5qcRkE?<7^M#q1RFcVsBLEz&UB7oLWQOhLStXwKpRc#)tXpnBSN)Q3LXs zd7k%VISdUa%wpG*th1}j=M@yUjAbDtZ%&qPu5P<$+a8ZATwgEm#o2i_BHF8dodmle z1$}mQj-SrBB8R|zT1WH_57?i6_=f$Tvg*Hg>+bbZtlKu9VJ%%PN+al)qOd+Cu<3Ud z)@RnETt^a!BoIm9_Ll&QKdiQRuPG|CZc)RW9_h0RQ5*QeF>WDmw4GwWBKiye%-LGrtTWWq&sv2T+zKZ^#baSk7N3K zVxH#xE&j-?zfh*%PN>-E!SXJ{qN6zjjBVapYM|de4 zvj+0I)ttbPsB|qegdfF;SeL>#qL9UCHnU{$^qJPjuWM#$x z@}c1&w{{=YJLLy7=+T;lwMm=&BH%c2L{{Q`(8CA-x*&>jb!W}c*w*Yk?#xf2Pha=o z0xs}upop6FcGaz03o8$dPn`HF%q#Huut)v6rK8p7$y5RCZJq7b*xq6VIe9*g1;E|= zv)aJ8o;^^t&6TJ(ljm9Uxk491yUdd^8VA3xo%zU~+kHsRZsqSpHdw6Z#$-hG)Si3o zAMJm@wwG18vM@YHIYS87!uRNXWhH>*Q>B#VUTFN-inLhFku_Ls9Tc-j#Az3cLjW0`Y47Z?F*$YW?(G&0 zO|dU_ahNyPf+VsZiyLHIr(=e{^VzS)HXJLOVib8KffxYAxImx{&WsiM&Um$=LDAOE#n&%5; zV{8U6fM7mt1hE?1-QIFdi&Hm1#8i>jpx1W0PDR2{a!~X zgtDZhZ)$D!wp*$1I85YztlckOoN`BoEdso@NCC#l5NE(O^gT8zExlYGuO6qKSaSio0_2^S^ZI-9%I&%P9<#J*fSpw0DPwNu zx?Q?NSN};>oreM`ArF++*pc2AE7yE+S#41jJ8OoR&H&k||FO|aHaV_!w7#dMZ?w&+ z0_%06fqSlfJf>9ZSNkMT|2!YHgX={cWCCc&iG${@daDs9dY-J?p#ei78Sc6M>G`i9 zbCjDnrf!pCQ{st@|M4>cBLj7R)p|4@RhL!xKIwdOgZjA?wW5>j>g};EofLy|t*o#l zcDp~N=k%Yxo|c?qJ;S{=AYUjYd4+3du9;s%{%dHPkM21rN7Fg>QOkL|oVwYvHP#Xu z`#WSnk?iFf)_jUzo+<4oAK820n!0g?77w^skZBZFQUXYrx+5&LkNCsUpIat@2ynk; zqK^`eBoIj;lEA_xz$D9r3m@<2?tR$mip%Z0AG~4bwdhNiH5iLafS4_tQ++cCH{bcD zdcStp&OL5P#&K>oxL81j$(#4^ncNTuVMJDDgF{0O(69()kz7_%>YHMI2iOASxFW7Y zEQcm_q_#v>r&viuVf7?H-O)Ax2?2J3{G&zL>ea!Wno?pLc#Sg%rnCH3TTbAppN76$sC`+KwNf&^-76Nji9dZ((eYn$#i;Da+G77R= z3;A5mJkYHGrC1jfh}tMubOoD5A<>}IahIj&NAW{D0o{Ldw9?8AR#K4?YqK;NDqex-usrP>8&#xt>?TAh}Ayma~9!S)LmtiH9$ zN}^ZKwNZ;W?{z9Tw5HT9 zI^`P+z}Qr+P#`KmPR;4Wver+3_0|iPuJu&?g+AMuk){(zqqa>3 zJ!x8Roo{cpgQA(ipeux!oM)++a6|OIBnco_La4LwzNE;ahi>=NcPLhV}mAjs1yKW2*X;mas(buVD5+ecauPa+NzpZ+Pa79@qx{9n;i8$ zv-K{kE-sy3=w5qI{Qc4A<&%Kh@2EaLs6S=@;id1|Gy4yzzG7Cs)RWh%sy4CCmM;fU zOpyduUjl5JY14(`BP~u!v$LHomMu#;=qlhW9~aF88|lFdgT8?VkmbcjF=6bk002L>45XF%LJhF$o>M`Zn{!P%c# z3grrUVQkqrBgdEpJpd}SAmjmFZte@4#UPpZ?+Y1=;_nY}@SgZ=xDN-NW8$SHFHo7x z$RqyYTkyHJzt1{)I;~39ls?Z&{)uI{1=(7WB&iG927X;e_=9YQ>c@4+14e{t9Pj1O61q( zWN(`R%*V$$TR};eIsmYD2aZx!;avFA)yp;}a2;#qUah0XN5^c-)s40_tH2(r*lthD zKMHvu{@6GY8!u){Bf56$B@os|)c5->=iDi8@G%mfJN-NZwtswV(x%4JMU|K?I<6D} zw<&5To2{eulG^K(z)74_PY1OhhFjVa^UVRR$1#W@+)jObIm?3Vyzgn8_|bcBxI(K~ zr>;^2bYq#0LM}xXD=m6GGU=yKQ}o@#Hh?#VIB&ACN+1{X4_F- zb$bhc4VEq}^ml0C|4$zKf^P=MW@sn=I~#@R#r7I3LX@RQ0*jUa?K@a79@x6eUOD@r zHFmaIl9Y~@)z;atZ`Sw)%?Mx`05zL#fWIvQin#9u_+&lkHBdj+5qc^ zlua=pD?ShL@`(Q&KyxT%n%i3JTw}d$t*N!FG*Rf~UbR1YOP1~rKPv@)nN^7Tp+!oK zpPc_l{dNA+1GFIkHX7rk=tagajtOL+uuE#osTwDWQn%P{(Z*EBD!N!!uz6Z9rD^>W z0?$*HD6D-6gtZYAhXpC=HUUVg6QIlw@qyusF{h2<>aMGaTmrYo#0HCVz(gE zI-2ERGH=TA3O4I^z)RxM!)kM#gMBupv6(gb^wszz*7avjdVH!VySbt;QxLKwr@Kqk zw?_tCS(~|Ki&IuIhG&#zNT#v-NSi**To34;jKXd@68a)1t1ie$s7do$tsF69Sj3#P zkU&4?Bn|N}-VmresO4A(0Q4(mzaIOAgkwfeoFr`->~-H(n>C*jNBsCT{m|NcQ(jNE zHCmZY89Y?G+m1D#lMHpDS&GJQ-21p&?SJd&D>kV8UeOOl#h%DUKRdq#~ zjU*6BAd*0Ay~*N^378NTdc3natkEX){vG>lXMU+=$vMuDjzhO-Loh5$2CP1|$g$y; zj0^{(SY%z5Lp`kTSY!^!vI}4ykOynQG|?6SYJ?5&HS$;bECl*wQNJ&*)DG6|n)x~8 zY34%oVMQc>oP#2S1$4aJ*&a;km^1Vn(SmJ7#2-a^izL9v7r5eIIDW+b;q?2KuCZ=P zZ5;=pSR76W0Lc=#&RB-iN;cTtQZnMG5vmJ-Yc|vYm|;9+lg*gNadI}&8QNsdI`*w# zxyc7(G0rAW*PrvfJ~T4WXJEmXmz%5pym04Pj0wca*pK1?&>bgnC|^m3-{QxO_@cQ? zBsaizxNb)UreYNc(7_y%Bg?>ifyvN^U?m9uEAoYc4CO|M7eJg-Rmc|$LkG&I^FcR+8`ms#dEy4j~5gC=~`Sb68% z$F?oM#Iogh5#`#Mwk8`h`C*`6&jP#?7wz(b+Hkv0}lxJWIIU>(C2%oBRoN#dv}>Zrj+9Qx3%|WvEuDWF|x<(^`L3 zv?BOK(#4s!$|)XBZs`58UUt!P3)Los!*UCA5M$0K?V{Q!t98F3{;006=YR~5--MKe z-+t>Qt1J*r%e3Wpkn2*)7oO#Pf7Mnikfrp|)^k#9W!td!BFK|@gTUB7A>*J;;?7Tz zyvOwUl9U|GWAtwVa{&&RH)~EQ6-7#*qapqqy?8#v!{_+G+%hU4-64l_f$((-+AX{>mD7p5;>#ZTU=?+?muibCFR!K-C-x1 z&wKeMw14>0zWb$+oU&w%=UqA#{e_+P*rR(7+CiP@*e)Y0=5*qY!tzKUw56A{u6_BF z_w6z9?S~M_IY?sty~kD(>o4C?jw1;~5{M*l$4ekgzF{*MFAx@lSbp((Wa^-`$;Ska<<{T^4c>4a)-Qn##iYNY4Q)Mof(v7mD0Wy$%OWE zNmhAS@~7n$#DL5A%q$XWDqw~d_}y>7RuALP+C6#nDuKd}Gtk>{+ksKn~> zitX*5CO^%`{HKTcJJVJHnz}`okb3d5{SWs(X~j|!Wy)fn{uUol)Q~QXFJyTo+E6Tw zYlfhiyvFAz`n+@rFvbH2R>>IQT{%vjsnED6)y!-{4pOgP(Py%^3r{9Wn5+<&>#O`0Cf5V8zJlZEZn6s0^RysLi zn|s=9n=JO9QaxW3$eyY>_O~B?#=d*>XR@%aas~Kbe{#gf*`v*8+(I6sF8AFcdCVur zH7bfVo2}56iba?B^Y=aB`J~N7GG4P)wxEnffct{P6x|d_Ad)~Nfwe1v*(PEp=rBpM z(X1=2^w(#!h#k?cf#a`m_yI6=Xi+^V%Y_VCv23r|>KjmZJm{N`8k`zl&rU2{$C>Z^2=w@G~IJ2WN&BJ)h>bMbOxoF&ZmTl{?s{Y*T4QVJuU-^5*-};% z3+w_Ep*~O+pb$a%(JF-kz!j&f;LImaoIt>mvQ|_gTqkR!k3&M9#qu4+%78$46pAQD zxR0`M9onEGaRN8CH9HkriP{2O;H#xDK`!K%cGxAWTCDAN)@^qguVx++>t{v3tB$CD z+9z~%w5OC5wX5lVaWiR$c7+u&eHgi(6}=4gp09pE1Noyje`NpjQ~${JR@T|;?dNJG1OY59Z5;7_W;aeZ6*BX?`l6{68HAZfd|GcniOpYMIu(<*`ieBWGUfxsLxP_ zw%%_0^1j0}{Ux+nFX&DFVeUnVi=yoKaF_2RuqY?(pt`{FJ0RJ2L#0 zN1wGnc;)ZiF9mC&?=*a9*_unAl&^|y0@>3v5C6tfU-C5qbWB~Eo43h#26Ox|DL$Hp zdhK6o&zPeVM$EsV;j>1F!qO$+ZAp#$uDYEb$$Ds4OE2x6^JE0L-#K+1l{At-B!N3f z0!-Rr@yCSCHiAW>AN2;vm<}(#|F-@4$+zvZyAJr`7v4DT4~wU8-(2scF(Lrv!iGCPpU5Mdmb8>>(+GLssO@w2 zJ?cM(@?Cpp^evLW`jr5H2i9i1yF)Z>g0WEV)iLu)Z4&WC0UZT&ECB4jOP?Ox*qlR) z!e*2HLjMSTgm*xDHkoWN*<6RfZv=oF2VDdL5&#PpI&S&{bNpfR%2 zP#ci{(6{G!e9p@}N8Cl?6u)XccBcNU70MEsfRX`fm=tZYDFgRWPUK4Y0oln9c_GZ2 z2R(;O0G5#*^+27#tIjpzMAkW?2;oJVfbW2`?E)^ama8Z!bIWwn=J$}6D^m0<)}(|` z2YimdkBJV-0m=ms54{PLB(vt1hnG2!FBA*NtV?NAkKKLUu24W0v6*<86J3Gm;^jM^ z>_U0{B!e8X_YVzNx*YIfK}mhj_w0hR?O@jiuV?uAiThlWKzAu+@GJ_)82hx~94*U@@Kd8e zBG513$)0O%u`CJRfsurIAU2VI0UXOM{wCI z1%UF+>dzY_=PXf@!Np#DsnDG-lU5jq+|g%mhjm}MD9iUzjjK?PZL)ODS6ehMvCbXS zIN(a!<;bAom}~6fI^+1LoI~eL)8E9}$#O|&nF=sRG{}zpqRjZpT@TuSJn~bWG}vZ4 z3(IUkG(LnR&0(xPP{kPw9tyZ#ekcq4nE-4lYjNmn{q%_ zDyKwA#zt^4lRSV)@01qLdTzO#D|seY@edpDuxP{qTdpiFIROwaE5Pj^9DU6m+;x{* z{3I^2gUk}IuVgU*bmH?kS6Zu?r@8VFU5_NNToMR4vNYX3H2*xlr z#3&cB%yt?QZOC~B;1-$>ETnU_!S9j5@ zWN1xC1t>Ej17){TUu?08HKkU=-3`YTSv>m20era;I0^=ad=R7Rm*nIjT)J zJoYYQ7Az{!xx$m7zp5BUsW?#-f5kk2l;K;#uzZkT3GEvv!+1x$Tst`>^Intg@B8wHuT- zw0A=MF#SkI+ok2Yi=U!nO4sStE0R!>4!OV}Eq?1+|BanK6Uh zGGr$u>l9S=MmzH%V_l|y*JBEd#~bXz@T4WDO8!eqoP*@pzWkBAntX`sgj)R%CKJEXC`K#JC-hR`=jix>5uNE5_8 ztS5S(aIE9kzQ<=vDW73^hS+S8s79@|7305D5{gXiYhC}FL0|k9D(AX z4H_550ghZVG-7oM&<$7kgshcwvU0T9pK?C)z(3w6Ft<(49JvpGe~Wm@mkN%PXF|U? z&&d<%Gp-Qk>)(FEBL6UMz)jDKbfK+*cO8p!(nk4EEeEa01MnJ(9XBq}~~$8(JC#7GxNJHzyg=1i)gUpZHveZ#myd17HTH zvYbFdwou~CM@_Vx=`STN`UZKX4m#APncq3pFr$1)h?M?^B8GcWw(qRn?){892=i*f zBg^uYxHoeWLjh;KoM5O@zFXB7a|N((ySsAEbi$Z1=M78vfjH@d$T>b zb-{j+@!%mw(%@{mys(*eTp{Hm6yS9I)nClKq=!f6+nuAXmRJ`V&du4wt~D-&MH7We^oV zl0YPZNCJ1H1OTAIqNq%Zs?xM9d;Q!AOG!(0;21zREY1=I#B)$N^jsLUgGJSLX!{<& zmxV6zu7?1y2GBzpTLsGeIXZ?Q+nL^7IW4+Djk3tA)Qf zomF-=50sSW`S;?7M`itVStkX`X5_jOa`1GOW}lAlfA7evwo8B`mcF4b6VqHDwULDRaaTp19g#Dye1Yg3gNH5#Ala#86b)b)_X37@^>jOZ3KrYk0~iZv zmnHC-Bk4J^gT;_r+9Jnysf{74*mQk0T9W8@ZD zIFGCD0CX0U|9O&F&`+clz?dP)lamyH{>(eeQO*TrVj(vPcL8jln3%9W`Eu#d2`}2c zgk`;eP6D;*KkE5JLhDha`^-jXk6@-&%;@;T6BHZnu>9yR1@N z$g?T(}d6t&fwel1)Yv^dTx3nL)Uy7lEERCnS zwj6pKE(?zGfQ164f=Zb*mgQ|DZ z;hu%0H(NPY^BM|;aTyRWo`*3VrN)kuO1rmqryK8JvHs}JyPYo|V}?@sh=MlsTkpPN zhfC`$NkWi`kKJ9n!)cn%celBrL2Y5Fb<6U9Yj&X(X#Pc3>p>=~DgP*~J68e`;C|=U zeN^&D0+9qF3Ct`O5k*N}fmLPZ*_&rSvLt~6={l-CpG6>+Bz;<7Jy5aT7iA7E2*6&8 zfd%o*zv<6xl-a1idGZ7M=CPmImDFU*(qi*$Ymq*$ zsI)3AE?Ka$pacLX>=h6ntlL+5p-KFkwK=KKMjb0oPfyo;bD+GeboyT4=uaepH6Q`n zdX_-dk>O!`Pkr=Ud$Txpr~LaSStsJq8Gcyy%z%VA*X-%*b8wvOGj8$XH#X~7AvkUmI%C0#cA&|_eoUoNmc zH8n;_7o+lo60BUGn;32PdB7yc<1{}n!H*B1afMiRFpxNbwUDV*yXWt`^v6EcJH>` zGfo!6{qgVf#UFn2*<58K_?khVW8ZXPIuD6)o@_dA-+bpqd#mY`oo#D$p76Xa^DB5* zHvo1K7j1&T=O`?{1duE36=g`0`r*;G^Hz|VbM5+8l}t6Hrf(9ZNwVb?CRu(_l4a#U zM;7}nR8Oe?eu2YJ?TAqf1_O@e&;9Dg7~0_9zWtI@EAG(A3k*!)Ne^S|&E$yqS$B`g zf5C?hXYBtw@}gDC;W-Ls#!7sl9BVpjU)8Bus7ykdLFOTUykFF5oUGIg+gns&Z=V0y z$1EtV7COdqnumTkB08F8(PCAUmRYIhdVGwy&kg++ALyM>y`ezeTUc(}%By4Q75%W5 z6)i!AV^XUArx(9#9r7zumRsoKD6&G?7x>x-q(o}!YB%2DXlHI@#n_-g4MO5?;htOZ?&XO~ z*un9z{F`0{cFTJ2`^VnU5#vr-#Z_330JW~37JEeegok(Tvl?*`5)Z&UVOYG8e{k?= z`|(FdoWt?%>TLqNOJ*$K<2=3PTAb0+wc9lA1c$~YI0SbO!GgQHyKCd_4#71L+}#q~ zArRc%-SzABuC@2|oIwAWJ!@9g823ohxs+_az8d?h*=@40pH#Y#uH1`6lY1Rz9BL6k z-x7l zpE94(0AD9%DM#33k@`n3M%MSNHf%YC>J8q`B=0D>mT_#x_=hB=R^o^ z8CzaeUuZmkU@B4us0}7a(_Mc{&3iZ&u1n7pik#8^Thz1jMjsNFI-s5 zhso0k&I343>pM@{3Q@R++euA%Ud9{b4^~@de;50F9>;(6 zelYHBW#FHmv;3-?Iv3o%0StbvOm`G{<NM*{su+^K2IclKUt zBp`IGBi7z-PBXpX5D+?Jg=aUkaB*Q^q|8bt$nM*QcXsy`0_o^!%DnLv>Tt zvW}dj*zr>D4#VHB`H=`$5l0a@GAmJ?S0qT1Br}#Qd}%wPS^~2*hYBFFRwR@|>Bwm? z)LUmtlr*4bFB*8$)9m39flF<$CP*`QRvl}CKNUnIW`Mro1s{>})?t8TV%q9=6a{d5 z|1|}iH@VU$rzW<7()aO=B%U*gdLsu1G|P_ivxrQ}s-)X5I`C>0n~GBj!9C)UVo80$ zZAC9ncoh9JI~N8TyZG6Rdyo%lw|nMuypLxT z@_^2H)D$*Ww*c6#2F2?PERoV0 zLXmDk`nW6Q8mY?YOOd_l7v^b8-BKe!KEOhfBNqj^_82s4F(VU; zH;R5zd>zB+QGU)E3S&H@|KL&87vLe_og6BXFyNR*S0Idd*CD ze48Z|<{W&yU4H(+en#!QrBsxa3*WP>=okGEhk9aA@YNR&8~k)vC+zzcF657ff}$zz z-|`kc)J=PG%;Zcb z>!CALGk^X)F&XK~GcrtlTG-#EvN=4d$Gp0?IMf1~X`TeWvd49K9k;IafNN?JgBUwe zIIfSv;tFO=R_>R6)d`)nvl;pS#6n8e)8_>&!Wmw_wtlBw<=a%Ag!(?C>3QJ=4ShiIO4P07Q zeVdrks5G%&WrL*xOxCqBj$?s?XiXiT!%9|-oYZoOlTu$qYH*9&=09Jycl8WSJ~Zl_ zghFM(cw#Bo6|HuAg|gnCZ&eO#wR(*uz$pA`VZeNDBSkb{o? zG^k}4+?v0^>+^?X!zEtLY8HzNY88(Q$taezXAU0w@uWq+(SV21qGpvSR0`PA26Kph zi|)DN;`;ierq#qfMt|`;=j99;qS@0pR#;5@>Frc?-e^4217MzA@MNN`MMuqHdJhaa zS%u~iE|5DbjvGy;5hkf|qP=>WUJy6vX2eMI8-I(ziF_EM8Ee?V8!8<_rZw6$j#cV& zBy|dVK!if?s^8op*bXDb%fw-PS#dQbl0jp9e#|X)LcJ7@;q3q80;ulXVZ;?l+j%EP zRj`bGC6C`FjrR4t{MA&Y#_1_a8WElCU~8in|n^iT8j7BIS+h7z2Wn^ z^^IOxRNx_NIYNOa__GjqO&|f3$*HJE(nnpQn3w*?s(wC<^CiyLAmLAEYyR~6x44a- z0{3n`Rdo5gpBpTuNCj}&8KEkuhmKU5kPG)PcfyX9%pV&);Vn*$PcST8q^!r{^ zWWsRlMxB`*vCUUG$u0VIl9X4i$ejE$y`|_NW?f8#J0%92wZC)UL8;1S(aT@%TFUM# z!lYiZQvRmiOXb^zHt*xjALS{+F=j%ki{}|sZ^Q5w5z*)pWf!W98dVLRpS!PU=x+I; zKH8D9QFn`kD^q8t;Aty#pkv0^9AuY z#DZof5(pp`+&E(3e8m_8lSUk7hv|>2mW$5qxRlIq@TcXY9TH?}-{x`094q(&ni#qt z&3AGs^H~f);ZRDNou2ot#0iuI-?bL{;T3Ff6B9Nxb}ilV;wEwF?Zhg2Kl~pz?OL#Z zYsd8tGP5e;p%Kxd(_)m-tbdHK8{FRpGh*gNcS~Znu2ErdxoP(AjkKo}9d^+3x+z=u zFj$}QOZu7j5yIDAW=^$T%8f|8fv8C(o1qLH`7&7sh{$d2M`-e(5RNK**E1StKEq7U z4iP&pG%YEDdNdvY2-!B)m(H!Q9e-oBuApdjm9o1n<}LOlH+hI=vQOzg!Sh?89b)(9 zUpH5{cbHjNL6gzGlE54E6#QrE+RIp~C$3^j3IY4?yyREOF~&p_~rHKW=${UYIJmhuXH zzxMZ0#;}GVlQJA}OQEPQ0q&}5`Kv3mU*enKCl3Oynv)pYLwwKh+C`*gO9fBP%5x5d zj)~}rlU&*R!;5d%S*^zLP8kOoZ`ZRQ%Ei_ zQ`3@5WBID5vqwc76Am#e{o=m6sdZtZMK+pn+|CK_ZB-sieLiRiw)!MOFQC*jb3gR@ zZ(4r0w@_TuUJ~cJO5FzJ^MgqwhfrN7Tpm5pw;4Y|?LZVx;G52uB%3S{X{cUF9 zG&eKn{_$P>Ui*e_C81tR)o;7L}wAi93!750@?13G?AtX z{&&uGBNY&8VdobqXD^>rA|3~=uIUhGLmsCl6;Je5x71A`@Hj+D+++ZLb?L@{bu}0k z^U5uDI4*4w;gub(8IAIw*p!?q|H2Mkl{;ZADSVX+`Dfq~fYu(#YJ zNIjB784^}M?m-Gd{wnp+Bym)=>r|UyB`}RfRE>l0J~I1Ksqnwy(c?VuyUl%`{*w=A zwwYhzjhA-K++O!5dT~or`}}qI&2B*b3XW$C>*>8X={`Ri2S_`!QaO&Upshf-bd)gO zIpm6tRrU&`o&raUQ1Ip`qJ{W~U*Z&TP-EQ*__Dd^7v^aN$~1{nU>Kv{%Wl#*vUQ!t zdv{0ID6Qhhy6;bc|H397rN$WL0^3csnv^l2b1k^*q8fm(i70QE2whM95mS?b^X^cI z-$ueRwKvJ(1YJ*QLv$OosEDU#c8yhN6L22D->@%k2Mdd&zLP5nhHuq$RwSlJg4Zy& z(HV}r4`ItMXj(d^>Of%>{P&p`HIQ8(Me;WtJyHlRFW%S5U99kSd+F|76y{S=Q&Ih^ zoZ6~yuV=G%H$nRz$IU+rM-LWJ0_?TgKT2EPfBW71w#YfAF7AztM?Y3rsc^1dbaR?x z8|cxat3I5_lvO};)s7lPWrDRyAIrQUR@dMgo(L@y*1gM*18mA5cjuY0n7eCFqAd$p-6MEsdwD3VIqHm+xlSNmmlX zRPK8OK4Omw2dY^#)RPI)VaOU5iv%lxccE=cX6=rvo zd$$R&*$cOv85(q-i1N>_?T^N07clZGs+vi@tk^bCd=31Omb4$G zb59#Ga9_pAG*0W12$S|7LV`izX5r9(RqBo_GKStafd|jPK+T=5s^!|Tzn~L=z*$Bv zttvh2fS6Fo%rqqDpVBmG*FzZi=$*#5kC2PAg1RVyglzC>9jzj9r=RYMyg{@k)vTj= zqFWjrVuj-epof{3gg1zbpaz7aX&w99ABcj||4kevLTS|?muX}hiPrqv;gp~d`n&Jd z`<$1}XFjAo#Xl_MCvDh)dx1w?BRl;4L5v_dJ;fS*;S_gbfSI?LJ}WZ5mCG)I_}@nn zx1Z^+Wf;|{d#C`E_YIfA%%=l%-+6b-qTwKd2 zX*%Ss4l)HS2B8qHWZGG*-Tyeba@MJi`RkVe!O^rHcdLth*%-lM5mWJrJ}Zmm-9){? zU3en87GUMtLIU;*WM?qbmDOkP=Mx)OQ<4r-7LV}fBiLatC1_wz(S{|)zECA7m(^7b zj3UWameo!}S_g3Ms(!}`&Rhyze@n3d^A>qPbp^k<18Wb@To^STkWdsI<~86)fIe{v1A(jdX%}=&n_2u=%Wz#+Z@EBF((egz9k1 z-eohdJF8JcTg^S?YYLmRBmWepWw$h*S$DY2iHYE*Q?4Rx#up2y`u^{g9-7t!y&hSyT!h zx~lC$JJ+{})(o$~9kmZ+uWvJ2If*vlwKesGM7y(PtT}Y|4wE}oI(`BMh;Q~)74I$0 z2_-noJa*#1^*Qt^UptJIzajdx+Xwv@%fh&(jmrHUpgFwGLh2hIhy(tdxuQ{6__}`V z`3YXQFQgBKRVCHP{vbvEx`g5WvH8ut^Qp7RMj@s0z~yV6S_c8)PbV89kn6k8uAjmh zvrkXO$nqe|B25+Qa^Bpc5z!(;h`=}%COCr1F{;qOyLx7_L%3PN1ciGW?vcwr`+0b+Cehq> zz4-jPR$Cidkc%uzW0a0&xo=8=f4%|P*Lue1X8d9%%4HF1gHBt84Yx%hTLBx%5=+{- zL9KgxCpx{4LM*A3|+C^m1= zMCW1oJ@d@IYkm5kxkV$?5eaGYn;ZWcQc}@W00pQ-0AHS<@r*k4JU>;}Ffyp9*-5L< zV~oPg;ZA>z;ft6Tc@^zf%+_Qoku3Bb07RG*+I_hv9>4Uk?lU3Z%&Aosm*t{L+3t2+LFH)T16CZc8NBc{A@9KSeVim8+md} zrA#TbSl85Q0}AOdvI*xVSLYRAPjk*BF!pZ{UaxQ?oMz<0aHasQ=AVXPkVSL8_Yn{( z+_gBb^P1>taQROY=hltwA4dh>)oAC=meK`rYAr81b)DfEI6jNIv2ZMZMS7 zBa@!=7hb3a&W=@4F8Q`E9%6`+T8bGaA|gxTPk7qRnrl`hxQb1C$KUuBo8)>oni`#v zV;R~V_NYbPlr1j(E|{wu@wA1UXtK7)H6bfwgi7LQm6pZsaWT>huPdlKFMR> z+WL&>Yf=%4Kke6xo#8pAWYSxw+df-}@(|a1B0E2`-pS-mRAHP?!OP9z1$t-C5Rs^;j~t!BT)01T{`5xm_0<_l)XxIxg3l8)EyOr zP|wO1%}U#~8FgG#!t@}NzSp#KUb1J~_4SW8BUYD#^bQXl^!Auke=@!?8qB_`Ah@e~q z-0_aJlB;t%zs_ih*FL?yjuA1{V--6{;Y}V$BUPb~&3NI?HF{*#%yR5@)jlMi%foC? zCPBX1U%bS`aLsboJykVX;J~}Celc`X6Tj6?YrzbV->e)Vu0UMeB%M+r;Yq5~TxD!a z>Y*!mz3|{zj{NE3eCoLzch{JKV8SS!70(2;27U>$1RQ_695 ze_hk}$yd$(hr=naCLV;Gy7GOn2t5(T9vYGA{@<50qbIl)pUiCj?iJtp_~;@s6B8ML zB|Ic-fw1utu^{QEX+%jk4~O{KU{f=h1M%z-nI?YT~hrG)@?Q{4afc~AjFfV&^A9BH#@?Q_+Z6^(%j=-7+_ zXNr#^i9rgVM9y*P5S?L76(24S|8|$D_#<+l0bG3v9#PGBkitGGovEg3c&_Y+z*@Ca zq(7%-*E&ife!Bj&O+K|t8UU6V)vNpl^^=Z9RU+~s{6Kvtr*puxd*%gACRkOgo;^L8 zWgZJ3W*5xL-7JO;joNiMWPWJm+Q3EO|Km_ z8fxl)WEu^2haYd>+Z24i6U_K>rBz6cWz1J0z8*1cw3uCve!=^cokAhQn@@*$^b`Y zK->7fJ(0Jl@HOl9-`T^W#<|aGRI#fW6WhY#*D907KEYGobwQ86LPsg_)xVrp(zFcC zfG7UXBQNeA(oNtp@O->5-?mJJ-gWA1shiBtl$TOBf3sZdj&Zqio5SmUnfTXl48q|9Clmczb+VxbXQ?-c(C1(0alQ zuk;!%&ReH2vmpiaXooqBz9p|*%56On+6ee)F{xR~f7Wac;2DJS)IZT7B)&A?A?5FC zSo(d%%xL+N1h&npW6M=2J8mtiPhr5Qf`!T_miz%Yy0v3mBnYl0`D{>(s<&{T$!CK- zbQ&RFff2;6=2_o1&s3XIbRK}y-}VYK&)t)sA& zW51tNBafSA%gJ&k@@UeSm>F4~*|q=g&pj&gE1TI?p z@@WB&KPU3Dx3rcq?fARHcyi$0kddekZ6d<)kcz!4Ar1=UYGcb->xy#0TrIOg-e|6< zztptofYk-D{L|gYZfIipu2%{&%6->esWpT7S7K7n&qDp(`aVqW521eF?#GYllCXZi zj7>yZQ@(d_!RjwCee%MWF&#v}Ng68Y7Aw8pEHn=uejs^N*y1 z0{bF^g*{#;5-;;h=%)t6@0Efsn@|otx~0TZ)C$iMWiEqH+*5gt1yo9R!_f*A zHoy2Q3wmbxYUH0HNw&p!uWS_jX6S-=_Qnw#KHhx%?LVHE44lOok1224IGO)|%;WDU zZd|Y-Jfv^H#LySxVw^S5|JJ}?fsBQko^?`!iVb~iHBl6M*J>}z;tDGnjQjfOLq3&* z%EU3|h?p;>sky`szgkF~Xh@Q7rbV1E`*F8XK^e7|eeJJzDnnIDjr8fR{mBxPxZaHJ zZ8QRS=jd07L$y5c0?#8ul6FM^dLp)`LjF~rH z=`3F^Totn9WOSy5c#R!$-lyx6RH`&LQIL-@B&FEBL&k`!_Zm^I z=8m6_AUM2Vnv`UO6%Hvnnm`kym^%{{$%?~9wlyRNbwg+ER&rv-VV9Cdm(rwJaOMF* zfq~D5#ILp%$s@%9BMmYR?ptu$g1t2c&JFC@tFZUugy0-pr zYlqG%1`8T)^cu+TaI!iQgFhP&kc{grmqRchN&F#GgksY)Jk<(gQu4LC{U^+^5 z?Ds>niP~S8MWui8+A#%Lu?}qu;FZkj?nV2%mk5V9e_#7auMi6qb_$a33TJat@T^kx zt4-@7W4?%Tb!tgp7$0T>nybrfbK|j`1>TP>!Vk<2b@53QUV$gwa?j0}R)wZ*&{O8x zK8T$GvC|MyMg7~0Mvn!}WL|w&`3q6(m`#DhYIcaR0%hqQn&`b|z037!N%GKX{o~5k zG|Tr9M^cH^n?LXl(bsgdZGZ3>6r73wl7IN_|6>p)t%)9GRk>lD94Hv>%ztK)lW!?~ zSUoBIsw5Kr;$^@>4%a+%{Zhs4XYKF3E%&lU(`}r$>O|pwjyx*>CR8FqWLRD%`l9DLCiXBy*7`4NSe+?7CTD*yCC*LtX9hfQ;rN=`#EkdJ^#2umrIT21kNqPtC8#f4l5#mVJkG1SH3>ZiSXGVr$#t5v%~ZcXocr z8S<3(7or7VUZ${yt(kATT!C|@iV>%CC@t)*MoIIIZgd|6Y=}maB^sHZot)rpEXG9s zG<}h8juwJZ#EdqS-$ps66~6sUd-X@KGnu*9-p3~jLPdMWO47QkAs0SVM%lF* zhjx`v=jjVh#uFigg>(CK%%0*x_rvUbbKo^pETi{8Xo7mWTQyZpI~TiP3;XM^fw8tg z@E)%lz=6-p7%d1l{J9HmJU4gHQZnX=7WaBD4~E&jdWNI`4j2+n2zBmxoQkFNFO@aC zDn)QNl*4L@M^X;!4auvG@WIDeANu>BS1EyPqRo_EZELKQSmy#V@u!)&`P2GH4R@t# zvfzHU^-~XXr`<(%4#Nix+XiQ-NbcE5doJOb8{}jWO-fOQ8~q#JSkhzkS)2NP{4xW^ z`cjTGR|MA$U$tAcB`;_FJZo?vN!D`bj8)n?F6@vzor{Y-v|`-5Py`zbua$YHY|7Y# zZ>cbv%+bsB5;~Kf3+9m?5vWBKs>@<7oQ7F}U{Z&*lbo^S<(MhV8Q#>+?Uga2Z2MRjHUhKEV=`0fiX|4<@1O2ryp+zJ2fjGccBJ#;)Mbf{U6=a zuVgHiVnZx3i@)B{PX4W*Mz({`UCK4pPx;3x>};e%w^C9$(Oh8sScPmIYG?Zd-SdkF z6|j=lygO;ia?_}(HWCXj%?qo zvw}5v+q~>xBQ0=a*SfM99nvOL06-I3@6VV;oK9dIx!)q0jVF^Mdh~rrEHd(mw^j_v zr;Qg$=kM*($oK%5$~~WOc)Rb>o6#d0RUSJjoUYj|iDB`!LutU5=U@dN0Y<+^Jdt<> zn52(2c!$L@^F}tP*8sd5*j7}i-K-UDA|6^6h?nMboSb~I{9?+Z z%@oRT9bz#OKmx+n3-!oN5+hm5XnVD)JfUD~Ol#yvi_k^gcL{$=#8qv?X^T~QU2sq` zzdxm9IZsR_EuBX>-m}c1#%{{gEjQyt9Tgn5S>?9&EBLD9k8^cnYkyV7*6zBt9;nDR zvd1cIDwq4tY;Xvp758tT35g@om!_%)6GGb9tK!L}flzu@`9CyhW|6^dg!}|!YxTtR zKUzh!Q$9I%i;!`Rc0G*}J{*?&nW6<0;dO(r!}qu@bT=x!Om*aPTIWEOOe;s3P_N*JJbK$7q(rIsB_u;lxM2 zACt^h#z%2M{RhIS$s#^X={P=-qa>sm79+?HVfQ-^3M~itS6Zi$j~hEX5#VoIF8>bP z8MlUD`6>rQ2=cABcNcIb))Ze<)73n4VD_@g6qK+o|n`BXY*Jf}y?%H*i_N~2ba8luTa5M}nkpkEGs zSN<$lTV{MM$$3)!C5y1%SZ3JsnSc9%G6-n=|S7GK2%{@{<5BHthGhJay@x(me zv5czED-U}_(RF^rbBmuQ{;+HH>1OAq z6;6W3A}wfD@iT;A)3VW`KgMQ3UPP)c0TH@((;LTO{s*Q3VI@7MifFplP9wNdGw#&- zJ+}FfIEy?>rkxDle5GZ1|_zEmVpR7ti^t9d%7T&$%y zAJdOZ5}LBbRvP4QS{dx$4EInxC0nZE#C+tTK%gRLz*wUv#i6mY8rt9M=Yk+C;DR`U+vmHOvA~0E zh^^DSqGPFgKp6Dl6}&s1J>?5@5V+oPi4cBY*LnNlOg;sq8&Y*F-7J{=m1jHSTdc5v zL9GdOS)NCqx zk;mmMXH(wnm4Yx5R9d@xEpc5zrLa_&1R})LEVpr5g`s>)Go}w`izlO7Su%MAihXpW ze?Ieen%Vg`7cE)OI-f?z3m>5=kDSVt)aCzW{*b%!3JW?IfEchZz;`XLrmQZ!4a3SO zOtidZ(f&`jQ~WrjgD~t@bbjEva5LY#3%^G>AGtv#t7EKbuYGHU7Nzb+?Y&Z%(0NxJ z#vXt=>o-%m47v~cpTyKn@6;Gj=O;aAMVS8qEJ3{aYE&4wgmoUGytBv&)idNa#K#TN zykzvVPS%g#dEJLTUAP7!?LAK_mu&sXCl-EchQ8sfryXEJ!9Xajq*H-da?ic{(dN!> zQK!@Yk~Dn0ly21fF?G+vIvTbKDRON<^3rDl)gs|(6Qe(f^KWN;P7e^9iXlXV*F-&UVczEoC#Stl4G zAZ<|}BAPKi)7Q}=?vR{%4B7HvIYn2c25_p?XWpwogbE5{vCXykyhg0KjAk5jEJeVh z+T1Ff4FQoW->Z=8fdd}Eg?`?ZFk_#^_BSi+<(JLN+7=M}!#_Xsu_-nx9~Gqp8jWll zA;~(lytnD$+F42^BSpyqjso;?nH;xs+kgft=iR4AVzB7~}O{B_2W6 zY(3jqy#7bx+w4$}C1?F@NlxVg*Qaaw_r8(ZET-s(%A>k=yV|Lj?OP3l7J1zmUQ&Ay zk?IEVC;!JgXN9sbub!~2+}VcG5|k0VfY;D7kCot#^ZREclY@ygoAvLN)A8Nw(`0wc zktTeszN7CgHLnlVm6~yPLe8S@m54I1nR#>4+j$Yq*U0cBu4b4w3=8dQ;g^{f`@5~% zA&p*1ZeN3U!BR5Gfc2ULe0A#OyG0>&i7!eN$VnpoTis-=65JC1cgP{K?oOD+mK-7R&K>P|VI#l{2%agJ>xDEwHq4 z=GQGmu7+xpat6D1KmUX^zd)m@2l_B(dVX&75}I|Ke1`3A(e2#Cz0~xsAJ!QUiWr~* z(c^}Sk8&gbL9rW*95OgDOb!VGZ2l_kSuoRL4hIus;hjeCTnZms*O7u<`?+Eimbsjm zl+mM86E$>iX&}u5ZQvrDe{dJW&@ajU4V|K74$T|5fUR~4n*&4*k9g0eEpzx`5QYW& z>k>}^ObE)<_4?oSV+cX90|rBXe9={Jc@|HM=+^AePMNz@rjG6);Y!^C5&Z_Gr*CD# zMUPNt>jKV}2y-*qjfTt=ALMz!mv4&SfmPUPW{}9>1q2K(6NP)I0n6LM_Hsf5lDS8T zkAqd|9K(FTomF(OV_9oMR##4VhQ`jFjLjz>D`q?99pf4AVvEyY{f9rxuQgPPiQ&iAnvLL2PXp(KPA@;*okwJvjRv7J zyxJ(VZiYpsUeE?LbW#=X*iLf9ZPMPsVRe$VkL!!y3ez6G3DMoii(IP3NKk7V{4dhw z`N%<+`?Pu1kJlxG2&K#K=||?q=x*`42?~<_@oytpABHB^YL}xw(5tu@3`%*lPvh5p zMhM|MN;srlqBt%{XOp4fP-rX8tIKXwTFED~Ml^11AuI{{|7Z|uIPv!Q|7ZLB3Je8u zpxLe2g}0nFwJ7)*YBcito3E^Kaq(>vb-V!`YrO!g<}(99gbAH;X?q`!njYvIH^ z&J|yoE}xsG;T$(~8vcD|j#+*RWYz-4Jv*I!XF4T(X}86&sN!qR__Oct4b_A16avd- zh!j1qA84tFq26iDJyI&%S1#sowz07lGrWIPz3L*n!Poe_;!n8& zA0B0$17v^+WPmTjA$W!_34_X>%TG+j+&8C~L&_zmXUFv^BgBGhe4?!9cAvGp+!D@l z|138e$;-29IMl2iMhI9>50&22kX> zOCVf5rnd?Y11k2@-tB!ljXQ2$CL5z$Ukc-G41jY^WgU>%oQlcu77xgvi2gaz$9e2@ zES#ia+{!E?K9U~uBK!UE2dw}z;;`I|G<+B~wnu-9L@7TFjPiy`SKkVvaz+JHl^PE)f^&e}v8-5k>e&sV!+ z>z0e|k1#zsg}Uoiu@1gShbnb`*2Nw77J1H#QI@Q$uBJJ@ z?8ukT!Xfo*rW`Xni7>cKff35)GZfJz|G)pn6EQ^M`_D>Wzmt&zFsn{MEHZBBbSDb3 z=f{2`o}Cy`?efI38q+Y(-<)iE8rym{N`N|)CkCD?dx#Pg#vPbgT~*bz?dXR#u|vWR zAJhdflWkW3Z8R*QS-3VtSRgN{P@?;Kz!)b#(B_1qwpLBw3#$9cg2|2MGmEx~O#^8< z__^1JpL^B8|MIWLS^9o*P|XDTO6C0j_hUtkr8-N{X%|OMnY#G1IK|? zUKr}t)b=o4;>Dd;WMXpi{tCGH92DRtk_Kq3T|#Ba{cRopu!pc4dWC3+8)_OU-{`pN zQxM3CMg~2d*_-jHHR=fs@SX6vZ$UG{C}C@b32e~`L>SnvS1iq;or)b~9d(s>5G5V# z(&RMJ^OL~lcpj5;T)UAY$KiGJ)ZiPa1)QF z1E9^*CK1_iEUKpPvbU?+k|OKH+g9hL#HJb1sUg_IE%l|l8X$#ud%&2}IEMKM_ZBld zIgHt$C-6KcogYc4!oS$$7OsLg6E3d1DxQU}MmpZvK0~tX)iNYo6Pa^xQ!|t2Mg?`u zbvvZD?erlRiwCV-f0iD~Cr;KA`iwpx#>-p43JfpI1o%QInBN|@)62Zdr`lE{O$6cO zBOHx`lS_j6w4Sk?Lj1R;i@5btzLYrfoutSc+hbL&q+j?AzmL^vFshkseI`AqS;T!Z zwN4U?cEXo|(0L3CejwhRxK%zbun$Og61|`9U94dFpdHUSMoq=W$Z}(et>QIKJx_Mj zXrBxR@Hd6B{S>*`580oBdgAy(XE1gXmGdoL5-|KE$k9JgWFt@cY_J0D{!z^xW76u7m9tMnTM zg{K7N^_)Okk<^aQ#Em!9c{rK9A%9;B_bZQr43^%6l3;kKl7WAo4siRjvAArpDq{Pl zE@di!R?`*Jx%78vEv=4>Z_DwIT1Ap%H8rqo@`9+DR;UFHzg={!L#uU7u8@73^sjR& z`ne@<#*?ZfrZA-y^d&boCRWo!As#iV(Aw2_yu9>CK261X7dG0a^5o{`8W#lsT_`_X=KI4T?S)4QXq&l1O+&u?*|002X@ts;W8Z|1<_Bjt>E!K-G=|l% zN1}gT)vXaPYVewWlu1MSy)eU*CV)xZtvC7)pAFwuSp9xCAKt=@^7xG^~kIz?i

2!Q3dNk z_WukGM0+Cg_=~F2TrW1wAUHk{vwnS1)j=#)LqO|o9m!So1yi+ic}kXCI!E8hJks61 zaw!VTdc}2gr7p|8)|~3&nYl7qoC*`_eb>!UjyVei?vC2)=!i^w*uU5ceU#lVqfE?p zKTrxfj%)*x>ZQ|sJ_|U`@cHAwo!m1ZRB?W4m(kX!pZ4^laN1>u+3i;IMBg@M<_&U( zvII6YWa|5_7eR78{@2#UN(Bt0=mfogoOW3y=nc6Ycqxh$+=DkN6c*PiJaqc(}GcPB{QO1F^IHVl8WI#N|TJ>pG8SD)BlLxQ~^*Ec~$~ z%olq0koT4bzWF`0_SHiy4U<-|&xQSd*{iKUOL19X80S}txg_@2I~D4td%r$jt&b)? z4}^d-S_M#|Wq7X}RY00fGA*WEU7pU(>K?l>_b8J$pT9f7E)oVK z3tiKP?|n$uIH zrAGmGFL}~{=K?FzBRoEul>8EH?5MdK4KLqGbJGs&mUBZIySfhTNhf+001PlqWqH)f_bvOR1Mt67zZoFDb~dbqUx^S<8!#zW3MHv@S`9leDS8NUj0 zar;#E&QtW>Z}TQn0~YW^;z_DDZ00~J8Zxn*_ArDA-aeGR#Ma{mIwB>#4a>lP{r^}1 zsEiw0UxOC}D9>_;?Psdw-{LM9-rx}+A~#(o5-9w?G zWapkI;=EUWt&|@-?h*t0Tl@h|%_uV8nkQCH4ul*BOm6xYJZj#59^B&CxVo>$$iA=J z3;TNMb`t&CxQG!y{IEbLZRl&G2D-zq^225DGl?h4KcUkoO){leb?$Y&71Nx{N*G1z z5Z%AF5$E=*_&a1aWkmRpZsVbhHfjEyixJdn9urc1t=#b4cDax3lC+aT{x_=~A@S{* zDyg{iYe#{(#epeps(lVtA6I@T*59>O8|Lolis9clv zlNUi)O zitvhja{W9?!aJk+>eV@wHCmp>>G0OPZJlJ(H8h`SD` z??$iq7k^5aZo`7fACez2!dAzcpZcBvpU!vsjbgeiOX}qH+sp-_!5%u;b$%Ba>kBTy zE0FoN_A&6zt8(KhwY=B>0AN&YbaT@Nt5v01qm2AZ^JE;I#m0h3NNp#m8=ex}@ADA4 z)1bCN@EjaHMPGbniImGGJpX{)}T(exO)c@4PNcFyPWT_)g^7Oy0>gO?K(jiG_tEDVO$ z-R^L8y$#sh$RXA5P4TsB z(qlF<8V$(KOEu|vS>-;Rf?!$phA9&HvL#-fVX*`*QfpncTIbc~HIs3Hj+}r^EIFv! z0CBqLcYyo>av4086A}CM}4rA0_(4Su{>Nz<*_`?jq zMh>Ojyy{SFo=fQ+fP!F}rqJ8IMUU}?{_C)x>v=Kq^lO6eB?Tp*C{d8=LkMTIhY9c{ zfH_cAP%5$mS69_g(5J%z=YsPLb1~5aq&3j?6{|6cbmQPQI23sJb@FO`XnwDoMRmf1 z<-<33BH`1V+{fl@F@P~ZFDS*CgaD3A9=J-_q&tjc*i^rrc@wZ$J)0ovg~Q$h@u7f$N@`Sic;)yaY&J|DbU+Ma82s zX{-WMK;b4LgLlm?++)8Lo}~>k&3;eCrLHw~5J_J_kZX0LXGA2ml2P<_HM+J5_789F zsUgBTG0-!5GzbUsg2FDco$$lS1S21eg6yX$OXVXYih?hvFem9H*TS7QnQx<4Q*94} z@#rUKS?R2f$q%S{9}98d!S^$M7T%s+{0LnF!bV}wCwO%OMeC+X$5N><$|t24Kr?Fh%Tqfk%t+h3Wg37sICD@N-qB zZ+>TkT zz`Y*2jBjs>OUrMsuJ-H9?WhAI>+MWwN%e~j$gMc`6BBl$6@$S1FC6DY#fT3jPr_h0 z+hnov!rzqv6>wT-_pvD2YNC-1ofH?=4@O0YsCSSn+=l4#f)RrqOY-v%c$jij1YJ-& z*NO4}qv|c(nsB4P|BaAt7$Pm*3QCO>5hO&qLmKHEU5a#nuTnFj>wNBR z&R{w=$G%CkZW{;Wh7FPWrug7lY|*U=y2Q4VaJzisZD+01k@~F0-F^Lj_Kmn~HoLt> zj;|qIBPRJtDj4Wb`SmQgy?$W#tL29u`ckb+OV+(;+0O18(k61_`~kU%CO#P57}$SO z7JqtS%57&)q@q+xOAUSxf?ZxT%jV%7N334*>S9-egRF2@mi94nXq3PHTq`HjyWE>3 ztTR}~dQ@7nNf*o$f28T21YuHHN!vs0+iu9IuzHXLO|ME`2bj7|`EO5*38w+%Vb^gI zUNmdhYx5$D3)UA4z$W!`gLyum|KL$ryI_+;F6)SAo*lq=F zs=@_b>OT7^iymMC2WJuOO|l!cz5twh;D@Ab4X**td2zj~|EnND+ zN!RWl?_3-7(>g#b^V@l}52wS%M8Q#|#yrWdQ$D{PUbGY3WNxHbP>1|8A z{rBdXKA`2mQsjpbSrsAU`ft+{?;0GEz#a7q$M;J>rw-(aYVIp1hNm!5bPbfA<`SV% z_00=7NMUUNhz_yjJkjXy^auD1t^0i1lk5N>V`!E>rabpqyfYP zhnkdYn$r5t($FSL<~>j_9APnZvr-Q~6=G2KDO! zJ|4R~X*8WVvD5UGCEeXuM!OUZEH55M&RjxqIHbg&)c)mZo?0o|jp4;UCmOqOW)=0& zz|D8c#q+4H$x(NunibPE&;zYNIdxEv$i z6qJ_5If^ibfFzHfi8m}tJ{nd3d0L8TsUG22*&hU-K=Zv5c;^pVS;S!XtM~2@FPP&$ zz9ulag|9^L=x1Af#~k=ku0@@dQ}w17mDBJr3JH+0v0g zA=X6o{YW#W8#!?5LIy>Vd6$QEl+S+a-Kxsi9AOq;f_{nbK*r^z8+dVXr*He4W(x?R zrD7&#h#Wf6@w&)I8a4cIj>ehYwey!txIdku<|qCW7s(ZUs8Dj&waRsVMq4IXY<%Zv zTmN{sG6p|0!~!itUlpCXyR>o&N$z?t8ajR1lH8u>S*)P-%qcEy;Kb}?Iep`gBHE*q zy-_v2!M$|+aPEh=pNkTFmlf^`T@CFz5(DdK_RAdN-d=>y*1mOl2KBRDDw48TlX?oM zUpMgCRIkcQV&3a%AM&o)#SA+qhrw&ekqx4MCyO}&VFY!#&-;{=kjgG-H^u# z5kQsi zZS?rYo3)?*eg6O>DC^NNn1}RV|B2Ho<(L6}qd@VX1m6{X5ZQYHB!i%cY!=y9u4ct5 z?QSGAsH`8D9U##v2Vm1-+p$-yZ^+=CBh(Ejw3X)dfJBas)gsbM+xoV;X(F}X}Xe6V^ted+>7O+mQz=OfE$~pk1&nZKixwSh|7U*aP2K2u~>2rjGx1SNnNYW`*Q9Z!e07TdgLz zgC80{>hF6kSWEaP9J-zaKL-%cFDzPEJrga%7h)3)ZKQopUo{#e0oKy6S2+UTg?kza zZW!hgULMeA-ZhcLf$$FTn}B9P6*Ucu;x1JD-W(u#$nPS}+}kh^;9$w`^rUXcjsC&8 zyAkF3dq1IV+-ZT3qa5FrWJ8eR>+6l4?bxIB2t(duEO7JMwi>eM+iIgvr&_x_gZOpp zI@zi~Z6q=%ec8d_M{*V7R9wIB!--Hf*_tHZW|0!xV|@Ha7yHR#%yYIYu{E^SdVCAOow58)pl+rlUmQwAlWM(!$$dPQ5Frn7-+ zbK@I2GF`M^kmI@i6`|3Jq}*7Dmx2k8 zREsM;69AdHRCA=Zw#8O_wV+;i3qMQuyP7Khc6Hg#Mr z^y0*U_*Gc&pvRS)et%D8>1uT*{;&J#y|AMAJ71@5X(GU)`1o;!GltU#qc8Ky#`2lQ z9M|V?L)uYyU1!xZaY|P+mYdBd7)llGr*mC%fqNJLBKP%;LEU9sQ|nn%4*4uCof4jk z@y38N=20J};BIKTtcO|Flb`qu%#X?z;n{z;Z=jy_hP*NhH!V*s^O6>IxXqN0D~=d8 zzhZd$fCEe`p;1Y14v9VIc~jXET?XDVHyHX<JR|!j;J)P=TY>RWwXb2?N#LU@oD7GELxEtLUz@*HeE=uQ_=GwGCK38bW45O0~`d z)7p@`Ja~ViVkcn@*y`z8)@`yH8iRNF&}77(v=c6Lm*HL_tY4o-)gM4$d1azpV-M4t zISqVbmp^MvOX4yD-ywJu`2k*i!TK6w(a7iHbk~YU(aUH;5;I-h<3~vubDM^&)rW4q zT95g6AJJavu5~+Jl^^J7XG-)9;Uo30wG$AEZ{-dB&I^qT48b}~6*h8EHHwvWR}wyl zH@Mb7`K7WzH>T#)Cp}WV7O?4XMVnHygtxnBjBb~cT_h$Beh?4u2oUmiI`L(Kn#gGv zdE`Zbh4?Qmt|1@S5>`TiP1?osqm_J;=Sk@8dm~zVhi%=6+gQ@aVY3jwT8|1-{DJ42 z3xc&0t~Vk9infy zr|icfFV%Rmrc|SMbt^9^Y!DvT?YL_FrnQNA{73Zft%~jeRe@2Tk0<`z1LUM*{qla< zVw$&}%v&lQ08zWEISfeU7{!Y`_4)`dlX3nqsK$Tx&2mJ~)4SNaVrh{aqjK5#)tzoM zI@iFr=|Nui<)OmD^5rtu#rNbVF7iR>|2L4#Sf52yIjdm)_nYch|B_?LpVyj`U`Mj0 zt18cZ5BzI8Gbv$9W`^-L^2a4Dc(<(4u4Q`%FRVF8xnH~L!12eYUEaQHS!2NWDc;&V zj0TTdk<;RWKjxFAT;c>|iDaYh?+h)XU8&a5aal!M^QAWZ*Im@}lLr#mH6{45-d4^3 zc%p~qzm+0d3{;f{t@y6R?l6ggdlHf&_Qrl|sy?L;ahk;)5+ZStU`QyCan)b=8KE6B z7GT@6!3u-774?AQQ+A&a$<^ueiYt}vK?He1Yl6%Sb~AGLTA4oh)oTBEb!2-lkB~VT z{B?qGJkulI4?u_-aj>?j_P%Du`i_wLbTA><&pz}{jS^GIU8I~DJolSWbyKS z{HD5QQzz48tw1EJx_GQV3_d*E5o5r0N7~4Z<+NWhQKzR>zvB@z=NMm(_J%dNR>kAFP#p>lGLCrg_O{>+^mL4qPO2=iB`KtO4awEv-5KQ6A*2XKg`Pe!UKmYu6*>c zuC%U_yEDU&btkIR@LP(l&;E3q)i2@LGE`zn-$eQJl0kvlC52m^Y|@Wse)KQs>pJdw zRgNl`S~P}=o0=P!qR9^Z-g&Zl35{|7+%V1-U*|3a{=_NuGo0b?se7K_Q#1I_1^G$H zt#$!IC+5(9MdyP2=8@XWc38OUkaW>nXy2YQ{Sp}<;@UM>V3yCcgtqeWQ}mjVn$`~4 z0!17X!yVQBmK=mWq0Zaff=<7vVwM`ehZ>`2mnFb1qD|tp`}Dus$<4YNw&lEs4%Bd} z;mn*^mBoKqpvnuZ;E-E3cueTSv;V36?cNf~*Sz<#9NGvFy%rc68*3oHer_=MRn_}% z&C}IywNy^E+=l1?KRZh^nREq_T@1{umXsw8%yKiS2cdQH&s4P%iq{g&b&~WZ5QV$y zXm7C5zOvyEHSAlw+q8i$WW#gHaGk=ycz5DH0Nc8cSZ~njlyG1zoOo&H8)~}WzbaOg z8uKIO>jmboC(Lgh>Pz>ko@O&#D{*0)wU^#tm5yxx_>@^VE`B+AV_a#jZ0XDe^`XBly|_;gMCV?bzb7U7*VKAI6(kP~ zBavy`lQL4`dg!iP`d2%Y5bJ?6BgVUW+M0in{+SHwH36v~{1Qa?a}UHiy%Pu^Mzg0I zSIu&aySK_$zJK;{(ge28!h&m;E+KyGzfwVR}lmf1-bQb99tP5fOyTE1P#( z0<7Y6@g{7DC`|;#6pSsY_Sq&!0_CJp)(kPT`T94dt4W0v%X4MfHI!Sk zKYo=NRB*i0vKH2e9p_5Z4s%NR*Z+owrvof@+PAhr>~XL-~?ecnf9oz&DY<_eNnRd$&Z(K3srgn zyBoSbXGh>GEuU|TuOq3S6D9PY6KB8f|CoZ$oA4<+Gu`y$X;Yzj80>5tZqa;QR-YiKuugez5_;0SHn zb62qPCS|-}aWrCz%*OMOgKF?U4d8!c2}qb*`#KDS3w_vV4~4Vw>~fd9G8D+T*4KlG z=Dlevuh;#h{Wm2!1Y!OL_|jDYmmz4Ws5W}&tIwy17VagDXfBANJy%YcHtR1EOb;~^ zY%=^nC&_EQrr!wTkY|CEzBFV7h_a%ZT&Ygb`GZTjMY2YzmPt_xh&ofTyq zO4deS?bmGmsL>WF102>uS8pNFE$CecO-aAew0#hO3Pdvr!3hd5?$LJ8($`O_C1=X z2I+(%T9=j@z}C{yAPdj<$CO)vs`gt}#@*3jrMhMoZL!4(hxLLAw0?&4J!ggisoq zuM)rT#Hhc81pMV+Ut&u|e@Js3OJA8#(R)cazLJM)oB5*tB@muk`+4cKFSd+TpO>N+ zKhWdflT+N!;ZYS_zq_`fv&YMQQKa!YBx1YRTo0V*N&gq0?)Ei$dyV`^u&af0+Wjrk zxbEcOmJ#!gc~wi1P@Zz)!RsGsyWz1-!;nmymcD9X*sF=W)(*Nw$s)5zIWUzv`GuK0 z-c`gEW2&(i?+%4m_&3DtLiqTbIkQKz^$Om`?`BxeNq-=Jn<;r$T~58f@4hu-4qvtX zyPFcx9S#k0cM04r*FRQC%eTy9TV)zEed-tWl98$U-^vgg1nvh)8F34rMz+#~Mf)oU zPL+_kdbo=X@c&D6L|gm?I`s?nZDg}otcsV`-O}X8cgQpyHHp<^d1|K`w$!KhmZd!X zwiYOk?uV96KBXD)ERj56H|v(<0!yzS^WPU7Fl*$b3y_T&H5`zz>t1?3>^_PtF3a=1 zF42}OvRHiqQ_?)^Dx#~L+lRPyiB!P&!$Um})F5~*jaz{WjCrWb~C_p}& zsy%<=e|2~@D0ecSW@Hc1mip%ljM>Lc!h#8T+4FlpUY5g&)ujz)$XNs)XAj&TD(W z;^WF>Yaqb*!pr6C-7PcQw@W{!RWP4ACxs58@M)TIy!O`n9|8TprUS6>*TMH)tKiNB zOY`Lz>Vy%6S~(}xnE35F4~D&*M0;DiBvAnAGxC-tmDZ&5NI;|E~$%zdNl9q)Bdk%mhG!uJ-}nR`FQ)_g6u*{@vV_) zXwv%v@9PanBf@6*ODX~QQ^ns{)0t{>pX^HFp^ZC%?UpBfq;5Kljd_b6kAi6WxXRf7 zz^j2P_M%<6y+Y`^zD?|^!_RLh3pv~U+R21Tq_UzorgK%3>XF;Q9BliS3vg_^t_7q1 zpX!oW*hyP>Ehyn5=7HJERs&NPae)yfaJAb-#7gwtpSt+u!dHAk>~dC1`-_kHzpDa= zlPF%Ix8+1Jt5p@bvtV}a{*sWQ=BB01%UxZrer0|hOn=q>AYny;^LeY2NCn+Jj_CAR z&dr^-z^Vx{>C~h|HuhKN77*3T|~;h03a*Gu3N=9}d&$KaW@X zB6$mNeRs2{Cf_ZEff{!ZE8B4SIvKCt`j+;t;;oAmQQxeyEDKl$9zywnWSe3Rr3XsC&g;DXLixOgTjA?S+ph`oW%q#MWPVK0s!xAN@r0MX^Aoof z`NxVl?;OlA{9JAdMdZ5vFAdtEDabS|Sj9nJbqzTu5fra5gu4tul)&I)&Q)+BL!$555>F$s@%VVcW z(Ig)wXUn#fe_yuSKyz)W5_sBe0(fkjEYhIS>eMxq5M9hyPrIsOZXW9K>eA;$o?0u)} z^XDOOtbM(|5Ve_2G@*3vw|x3TCL{>`HI0+XVwV7=>rJ^ofyB}*%%5*5g_P5_l+&E( zfAnT-8Xa`3xRz8=y;65yn63x!+i zRX^NhvJx#OV-01-rt>b|63{O`oa+fOy7-Y#`mLY@yH1{%W>?UhRT{hmVUg@n;F3zg zwmE7J<3)JrjLlWT*9_hY=$ zUNO|Nkh4Y3uSC4SB1ZG=V_lgT@$MIE8+Xag8}-KgkaKe4BGDRJ_vdu9FqU?${i1nk zbt`%9Q@mDIwrx(TVr3Ch!deqe_4n2@E49w$Q;t}DKzvCpFj%K9w}fev_!v;N68fOW zc6Ujp&Fq&@*kXH_)p}8`;j|fo-^(Y=z#Ax-vKL5~lA$Lj6ViS&k&Nmrm9>;q&2qQT)T^xVd(k&gIf^Q01+FgzBgzF4$Ydd{p zR)+M(Z?4waC;-*N$(siM13QFVp&c2pvtsU`O>N$VxuvLW`IX_1a$X3y}7wE9|GbUe72ftV8czt&$?$`p~_}boq2Oo7?gLt>)1!m5SB7 z@jB(Xmp6~InJw$*o<0aKda!mqfRnB3!-DEgpLDJ%&T{ISp}(z327R4g)5bb z9tffjvYAd+Uczvid?E{^l>d*OGX|{4HJskMf4o@_sEjYLtvA;129lYQ(Ld2d5fmUs|I(}A7cbMs%)cldU zZ(RFjd^ydh)T3I5nnXIEy&tArbu3-v;{aS=Ok*8!^~bc(Jm@K1oxc4~r~ZN7+7xBh zD0#a+FniR63Y@mF0-ey9G0GV^;v0F!f_<9d9exKxqub#DCuXZE06kELQ`!|<#Uo6O z;uXc?R;Dqhs$8}C`&CpJEsVX=(ROzJ1Itn~BPF0zNDYKKtI>A-A?bBbZ~v(^Ev1z; zg_Pc7`xPHd>$6Tn*xz2e3Nw`9`_n|{7^!s(U7loc(^3-t?#3=hZ`v1{mPC##BX6Vo zB5mVJ-QK$EGONe=ALl2ZuDEI`gq^@N*t`~`TiNvT8Fi5<~V=*!&R8XyRS z?h`;4XsMJyl~MyF(CA)T(2qcTx`Ob+w^v{Vj@+)?QZ%pyk8YV%{?m+9tVRkbi?tGt3m zT0kow1CbxFlrbmxXXqkdm~ZvNbcZ@mYMJd0r;jPzHdX@8sy^Cm)qM=r^CmujLYv%A zH$fhN1|w(PlcS(H{zL1wdrwdFoT0*(Du5@R>4btlA!qz%H9Tn*CN@q)0Jd1Z8&VM~ zlKnhT(kL4;cLj^gl-gOdy7+sg*TUYhXPQF6IY;O3nfgQB)b``u?b`t}-^@*qLd8J0 zqptiC3+blN0K%U-&+$PPY2`KQg9GwGz1d?l1Kn(jCfGsm?j1qFz)aomfalMI%RvNy zQe5FDkg{H!$rwyYNc9L{vXiWNe>7ek3ac%6YtuN9f=Ry+{82mns^89~orKLIO zMooQr=!z3=_OjyB^IPOT++dS#1y{dHB-Qi zqzwzc1rB=WhI)uqh#3R8`ZPgEEQzKnMfiDz_KW~vx1Be~s&Mn=$k!ZMOsF6l(3{w* zs?>AzI~pavGMq>6F0KL<@ztkdGXg%sWz-lTWNpMv*^WVI_l5A(9|h@wbSrWMjL<%T z>>OLT+(Fag0Fok?oXb4tt}FNv-lEtp(X?ozwlKNCBxMZIN$h!l?;HfHRP~X81YwA<8 z?iWd~b&!8l%f0CM%Bvj3&q@!Yv7$|zLGAw`a_(**pQC3g4!|hiWQ~3>3l@d()q9YD zc4B}5-;&(?4$&8D_tkE=*n%K-k-VbC`??G4uM7@dv1@0@dfmTY7FBe{lp|OnD)K?< z+@RM;*nlhuH58YAYO~ikHE$}}?lhP!ep;Cy-*uSsmXkVKQI*KZ_wjoc-ElSNJ_3Wh zKlk@%vuFH^ML-^@yrNCLXDg<0-wd{4!JHOvpmUJyyH?kr?V;ZDJ&!#EqRj2`0vF$_ zuc%xU8NWrJky)v+j~NROaH>LCPFBx-Mv)3T#X2znj&WA7`Dn0%HJJ`&{4euMW}l5jtCSrF7_&p5&q*1HOp={#qeM&+ z0ad4r9lPPwu_=4l5h9Dn&OB>8ul$S#H@ySl4}qMG1&lm$W@00?1lGZtjEgs}Z>Yjl z*w;{n{Qc;Z`qt9gxkDeq4{dpty_xO*J{tQ9_8!D9MR_J6lLCM89;)R=0#idg3ZbI@q-vx zrOZF1@Gef8pRoTquA7M2bC5?o2zje)c&7l%i^lqPfV;(dz~HyJFTl@$mNuWftLvE<4|Tv^xAf5rZX z&p*eD&^pIM2KR|L$Y-L%KAGd<*|zGp%JsVVq3XI-<~k%1#Wmi@6CODt{@KB1KPS`S zhtp{KMeQpIyZ&u|j0SOwMD}JP)R*Vr;opQxOIF!njg{v?Cwo}ec%8>S`~a2tvCnTr?q29{zD-B>h}e)`Y!y~IXyI@1+Wt@U8s ze#K|-N^|usH2Dqi_(H&CH}899WU{uzs(0*E?`ZBuo@w`^kb`3JU`ZxIwDUbMFW#!L z<0YRIzCNM~YFR`APHCkv;v;~x(A)=CTrvrWPx?XblTR(rfK9QL{X#999iz7N6qdOp zD(3cs!okU4a1o$$KAA$Yo_ks)fR9SsiRwM=M3c1@x%)V)Z)iK}cJ(Dvs0qyl7ZWyS z6Pi@v__v-^T#j02?#cG1H$94fizsSeTauNE#M&S&0_TLy8UtOIKA zBmBgctSG!fMjb_F?|q`^FT@54xc7@6=R6m95w(l6v3?5*TalUG^8zm`lbw|A_6=~jt@`e<{;Qe{A-V`ypQe73&^dWXj6G_&HZj5Q6I zJzRKZiHwn!v}TLq1`V@s$$T7|JO*UW{fu~xh3WtE6%nVL%z7e;v8CBd<82sy{uf7x ziUhV|l0S{e!CyeUX)=s=X)WMNV_A^e-PugMrMp^+$8%Xiw;=hyAu;!VgS|IQmx|1~bQv)Thvde7SpI zRHt6nt&|aI;QPn5zzczoPGW;`zTl5vYxF^47@vE(=yOAQF+eImP4LIq0oQZ#8h!T! z0ccoHw**4SKwmjEL|oYg;p5vA;_n;C_GFN`aL$1=nZ5Ki(^I)m)?+Z2u8~qOrL{uW$g9j7z#DGDY?VJ@75!~}FUNno4Y zK6@pkaTdM_I3YVZ3Ink}!WAVopi_x4Sf6(F$Mti-zDn=hKkypY`l#RJ2kZ{W>r!fH zIwI+={TDar^pGSm*28ck2Yb>g}l%b^L+8R)1&B+3Q99OjN}`B3%&M-uZXx`XWrKh-cOVS zI0ig)j={6qwG_uRa}TF3^`RcdMDQx~5^ZmfkR?7*-NV~rC4-`empt#Y>5i(k$3BSd z-YK|U-w2({`_x8$lKkx)v^7>X6*DF?ANTYVSP^2-A7?m0+5q$4i)E7k*M^jXP3S3t z3pkAr=FJkmZEu@iF-fjY*-4*LMm`#u{#bk!KFW9V`}glGgt@nOI{K(zfL11h{{(_WVhbB`5A1|BpX_+2N^}?Fp=c}b#F8*wnSGmj~$+cES|l(!=Y)+ z5ef8_dKQN|_P;R9`B5%-nEitCIX!&qZ1$c+1bYt}+A9e{+`T=}=k2ZUhis8S?Q2Sx z6wO~NXW|EH9h`@Y9bKiRWRPuGe&)Su9&1RBxr~u8$r^ph0lIStGFz8m?onjai&72T zda450?jp>F)bL3e+j#;m=TWp7sO8ZC) zoD~AaOmbio>{7q-!cGs0WWM9?!y3ckcUy13)4l`0%SSkjYt{QZW~V}PP$}{LTptH& zT?UYh`?Z(}>PIvzO&&>n%CB?jN|$S%FHKIa^Y`AL%|3^mZ>7?RzG6KaFy3t_3Zcyk zI2(*TIvLBV#p@Oq6qbY=d;mqH*d?#>`tw)`zo!LH$Esq6^GsoaK~qE+#*-TlURN7s&to!)xZjPcB0@-1ERij&k6osFG8M?cMSElhl7c)XW? z44F4f;&_r{8&!mf0Z8S>c!FsD=m!_tthqSw-1p?xFzP;l@ zB!&Y`M4<9Bq=9O7^YWd^)R;gWoo2`&e-rW~&^ZzLr~kZYEiQ9TH;Ax&zXk)Gk4Sn(~{9b(}^y!d!3{sipSMxCJp!UIjc zwG3lvrN$(m-;Im0DZ0_6?Meck!x%xg*jK}$b2KnMZdRswuM6fJSC~-@%=ih?_rUf@ zP7TyaFkNDjN48iPH+3p|?g#YDE4X}B9wuOUxxqctCSTqvnk3_4aM6htFiEGc6NxcH zIh`d*X%|ULAAZ}_qPIl}?Ch@P zb5QQxn0S@d>}01bm8%C%H$Z0FAUuF^F5C1-8N^oFr;ex8vZ>}Lxi|KDW0NO!9-8zN=6`^ywXtM|5c-Pu28Nx z?Sk)hV}^B4X3_%g8iMO$5_B=p&!gg!ffPY3u>$P1zlxZiJbJ-!NKzT zLiwQM!R=kr+(=riK+SmpZh(O?_STCg45{$Gub3sDK~$$WG(`22u_D*lqaTNAfB4&f zyFWGbIUkpCVCjh$ke%n20Gv>U8(9KVXi!#Tx^fOCs8JVmMFte#M z^Xc@+eELFyWs;5&R*oCb2O}HZ90LKE72=hC`vY7{=jLB;ZPiE-4Vq<*vNegO4AiOMmfEoa++(bX^~`;Ns!-=v3Kn!AuHbiDItRArf8 z#T@&I#H+Dm*#5;%pO4Euyxuvbo$vp-o=DC2UXsD(*NyhiWZT4l;mPw>y3S$+ygT^t zhyV?3%^GXF8Xe)|$kYLp62d2t^nc+H#<`Z8P&h7>YmL7ML@r&7#oJsYoPFErc`*va+d;#23`lQVB z>AhCo2$I$|6GzvPbdFEmL{(LKod=3gKtP$$R)KF+cMHh%0-3n~HSH{rINmb@XK@;- zpuyx)5!H?HjM2(bP1VES4FXv?5c>-+T7?DF=nlS70Vn|`O2UTZuxxEkPWE;dm0Jm65$=s0$c8zVbw*mY%$4&@j;18o2+V2!`~v~ zSdlu?mNxy$?e#4+jXzlwWx0z|adm`v#&hbgg|C0tABVm-22|^4z{h<<9y$X&RKu%q z+~Y;ps5kLiEhwc-S;&eXW|S5kqG}tA46gBOtEFnhZ9?5~8WYX@Z=*xA>zP`vnu1r# zItS~%m;9HoggZeGcU!dqP>HIVtwE zQBWWo)X5T1Z=>`sVnSl(aC}2@YrFMv1hVxtD9X*{$pREK^wkaBq-O5bTZu3I^y2T5 zKgB{e3vTP~=x57$nYy)Y+1f#a&HQ-ifR2wt(`3;|RUW=9|9%e&?YR@Kz?<(o>;=6y zdED!c|Fx0@0U8}o%gi$-%I`>T8`}ne$Jn%zzvk9{zjOcJqz*}e^|?~@LzT7H?LS@H z7soYI!>}7nOo*!$f~$s9cKn-U8CusbvfM5_hP!>@+(-hVj3$^2-;%P4+={q*Y>$;xj_>W+~@xm<{7;`gonKLP8smD-Yi#N zp;w|!LCVS8mX+}}1iXNMmacSl=grdc5*6$BDeM-uz(|)S^0TiixaPpey6)HoB9#uC zWM#^uAtFhe>*}ab593uA_wN_~eFP*g)*V=k8^UmJ)?MGi-4|>hbR<9ep8qn_ZO0az zfbo;;{qc_|;H%R$0stXD>3o-n`ODdO5!j#LRHb1s=VxpH#`XO1`sfT}xx z2rg16e4B@}@J&hl!Y^r`V9lL#Vf;IE!fbwZ*G1>>SwDOHg@8uv&_Ch5+F5JnikxHPKN?zXTlW-(hRgbT)+SA2UZO8;;}K zA0PKFb?cBmw_0vhVv|fM6g`%J9MY-xy9^-Ik{nCM7OUD4E)Am)H`URLeAAbG~Bv&6md4OLm{lex?7f&+s-3-AMXk(9#tWdQb1z zYO?CNraBad_QOJOfGY%2atQN++SLEnhVkX&-7q&*OvZ@Dd;~~Uzvu~N))H*Arb>N@ z6NV9pj=hygFN7kn{?3&$6XTI;r82^+sJ#k2TOV`5t*PL8koR9elV>w@Xxc!-IQLNi zAq~+G&KaNC<8T#UEW~0Vm@IDlzB7=#5F5{yH@eY`%W)L1mVkGNf^^Y)A5Z#|1c~zUBU!HTP;vDh+0p`c+u&)m;CNgs$>13^SAqZPAvixRyAc>6P~v zA?e_(@PqkvPzY5#9!3HWC5o?;Q+v2R`#Lc|0#NsCYIP$1%k53O+|gedB5)w=+h;NA z|3SERgjgFER<#tBy;QmA#5<;l0!|ntTqj^8g9!`Psyy%^1tusTC}P zH4Q%MnMpGfbCucH)qw6#ZiZEIheUHMO*`IC``NA(tW*?6D+8=iS+KMINRk@=5cZ!+eTR+ej75AV+{y++sI z+o!BYKh1-XI~g_j{N=Mk?Q!?s)5vPR9`>+9CEbHjOB0Im89=O zY8Ks?*BF=aXmY2M!hQ(RYOQJ0!WW~<y!&jcZqRFwR5ZNN4E}^wFI+>$t)sS@^EsCHK{`J_}9drUH<94ZD)6r5pFsF90Jl130Y>YuLm0LOd zAOV5gH5t!|Atp$f;8<=t{2_OpM9*kr6NCScrnB&i>ifPvDJh7w#30?N)X-CauO&?zy1gfv6LFx1eU4}L$-?{)uyduPr)_pH6wdhh6|A>Er+iLjqx6sRX{ z9*#Zx(9N*zfGmqP3-n<9Zhi;cQkC zD$3t?-5d$v91cwS~F{VH>N-W^ZMc2$-y9 zVpkO6UcZq|QN3b{yQ{`Ld7CHVIenGJ;#oGB_?Y50ewXR3`7SKg#^Y2-LK@zn;#dNj zPW)I(Yo}cQ4m|CSxaYUxY^A1c*IJShD-$f-fF4~zPV^&dNr!y0>%{{S74|!};yv4| zD{DTMb|um{$Ikv1H8lh1`1=VRUy8S9AoIvj0Y#j0rgS$%jn#g@OILmP>_-5oC~^lcxW! zmUblrp=2yXtb9?8c8$8d2{J=NRi%Z3ND?0kPLiTxb_0>)q)h$Xs*v^3DZ?+ZN3LW7 z??93?STBQd8Q_GsMo(unSnTHO8}P61M*g)%m(_9j7uiXN@h)8GZuO{H_U@vE?oZAH zM&%m315PqSr)CSQ3=Yq8`d7D3Apbsaa7MSG(QW#P$ zj)*=()Q_Ia$GyPj7Jff_@)cq}iX3S0ONbib^e9yfX6PeBX~SNckMx@T*ix+P|*ZSf;u!HFl^*+E+)-?w?G^klZ(wXdVV4B@B?Fs2PDXj6 z{gOpz52o9pbmZL^V6SzWnVuSTo7TEpdo@ZR$nt%9x?HPsnwEji&XUqv!VxPZ3Uj;6 zpuOJFD>RC9)24P^(Q5}cf}R5wMu>fXHXNTql(KNs>~)`Ka1(ch_IwDkjav@8%@IC1 zRrP5gBlgB%1uhsjNt@4!2phllljNN*p%}0hRbLPA|J1gnFRzgscw^h@yPag?XT4RU z+-2?Z6POe5Ft&Jb^+(xn4*pbolJ62(h3Gf!o`4coMOGT{LJVjeqDab?1Qo~b?p@I@~|8`ZMIAs6cF$y}5)K9~d z^y}tcKdxF366y6YhX+#5Hz+l~Q%G;imJZVUznA4EL`c~V#Du3Kq7-No2Y$4_wHL^c zT^aTeBiN?7w1;lrhh*i%9^UDtW%~5%{r$ze)jFcw`#p7gz#P< zHeX|+FNu7#S@XN_x(!=})}vHhX(|0Ue%TLFkqzuEz-}XafZN8$HI9I_Ou{@SjYQ(% zLP1f1Keraji@AqAJJ401&{wM-uKvsKH@6;FnqS#alGUS~DZs^Ve;lWYE9h&N@N6=6 zC2s{Du1>v2wfo!-AMf_Lr8&sStJl||%}qrGMmQB!x6QTr_*A|S44Oi?Fy`PSAS2H$ z6I!-0H6grjr+K+U zXa%jILbCrV$D+Gyo#!dk@LKE6*AQXzyz$2Av&N}co5#E>4-6XjeEkxBfSp+|)rvId zz7*~LJ7(%$j-$3Azcd;|PRYggE+EGp5)JCs9YT>{ zCWNUF09&u0g6DY#Tkea!86iww`d?IcJUepR=Ei6yo7CT4a8Y_#5o<4AeYl^6by>GA zE%tb+)><3>2-lEv&hM9Np@bDV11zf|ND^&Lfu}s8-UACumf1N@dUWVsIRL;1Tfg12f z=8-9UhbYYIcEykGY`#XYo?#`|!CD8ErWxya+~IdMX#v7Iwv{hL5C@Ul?2?g52Hu1r z-PrCb)DT)yUPADuzr=Y>1&^A&Y#P}PEjP_i3<|~WW-Ehc$uo7+0%kMVe2ds)aMK-u-dz(=X&3O|tXHPWI7+DP`p(7dL@YPZmvcSC^j+v$>O6F(T_;q!SEx2(Py> zm|oV8(~C^eg~y_L|64yuXulE5#NFs^i3N)Gu4$vq4tYs6j zT)Pd`vVND}hCl?xYqke&b9A=Q4(X8H+wEtH>5zWFly&NweEba<0P5;e$}`%Lf$?v! z9s7Uh+TAkFDE*wfoo)7aR_=J4K|`1J5O{*ZS%R~Fc|DES9T9L80h7EYPyiRgnRqj@ zt$Et6Y0f+%O!BJ4LVse?LyuO1O=7(LlqWkQuIau~{Esv6b)mZ`;C_e2p8NS?!xRJD z6sJQ5U&|AlI;(35XYF~n|}bwDN`>AYAu@zaG6(|&m57m{!=gABC6Gl z`#DyqPr%9Yyk+Kg5=Lds(kG4~hNDwy zY$*dbyzrxll8Ly_IA7ByBXR<6czr3KA%HaCaZQcuclyB&r&jYuu+{z5be@Y55H>&p zziHbLjB&5kIi67pwBb2p6BRH;l?U^R_HTNANV_;o?1*~SQ;+;eC(&%DhM*N(u`k%G z5hr?;t!SB=rNy z7cqWD=%Tge#@p`&jKm=F$^hrMPV}9imEz4YDd7Sc# zug*6b)~c^Oth=UE=(Z93!^p?p7LT)59X~Ka>%e!t48t`T*T6%rQF$9p&KS>Bi+$3a zjn#x!=c)OeO$bS01=W&feY5yzeqlKL@o3sm7X_k;8epGQt0MmIUUXjIt??XuA4IGj ze0^U~+zI}+6XN&6;BvL9G(xF{wGp%UVChTi2*E|BsOR&@zs{g6G_OA$*%klA{%D_tamFD zi-`5zwHW3W30Tcjy9<&fgJzqCRQxokW;o-^?B?YE+fy9LS5ux36d`t9E@UUo8ty!J z#c|bML3Kht|g&}2mJY2fX4zJu1n*{XEz4G+ceTxt#}f8@A~NE)j#ag*QqS5gJyq`zJSu0my$|$sTXlo* zkFaD=1NGsZ`d7NLc^`ur1x-Ux4$vPd32GsZ0sGOE!1}V#Aa|=%TtW9qLz(E7{wnBP~o!gJRMQc z^Hr5*B^i!=2NhR349d)Mj23)=%?{Ts2k_1*6ki^I8e;jz ztvkar+nK($)6vNhANd-rP=y{*1n-8_7%HFdDreE$q(I z%GMnDhz|DPb zRI%J&bzHf)wLiFcpB~sAWxDzdp&njE5+F0k489ZSjW@#c>EnIO>>-8T1Fym2VsUm|0v_*ZdTlDw_R|O>Dw|sLzF!jo)n;FY6w_g~%dPtvo+h6|B zyU}@rM#&Vns|+-Un=Xqq&T1REDUu%IL0rT3_Qq{MKn+?G*6rHE;W51Tmp9+wH%t9T z=wQRuZuO%^=?_9;pmc|Dy-gmxqEg>iCVl8_-j)=M@P2MJOn)qmX4+@PH*O%EMIS!5 zFl|iNHV^fZPA%igYo(e%T#itV^{?J-Tf;cIjh749JizKkMti#hIIWpKE2?7%?og!zgoW~BBI})*mgVPGXN}u!JXX|% z^p*3Dq(}n-1b_1+-@Txr$x^TaUqYRusokI7dQqba6rvj-mn&Y3Lkc2wU>x;zMYHUU ze2anfsI$L{K7drJSt6@Edm|$f{SkjRfg>O-YXrDV|M-@6KUJTWe$Ny)UAo(7 zYUDL3$7;2*F7MRwCXs776x!?gt80E;tfjxM$_&>;cVwTWX3{udnT2o13>H@`HH$E_ zc)2S&*;mjLeMG?5S{VF;8)Qat9Arx5d8plquE;vzT^Fct9>|tZfhe_~1H+0!6PXgh zV$t*#goFPI!uNsu94kn?YzF9t|8sC*;P4C3ZXk#2>VLJ?<|d#nAanjh3bO1y*91I9 zKb~fBymO&&=cA|gK*)oA9om}pIc&fR8wX1?Wl9rJza2nY$AV_kPs}1_)VZE#Hw~YZeKiVT6@7cCH2i`b zp~ta(p8sUSjK}?7#qOm9=7y6WUHl1bnbLRCiMv|+h*Wc(s-aWTtf(OmE@xu*`0#Ye z;lIhc0jPu=_;ZwmulyXpX)Y_i=yWeo()@O9o0D5n!nptS67ZdIdGGQdCy~88byNT3elM#R5rv?~s^1ZDf^) zV*W<>6_H~=Q}cZ@_DFHoPpKSCntbb>d&vS_0xP?E#Ve-1mwgs{As(b*o?|suePl5S z_lzoO+p1d_tI8=lJnW!g{aGJyv;N)hdCQ~9&t%~hthCZ%=hx$Q9~0T+CMJH+DHubO zQ94!ONqc>m;eSqz7l}K&DiHAK<4ks<30tc}Bd$zx$dU-fV32JjW5OTp*G6lkxzRQ>mDye?#8P;>3gBl1PWojZHaM0 z=zQs&SDhKd7M2gQlh*p3XEjt+inW*_`d)3&W9TI99*U`;7dOFBc zYaq!{jz?Clw(Ix*2|nIXWP@)Al}8EEyyARAWz|dSwdS+EY+zol<4HuJdDj9vvzzv|t@%BI4&>as)6}V5D zc7Q0e`&o+G@tdkasuva5U~E<aTexyzIWmn4D2S44GiP%U-4yZHFbLaW2 zr*{TGJ17!ofnsfMoIC zQ{lJU==i}~1Wf=o;@gtKz~hg(Ae(pn)*l%{?R&iU%Q}hIM2!P#Ze8Rxs-gS2Z9j5Q zC)dsswsh{^=^h!}D~YBLta|bueZ)LA^nSrgKCeP18~%x&`)p+FObXRTO4gc&n$b1= z&}4>}*~I2=M`$x6KK6z$n0WA|gf29nLT>s8adS!R95YL00?A_5*>mu&2iDUvBpA})KN6AUN64K>$mW3|*V*B7Qip#K~w zH0RHP$jLYFy_Ke^YH6yc5syNPG-;@;&u87)-7R2n(B%rwOu?8Q-Yq|G$Sw<%qj3)S zUh_zx-H?wkM4!9%Uc0``s?V*iYVpo)4u{#uu&%j}2)Y9v@@b=gCCy8_{#eq$0EZEe zYY~YP&%U~5zqtDvJ@>ya zxk+*L?d|HPY#LJQk`VG(qVcfK5fK&%5NjU)zUIJjh1k5d&{u&zzDz$+qB@tK0o<>E z+LsczlmDcc-;Y|XHW_{}Z2TK-YZ2(eu!Gb%aU<~I17pRNNLF5ModdvkEO$x?u*MKe ztIU#r7iF;wWnM3p=wk5+{OBmz!$SjJ5d^E?$LMjK;}?L**Q z4Y@nlHF~vnKQX^EncK)j<^z?{vfWKnHPdaWA?~I7OR=P*Y}ug96-ZSFJ*F8$4w)aU z^gDMD5D_68F9=l~n(~W%DHk(8i^hgj>=peH0xM~~l3|>)A`pSJq5jqTKaZV_y!`6fY21WL*-RuhxG#*Lf(b+mCigj15wj=0wL;Cx1NDS=1 zB%ckFnSr4@GAxr41{sylI}ho}=y=zTl!HHmdJ(l-WQ_z&0YEUqD9b1_tFG9qE$XPe zr=%MA_3cAyMUC%i$lBDkFLAe-!5OHi3^EJ0=O+3fm-Sw^wPu-&2;9mL4d07A=PDO@ ztYGN2EJ50885hR>-{H!}sb@4=?Im<1njHYCM|}{X?!kYI`~HMOl3iz7*16&xgMn=a7LhYfJm#fm8v!mE%*Z^e(>W}xQp)E9vIw&`DA#o61Z52@T zYwhNTKQ%3k@p8y4+d)c$e@MX_yx`q6NH1u>M%(H*|=&Hz7J}uWG_POPJbLw{(u+ zE%&gq6)@y(%yldwvOMFe5Ncudo}9&n2-la=Fm^4cz7I`qC=mN3JI66i$E;3-k+?wG z+*zEMbiVuxx>luR12P}`dYWJRGKQ0|&%KgQtv3kytYQXjXFv$KF`&^t&#&`aw~Mw~ ze9pmsf!}iwy}P-OAVt-$Y0;=75W@owfTFv=EycZnP>`XlET`rfyA$6d=}3LJlY;}T z=dr7!szB|Zl+Gi-;aop6K9TAb(>9rtz^)wk-n=sq}K)B0_ z*FpOR(W9C^X#_BA?c(E~i%=rQ1yW9WVopuB?#OMIynB>0@5gIA?Y_F&NZXSaax_3- z6RFgS)yme&8JL1lP=|5>^;@lScjeZi8dL{QQU=jSdu=Vr80u^65%J%nx+9d9p?ijf zMd$E6G|EQhW*a^r=rEpUwJ;8A`#!o~U-EnKv}l>uWx03yt}^D{-jlJV$1OptdGBjb zn~&A?a4TOI{0FpQ8%EqSEkFCHv%Q?9Z4}^k_nm^7HBH%$tytieJSaCX|4?N>RY0v> z9UrwZ12=(~l&eT=A@1u@YLE=d2X4xTix5zy;oK!c+Ze7!qW;sn_RzKDiPPu2&g;N& z7Vr^}Lp~58JR3OyV`s*UFY9o5`XvOE`9*mt!E7A)uhYDW?|oJ@z?P zpRLk8p6zryn0ww7k5ST1W$|u0kzJq9d{XL<7dE^jS~4|>u)&HKh^b<`a=Fi|uMxQo zhCq@1iZjfJVQsWnqLYQviSEgX>l`wNBh?x}121sq_Nf7D8Bw;;T}j$J^U*BGU38Cg zI;&mq@U{39E!dKR#lV}xZ316ZMvZ-FS~UAQ!Y1ZyB;fwc>fU20z{udubp0<}iK7>lFSy4ew}T z>}C1|_oLH?u_9Ya+@sD?5-riUwv+gT?Z=yoLXqeoAu2TL(QsTXxnauxDeE`};s?n}k;cbuvO3-{u083fHh<$r|U7oErB(P1sT?YOaD z{?#b7aa=mGC9tG`NBM;}Zzh>w6yHqD)Fnwh*)LRDPJ0=Rf_CH*;2{wpR3i}A`(Ap4 z1x8*Yyz#W-_5i=rc#uoD7Tt-zsH|i{R!)i5-3mrFdi$|5zlGSrpvjZ;@2T1Q7;A~7 zw0t8Fx38aGfEs0)S967Ld;gXN5^8rD!(Bf^w5%z@P8~{L{L3Ea;wm=Rh3P>9s{J@~&94lQgtzw6Wv5(L`-WrFsJWZ3uUZ}- zR!!Z-CJ~B#=z@S0PyfnLLP+H6kC$7&lYm!?qH_)>P4Xgg%%(V$D;!7OWB#x$zU>$` z&jeCeu{5hCKmfq}61&HHaB*n`6)Xe6l5AX_?!kq4~>vFE5C?*1o$-Ls8a`Q~%y9{qin*(O+#w(wPjlEy#8x5Pg?y-!OxY)&msc z{zBw)93uv=(w5Wa9jd0P&+g(lg8CtTspa~3lXths%1hFyk&hcO4b9TE1*}Th`__%P zS-&c&L>8~0gjgKiQWs|Js5TS$me*j>fT!zE{ysVj7++GcDwU;_&tRH~&6lbkoGmqJ zxj1m_7r&ntG5HBnz(*|AWGcRhRC}ZxkL~xXVf8e}Z}L9_j=YeU={dy_AoDGGShfg3E8NYjBQ>jA(SJ2 zHap`T)IB!pcBis+Oota`u8*ZnFi!h&&(;X>cn;tWC!yB7!#*nS_bC0W!U$oxKN8SB z&LLTP$qkN?pKPJ5S{W|54L{xdm0fzO0oShnS$sR_3i=)`G|3-bmo0xCr0_oj zgUw2#w|Yj+Mo7BjuLM`4NKaC6foPwiKIsW1?KEqgcIn<+FXH6BdPn*DqTTVDP0 z<4ZlzD&R3(bsjk9kt{qV6v9L=U1?UwYP-lThs|=XJ&*c zSSbs7t&cT-!G9x^K1Ju}mnZ5uGj+H(h#ogRT)VCKl{d4#IO49Hh1b5JX{6l;94jw}P*H|9M8 zluQulQCY`(Hv1NSGLmWrCny+pr_*%IR#n?MjkVcUwB3N!nK}Qc<(QbY?UY+(5%k*^ ziNiM+H+Wy9`x(O~CFr?0+XmA-+~PgTg8axk5(?hig3&iMPt#$(v=bb)t9h&E=|I>s zcGMNUaKK^DqtwC!tCqzc>4q0FQi?@EfZ61#eT)4uW4P@XlT0`VV-x&#z#dc$ zh{;|E7*2%vN+R2B2;VvYo_@dO9cc6Vn}#D=f*Q-FcC6+~(U|RTfk(^x-sCRkVrX0c z#4=HI>bCFnuM-u?a$0O!!T-&vMW*zzD9>+MLawv zYPxcT<0DkJiF0ye_9PXYak7t%ATtr*m3$oZQsT3O(CV^s<%S%ua?l)q7oyB&h}d0V zJx-G%jR9F6FhX{?G~@yjzxXdqVU+Sif4Fj>tw*hyuM24v`(MRWOErgWTXQF~9{$GDys7jPtg;SxdC!Cj9we9iGxNJ>rIU})OH0mG zKPkCg7my^We3O4TGjGMe!(W-7uDSK;^Z3_d?Bfp{It#P4IXxRBRo=74n*$Hvr<1m|yua^kdV4@b|nuh8Q zQuXGk(pW6H*Hc|q^!D-j?J`*4i4%!OiN+8}_&Wsw8gRexVifaQh8E_Wv)RO2_m%vU zo9aD?tLCe>z`uyvBpuWXQJ|Xax@Wj<_YwA3^f^gp9>i^OoZ`7FhAyuC^nKyaKPw0$ z^rE@&*ZT0Qnt&VGtC8Fx_-sxX1DfyFOwJ@8^w`c^G!dV0z-Y_laDlPDyH98SvWjER8)dx3=Zj? zIv%5|Rh{3Y6B7(Lb__;>YdD{qpK3=dYAUj@su`=N0lq$GRvxZPEF7L9(`xE!ot*`N z^^onal7-l3XB?`z{u8}#jux5Xt^zJy0u%<1{XsVp0;~PG2V*ShJRObC;rjj+y*j83 zNz5&2%WPnxBI)quN)yd~n>5j;zZbT!5+%|uQ33bHa@Hm7wN(><9?(KEQ<4|=0(1Ur zuO_M~4{I33k;}NGHFB*C(`f`R{ZKADJkzu4EPG&u-+^#Xpjmm)gUTbEZ{35UMew)y z{GHW9Na&9;IfuzKfk<`rR5hd4%=sL6H9yljQCzM?51jXN$l$G*o=j=&s2*Y|AMA>Vx ze*S76^lIkX8$3@~k@x(1eR0`Fq2Pz?r%{05aA;z3@0rn2lT#AdS9plhu@!wla(a3t zLs^+}o!(p*Kem9W1cX!0um`r4%0$g;>CP|bAA7Pe&A2~-<(pua65WqlyTss#EQy?K zw6#uIXZ#|8+>`7q+`NJa-oO&w3Vr#0zsD3dVRzn~b4Hnd;Mby!#%B2T)A{zh4 zSv9*NKD)P1LkXCKlEDIF5S5A??L(>Ffwj{l_o3PL(=F{0+3sFb0hgDdas3t4E#2H=WO5>o{M+UEVN&HQR93bbwE8xRb#>mOwl|j?-H54_c{Ps)7&2G%# zw(&IsCs2}`aR}_iq`?m}r9R&xBerw!k6_8-0_rf(8@fi?hlwitEL443ju(Q!GlU?k4Z@M3kY&3Z096+W`oNU@MhxmCyb`PNpmy}M zyS91~*&kWh7xxC4frdV6QA_Y8E8&f58e~6z9lSqSBf6G_tf^w20GwodkO_SG&t%8o zo;35}5d(bnFZg*X#pNol>pJg++*pl86~+FYaP}ksSV@z2qhLOM@Ni5rWtn7{l0geb87mLXjzl(+lqyvM8oA( zor^k2j%5?o$iLF(dNGZRHuqwaPJF5DP~GT&{8&k&mwrX#Q=gpm&Fk2BS9~#;KKk9X zRj1*~hWB^mlUewiNoCKY`|mj@Rz}?i*~iyt8>EqYIbXbntkL>2O08{(KJ?0aQ4h!! z?6iu@i>#^Il-by8HPLJI;1{$EVvXXN2SoDXi5uctCA=!ftdY9Mm=BpGc_GbJYQA8$ zPH~L27TGy^x}bCJ9_oL9I(y)33eQBEkwW_7V#)cRYTfauQXjfi)kX>%h4 z`>_(Mb19*1S#z^p0Ey%6@{2$f?P`tF! zd(@t_3^FK|njy3O0A<{v>OV;xzVL0Q3IIi|Ud#}QdeL#kv2D{f1oM06`$54Hv<6fD zFXJjSe=}<4zAioWorT9%dl#L52~*C_dn)jcK7^b_E%RO9`S807rH_S0TTl+Mqio}K ztmB{le6G|N>E7Zq-vyk@pBYwn?R7M5xHSSZjuiXz)lO5Uk}0v1MOga2q1lh)7P9 z2`=rwYJ1_ZmBBkWceR(xYWI3IHu^8zSM{e4yDfp>6mfw!SjrX?Z(F&&a5;0KOc^-A zXe8ZhKF488g!3>YgoYkzyYS0`c{wppv+cmn|9-cpxVhfQH-pSpvwW3vC<)gSsY|bwxny~SM?P_v6 zMcA-gvsj26GkqH`u9F|lV*NF6nK(IKS_r+ttf1yp&k6G~gwaFkIoi|aD~2=DO*+MZ zIZ;~nZpZT0<%0m7Hh%O6wo=>FG&R^lt-h^YtyYoF{?&19p}c%d8I`lL2ih);Kytn^7Iho4!-Di676R2)_&&!arPAX7Sa|=gi}z2 z4XsvFu*qoP#*lTj>GJwkC*|pC78@Q1QV0;=54+!n>HRdxJSTgJ%|;@sq65NE?QfHh zfY-ILLkf%TqEAy6(Hn=~K24i^tOLH&$y|}3Ke2V8bALArM!#}i6uJMqQO2fj+Hh=P z_@sB+-}LXKC7Xt9Ky*S;BR!A*w-pnGC$%U?jzlx*gMTzjIc%WWdsOk0Tj)~jAZozt z#rXHP!3p=x*p<-YHsWWJOjm7tCVFe%05R&3!vdTSRNB+qivC!lHHssjaw<^ zj+%_5V@89+sook2d$J}f52_yTy=D^;2VlK&Fa)x|-u4=g)E*9fIkHOf^;E^m3{dYi z0a<%2qAkHQs1;q^6H6?6+pNmxGj%g~+1T845oU=@i!-GxGeh z>=3aTLV$i0vuKy|2s@t!WU(#Fz498p-AQdBJF2-Ln3z7Ob zU7Jd&yNB9rE6WPz%mxlUna5N32Hyk&z!DYbym|MC4A3+VEV@b{$Ef}(?C0I(xZ8U} z37?eAaTR51i%H;Vc)q-BKVEdmYD4NSkAO8vVJ-HoMavQ2O{)!298T{2sz_yOArJm7 zK@%%Y5lJj&*p@>-0>o{2`s%l_&Vz#za&OUrF8i-`{qMp}KxV|Sojpt|gwRNbS7lGX zUSO0qg3nOxG0NIG><+A!qw)o%uZ^gfI{d%L9nxlVW^)u-JnQ)Zk09&6swayc%87Nbe z@z&KSaF=*SvTxxfHktquJ?=m6Z|24=XTes#{TH>t~%!~~oUL{vr z26YrEL%!`uJ~$51>#=Lrc8M0ZukL*p4J?GZr)KxD8&S~c^2~VmHmC<6)%Cy zgPY5~TO22q4Lq0nMPEgiv3AViUdh#bc18qqiQw9ZQ^~Z81f1@rQ6$4+26ft(R!pq8 z>s8ru*A_92{OenFOzWsb&!hCFu4j1EH&)OLu5w$PSDzqd4v@^HxUt^F+0%ymxXjcKhim>fH0`rmu#U$Dl!iMC zKo>OM%Q5`K>l=r#UPcUZ@45(?#eb-ae;XzpERcACk$8RhaUS1c>ExSN{{}d8^IgfI z<8me29!Wb*=oJ#|qbw=owt=|U8)_JHh&N|*+{i(J%&X_WeI{j&uHe9^4J3|?cnt=$ z2Nx+~zc?BrH#jjYS+HuQ+TRaHdK_ z!(O$==VJp`(y5_o-7zV0Uu~hC1Qr{5u2_M7x9E;*G+NMLwg)g5PV3oMrY;jsVCQEc zzQs=2)}Fc>XIa2Ls9VWD?A~n@i|FUw86R6|7az2%K!}DatFlWZ!zK0oAB3>>iNEJ2 z;a6Rk9Oc5^*|(vdz_pNe$z8jI4cKJXhao292S3zsh+-L${Xl+0DJYX#E;SRK8Z-wHX{9J35J@0i1goLtM~jH-3H}gO#_`6ADopLUn&7 zf@`grsL~5BSqYq}$Ofa4PZFkVkw$*w^dVC^D2g%6}uMTVD ztOqbJ8dGGl6s94=xfw-*yA2Cb35a}8w?q9!)+-HvRW&BPPGRri^X@$F%NtY}F;J8k zyu7>ynu-F)(tRe&_A(V{_dL4E$EsaFEP^u+G)hq8-tX~}z__}S=BEU#NV)+N#FBY1 zWakVtYHh5yhm?!0O*0}OyKXmyiMzDp#}ad`=*Kbq2~3zUM4e~aK5}5DoAUhS+u?n9 zIl1$n1%Pl}tTEA5h7$J~deP2HMOV(qx5h;JB)F#7wHUd&uw+YE0v)%EObg2@R}k02 zp)(UyC`Z=$g(}~7_3#od_R?|(Vmkmh-Mn*8eB7K6mK9HKI*DiWCSo)ttPm$i2d~k; zb)V3=jS1wU5x8_M@{aJTQ*my7NMIZXyG(FhbNw`?Ci)*P=z)KI?Q_>T)GvoL%LuUA zwn_iX?X{Z>0{>3`9=C~6;5x;H*U``3*6=;$nHL}LlMY+{=0>M^sJ{Aj@+Eps{^H?b zuL7PNE38)(j65h|lE;}!NI0Bdb*z00lCmrHrN3012?{<)Kt$g~vOK-4AY0*m@P|_= zX#76Z1O&{H%264&?&%hO3pM#?BTS7)wqKs?2|UFs`Y2;G=-_|;r?q~@_FhG15jsyI-ytQ+v72x8;1yd6A8G){CSUPx1AflxScO9c<%#`=);70t>iC!g=Jcsq0?(s z<`WHUxs&Qe;j6-LJHvkV&2HSAHQzn>RsZ?x$8v_rre@b#STl94g)w8vSZw`_%-{S#d5vb1M^RyvoHQ{?J-c{+;4{Y-`B!1KdOL!9O zqR@BaU+WsysnRz3r003Fi`O1Gl8qg=ckTZus|)zj}+LLsLd1q9U1kh<B5X91aEzgpMErGao%5|e|lrn8MZ zwL`j~rzfZhjJQg?jbLT-Ew*InHv}Z=FN=So$HKwvwCYTP+VQ?0j9nU?#N7*XJKo>E z`K)cw91r@U)lO0j+JV-9xt5#svG-;+IT4W(N=RBD+l#AoAs*85tz-}(<@Jer`b!2! zF%(jZG6_kSB&?+oe(=JWQG_OwOiIn6kZnop(rV3lZjeP>6(W|>djHr!8f!(8b!DF zEBw3fqB~P^*oc6<8-u1D$6Vi#ZMLkg+&(`KejgQ%-ZO92ZQ@LXnoX!lL*VMYXX`OI zek45#ggqA)Q1KY29HFN?4*Z4jx2L8xmNBGcaU|PK_(9u{T~CqQEa_WZ>uT*XBf07A zoJS9Xr&8$1uK&Xh-9f_8ec;LQP@|~;)B9ey398|fKinyW?PNm#l}GI<12IVW&qEiF zm9K?`R4CFJeR%2BlsJ%sWK{WAwN^J#`RI&$HkR)bY9iM$gaVf#&oB>s{O$(k@c0uC zW@I5Qk20kHxDDAje!X@L6XR@I%ah%R{cor32}0WrB%UOJbo*@}Z!AHzB~3%1X0R5! zM+2v54ga1`L&%5^olp&a-}7=niBFP{czKf8Pm=pADTN9l@t(myb1#EcP&`?0+;1N? zd@h}gTJOT0Pqn59{y3}t{Q+DwFZ*yinsSCs^l=_A=hA-HLdl3puJtm9>3)Py=30?- zr8gaQ5Ue}bncWj#N$O(uxAOYU7B`?8Uu!n)hwsL8em;aGXB1PR^yvJWHFjw>C8~MS z-E(qfnr1O0f88l!+;Y0do(na$3oX{7HH#{9m&PrWr_I#WBn)v7C%=o6(G~YnH?-q@ zxAU%*MR`zh)6DA-ALCMT>?snbc29&cXu;F zYNNZxU^FA1`FVeT&$a*H?7q&q?^kk0m{j`@kR=FgJqKvx0=oLdeF19%wCC{mQej6E z>@~QJ6*^bfKh_?JmQ4@NMR`x3j-Au&pFw9_?b6$-mU%Vsj-WqEA-0=nYwy-+NK;gw zOH)@Kzolpqx%IZwvJ4EKS{IIejWV2HC{rb76UrI`A}0h^YS<{s{Jl

#;FRGPA;Vzr+v6iF6!J;XLSdTlKI+4;s76nE1W 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

Se+d4%7a;>O-Zr`q8)2eA#t{Y||gC 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 literal 478582 zcmZ^}19T@{vo{*sw#|QRXJTh!+fF97Cbn(cb~3ST+xDI3ea<=Gx$C>P*Xp&p_pV=U zRCi%lg(=91!^7af009BPOG=0;0Re$;00DuNLqYs)Av(=u2Lgg=un-YZkQ5OiQgF00 zwXik;0+I+zN`d^TY=JRy?RgrNj08-b#~~Ch2z1Kk7vNlrj3PzF1QrmkgN@f$mrD|0 zA_^&lW{p-yjA0!Z(1q}aD7QMWU`3$;QN4faYIU>W+sU?jyRGfI`@OsKI@1^E1n~t$ z5~3U=mU=2K1k%mPaDR`hkU-E6Oez;zyPHUB4;=#oBz1VX=WKwl5@+6~B2M@F>(e)> z96+rFiRqu=YXd)UJ{26S=qj9*Y?UHLDAig{ z2h$VIh@gVUf=n9NNE|bvX88|J*w^m9eLCrwI~=oa=RHkD1V+cqBG`WP&mn9U5wy<) zHyF9GrwFWL<2V7k%zGtLqhT&JG(M-yhI!HeN=q*^_cA(dCa3xZz1zsNRn!LP7u4r5 z$tbwYRAN=87{KVVd>p1Y^%*(WR(N)NWNp|h3kcfl#Rk++6W0nX`;^5;ZfzL9LHMUX z5)=@Es1U?~AKJ?fA_~+}x9!t$gVULTtCy6DgMO zG>gUxJ1KHM3vW)X=}#bxJ9B^H^1!eb+$|hx?^m$9!s(rf9vyMt7reLUFv>}7%Tr=)4JZuuwk`f#)~{X=yap%rshS&55w4NwwtoQygz=U@&fVk_!w2a* ztCz?el@6K#jDR>fR#;tviYO6@2Kq5bI;bN^w;z%u?hi#eO4e`xK~6&)2WSUA2h6(Y z72yk_C!|mbvUrNo_yaK*@>@x+LXbIxIpR4kCCajthcFq^^SH}DUk7gWsh#QC!u%5a z(pO~9aiP>SXhz|%s9xtp_5dpl4#keTxhx!i>YvFJ*lUar<55K`K!H@Uz=cl42cej2iMeV z7ik|Bj(H~$s}z@4S(aKBpLr|>maD0}FG^TaSo&BBH+eOATVgJFq;eJ$&xca$R~uZJ z=^8%O|E5#Mh)EizF~m1*YJgZ=Tqr3MuV7SSR1+xJ8XB&XUE%!&;Ys?A^-l0UPL?I9 zn-EV?mGP6O%xO+MY7{3MM-nF(#|6igt=rs@^^pXtx ze6(`3IsrTZmXa{zLjrfPc?MxwH@{2%J>)4ix?0XJTGT9b3OsAM-C9R}lXbJI-OL5@ zA=Tr`gQTm<ae+%W6Hbo$n8Zv$PfI{Suee98N5^-icY$b3zey;oPg$g#cp0#2 zUtv(On;Vxs3s+Di#wHdMNjfsAIxTBNqb!qYUE^gM(gCT3kBrkYPNUI*58oc~F_Ac%vm>%U$D8 zb5Y$ztD#DyQca6PvnS1xmCfhusLV#WXPtA!c;%wS-MYdQ*SKS?dG$%22bRZQr)?A8 zGo-8M6Xu=by=9)Rgj{x=@6sQ1-XLT^GgLLyE?O>HX+(1bn3A*vtRzeBxsA>i%a!jr zoTYDd-97l;;&_@Nnt_X9MElFW$x+so?_^D2)7fM0;d9<|18(ER)^oFcgX;?VN}$8l z{lxQzkA^qf6UPIFkCyMfbE0dm6T!Xfw)r;MW7*U9!QocpXnrr^9{z^@!RA@{KH`q{ z-t)+ACudJ@UjSpmHV4tdiO5>+hqvJ#7$=OK^Q#aEPlTMwoQOb~R%zQZN5Zh3~Uco-?eyHjD70N3+T`jigq^BHfIJNEt5gj)7=jxVo&EK-6!V3$@PQLm3s>VW)81`q88su@-n znlD%@7*x_$a!As9)OK`e^po0_T1yE+iBCydNiV`n)Fi*f!r#Jkj=wmxm{20cY|wbY zB%TG8Sw4Jm@N_Q%))|vdbB4Gs5ly1KUc0{81YRnzC}~yVY2%_855x4A?Vkx_fj{j| zn@;0S0`!r(ZeDR`B)9pv5%d@}S{o_HInU!LA1HnCOGR(eYV?=7M@`n(j>hhLcT4CY zw0CL`)o|(>P2ue{-itLAHmaC4K0OqsvQFJ{Ut=HHgdjep)Cx4Q7#n)$?Z2jDUI>2( zG}kofwHR$a3mfboj*&uogC2gw96G@^mK`C2!I{Gt{h?bvbQL z#dHL9aJzb5Rc{tFl$cMa-}LbRs*`Cap-V-D<5A>SZ-a$ zso~MJYu&Xk_)-hiJ733N$F=3&v~EB2s%SIv7+IBznYwTBw$tk#=y3YHn&`lP&cEVo z6*%@;2Hg$(3dKg;<{$HB{ct-(?N8`0p^=x)wh*Xznfz#JXBeqw+3eor$QI}I-5@=2 zfAoC1*7LmA1L!6`oIa{NuRrDx+z_@tIzEkWsl}@e)WCifzqMr9O>AYp4BW@y2G#|3 z*%jFx`d0gvyk7ObTU={}_J?G9|M>uX)ZHW;m6T6!Oxx%gc0a%~en`D(zD<5;-9PVK z%O9jUwgoXB#%KcLVVFBI_vSzXVL1TFOo%8X4fEcW#xm&%NZsVPO^C;gA?IRfiB-nQ z!}cQ6$*6)*d4fc$7fQ$rUS6W#BAQUHuSY%R8_6ZyNHX}AfC^edyig>Khq{g)Za*0f z@PnC;;@lsR&JBH0PN;&Pz;!9>w4r?c@P#A^hpk(mgKGWj#X{RlXgC1@VUYiG14}BA z-TZZMAuN8XJFCmea2wg#Fc=uy8JaM-+1UT31_I)B%{HGNAe#E z?!V9fG&7PA{fETaijPEHR)I*w&e4R3je(T`K*A40L`1~vXl%-@Br5h_@V{?-B<9Y} z_S}q&uCA^Ot}G08j%JKZTwGj?0A@yJX8OMr^iJ-!&IWGuwoat~GWl;lq9#s8ju!UL z7IwBo|L`?1v~zLhBO&=`p#Qo4ou`SL#s3+}*6F{N^>=}c|MW02F#s6% ze|r9f{bybO4#)csGj0V7Hxp|OQ41RrTc^KM<7eUoaPt0Vod2uq|IGA%LDl~cl!c4q z{{{VDUH=RE&s@0W9W6}$Zqq-T!Oz6Y_C~xJq|s68}iB$S-d?`z)(P4v*aiie*JOP*`jItnf`oa*{#B# z@!YBEQ{nY%*kvn*J)0%!-lz1zYZ~xV4LcrUV)fPfineCaQh)E~J3GO( z%-0cjIdD%nR57Z zRY0Z71X`5?S||AnMw?drwL|-spE#9kKA+c zRDW*uYpO~a?{7JN+)R?bn#LjA+XXCs+uxa&4{< zUvATfTykgR&n5m)r9mU}E|(5JZG=blp|Ln;1vNHWdezse0Mo>oKAL7O2RqW5I3#mw z$7Kawi@cKppTU}xMai6lcnbj3>JM?gVx6E=4roUEIG9@QM82rUe8MB&lIAG!*H|?d zi)3hs@h1sEJVzz_~pB=tsE#TnPsy_rVsG*Z4LWDurn`V>)DO!YWplp-KD0l;7XW!kH6gK`%Wqz*W1<|LRda9H z()Ce(*Y;r$l%YAlh?6tK0xyCsxMcL|TFNVa-_0!7WEM#qt!xM6Y)o+T1FxUU3CD>p zW40T=-BFcZb}{Xo$Ug@f`bp^Gfu%rGXmKhr^=sT2+b`-?t(~N25CFm%f)AqMlCH9{$jAsxr4-YDt#= z6y+581ltv^b2MdJ%MGv|`}xKJFRiIlZ-d5A*dToO+sw?%Fsrk^%f$L_%@pg@`>t}- zwwhU5(lcGKJ?^#s7}K)lYs^EGg_v^7?p+yOi{^&qHO>63d!ZYtcg;k@(o52*m3y_S zYLjcz0hi()_j;cv1dDCvb|qt=uQ+N6^P++U&9)l9+R=cS8Q!sXQ>)4rx-$0Yc+geM8E6^Ap}=v;(kqG;sCv2yC;diO}+rE&_Cv zm1{o&VtjKo`Fr|8jc0}jSc|DVW&@!CZzt8lw=OmYv6RpTchi^x`+6&bGs8o!+Rnaf zb&5ci(KI?;eice zZ4lY0m2b8)ehR|o4qQ%4z`(XKwe#Ei;b&Tg7gZj0$##I3f;b@XcIIwq&Uu|X zj84lK`GjtTfl_N?eDwRa-mUK-?Mc8}FJOK>iD|Gs(Z1H_Evbd<_2_-i!lo1fwV6IS zKIFZJLYbfg@zCF%kochQ;qqe>L$bSD$jgbla3v+S-AYaJo%A_u8FNM?Mwo>9lhB8x z?3o`K5#esM5{KDOQTyU5CFETp^qQ~qkuKo$%1$iHrGY3O@%7*VwkKsG`En23Tj?T7 z@+Q29`Er_I*)7<3ZH&Nv_b4W)m>||qA4blq;Utfk7RWvyk$ZcM=ytn{I=gxJtd`_9 zSV8Kr=n^tUYFs5Hp}1+wf8|{JJ8v+@SI6M;)&MnVQVq)c2o#yRrkj%7Iy%UC(cUPi zZ56jriH_99_g2TE%`i^|3c;&hC^i!qDGnZs^7jZRHt+}59ApgXdH#a`)~#S{Km0xv z@Ph_ZQu8p{TP>8AAYLrD{m*uvuSm4_0xWaCwzQ6Y^~Q`v_W+=`h4mF8|JM~vI$a{< zoz?bN7J6RWa8cj*GJ_*6k~K=5o|i5(xlE8LE&8hMPU$nu$yu&Rw_rCVL?drrB9}l| zU`!AOFbY^OK@Rd~y!dWJcFAAM1T%`SXKa*{fuP4kHzxO8Et1BkAVrep;@O>c33?YP zEZ+~ffIC60cw1asn-R^uvYM3k#qpxs_C+P%)y_MDJRC6Q5qasS73#sR`n6-l9@_X~ zu&V1J;2IX==29)DWitiF3zd+9o-F9i_uD|AV`%U+%qfs6gx&2=aUs(9FTx&@ zkV)wG02Ht!;T1~R&-?2z$oHiwctVN0B>2571cH;`@{!u4LGda43yY6?Q_0Vyak5Th z{}-)vvg=W4uX9Do&igtvPkZ&gPoll#UI|3)ZiTg;@7jmX*Jxw@zU$*{!_OTIiyhxCmwIG^Lfgg2-W}qy9^J55LL%- zS^2xqDkWENDCA0;DU6}!%jA_|*|Cdhd`^ZSA*Azm<}VFty!Q9vMrmkwk5s!uVz6Z{ zf{Da0 zN=ouKGnq1(ylHB{ddJtP2DM;Bo$aDhnO3{R8RnGYTL{YPVXqff2yTfg+;a;ENV`KY z84IH8AHSkvU^Yvs3&sbo92cYW{$>zI)aSZbDM^A*x3ZXD5<9-{{tNV(Rq;w(mUu$K z0Ps#RG3j$Yj*4a}<3qzyfv?<$j|*%`Vx4YA3Y(ZMN_aJf*#Twgc89&@<*KxQ#a}KA z}E?_)R42-Lel>b{)8HDp0d@1DJa9bdDTU(7BIb1#`yZ4?cI<4-YD`0lBiR zq~jvZ>|}^h0xn`RpRY>R&2~9%0&l@LqM!JlyYLe>S5;Heb!=u*TQ(Stsu1rpSgbwg zs*DLxsn_%^n?!Mow1wv>JxLpw?}L#3^(gf1_R~<@9e$qImDqD{gCcXzRW5En(&;3K z&tDrV+eW-uo&>GW+Wd4~7280?3lY&}cSUn|pU#U8hnw~S7sRIJbI|QT*^5^eDyaCm zyC1jt8LC`2wM_vPFZ}E&)|G@x{u^X8!uGZ^mJpl4^1a+Fv8%S*R8Czpn^h&Aygzq} zvo6Okd4A8Yd!s;t_CvBo5V02#XNoONW`Vna0k-=R3H>%wr^Xh~=v-M$LP%2LYCJ;63!y<>>v<~H@vZ}I!u9Guja{G_tDdx9BRV`_Pn6mDa`IB`rK)k zqu%0$$9j7Hg;sb$uu#0x9M@7kVv@?KuNhMF8SP$=003PEmAo0m#U(~(mdB~qtcG))pEi(S8?@hv z5j;*$jh16>=$~YPaHXjTLpW4*=%L-iz`y(h+gK= zZJnp^uzQ{EQKEBM7PmT3iKJ&@l;PCp?Kz&$Uj4Lda6Q&gqet@NqyTAHgfI2l#mP*w z*kXmlwiF-4ui**hjm^)8K0ilNK3;cF6g;{&4|gjEzPRKi!&kxhHK(-{HNtNgBnK!gl8EWLFzPQu7^84mQoYNf&;%9L1D^n%P$CacBQmXlNWS z)r5Ef%DZ(6nd{yS^0}n#HsmFGXESsO}*7fSue)gT~6Y1YIi98{cE2Ob9vCoHc*O=`X6 z8hDa((ek&`Xoj0Cu1b^)s)Ui5eCDuYAV-i0w6iuBmK$faRLASkJVL_n+--9v;lR<_ z%%%1`ccZ@V?3{iS(339+09MlVpjYd!RN8#XT7pC3!8x}{bd2k%+ez#gu8ch@G(q|q zlwg0VMkW31v49pDz{zss&}&~Oi<*zqRz~ZT>y#&Ij@nYCW@)4z{omL+HM#G==B~U` zv#wI_zUmG?hxXoKc(+SZ%iYC?!h z&9FALsE(f`4jbz4PlRLU=Z&dAMr99rwQa=jH{Z|o?ihg-qSP~j6$@Fr6%u!9iF?^) z;UsteLWMR%vz&#R4yFE;UNIv2A3^B@2a|Yw^mX#C65CeiMV z5HO)&z@q|d?w8-j84q1A#b^c<5|`w8%FcqsB-lX4mN&+smvsHz)(DXatiLZ7j`gI@ zb`+aJwft!K_vgM4?*Xs-ruyIJyP$e)^8f9;+ZzxGZph@|&#Em;QzJytOF6-j5Dlwi zqKJPCpa`E@GSfHluAE(YoRL@JL)zEEj+!v5h-3c&D@kO>Za$rMmG)RqQR0Mek_Ti$ z&TyEkK`YT@>+`X*xfWPU2T-+LmpXrA#4}Mf_*_{-?|7e$gK|E~2SP6}N=iT_O6mU= zQ3?a&wb>|Y_VHhH02bA1HRS>|2yUu|0vU>VT4c<&L;j-ZW?{H)16w<1xI_y@?g3jr zU)6!Ug&!pRHL;)m$Zn!9qhHfCOb zCgC5`*YhO8u6w3Jm=@}hIiGRSS`T}XDR>q^pLRs2AP)l;E0fL9(uCv$!)6A+gQ0}S z{(cs$CH8s+iI@@uX^Mkl+a)=PMd9F4cvhJVAZDp}>1_w>#1UIe3cTQX}Fwe_$G z`T~#(oXY|h{z><-wOB>#m>A>Kwt<*>a3V7tr9o*%P(HO z+Hc#hP>`?y6JY)sbFvNekOPh|`TkmNA+0&MiD|H|0T%2#>Y4V{%Z|LNRT6_#0y-;_ zJsxU>qH8%9>1Soe0N^&=`qG4+F7zXI{W}eo!5UJ#Zf27>_9sCsqHT0=ow;Bdf89bN zdX}RcTn0QaYn=Ulbk0^XOMTC?55VXv_*2e`Kwl%L*!Un0EPH0F_>-T!Y+v2SE^0i8 z4u&?fUOI7}p5Kx4+vl`FS)mB|_JA~oaDr>|+@3~ilI$fH)hv9D#5V1<6auS<`4k*q zVf_(ohIThDTp{w7{u7XH=FY|m2({a>T+%@WZV}LETlBTJNby&PK=S}D0}&yo<_XW4(JU5r;O66Xm4$*r2nhGGLdyVby+d4n|0w?uL4vb zTvU3tf0i~$l_O8nO@opdXgE)3G=6N%`_4at`^Rq!B+^eVd5BAh7w|xN*_boNL35yE z{9``ip%~dOqzjCov-5MooPTzf6Z?RsZ<4KOxYy(CZ4kmfOP^p$7XIGo^)xf+x}8Ag z#$8hwg&nBF_mKw>^h^58dqtt=)Dl{+4Xs#4e;$whDjdL+vfi!dom^@G3kdlc0l#K7 z#ECU%9H3UgaPD_!9v|Agyf|Bu%sGg-EaxNKby`_=8I8O1(WK}>e5-LW0AW(e{t!ov zI1uqEX;M57O$<7&H0rV-0L5aj-2&bS*JEGB;QTCTu3sWb1YFac3_Xprv<<>8usRSs zbvzngTmeDm#qPhl4B4Bz&2ZYJM$;#*E~-iwKhyJ0I_h_u9(XwcNA|_S`G>G64f#Rn z);UL%-~)#&JGr7kE4`E`Fa-ryYTscVj58Ku_x&IRk{mQ(0b7;PN*RV^yNor+Z2Z#b|y_Ww6Q6owqlBMB*>CC8os$>I&bBLC5 zhRo!~d10_$v?LU=ygyLFY4hhJu3y-c#GrluCOVU^4qP4a|p5SSy6Z9%#T%a;=0nH%cIYcQzS!Gr8=S)~>Fy z(ArJy5XnaI%7mAwY=n5;mkN@uj|_}nHp{^L*a?W4f16p}wK9fjtcjL>X4D@+IQrRH z9u{JPXXOR6W5Qj~f?0?JHK4O5*9|fo1=7mU z23!;E-3*3;R_1TA-_(nI3#>$q;RF`#=M)m_(+yJl@3Rm`&^Y0kz>EJ`e~`vEu(yp>QwV@(A6!=WO-$%;%2jx#=$9%}~{PyuxP*a}cbG;3EKI+O5m zt8(-K4|)6X{Pu89uO&o;3yA(GN*DJ;UW;I}SG;6r_o4FTk~sLVg;r3$y0c>4_kIfW zyMjZ@vlNdhjP;26mDj~MS1w>sNXd!4LIN*&yMp3riZ6;Zy~lzFx|}v1JHIx8W_tX} z9haFQ#i-Uky}F6@cj4LWhDO8rg#J8P%(nP67|)Clr&^G7?{5XJ^*5rY^SjA>8n6kH zlC#3{V{nSy97FtO>-AEoUO=ds1e z`*;nw9^MpS-pm~69fcWy>Oz|`mgsvgTLk%@7yN@D1!fq)_^|26tPb5B2m}dkdlJMP z)PwQ_={_^PlsAg?Om`^O%8`Hqk`P5OwCi`JlUtXe+4Do{rewx(oSRcN7;)-UIVr9h zGKeyd9HE^KP$b)Ler=A2x{iYgC& zCoccz^!rZv^kw`yALTMWVC3-T?ngYgkJ6jZD>J*!r2mkuV*bd|VyBK+-Un~me=h z_Tovm8V-XwH|f?YWmKD5HmlP;ifsE`!e*K}yQZ#{xFA7&SW{DmoV?A75$7yvYr6{? z`p|pNW&j8Beb(!E=&f?F;m6;kluEB3`=(?qivrFzWCPu*Na(oqT&|-A!J4+8MfOG- z10cdITc-!&N4487kv@*9HU#v&_zv8e%BXd46(2WI)kduf8Q}|5u|TT!V{>}0Ps6hO z{Pu&mazJ5>Xs=+%19IBx*D6b`L7J7gxYooP58$3S$NZcTh`#wF&IlvH`A_N-N>_U6X)gUNR+Eq<24gCv$x=YK=Lv$7BV^nC39GIkp}L^022(TgTsbE3T21P~MX zIn+Sew{`(@xW*Dq;12^YXRH_QUw?r}cFu*mFTRg&pROsK#7K@;EuU&1Z2b<+vx(Ve zEcu>Ka6FrlObh?SP|4i<*LU%UMg;Z@+xu~9al@*#-Yf6_8dg4zdBO!lO0oSZiZad+ zxY}WY+8tI?%EIb)wS-AMy|(jj-hDeY^?R!(3>2LJDvGoZ+Z`I*8&}~5fq9A#(eKK!qHqQ;> zIl{O^vfP1~Og5Fe-T)1&#g7NdQ&$H_@5QcN1x000$t`>2MQf`wYjvisI22xj?{oX? zB@XJtvcs}H!lhzKN=y&cS;&x~#QQ;~=Y3%@!h#)w=ikmZpSi>F29q0Q$%M5JITfAy zYt^;INO-WYzqV61?fy+q`ynw7&7`HFE6=jZ{bUwga+i>R(9ED0gMSYO9fAL! zaB&I=AhXD6olHrzYr9&=Gh$u$YxcAVG5+v!yG@UTQ@seSAU)c_6kdDkPC3?kqSxTH z74V+*dY^p`zTjHsog9#G{V|%b_d^E)=}&vLI-IU-wMFfdNIV}%Xo00%$m1Y)@}{S` z8$3{D5jgPbP&Nw-LB4*5q5-`C7 zSp9S|liY7o(~KAUO&A!Kc5!N(nqxKJZYC&g;%eX}T5EyJAh48ztFb`34a*ah<3mmV zyj`9S(N)ufNPPxoo{$v3;VbHKS^?x>am3)+4jWBiWDPJ!SxJDbLIDxd=qHvY*mf>3 z*Y}@PDI<&yO4lL^{$$(ylO{q|%xJd&g~MkG>y~lMSwU2_YLIA^+5-iS=37fZsvfV^|$p4R08K!q)3ft zaY&;;((nm*V!)wYa8Q{vnWP-#5#t50Bi=&X>LSUtdoA$y5ldsqg+G4!MQ%d=mt_=$ z0@{q@WO{IhD}If?_V&V%S1n^cEg)e%q>>g2y%;`NDm|^HahD5HYbOKxz8B6Y_V8JK9`uJoPi_;G-cSf5C2tj$jfMEwK=G@+u1yhn(5aa*cAHuXMu+++vb5; zYoKCQ%#eNgQ+nM%)Z6ld>swUd08HieCy6-C=o_6uw+nIjVqV?XP_NNgGaq90#y=wG zNyP|OOTsSAeO<1^_IX6Tr-5ArBh2)v#>D1XgWWtozKb{|@+q8~8EIA-pZW4C ztaV#7g(HsoM$n%mM&$b@JP5(+GXz^S*f+DBY#Jv^cP!TvqRKRckfIv5N0r;ZvTeiq zLXH!Q0KAB!olhgz!DQ>$R`&>|j^?*sX)s9_9uocNy_|M_Z!k83W%#R#OT|!rg-X_L)(TWxVcN+?w9%L9C|7i{g)?1x~h ztDtT#J;`nnI4H>eRJrcIMX=+b0)nY7@)1oCLTUm2&tz{70J#!*IOiSAAh6bSDdJgX zZ9k(TI@bNx-P{Err{)YEZJP6pz}k|6`6W-gB)p5WWBJ}@er)A}IFvaT7BY?0W>O*a z3w0Lr%fbcu9Y%uC`L*qU-ZjvsV^b4H#du#j(L@U@n-9f)-q3+xWkwbF_H1!@YRp~U zfFALTbhyOk6Yn<_l@>YQPY;W)HExSgQShR9WkMUp&|;B(Kkum9VbGX`H+h32yLRpl zcwxSHpI?UG46r4WM5 z5FptI$`$kJe;{T0lSdT7LrU%j|1HJ{t>k>4geMj0g+R5K1_bf$+4G_g7)U@CTC5;8 z)};FfYEDm{7yeDyg!R0z-$0!xn=?>F>Tt%u?cXDV+Lu6B@txXF3?1-f406DG;_f|L zazcMm95JK5kGPbd*5cD(n|EgqC3CJtst1XaA-<^hZ2eiVckxhh*uv$XZ7?N;h#ya z@ndws(@gr4;>>)~uEY**g?@7iw$|`iouRTW6>-4dt0AyafyR56?`+3{0LqNiJ9-r` zpbBMKs`7hQ`AtRhu-lQ?o|s5K%F0d)^@(MZMie)k;HM$+ddjcf;$ z7Nq3)a)$o`w1BVEqwLPsyWBmzo%?u%szSHVzD8n5QjCJrUeFf;jFR1WUZ1(h{Rl4Y z=_C-8be+Zf>~kKXyJj~GiX_l6zZQL5AU!2a)RIM#^V{I0eZn3uoucrw0*@beC4q zAk{2lrpA@X#*C^Z;ezjp3U|G6_P$Y*RO|J>wG2DL`m9K`DYTiouH~xAOu!*f3-n`}Ngn&_bSJH*%qxan5DY{U z$f7?a6i^9_)2#$Ea11arDGrqgeagXn7T+B42mP55Go1JoOZv14XO5KqmHIX`%#F*`$>prFY9S^dA)8PN+{kcWo@b14ErfHXgTq zfZwKR!B@nKei@zAyQ4rF>DoMd3gPB&JKO8R2&S9ckm>r1wi7xPzYbd&jH6mU_ISf` zg7YI$)dsc+05KX&&GITdjepK{p-=thqJ+f55*{lDpLmg7KY+_zYZCaCBdTAnY=d19 zn-@GzfrGX2_HV9DkXV17@4+|mWiJ=ahEOmue+oZebq_#sBM~v%qfjc>e-MVH$LA$5 z8fYPeP>deIsnEoVFR8NTZ&N4;JISWhI?|YSQy4;J&anMpaV8K(ou~_N7}HP);3xmA z<&J}x6w{Pt1G~6B>i35D-ainzJj2Y(Dvc&47SbywRxB2rXNi8K>o|^WB%IT`<| zK%tY>F*oizaE6sJ{Ur?A6vQSY3m-4G3{pXccN2aCh-I#2ng%6Nb;qLdIrKEcrpU0o zo@g1X2-8Zd2~&IB8a#G&(!(|@Z9Mw4S4%jyccAHkSLtTSW|5;e;hg8X-}i2^o9di& z9cKH~9p_01Ih6&RzD{Z^A#EcEJ0-j?9&}`oK{uSZ+$iE`vx?8zBhh6CiS8y;Ab6Ji z%?Fde3>Mv>$AL)v@-+rL4AQM+NgFEcEs> z=nG~d6Z}antq8<-vCik=;aP-}_4e-KkBMz;o?as)$`_)dBCzgDi=6PR49CM80U74jtr?fxzRU_K~PRG>8xVT}OE229tI3G?6gu=w7+dD|lKg zY!~yu|Ll4D-Pc0KYGvuNf+%yu-}aw$YHx5a07-$OHGdqV?j{AUww_Ur=<<`JXR z7(*fYaU=-5fGE%n*lO{eQKXV|q~oD(z%LbolC^;;E*^FU4~9C?pEUU3N=cC)1$^~5 zNG>P|5&5uw_*#8S?f^(2lYqrm>Qhvi0k;>X>+X=G&ZNw0xg zCKcf91u6JjE<#-8dy9YiN%#%Zamo8ZO&zGmMzVq@A>Z`%+Ew199@K2~1cwl@<)w#G zQr{1L16~`kS1*%Tu5c z*A_`nnuV3DM0(z4nHFB%FO1M7-x47wgnI0gH5v)1vnv)NlJ7Yr9oDMjn7u48L_CL? zdM6g)9)=wNx$p4AQIz*PF!Lp)72YXQN%eI=yzqWRUJ^m(nIbj$PHAB2zao`XFr?fb zymUFqJ~C2oPz}hjT(&=d$g?Xj7QpPp&X%f`lo1y5WyV~sYvwXQaLQmqkt}8^j|4I3 z4LgJ~lDG?KR!+0l%5Ru$RMyxal%qMc!OhAp-#n1`!kOm)VOYVV*$X8(B21V^W=9P4 zETE8s$Dn)j^78ZPhvj8!@9WEg>wO2rOSDf(e+#tyb~Bq|Pg1gdy^+)7y5_)~a0*{T zFGLRTb(~GVYA}Dk5w0-{NuANm#1^8+}gpQpIHle9oH?yKqE((Dh-zQ zpg=HS8*RB|qMS$TFg7`tGQlpXn&U^Ux>#l@2GK8z$$YY-mFvVbWr#TS0~TyRGd~|c z?^-Yhy6Wq-zjKc?$BK8cKFCs))dGO+>^d!j$@fVG*7WVVKRs0R=$+$c5!nDJ{9`ju zQu`d&XebgIsmBTl@Uav{T$x|T+e)KX!zw9SpMTnkOWpCT8F*QWe=cpU0Tz_xkIEi{ z77_6(F>~`JMi&+FbBXB5cgxzb0t1&ZIHxar`{aQ_&t{LeV@WP*=lyv;feW|R3mxc9 zD;A^sl3Y81ou*+?T~A44g?$foQmfaiCiwi1f_r%tx*McDwl}EaREWrcx4)utq(Cp0 zIeg9$UQ*q)5dC?Pymlb!R?w3|AnhP8nGr3BX1hI#3W2T0I`4yk z` zx}=c#9Z*RWmc-g&csWxcf3TPgpp8Vqj|3K;y;NTFftUk)MuC)mL~YXdPS!%b3#1Wq z2^O_gjtJ@UU2s1cQP-ubr8`Y8ox!@}8spY)b+Xqx#1i@>Fe}byR~%%$Tzp_`{3lc~ z6k#L=Bm6bC{Vx7?l7yPkr=d@}a?)KDYpx!#_WZBsNqeB~X6+DCmUDbk7SawXeod3x zDdZt!@gA+5szwjHrh+w&hEB~#lj2|46o~IQkYx4x#WiCBjo)^zvEpxv>ONs3PUVJGWr5EznI9FogHT2f z_2Xbp2PliKxl$4QSE1HkR7Q=~R9#gIGmmK76>-3orU1cWVR+}-TcF434x1hMy(63&IK)JEchTE_7#W_gG zGVD~_TpMfdy}O|PIYXYx#R=;-zed<~5t4A4Ht19@qK$LnsxgnhUcadHN>zU_MbOW& zY%A{f_*Xd07yM9E^^+pP;^33tB|cv=7HuZ zoco2OTYpOl6?CT5P4BEJh(_FiQDpwsD<=$g;@5ala$Vf z`_Qw>-L?E_fvo0!7a7Z)Rkwjmh2s_?|JrbGoxN8E82Kmg8lRXVg?@reVihbpFbSIU zw+O{yAt;$OO9dPeF^%vLbg32Z#2{oB)Y#N!{t;r9ViSS05dgsns4=`%jX=N0+56j-rk4 z8d>!ax$b9wlQEdUU=qIWpt&RB*bp}ZwDT)Y(ZW`<&n>+&3jtCgo+dE7s1e$|xxY#j z2*~|IHuNpCr~=J)>lKOJNq9d?4>FqVEvU@Dq;qfs_a7?tM6yAoKm zo{Oa>rWMtN+vg_oI|{$)dLw3N0O)@IKLFZ5CBG~UL0&B%o-jhaJiO*gFxpq@g5=sq ztp=!z_?}k^e=zY=!8|Jx#hg9>Ugy1|96sx!#jAb8 zx}NU<>1LXgQCpL0V^bss=Q7Flo3Tzp%6zCQpl)i%{kUbvos4W#{hF(cgodDL1QU|Z zZIe)6_O?UvJDrz$ND0#vOaW$5$bc_~Vo+@jOY8R@l4hvomQAo2xN&XAW-o^gVh~dL{ zg!xSEOQ$~CDtY*pDdLbtXx2jM7$m|WMsDvhX}JGZNPaArGe7%{O3SxB@lBP|CX7uV z>G(#v0h%2wm+&7gOiev6#w%dph4v;*@^nA_GHj;890{52parR}>T7G0hHtM^DI3n4 z0+_IA99#vL%@@zr(A0qXK7~2F7&B>TEvShZXe=mfFGhGxv^H@Jm#{-=sh8MOzlSDI zUOK*WuQbBhDG$t|8#hZFrk08@!Ku>joPi?=3^7VHDGhKC-FD{<>iC#@A2RegPu<`` zz=ePdfr$zM9ugPn>j(6r;ySMN`e)aev4uHZw1h7M z(lVX>WWCbgvp@RH#6SDG`dww;B9_VDSwC}cGBM?w_k1?@CXTsQ#vSRs`CjenEN8fU zS(l;WR=%%RZ)Y4+kKx{#Z{}*!RJ)ouyqaL@VBVQ$^WFL0q&MFxujaeC^1Hb=S7#dM zyUKeL&(z2H-F&O{$~+jD=TP~XI2zH8Ywme9-<|c+IpP@4Cjau>ab{rObKWzMUaJfy zJGg79VW3b7Rlv*yimjMPGy?SaqJ{ z+yFbvW5c=mLj77FzFQiuSO%N#19#hs*qNqE2RpNJ?@hx|6_sOqz(@DNg@6lz zF++g(ROgqdq;dQA9+1wTJPl?z%$N*tcsEiBV2UBW7bell!N%3JrC2w2y8dy^DnJ^$ zkjhBr=n3h8)NqleC6w8Tl$`%eXX?ewppr_)9PKZj*MRlO3nqIWhs3dMUr5VM*Qg`M z7?{GII!I+xGJ7aS64!4qii#jIvM0|-7*1%)ZLr}`OWl=_LBIGR-P;Ul>g?Xbki4fv z6{Ok0kmQ=U38WuB?trg^HQJT}vo5xHo=UirI0?<1B2ylJ zK)R7<0>ql9ftxoaS_UK^>cOIi(12=bIL^VmrKW%vK4-Kq@htCFYyL zurr^L-dEp|%tza$@jLgZ(^We640N=q`Z4K}LVsNCkeBVZqQ9v|O-B4BZzh8<2Rzh& z1I&=5A@Sm!(Wa8^s_mH0iht&GX}*394(p)#g7`E|*tqrzJqRMb>Y?*Zba>`u7c@wY zO96fo%5!U|f#AL$KM0^tid|r)x3@~eBXS_lz}X!TSM7E3B4jpwuB{xeU5kVej*NZEr;#VJW((=Lk_SxK}#XB)+h z3vF9wj-7&};2CKE(x!A`c>`ivYhR1l&=A?_W)knrXJ#H=x=3PR4CGN}*(sG(YHhzn zyi|9G)3&}}|4w34+Vwei2vY6!0ZX!dC`JWK;(~-Gl3CEd9!@d#9s=P#3k;f>5`b4| zssoK4j>CmAOr9LUmsILv@im2{B9)Cv%BEuvI3|I)DkO{S+Z+gS%NXw*RqnU#>D zROTqu(mXITK^xC%e!$>@ihRfAkubnIR!km4v5V>6>Ylxp{OflISZiEdz}^nwDYtbkyU+;XQo|SnIyE7F6U={ZXTi5T9k! zuDjg`jxB|Wv+lU}V8fh()E39Tf6)wVlDA9ptxeMO?K`Cn&QcjDT#%2(VCx+REC`x) zwjm1t+~q-g3M9p~N%-S02 z#&#j#LcoQ<=pjH&tT43j)9-HutqK|y8eDX4?`>|9!0hQNaG2S)3s-ytek=#jUZg9s z;Bh2j{w~;YwM7?@WU=Xya@+}iW2&6Qn%oEa5{{3sUx0uF%~9HIDFW9Q>CeawE(BZ% zTr?0+K_l#oyx4ON;LVbN2i-`4I{FC(Qc!cI=au0;paM05xP;9}434?-H?I?!0!bj? zt^yd@*{)tlfgG1KkXv^DVacE9ggSW=wnz6$8%zO&FPp0kC4w&`Q;>#B>Lxr3b?Lr0 z-WNX{rg2m5BeSCse_&z+usGDgxms-BVO<1jtZLQh9ykywz&RN=&a}5l=IJ1UyIM+n zW0v{s3rO8TG9HNAH?3WQ3+GB`@q9S>n+fSMNR^@P)ffxavUJ}~0tna>l;b3^_n?k( zGTVyj4F2Hl9E42MO=~4IqXXj`kvN|0u`&r-=T^~$z~q1c=afAc8{yxh2nI{fzdVo4 z1f;10FyBC?d*z0J3{yJf7PVhuU|nw zCTs_yV0M~-gAE?2*+QC06+jqL_t*GJk{D9R>{XCsl1Xot_l~ zLt4@W+>lN)Jn*l?1aw(*o$8{8#b@+vn1IF8-`15{j$eI z1Mo^3w)*>@{yh$9=-&r81%LSjghv3cIylZHsC5kSf__OKJ1tR+^%Q7A-;7pieEeR? z>_1|uuDfPsIGWCDP|YG7r1=_Q!V2S^`w%+4Q|EGEBsupwfi^g`!$DLXX!aV8 zBq88+Bb#<&%8A>cxw76>TA9eW}l{=DD= z7&_2kF=}~dfCEYA5w)EchPz6800|vFd{{pG@I$%oy6a@Yf(6(=SjcHK4WcA^=AG>l zgEKV$qInYEy4|)Q7OO%CK>WnD_2$SNDI`V_e$qKJ|(S>-7k$GT2=iPdC)s7 zF<)Zm9*ORriveob$@F! zq?)lN0ss49mP~DmBW3nmUFyzODkv*tJ6)yk-%e)BM3-fNHo)Zc?NbsXA z<0h#ISd)GrBbttF&%mBL%`r4Tc)LoQvcD`M2Yuq0yEJEFnev&Thw8}>HjBsfpR>8F zGqlhWFzpgvxdeT<(D`-5d$yAYGU}uhCRh}USi7td(`p37RnsybZh^MlJZZiCI@QRd zSrHwJqs!&|#ZtNmn@GUP19M4!*qEn41N$RJ;Q%=I46j%uy|29wNAydiVZ~)IBNJ3D zy#i>L!s#>81tEy`Z`~~+FqALJVB-~zl_ofg%Y%-k`5`}~-6;U#g>Xd>2W%R2Fp~hp z)B~K0IGk&^?h0wS>juCz1e}zW?#^Cl@PiH}F;5dgZa6;>;Fu@ghk3}}pFM*P1LGZn zJN{`Mkm8&sfvFu5L?8NL3WiK3YB6yC5rLB|9^UnXksgD;2nyh+c{1V}6NsO9Ks6f@ z^I+(gV3L6$x&Nrcw_!a=~Mvw{!^oC1csWj$bEEooAw;r`ns2t3*Q z3ka6bY%g&saUgLYcrKY8dxd5f8fcAut>SxF;=QKS@+j=5OP{Fy51U4uN0Y4ZJ|@VQ2^s%!~v+(Zkq-DKrn_ z^vNfml)wACzmp&S@Q3oZfBU!4w5C(Bvy~aC6i<6d`d@xavPF;NVbfh;C&vSu<{n4| zdAv9cRZNB-sw-i`Qt0lM?k8b)7tY?AVRx2HkI2&bx;X)66#vrMAeI&LDN-Z>T;K@= znHbo#sM!EQZoERZjs0lzHg+F@(3MCBJjLsmrh9I(Ro;=2jqLSs0jI@on0yd0^MM)} zy{~SN03_IHKiSh7#+b$*$0G?F{82SenHG=~tfxa>zIVg;LBPNoIcmQ!XBWof2j9t* z6Z@TO74T}yO>4mLN=fvomn=ygO0;w80Vfyxz;v8FLmI$nZ-P010Bre=80;}cO{J-S z_^_Ii@xsB97n_p-YPZNJ1v~0-_y9@5xn=IaF-TF@4`$koSl~HC&^ckZm-izDwhil^ z2TVmWWzX(0&K*~o9O|LP)(Bhe^pE0nj%tV;XBAZo3@>2}E&V`;{=?Bxj4o(nN;!4|ZN_OU4agR-85T@U28 zA4&b?^R!}FFoYA3$X2=ylEJBuK9kOPO4`4J^$Qa3mt?T#erVP-nf52&22JO+<~{q~ z8SHpPGSs2@Qh(W;^5Inxns29HcorM{9gwC2AwLFz4rfvB{pcZ}a~k-K2T1v2Cm_9U znF8}r+MP^yFyVvfTR(go5Wm;WpCxT~+#q!e=1AWw?@D^>4(v0aDWwNkD3_=Oc!9nS z$f%(vW9C$sbp7;MiQKSS>VZ>C9G4aueLuM|T?n`kxG)eiH zp99Bn|Ez>wCByyP+D|4G3-n==nT0xZe?RP*BJi4l(=9UG`Q0gcKU|55j8jQ81)GvK zoE%cmmM5gdVFqcN4A5vYrc1f3^#1d6K>EGXcGoSCI-%rH5Jc~dNLrHqXI?=(5WG|a z1+ph(birVLHgYssPKYb(#175mrRBR1DpRMBfN33^n$UiI22%fxH?FZv=`ikC7pijG z36KfV@{7L`fH}t=RmOYY{aE^c{<3uZ?|)*on`4}P$txFe+IxjV#q@^Fat0pHr~K)o zu=P3b;)l_NXraQ|g16et29uSH)^ad&W2|$loRNDosUV>9kDCG?B#y6_0!)|1UVIyb zH6%>qF!NMbFAewJ22)Sh!0t8=z|guH#tQQdLc6Lmkol524D%+RYy*>W8<;zA+zN9p zzL_vn!~7jYeP!D7@@(2P%FNaL0;D!6rLTeM$7Al;_>gn6`Npetj_N!eB7fE+M=4~TzqIgVYLD^dCsW3mWMha#K;lOd~W`k#D`v1HT212SAITj8{1bdFZd<+LmbF@0@Jo=tnv1kKI(=es5LW49r(`;cX~-HWx@2Z2(XFU65bei;9e=qq52a8P~crAlt5E(BZ%Tv!NjeiyK} zDPsRdy3lZq$k(H0s_yM5Ok?laapw&70_J=*%6lWJOJ+MmJ=Bgvv{{J2YdCCCr{=qf zuMvj&Au@&}ng@(_Jvk6GYPdk>Vo>*#h)-g_drJz~XtzE1bvF!-jM4rfXID z(aXanjA0|ec@8zXw3D(QGqMQospxxJQXf z?-V+lM1;yiW+t9!fpZ1xF#VQ{8bEkDL@+94Hpsun6owx zD$hy2A_E?Hg?(B|W~KSt_kdx(TIV=5armA7mm)AF)c?Zkpyh#sOa`RmK;IW3nAH0- zXy_j9mc~DLKxsZ*8!q8Fav^)xEo%ZofNNy6;G7e@XBaB3_0|17Ul1VN(FZgk7g@eY zQdcgP#B=XR>Y6K*;Z7Ux9sk##Nn*H9f#*+w(CeV<5A;TSl+xEYmsg`7XmH>CLjbb;iBa#FG#ZV{kt0VW2x2k?2d7Uo3)aL*)U|ukm3P3I^^d89~h0&W2lR_IV{O{KZ1I9pR_;rfF$=Eki?7c zf_VX{yUB$8SXXZTai!#b3DQrr8>~zLoDBOSQzf-wlk_i|qf(d_fetu0L1wp?gF#<& zvBTehC}idUcC@)Rs85jI3?wTJ(+_~W`%o(c*arx)ZM&uS*DnE{I8>n&B>I4x?oxLW zc0Hkvw`>WV(an(%Hfuph3j`oFO2Wns;{XB93%eiEM^8yN4n5MJY}JetGiFFT%zZSh zTB3d+Xj?U4m_*}Hw424`fdKI#*Erg%ZUxglG=H{kECTIdBr@3e)r=+U<;cGV&nlxG zl8-bUliKt-80|eO(M}&Dig+gjqun$YXpQ*G4|581oOND;J!ds<=Y2(CDka>?K7w>n z7SaZo?xj4|y`h-tM9JI$LKBZ`Y|Vk|B-c;~9S~RWuMy1UENpeB4jq#eneT9*lRt1= z&Eip;hGy)-cU&*wRm;I-pN@KFp*=w+JL*8miT;FY()iFF(t^WS+H%ih{*r;@Yw+tq zR3m(XB%!%fAd|-FMAhIP;Dd(m-X(R5=c(QPvM-Ry4K}Ox9G*6~xJGbnSDH|}7@Fy} zVQdgEObf+}oKM^ffjP^yaDc`sv*&lLk9rGDK{tHG5I}#B4kpdh@yNXpB(M$KG8Nwi$hFKlwa$YQcn&6o^$bRr2@ZtxrHBy;e%WKMKq(+;PwHij?Lw>Es8kR-udfJ7yw z)N-9PPjeCuJ5v&vJ_U^3DNtu`Q7J+nB&(G$u57J=;jn#InaF)s2oQFFTMA6Jo_~EA z8>_ggqZB)F1;Zyacb2rnv`if&9cdHVPu25EINN!+5UmjcoD_!iv0<9{;(+!;cK;#q zb~H&Tnv(F%S4()=0?j-hHFBik5s=S7VjGC86f<`|tC2B)k!Tj{aRL!`^Y z>1X=LNt@BW9rob+)FCR@EnTA~6QkWggs2T#Iy|5<8{+ahWa6Cft39u2x4r)Ig_3;l z6W~`?4C|)ZTZZRju5w;vL}& zMu_$+;e7Y_D1wPjZ4dGl3OIZ$ zfJUM=RQce^j!%YX6z0rwa3j(%mn^1Y}&L*a#Sk< zEy_xa2O`ppoj=SN3=69I$l6-)q?8gn2ps(uoBef{cxb!1p8+` zn!jM+NZ>_(tsib|3y`+S^+qL&lb7rX*jI%O_&n623Xo7Mq5pK@!(j1%$?gL&?1w}( zowuoEHJAf_Fc8Q*pq*P&hNB4gwnhlhR%;O&7*x^sgSp=H;GGg)zE}yCL8fB3&?5hG z&)R)lW099ubQ@--(F!u_M_-Y-7Tdf-dZ1xIwLqG|U|)pc0J9Z7AG{#^<0Ka0#IOW= zTtV1>Zoy{RBDT;Q&IyJb_0jDY1MZ9as_O`Pyw?6MPh!~X-E&yFfBFohBKySKP>=Cv zYhO)9M!V^45EhhP%6_?Dcu>`L->oXyX;UL6*7?1%Z_qDf_-9~KxfqM%@Ex!n4P23y zrrQSL-%-|>rfv%Taq0cX--rigl6l~TsTnWUO&_$AET@Xo!HC9vQ5RCO= zG$BD8dbED)9toh$8PFaS3Lx`12^;tMXj~euSd5%NQ<$K03lFujd!IHaa6O#3xIc!xxmU8b5S zYC@pQ6i1X?K^cF>+|>Y08sa1NFXl}noNK3GgFk=z6ohDuq$m0fbE44OCtW}O1@Odl znf6ytDBKK#WpV@28ozm%`6LrHIIUgBx`U{l?9FrQKUxSFyv8{J8a&_Ej{|CI_kzie zgRB5G<1iO^Sfze06t^LBrehkc>-`^pF1=4e<2#>~B%}z#*Iz9y@Us)7(|XQV20Om> z;Qn3^2-vXa{5JN?X-X>!{z49>6};>ptYd=$`kn%XB?w0L{^AAg!lr8{BGaAgtA)$+ z*t=^0PN!)=hJmXu;^Cde7`N^<(inftI^Z(e#|S_-SFm?Mmc#6%C0O> zzvHVx(dN4;XEbG)G+*siXSVtZO+wJQ0p=fdeq!Asev4vFNJ3-w3XWj4TDlX11%Ap{$box`$xw&m}D8)$L;;?8z2H<4k751DEvZ%paD`3^G(As zRXQPc{IW{B9AbouuObkHUSt!wJ6YbVScjRwyg1*9!`NT2K z%?rQt&tBLk1VAxgVz0a_LD;ctTD#J!vppv-RQ>2IHM8$9)<~@XqYbE|CkQ4cZD-dK z0Dlr(Jfx#J2|6>+?D`Ui({P>xHR?Rns3{4nlHqy810j}zt$Q-0y-hf5p;LHDi*sx> zlq3#m_vDuCx&c*O!oD5PV8#^tWGq3GInoktphY}5ILg6ktTBTZTD@GReD@oWQf!hK zm?Yul3xRJ*kZzIa^KVMSoi_kx%e4l&K}Wp|ZdC%-)N?F#oJ?uh50z~-&)P@!qz6H- zlGC8a=#(h|6I8_*v^PVb<-mM*!+C&!4S&+giBCR*U`rU98p|!m%G3Y_4koUlxfvdW z&^#UQsYMzjy#R(&8E2zB588{Gn44!aOl1%M7|d4=uZ3 zS#r}!cz7WcRM*;Ep5soqT(HWx1zlJO*lPtZI+hJyV=Zv+1FcPo_1@PvN_y`BXjxBH zlXM*aq1iL614zt4#-T4Au7`CHGOGjal-|Az!ZQ6T1+PxVktJz+nsZWoS`DwVTsNFw z2mtQJ3{VENPXU5{9tbp9KFTl>6sJ~HfxHF?YZNmn6@nsvqRBR^rtzKQrXuNudNedi zA(50U4iJh__^1g`LvJv>Xkm7X(XMu$&!Lj0+;}`Lr%s)QwTK3pHqAbmA0l6-VK6+p zA)*cY+LSw7r1HFWL{jlUd^ne~9of0JUjYQp_Ps@coP8c#8G~j`e^%%96ij zp@;|92|!?s(1eNm8L*@6?lY0n_ZH^n!`#dmN4d>jLT+kedM7T~-rKm}m5{P!Fex zp&1=I=iEM=xI<*jHM8h~F(=nCfq71iq}ID`7UJpLAuxt%et?HQ48#LuQV=gwGMj&R zr%XvQZW)bI##Fz?GuL%8J9R_D^-l4K=5*nIP`1_!YIS`tzOB-Xb#t*s;NQ7|u9n8| z(7Bk%DDz9DO$o!{0_%+peGU#zvuCPO>4w#kJ=rCluf8OSH{XW|j;w0WvFHrmlSx8#bmCGn z?5zzu@?`Zc_O%f0qX~rsh;^Fr3$(SUbf;l35k?%tG-;(OtiTJrr&*aem=ZCVmB~YE zk@Ifc`jdsa!5V)Y&yZ%%?K~vK>#xy1$b;EZh^Hj_-ba%9Xd7^c9|vTh1&o?;Z&F(S z{85;a0>d3ar$6U6@@fFXo|3uw<0n)Lx7ZzpBkn7u5t^z!KYLCB5WY~R;Y9*}PG2=8 zVcMf}+B~?|iy8vjQCCV%L6&{T7;}xwIbG7SBYb{>~ev{`>P4 z_wyi&w6#MHF0&n`ixiAM@VuaLB(i_x#2`uiZWq*QDi@B~<3m_a+~c z7vH&I;zNLa%s%UdPny@>-z!%yn;}c)cMKR;Y=s^qVZZ4E?(OMM$;M9)%PrT;la|K% z@|a>AAI451m6bO>+%MN&FKmdtpbWqu#;g0*DfZvc$29DGEz+4D? z_d&HY&i;4%)c|dnE3p6q8Sch5p~8+Y?Qa%Z;0rg@1Objsz%bj{Bb`sZD4895l&Mt8 z&}0(EKE^Exeq~Tbz!>s^LBYAeF2Oesn4sCc`{ndceP5-Jvrs zikm9aoy#-wC$l{;dzN1FCr?@oa<*~20`nr{9r!i9X{Ur1FVqcleCwBb0K+jsgxmO? zyQL1=ax@P>Qz>nC->6!7J+H2Z)MG@Np!F4?nI)YN<5jtdnNPkiCcUt88+-XZjKKix zKEk9Q&G>;)5t;?N-%A&P3E!lZr$7Y%D9Nc()KjO34-ESJVI1&KQ)WE-a$IQHC(I;6D1>E#e;t?7?#qONsVIqba9c8}- zcFlPpAHn#JK7~FbQUdPr;-H0Qrl?Jq+P+)zYp#G9M{L>?(1jg> zleIJz7{J)3KLYxl$Q(bd2U1)gmFa3Xj3!9xZ@os+n?J`J944+=E^QCrX&o?vE>G;- zrw8{U^ihTY9G8Y8^6=NzO3T-;SHXl74!C=seg$jJc1c5MrtQ&t;j9w^fL!ws-`$&9 zpt~Ty_I&q(hG|~6N+L_4%?WM8#Fia!xc(*l74?Jez*@z?14;@TU{gkIdS3_DzLm=? z9}mD2WZL`cK@WX}f#XMmJ(egWH}#2!bT8Ta#zyJieGonZL0@vONaW^GHoKJuN$u3u z^Ev%mh_gtVu}U!GyxLed-%K(#$?m2BbA#~=bKS&ceg+2B@@Bls{Q1trt@e%I-7qmB zV8+JQ-6!R{_idE_`zNd9|M)?N_NVDfUX}3;2cZm!WLCcMPdnt`<WO#uOH()V z%vgNKz_Do3I=}13T7OJN$eX4^(=ZX(3lrQv>>tw*N>)>7Shp%e1;f4ab8XMsAiE`; zuvtipGLZRhq}!cwYRlb?JuCzi(PL26Lz>P=rZWME9c#0X1#PT>1D0c!_GHaK14GCQ zX8@`7o27rj9BG5yYelZs3>a%kmtHytGPv{_KfWziW*#=YB;M$#C;R0gl|GOV7?+S- zRW3P^uHq;RWWt{F!vx%NV@!u=SxDS?aUcT9!-~f^ny!R=_gLw$5mzZ=YVIIA5?pn# zyX+&=!^F4ymyeE;tOusih>jl{e>&c{w_|`n5mK^bESCLRj3JNnnuHy14+z?@&Oy^9 z3o~B+mS(m2?Ssv4FPZJZpdQL`Eb^XGt{zAS(R7J(@HD^~Wn$M}NqoFbGB|Lhq?nfn zN|Yqh1ET?>@4PmxoH?0DkaS3`-y~5;;b%f36aSgVb8g z2Ry^UrPhj|eMR_;30}EanZ?|c#$JE~qZf?J5}cx8yf>}83XbnSmDqFd$h80P12AOL z()pX0CHeM;3X?Q8vCSAW;l=X?I1#P2Dibz7yO+ZSgn1I`>G9V;#M+g{9D&oNBgbLO z|A-!3!~;QDF^GiMEe?1OL^gxX#^hzY)!hQlCZ&KXez^|8@w0hzfqN|BBIX5qc&b=7gz|MEWs31_FrWWYw`1ZXL!y4d$ z!{PQn`lixlWWZAkH8`ye8lh99pm9|IjD3_T! zbVAZ_%FXqGhn3WfA_Ja&M0~T_fj^H)*H5380uIfau3M#ahhfH)GjVS&7zF(AU(*CT z#}VMP)Qv|a@#zjpK`WmJ^ZtcXEPrtjkO<&_nc7``*zu<@nx*AtSF;j#Tp*li7RsdC#u;rhUZ)CiK?s6tRhkFA8!%uT&WyUwJd-v{>-Me?I zAH|t7XUNKxE2W{KLAGz-Atz3pkQFPI%k0^+H93V~w{G34J{BoG-`?IXJ-xlMbH@%j zefo^FwYAFf<;!LIbjxA;@#Dv3*RC&Q@#4ks&zOTx#?AP?OjfO0rFrbwu~SY$kRt^6 zEMK-vF1ze9fW~6jTYGP3t=;>H1_6#AN{i>QKY91F<8uEG=gG$hqjLOoRAxil-%LC9 zWe+6a4;}52HVXBErg>-%_O13HrBr)Av{(-u>5_(UP@1q8ymNj8mZCU0>|o!ryj8Pc zT9dR60`oq8reDr<#iSmz(SkWxBj7vobaz}5SR)q9Y}M(;qGDk5pX!Rs-04k_H}UK9 zp<~@z&joYZr4eN_kg4An&qz}wBu9_;NNY=2=FVu*Z#Dnev^ys`={;%v|Jgea0J*C3 z-hVsWdr<`mNmL0C0tBK63DJyb#-=#NxI1xhoH%hDC-22^5-0EF#fjr2PU0kX+`%@s z>86?91qcvL0#p#HAg#9V%+Bo0?7rXsyZ4S}SG&@#>I&vaJ9FojbIbNqCfoP)y#;#hdGl)pAVtDF z!N=6jJ=U?-g&!DyVL4V6uLh7xx>Xb8aPyolu~5VW@1e02=FQn$D#EHbpP>q7RXqrN z1i~}nxe8`R3|T3RW;7=9hmSv>%W=>_^v*)x7(|$n|BM*C2={a3PwvM%!}gT`z44sW zy&F07Nyv1JrX;d{ZCG%MRb$bWSVwYw7dPvKB0W z`v}UlQy3L5Gr}=2u{-a6*db49PoCvv3b?2d6vXR>_X1X|br&tPmj8L%HS$p+4R&(M^_smJ0ItKyAQWOFbxQ{rS zUEhe{(c{Z(-DcaazZn4tG^nI4OY5v2VSoKur&t%(Zf$>my)}LHlUVlF+SZ@lZat4L zC9oP+zLX{P(yO+0+3N^8FR@0f7#(6G>>s->z(H_F*ymmNI_DTG`rL=D?Uwsc(5!cF z42#)L1WeTg2CN7FyL`$-7qWK&d6r!HCa(I#0s!W3fKulmAiaDr+a0D(0g&YxQ!=^6VZCB_9#t|AYpx3ds50Jp#+%!v zF+r`%Cd%;opz<>dG6nd)W$y?1+@_vUu*o zqc8a!Fir?%n=UyA3+M{Vw6tSjz&ZwhUxWu>Uw0SqOgDQF^ZK*raZh#C)Ez(`33I+EMfNP|3Zd@j}cH4=+RTav60+ z{8O;3OUSN&`qnZMd=Hh^?woVak-P_eeSsbs_~!5b;QRKu>#obYYWBO=ea`;r8~FS*42Q`U=VSD=NCkN!Qbm>yRZ~5{S zws`S{cEuG}*{!$U?DyPw<1cK=lqvSP&wZZQjTmv{rJHZQ#jd>a3YrTVXdT=S?UwiY z!r>?>pf0Z_TEDr?zW?GjyX_07+joDx!k&3$lMCE~j$ULhz44A+`5({Nl*$ro;%`cQ z8B?!#o#2Hl*KM=U|L4=zp6<89YD;Z;L%D5BV(=5Se=tyTrQ4haW-Q$Me)pDTcHPaZ z?V4HjcI&3Nec`w!`}^NtXzSnUu+#qGY1{nG3+)hKX_W2*rsivRt+5xrafz*eyWOt- z#^bK^DkU!o!+-RJGi@etIIq3gZ1cah)UG+A#%_GA!+!LUS@y}x0^TaBbFMHWKA;j3 z6HzCLm5PYn<9m3gfj(5pkRTil61b1}EhD<|%rnoldGqGs8NW|oGorE-ZraNf(4c`? zQh>R>_I7K(3*iJV&n~$(kmyYCVC<#<|6etR%#w zcOk@q6A7$+hjGQrteb=rGa?qjNDmNBVi^%w^=KqejWAo@VCbZ5v)pdemBdVL9o5; z#yc(3yp^#BGbC@6UFGTP8rb;pZXi%lCbOnVz!|i{ATDvZa)pgod*UohE}CcEzj@5z zsRTjQ57VjmC$$KXt7jc$t#>|X@%2wxQ4qAevJ;M^uN?F46Sj+{w3{~0qLVDwMMbn%Yh^Fy&XZ+U8 znQ2+_*Zf$45UQ9s9Q7A31Wt%K2bc}@3r_9~3ltdh6rkUV7n71*9&VcRl31)~ zP$Wt4Ego?MI_dH%Hj^bV|$yR7M=vjd1Y&!zCO-zbnjcZIx)_BmBY z9=1afA^~@f%gTRNck6l1Y5tVw#J==kjmk2(kUB5Dsmhq841H}~tkcZ*(VD9=>mJSX z{;-bu8=TRe{2oLX<2&ifqn6de}n<-hwY5h zG3+7Tci;VX?MFVs^#*%mB_7+P|M{Qq5sbCg{^oD~)`ji&-~WKkpMNHn@+)ob+YG?dtLD>i#sdXcI8 z>dE!?=NG^`@$6rG|5^L^yr4{~$ba7WtbOhJ7wqSMd7)LRTpJR0?I(`6|Ni3{1IiKA zd5B`|^pr-mq(MGckO{s4LX+~b=nv)y8jSvcGCR$3&n`y7_Gm)bv)l?#k2wmkaaXXv z6jsFDb7tX!zaSW~>R-84bIg^xP@sdI0^vjkJC7i(&wAEww9ZGKvBYD~Tf;{$bK$kD zTid_`R^N0i_8kP}dzlDKxapPa9M@gKy(~<=0tN}%#Q$_0;_gb=E}@r{RuZI0pi+M9 zQSO3XF=HyqtA@bhH7cU&>nY^)qVt9CVJV;hcHIvywPNO{hO_2|^OCQI!#;DsE_n0i zx3PM5n8LOXJUGI$x&9E{#G)VdZ~CDu%W4o*RvkUVl2~_jKlchQZ%?x^)jM)IZ-01S z9#K{obXUcI$yjIYtKPEs(T5{=KiP$b!f(xSc~QNngA1+puv{6iLQ_DK^tEF_DsPjK zCgzkNp2M5gPJqwxAG!n=XN1NoA7$HR;vVrl+E~^vI^E0A`}!IyJ!-mDIuwI z-|pG zm@6E}yaa2J)-J06CTYSat_YO)(K`=7_l;h?*T2<{Y#1`Y3JLR3f?5TjFCivQ8v?3s z)-KD^HWIpu&qDZKgzIjGjchA$2|Z_=WDV~_@Q#~)C%DB~tfY%7q4h}n(O$36yC_2` zs93jSc*j&7e+&U_yDhy9`Z8|Rr^|rAC@KzI>|K+sfTbm6?_kI2ePbKm$6oX-P{QJ&G9S2}LayNHm5s=U`J;4b%Cf0+N}wbt>#(^hrD zQ4Ytk?WTJz@#r(G4Rn7XO8Ywr91YA;HJ)E3D4)9Vf=aJmZ{>JoWq~Mb2coUx_6IDB zkyi}En$*j$TPwl%ny$LoGH-7U;+}}$yh}sMp(KHc>>`#*76XhX#+qWg0EIw$zZB8| zqJVf2rHIc9e&s%+c`Z`W-?f>fn_h+7F{E_C*pAUr07W=n<`Y|#ua&MC(qY9GI4rLA7yV#ggh(FO3YC$jd5_n%;u z#GI)ttF%vFcD#N4xn>u9Z`#^rzd-oD?z5-oAYHD#=y>~+hd0ruLI%~x^Y+?KW}Z&< zW^LlQa{I|wE+EKi+AY>w+7ouc_;TCQny?ahq(4}6nBDetApGA5%*`*}=(K-HO7@37BbeyqLS+~vF6*+);bKfGnF{R>buV##J5UvC$jd1N4b-~Q@7Its=%zNZ=k4BDl84pZSwkVW90XImd1W^s*qRDid+ov2x#IwbZ`ghXZ1) zma$N-ffNWQXhFtENF=BTVL)~+S!Ue`+xuEueY4v|@VQC^OX=noi$Cxbf;J#v_U_a+ zuv~e+iV(^bu~CrlBffegjK6jg+yKLogA38jA2FWc<~vK-;}1N+=Hpo_nRbX(9Cx%; zVx?Sh*r8Z3;q`iJRMSY?x63}_vfV}uC*~l_R0*hKYq|blRll$R2d|wgFw^~lYy%dccYs>#gbHvjZi-2>VCWW);&WJG4v+$hErpr&tB!I~va^ zgan!O?;t2es2U0hym)H-C`E0hZ`xhL_DTXbmP{OPT{quPQ}*D!K)^0>dr`m8^SVF! zQ(ka^-48vEW%+umnRf!pj#)PDGgkw7^Gk4~5q|T21$zwID0=xGe(U{Wu+<*?kKgi; z)qVN{)`#Vx1SvV}YTYM6KV@)X``i<3!pA@8!uB2JJ8sPlh&?Rcfqq;NWULTwt*22g z#f#vf#$SFuo>~*E{pNeIplbsbiZx8_D@BmT5VT4>_6$M6S6K~0_w?p1TmwVA2$nwL z`VVyF4(9iZr)BN#2cx#-=eMCS3i_}skTg!|uTtn1VcA$ZZHiT$G|M6Eiiw-y&+&X> zv=kzK5S3Y&Jl};FErS5?TgbafE9g@a_r(oRdaJ_J%K!Gtz0ayIf ze_hE=8GWrIE`@?TOXyyA&Z+JVo!sya{4U<73OEc5ljbz>HziU`p#V;@F2SRui=m=lCEyzr9Jd#NdnpRb`uQi($+)OFb9eF`RET`J)u2nf zf_G?Y4&S4o*nL>!3bxVT??v1$Y}d^`lkbIc4JZrcaK4Cq^{qb%wfh(o&jS5&+pV|T z4}SPF>u7&F_gI>Jv(lnP3;lcL8!K%(0{Wld_$ynmaFHE#)RDG)`EtMZ@WYSVxBl&i z6u+I{;@Nxr{I+c^Rwe@qQiSQAftQnE?V?4Cu%f@#{_M~G)c;OCd7gdv!&f_;jPTw? ziS0WX&!X@##wg%jn=-AzqW#ua+Q3bZ+0s=l)|1LuYIBb*UGcUH+>`u1XJUn8riTN< zsxbCAwGpo(`eFj!=#c7?oUmQhl!f`J4P~&f%-d0lUdZoG_6f3Z*Qp=f_M-jUqZ_P_ zJm*dTCpCG`%fge@aXlLvC-w0=g0S(7ck4s^nIJaHUSHc6(o2?UsG=w2(kT!s|9LqqD6r3o#~l1q95W?mBLyLb2F!*i2^Rl+Pi1XMu%PybdSdTb{Y=x zctlGPahER{;`!Y@6}Fqdk}^cE)<(4#>&l)r>n#n&sRvVKLt2ETiCnT3Tq-6j5;4Ls z-GU)df07$@57y*8%U4?O+6|P7ddt#8bUaWg9EVyjRF3r8x2$~)7Vi?gWAQG*d)Wj6 z;)KlAZWUAYgMRXS=|vDJ*YhGU21iwI=+qBHRq4@3SjEN1xTi|*+s!U4A28N-R=}tq zaZeorZksnJ=PDmPCdjK|Fig`MH&MQ1U)fI;6`ut`4r7e@V=;^d-|<1(DpF`+Lg~Z%$1>i+ptoc*x+-XXOD%8@UkmTJ<%py z`~JYPJ?g8}UEV_JZ5_mm84oF-!@-`Yo8}=Y9Xg(Q8KF{}H7q&}3ugi+vwk!zm3HG~FPltn@Ui-WJ8gHz}*^MYOLPeGW zs`q12D*;~lNi(f#?rf`?c|ZfUl}`pqawh*7|L zR1B}|0{Cf%ngsA=6PgeLf&s5_ucUVuQh@?vg#uz3)Fqj-WboqslVj&O2K7~WhA4K9 z_^b?2b}~4TVoGDEw4n|IfJ4d0d~KG;onT2d&J?^mR#|1$tVx;|JD*vGfE^)v1IlFb zR2&c)wBR-t+|SykWvYze=4m|HvKyNbe8LwYye~$fRe}duDLiv2o?K;<2+WDnTnaJa zh za;K<{KFMkR12+>McqSS&{OQ78OcJg~dzi?2T-iVQB~N>R)R$j+-v0Z)zk?uM!qVWj3oba%e*EJffW(Sy2fA0lr%F(H z_~A1=@T%@gEg?20fmCM-g{Mo-fLVsh8ARR#f)$5LJu)7}To;9s@ z?b*}(ymws$>i_T4^9Z0??`4yaUGJUTRBh`Clv)uPB=N+aP5*jZ$fIe{@PB)L;Sb%S z6yBzTT?^cUM+%<>3JgsF^)d!R@x*!$e5RY!&vJci=%)_oSuGCPcn^Xqn6qdAaxPcy z?IY)amb38kAt*pQ^}u*{Jo2<99(k6|29xd+Iz3LX1teJsCSQ1&)dQv^v<4g^r+s%y zoj(-3=U%d_0ij8o&4Xrb7oH$Q74CfRYpW~;W^XsxzGX8Hw@NJEE5JZ@d{;IOxvn~> z|K`6=L8i2k_r9+8DCHguevb7|joFC7Okk;$MwwF55CmH)!TPfpA%+Vkql&1WVI7m3 z-f>IOel~OsSO$AOdDo*yqHhK4%n*c7g8G~QB)YgSzt#3({@PfiaaT>Q+hjd#E|TDu zW;Y=`PWRI1br<)-oCvN%Rx+{`8wK`Oh_A{ZtK=*LW=eo78y z!dOYaiQs(|!CsG?VU1T`z%C2SNFO-o^5l^vt!ZN? zp#()MLNML);M1079&Eby12*xq*I4`gPgokEc_pxJDU>T|tOtdi-rs{|k^~+ugr^Tk zz(1LOK-UqDx{|QN^(WW=E}%(Tu$ne3Tl{6Ag2Zp!lMiUBdK6=kCYN+YV3<=d)98UPGaC> z)^D=jbsMez!i83if>mu+ee4kg-n`1%hyf6PU+73v)e65=6$AueOf+o?y*>opl^6cg4-1A8Xtx zh_JVt)|YjRQRce@LcFY|mmXeYep&jBpNqPu! zN{o?{W~0=eYCY>vPCfBFV+PMJ#*aKjV|f0EFY+zqZ4w+kaUo|Jswghv2dKC%)_G~#=$4Ht$mU_-v_MK%u;%m@>B*Aqg z4A-&tG_o>ZzkY*X|Jv97+7>K0%a31p;RXLLrMyZLCr-3~`loN&m%scc+`rz>oq6UN z;kCeMax-*2;)uhoF2r45vSbM`F)eNdF9Ew!^sRSi8H-OMU{}D^3obYx%=eS+5`wcz zDF0vo`E6?kVnzb@LK?dih{jHPSJM9Gq4oB|kIuG>&N?br;FD$@Vt?_4du;itEp`lo z@H)D|FMqSbKKG$hEQwJ5r}w^Q*2O-F{&?ubI=g&om3{AySHW;U!v*;_-pBO~c;g0m zD*>CDH{_bdC(*r=z{<>MDzn3Et_AKk}MiZup$tHqjW&qO9OZp1<(SK zc>PVs&J{kVuyh5zkb5kD;nfT+G}uDsNO~HsgX4ki4)j)nh$RFXQheD*->Y z9JrZEEZ-}D3vs-63Dm=kwJA{mSqY_62x(I=r=?i<)SWuVt-SrV=pAFdpHfb>tj4T1 zcb(6?6kvD)6(XT>aTCF~K60tm%-+rzIQ_zUb-%L8T7Pmo7KU4_6HMgt!wwSYPwLLQ!x#g~+d;l07bW9T!(*rj+bc&DX%UtMXb(@xwj za96oUOaJhGS^f)_sppv&U3mo|0y^xf`XZOsv_mH&^en-6$q9~T+k+u26>H1*sT7bvE0{_^uKI(+_7vWlur_yqWSOs%Nnoy zur)4TWW8X)R~$CkVi%lcY4B=$x3;)PL@%!PY370KmKNYi6j)AB7z8_~3`!BBt#V0u zBSmFD7@(M&1j352=zjC=eo*g-Pf#Gr-ZwYU=Ai%*diQPZu!{L}Z6cWM8h5=|zh_Z; zsXoFuZ@Kdk>%QwDD+X>L#eG#XXY6iC#?EtLKh?bE>lI3l)JwD}v`Hd#ucw}}b}v74 zf{nj&vB&qw(k>EsN$@TOqAP;vFX}rIVkHQKD;N}qbBOxf*s1ZsSrYnxANbJ~bC0*C z4=(oD2OiHMuQsX8Tdm{q=K|QS1bCs55kRO|^!YcspK)JQg$GJ)Fdt>x3H%6rM)|3; z-NPqeITt-r_%2Z3KvO{0yjrWZu8PN0U~^y3D43QA$E%L|J9C@7x3qrtvEC>UaLw`X zXyQdkGH8%e*uAiHLPA5<8+q?_g5jQA`KI-Cfx|0-yVefYzwCOf*m%&xocvo3s>u>G8KFR&?x274}Vm*}Cw_t>I9 zI6=Pn#yj>-GHWNz3S!h`*rSzT#u6uqug+Q*>RBGoRJI)TJTpGU;u>a#{PPI$_`6>JL zi(A|x|N7DzB zh4|y@>(PcbDvG=~klQe6>BG+!Rq?GuF&F-fUNVM~7c(fUZ=55#VXZ4`Qd#lK+S(Nb zqbYWNd+L}?dCf`3S^_~?^0^m*+`u(m7Q(wqdN&()jkA{T-(>YyEk^ixvK5Dr5xaVP z$m>xZxhTQC{?z8OT9>b)m+Qy*`32APIlM|2b?YGDXzRaTZ@t%C zWc3SAa{;}A1Pdo#f9eBSHd<07rGYFFERMs*tfr4)HLj#hP_#)clAAu5q{Rg9lm%gy zXCf@#{Bn%?SOOY0!x_9y+HMyvc?ZIM&1Y;$35ry8-kCQ3>Py@*vhCq#2&f9Y$~mW5 zZ!>K`9eWTY$0pPCfHg7ZkQU4$T9UYDBB(=8pY@Kp?*USflE-~AZ#Q-U?9 zlh_4KC=e$xzqeWzg|Oh!oKIm$XpALaUXD=-7P&GY!JxvGzXAF^dB&DoESL^UvJA{;3_KHBu!Vrd>xRY*&8D2d2Ao>C4t~!|fOn zB;123ux`)wvf$m}&p;SI%z7{iDpsJ7y5fqf2!vW~&0CwD4=67$x24a$xZnc& z-uJ$5|MIW@j^O;q_N6cViT&(nKeumx`@gKdzCQP+g zdVT0aSNrep|KNvUvVYiS%s9rr{`G&bYp=c5YHRTvVQe08cS|Wd+edM<)1FHH`cXSLru9IGku)3clKDl;u(-;lg~4MccHz$7DJ%2 zVw-jN1nb0$NrG{ueC5lb<7;gF|2fy;XUbU@}W~wfk|0kN19F9C~x=*=jtw zXV#Y4f;oXACm81a4nec*>x*sG`c_cLvi1+Z+u(`Kfg_37;O6Pwtw2gmVU8q0~hum2{UL%uAdK21-bDO*Z=~k#|IdXcM@vURB6< zFHu0k3Gn&K3GV0+2ZQ_1NM1uP_3o;^8apE$Yx{%FVVmn!J?q}K zHn199=;i@%nIC$x*7%7JS|dU^B?Zsb`11{*o_TAtwfy2PfhW;a;-uOGy^K5Y|! z?-~>ZDQo%JuN|Hv)>z}gV*7YDjt5E&-Z~XiCI)=N&fhwwuWAf9v=411tYHPGvPz(= z@YhWNlOSvN-pkLk2HI9$c+sXc;FA%w(_bWb(%jVzUHWMI*f`qD1-@gt>IYBZG(IuV z$e_$luY8MnH4p~I;PGO(+-C{S-k*dg5!STkv|Z7j{QBCuz;ds%n)fdV)?%=xbNr$x ztAC@kE-CC5Y_0`*9opx!-bZ?ef`2TGx&D zSc0`FhSFQYa~XiRCk|_Z^8=m{4{NN+^GS&@puCGp%B&I360M8!+H`0I+10EGON=FXjKufDP@ zm!Ha}I_f#SH+rrFn9DlgouaZw&j&9ne2zs5s2#^?kDZsIA);%-V@J2?Nxvr|l-FOB zCXHu}AnBS0S5sZ3%|9{ly3l!H!7J%{)E{)KgzSe+4&cUgtp$IC6e8UdG=x+8g@J%FjP35O&>oIzem3)5E`C8T${q60f^84UsF>)_2$CA-obRjQM z#_c1}&kwpm=g3WreggNd_HH(5Y=XRYdHL+sL%olItM~Z^V{oDO>dOk5?J)(^+ZaT` z@007dEU|nM|?&vKR zV{wstqMj`y@R%&uJt;5lRj@(F_fD}@Vmri`0CYg%$@ZtQ zguMNJO9I_d3qG}&Rv)u^fcqm_`}6u3Jl=8__T7QTtS_FFyX&Rbt(~BOne`hHLbI?- zv6bqxhL3&#Vf*QBkuI2-9-w2I5KKuJDyyoNU*3&!VNHOc8wo&U3SQiAomeB5Pdk+H zIc-3F73?kzcBq0*7PAH^`M8aU0xc2<#M1;YEvW@39SdE(Pl9s6`UJERbG@CJ7!8%G z@jR%#=xpo!)ji%8!+LLwBvUW=NN(Iu_fQ@WIGDuS!eL8*RKQv;#)crqMp|>RW504- z29(Qa#&-fCm|$4yPB}hk1NHm7ep>||cI{>7SU1?peJv992JiNJG>_>1{KRhweQV!; zzKy$hQO+Ae{X>@Tu87UQf3(Mg+a|B9DvKawR5raYfr2c?J7xWHUHxBK4`>w3WO6 z52jUK-Xl5m4KSAOfij7rNa&u3gHislb^r1KD>-_qP5R=eQDCR>F1VFA1aC9$;VDvC zt2kv2WhlmT2biq4Ho3q(;4cQY_ejcd!0!-N2%`1dZ~Q z)~dl8+=sxTuM1Bk#-|5?j@Fr7yju$MDgp!7%|FFGH9YX7at+&c7mpV%7btK*DB!|x z)|N;?>oG+riS|U=tIHa_TV8s2A!b|P!G3VFP59kwtcHG`dSxY^9~Io2wB(DgGVh_Z z3L$9*RK_jm#Vjz!IPPoiw8r24E#65GzQ6lV>+kGBAt?*WkjLVk^02O6e3mu7Z;|s3 z?LWDVIk4IH3sShNoWk2ymTnP`l2YT>`8VcSjXNb@OL(X1m#l7?zgJ{J6{nNTvqS;i&B)g-XG-`U5lR6cXc%|iTp(= zdM^51_#V3yh}u#8HwvH{m3Hto{g$P>*de9uLo4VEc!1~kuK{HWhdMcK&y)8Ju9p{LH$POwegy1+ zj9s+QIM=`6A`}Xi4dNr+6OyIC$-nUCj zkv)86;qkpg0a?>_-uZx~RJ3?^aDCa~0%&|1PU zch_aZ>C8|5^U?M)KL0t$X^R1m>CGn6@6s4h(U?%Ur-IOj_@w!WCpPa0mnz zBe~7@u32xji_gXl{Nw=w%^heF)uZq|GzDmHO`-~#*ZnjWd`W_C$dYV?o7vDBbdovHTKep65Z@VAJ39Op%Na^okoC4@pPte4=c_&yGOm-(QGpUzf zcZ}Tx0(1#&TX-h*;&LoK(Y6aCJWASRAvnxz-D>UkJ7F69lfz5PV3=lsyu<=f7ibAFHFNPmLr|ul{(_D!?eNI`Me#XT>NiL|4I(2@BTo zUYR@9k0peS;AAxRhfJcE`bi>X-OSZJ&%8o;u6Dt+3w6WmqN}XC$G!hthnMLV?8bA@ zmw=;1m>Ve2m2Z~9jgo{0!fUSk;Dt8svh#vXnhLqSn_p2e}pX2rmqak^?W*MV<{nnte<85pFv2W^;K^C z6?k_DzD9IW^XWOkC}j|;mlL?rt>8H?YsRK47TY%R(E2VojjUT2Qh(8Qcat8Co>!e| zn*{akXS|o5bfk^{)Q7yh&HsLb^`Y33wRUzxi&bB8wvE5)B5#9?g1ypSIpxD}ePnmb zxIdnw%qqY5ol4x}8$WWfwcY%ipuO?_Q2m4h?%qrYi@LD<*SSWZN8EdkGIk-v>b&Ve z8+YARu81gsUy2FN*w>*Y|Lu@`Y2ibP*!FI#Ty%<65lFb@ z)_dJUEp`ZATH3EE>0Y1a2=@Jpd)+f`+!YsF$sc~)TE2ISLzu-FS6TyQh}H4PGgc;; zHR{v_-&m{|J@CVVIxC$x-pYZZDMR60(pXD55#$#Jq?36}eyCs4Kjlq6?urX7%ep8? z8U2nUXm17TB}4G|IL33uc#gUE`i!aG#-$TzW9}1QBmSp9%*%N?RaU?AQot$cgm*UY zx>~y{fVJztbdjYn(vz1{5wIEk^li@%Ygc(+@EQE}{JeAL<-B``D(7&?>%;Zvo`^3L z?282D9UUF^Pv87kTlT`U_7}jtT=%)(_45*FMvx-WGs+{#M*>TcC7?@`x5^Nm%Rk=! zTyQ=Ap5e+}I6rnMp!OO#0=AcJ@HH1+4|g+<`TaY&9_2jvzQMnX!$7MNuz%xo^W7p| zFf~fLH$M$mCeJhf#=UkNEkt346vxlF6rLmh&G_PA*B0*Ftc_h6oBs;5%vQtSen{mA z-Syt#n|?nOqVS3lQ$QGgsh5dH|JoXhBMhrOYo1$>3X@igllMSb4+Jx}=PQ9g3OC)v ziq)2Q{#7i@*CWWzI3rXd<_FlG9?K()%@dIt@6ZUZ2aX| zB`#iI<+$i}Em>yu=baJ2Ot5(9-OhX=obLs4!tnzIX+XKWd@zJcj+b2@Y@{;pY{lvo z;TH^`a0Mg5x?2(pi)x7SNQltaP4LB^-tIW84Fo`|JbHQ{M2Z&6A)eczVuceq3M5v& z1tiL=2o&f8Fb9P+hyv zMd&C2TR(8ZRf+aP%K(_YO z6D*E}{fO(F^`YldS+0@$2z=ynqQU<|Oh<~phM;?O}CtkIP!QmjI_d;F!k_X~fD|^If0C z84tazkMf?9bztfEaR|=|m`p%TS3ar_=OrmFw7v>YxBVWCr6;WV(uG!c=1D$=v}^SB z5JgiDu@0ng627j4DY7ot7%c;ncM=wgeFz2HA9%vz4?g8qzIt}ACGv958)#p9!2*A8 z>-Be7$&?9JdfIHfAF3T{rSiz>v`G^DY&;+$>-@b|hy#<6=r1cvSzp$jGTS}rH1}mt zY-HHLCs7*qLwhL+_1*ca`w#}z108g#KO;p;&BY6_;sYz0xoImFrM<6XNs8gXm{rsr z7*g;3xB3v^W29q2!gj_~31hYzPYrqX2qI7YIcH5f!Zl*=SEi6-fdY9Hi2AhFZSfwg zKhDRXT+%$${>1av{@_Q%f)@zuiIjh7jIerFu)fmI zJ!vmElBDqkyjIl-vk;cE#uHbkn0Q+`VY`;~U}@(YMfLPaV7R|xTd;PXaNV`m^yw=t zwQeIyW|Xz$p*>wG5M;%aNwA-(=P}3tIzb+9RanPY6KGt;5=MWd9z5S#@es|tvjzT%m;&@e85gC28R~&=im`r{z(bWY54&sue!E2c z9r7)QMo}i}qxo~O=n-}{9~#Iyv`;Dr&aZCv(bhws6F=F5H?Csj02rnRJo%$KipErM zdXGML#d|tmkzan^7ForQ8#m7G`_0|xjkDI&)C2^LJU_Mz+w%)HR6e@CJMYiWw{Tpb z!0u8&N}+loQjmO28r08sH{a1e=aZyA=3|^OBt;uDLoTcBN73xTIQ+_=eEDmw1m7!V z@rv<~=GiD|U}ZR$@Bmh)TKy3-0^wxTJ0xW~;uc5H(ZL2@ z77;y5UI2R(w{>uvlt(`nUlt3_&SiK&c z*E=kQ;7~5umB$|C!a`Xp2#Z~o^0@^<{fLD|R;!i3H}qol*GoCvwNZU9N;(XG`+F3) z5UW8K#7polXbST3d%`|D_}K3)FCmcDdh0=<(8v8{Xx3e5qjH4(JbGo}dk6}Mw$Ms~ zme#u-cBaW;fJVx+50PczR7ioae>?6wLY|l_w5n|zLQ7#Or*O&5w09v?#*0JrR#U*7 z394zglg13mJxpF$;m6wGxH3!ED3dIwT5i145)VF&RqH|h@|fv9 zhTGI1)~~l>3EzZ6jexOVmb#nYVGfb9%(EZ*!^baPHF&_3V)ar6On~Yp$f)iIo^}hZ zVgd{`0Mj5>RJWw1d|k|GiN~G|Fh(^8F&DT+wxDHjZ_Qxg)x)M!^NQ$N3UeRT&Bwb+ z6VhOZf^pvOfuSgAsK;7tvt@9L^|?t3LFQLi3_1w|I_{9i{yITBxqG=5f0b>Qi8Y6#`rZ8ZIIBh=dB6&D*S>K(*?FT8GlFy$M$MOO|+J z4bN#jAP8lnE`ffoEvS2LZP{62M|w?tfc2^S#n*6&--_TAVY}X^z9uEEf}S#NWMx>7 zwR^=3ysuD>sXRfq7}yr_AdnD2f(C6q>rmvBvn~dGk#{k!<$f(}Tm>O>mut!@0if1B z{g%SK6KwEqJVIiXj4QojXJc!mb{aJ#V%(oPQSB`6szof~+WI zai1mVp2n#w@F}|#We4>-N_%Vmh~@;%H5CX0Dvy{Btt;_9dLw`>=}ub7A(O4)!xvl4 z$;Sqs7Cb8}JtmvRo#ylmjGbwS~fo4l#{8Dq_S*%Y8>)0P@PbG`-EMCTG zco&B=)AR5}QW$Do9aYkr0Q_9lnR5}4ccXk<5eV&vGd|FIfKWfXq1no3AHy7&w3f^N z#cDpa$Y0xX0PQtnf}D|pnRQo|_gYWIFL)9ilvMQa(0{+1Kh#cM z@1PIl+AX5R7_5851885-M&Ilq4wJ_*QS76Tml6L|#C}}ynKBq@q?RKfN45}WZ=PI- zKprKxV%rq6?iR!I1oajTRN{Kh`LV>ufleucy33ePx2x+& z5SMK2210C(H63}lKeJc)M$d619}=t=J4}p%t_q?fqTNWIF5FX~z*wMwk3$M_V8&2L z0S33;-vhtB_5P=<41+CJNS`S*TWGEHZyhrW=wAKXwe&fAJVJo%G_kB9=YZg-0mw{G9f_J}eod=H?21bo^YdAtLTdvV9?eQl+?+G+!$z;N0~ zRnDFTM&^8fc2rE7<^}q3MY(vMns?i`YO)5SmMxC>ZM~{0wWa#1qdtLtlk} zvks`4a_SgCr1+R0X1r@bRw^A=Z?)&1iRFBUTif>`jAZxg0!A_NZjqlakk%$tbl%rV z<))9Y3%ACPU16#9n=Q@;$Gr)L+X$;nDw+gNMObR1+^;4!M#Z$rC{L60fq0QenXWo=m9siE&q+)ksAE;&Ml zzbo+eDo0rrtuxNQam@pKQ%@KA<{kP8!CUhJp;Rby$VdA!FJnfqZb$Q7b+uuBR=%>hhBdJP^} zc(9aVNaSn6;4!<)%nCOYD6kJHpmhO0D~_jfN^7e;Z!jE?B3$dGFwtuWBA$A6wa?YP zD56UzHF|-h095>yo;1)iNn)^xAM$k~8UUjxxAuYB12VTM(DwF4ZkRk+lVosFI%@`F zYl5}ja<|p|^OaUL>nLmf$xYV#JcbZ2ud>cV$D_Pt%|sw#ic!M)mIZ39>&Cl@-Svc3 z%${itm!4x)z=h-zx4QB{&qQe$9xl3kP=1GVkz=64H@Tu)e2~%@o~I&yMg{^E$ORJc z3PcR0%fP3o-1-ZX8^YB|27r+VyjFJWR!g8D>UrvU`dhhGv(7dGD_KUM_(-s)NAr)x z&&KFCX%sc$*@KuwMOMK+q7tKlZeWV~1q;XfWz3rzB7#n>ye=YD4o*Uo66`k9Dq>GvZb}eu}AS5lk^q{4H7B?6!w+v?iRNyzc z>vu0(Zk@k*0?Tz=uH?ec2HUZ?)h`DKulTJzB)nJBqCk+ToRtIupUgS}7b1l9Ygn_& zvO#@2OTd&Q)`$v{Cw@qaT~5&Dnejp1E--{aE1xpiiV-OGr3p3(W4B8|U6jXYzGZ!j z;8F^Ntg82jEI1>nbTU)L7RRWM=3EO!7nLeh599u&b&j%t-mROH;0r`@^9a)&3#RT=K znR}cI&*TBqhPO-n{wJ_D!kTl&G;1VarL2)#fWzo#3^gb~Dwa-4NuV{dxC+M_1)UJi z6S|;7^_!6-=A0N7#7UHYop`%60%y^)`YoSV1z8JM02WUIMUM%3ce8xd*BY>ET7xaem7CS$op4ZV8@lhW2b~(^%!C-`yRXJ2R1D$ke;G|Y+C38~}S)KCV;$`|c- zL4R442}VJw3n-Z6iZwR=noE2muLdk-qmvV;=Fua+m}+5NDrQ5UTDQp(Pd>-yiOrA7 zf)$e#w8HQ#{_KaXj7^Y|)`2o$N+K(6&x5k+Th@8Cb7om3)^A-?mRs8mw=rjPfi=Q| z5?Av!#zG9QhwAxr$!D^+rIfY`o-F~s1Q7$0=rFi_2i!39k3PJ4vRK+HIOq<~%c7q= zGpwQQz=w3B5UM_V9+X@~mew{OLp zVEG1??VA5ffl-kHMMC)!<|DO%2khHP_GA81*jHpd8h?4Eb=+_l^9~mOC(W`t;OI0L zL=aU@^IX4*1_)jrc-6!S9^EIL{W`|iV4iBs6X9K4K$Of{M~X@+tr3r{8k8fRc5{w+ z7gMTGwF5xV3)g z=T>*+VuX_o4g=Uu?3?c2Jmz@W^5jS^#p@VF_o&wi<~I-ejQ~G}5Y*Sh5X09O>}cA{ zrRR487Am`c#)FiC+0BHz((xJcy3N_U~iuZGZGx>%8Rwt6VtO8d-njE$F;R zc+Xg@m0CmHLW+_uL98u*BajP3a)hYRssntww;pX)1axr`PJ-&A>K|SAJc0*)r;WS( z0_rVe26ELiQPMNIo$q4g63%l;+2eTvo2VE&>~AvL*gNQY9=uGH#ex17bWR}^C{Uol zo>M?GgQf>|Fg~Y99HA*ALWL@@I5L|lsJxl z$rY?*>Lje~SGz!5Lt>w#kQOe810T8#VNhi4URAJm-;w0BYovs5>~`?|V>MV-<_lMM ze5!C}wf2u1*mqc0X3GZHvzT*)Q43=H8rAM(INH78(A8Cm=I806mVSqvzJ6ehBm z=~wVl#zB9g8|am!)m?I~Tel15qZO<6%>(4&T$GEJeeP!FDF)N0<*t#Em+NYAZpsi5sND$d^|KowBF+xslwuA+#jhuVm zMDxyonub4gjrmOqyrRZZ6a!npW53N3C>(1kdkunJk42%|qkQt`r!X4{hRYEy>d#I% z#xd_j$4px%@F)o35xVw*9hm_RD7yvbURLl@KJFk`4Kv)+FO?Cip;$G->9bB@e#P~c zz^9f1%bqg1QdHgxQq*V~jpqO8y*w^_azOyeVmYz$Eo;B!K8Fsgz$&c)ZveGtR-?-vT*3b>p*QIIGI=@3xet{1t)^oG`OAHuD^{SoL5>UR_*H7!f=oB_w0C| z1PTg1nM9eAMUj!lk{jQ^pl|tn!^^cyN!ieWV7jgjWy5SQmio4=?_4;pGb*P(L@WKN zef2%c6f3WwJ;_(`60|vrXc^|^eQRPpmiR5!@$+9>f{D#~`_F@#D7#QJ^-@kLSGpg4j{e^2Z4|2|up2E`bsHZ0e|8tqH%tIQnMmh&$M;b2fW5h{q! zq`Yn(ea4b_6ASLEcHwE(^Vkb6P*31(*m~Q2mV9a%IO~&b9Nuq=d-BefW{=C|mhNtG z?2FN^3833p$778I62_x1+l`?`j<3<68Y&;ovlNxjIE=aT9jhUTrXc0IZoSWnCpW^& z0gV{0G3IhmE$U$s4a7IFfh=ZyORRd+QfoF@<3$Vc$bQR`tUG1Q!zJ~=vtd0g1#iwM zATJL;JQ&AxI2Xyww4FBYAb7Wx0PpzVlh*qdbRd>d%?UHN^EpwS$Iy4wBjk-y36Gt6 z`E~X&>MJ{@+*w`EyT`5H8%ltrdDgbV(@y-%hcILq&n@&7wQKM{cm{q@P<(8ToW^tKIflEQjyAjla@vbOl)o_C+a4-lxbH=>?w_oj;h?KwJ?xLW9iOya9t^y6_HxW;elvI)S6eASljap#^N4JS_XOQsh6yL&e1+rIuVAOpj{&2?(R}W zeHq3o4qEy8v|Tgb||Z!4DMSpMpqLwo=);uh2+eV53g{F!5f9Vuv%o@GFmKm)}g z5JZM=+C=Q3#ysZ+j0ZNHqPG}&L2Jm1rwVA6suQuy#sans#a$MwtZZAGx7A3CIpX`| z+TE3~ss;0`0k|KBe4*_9z?&460&Bt8R6pwP>T!BW7&`!)Sk;VUEe9-7aTT!wesU|2 zIpCB_MvlO+0_!;m;?>qW@E3V~$~z~7Ne~-DoBW=q+4M^pCt^j3vPf8+1)if9WrTun zYok1HlT4=ik9EEv9y)$<2kX;YfpCmX{($_Huf|DllAz#g9fw&kL{e_Zx?Qx0gccIQ z_ihFb1?xPo|4?lkl{5d_2OY1Wjmxm^?t^~m*WaR_)9+;MJ~%~v3rIF$yC(^J+{2pE z&vOcX>NvFd?+)|#Y{K(CzuvzDFM#o`jEG(#OxqH?2Lut|b%@GFAMl{A&^1d?Ph)JW zJrpo~uO$S?YLhFf=V=bv*x78?~s^$3s#7znGSNTf?mm@ER{QB*+!tDQy zBq$e-dzI#6#=57d9fz!=FqDBBqQ9%ndZC+O!QAU5e@yKEsubQBS++~q{?YBi_Gqps z5U4-)k=<;W)r{giNGKLue_=`$Fe?S<*xN1%->(Ks}C^+c!U(Q zj#UBik|35vmNiZa*&Wtp<;A?%FZ}HZjaGv-zJ%u$tfB39K7dDHa}Wz9Qd(;+)!*R6 zIT!9z?)dGGqwqc1%BLP;+iv`|b=^*!vDb;^@+xcWDg^M)k+w@<#m7ki6XB zca5>%-W{M}8ve2E*8B020tOZVl^D-oYe=LW;Rty=9jXv!=ISr>1uo)bCKg{n(0TI2Qrxbqu^}C{W;_q=2Rb#&yCm+?QB+HL%%K#ODY;1A9b%`F-2xjzJdg znl%ckK!H7_0E>whBNnQXak#C+*cE~M>lVu4qPVAT*x`9!EO`fk^V(sO#2nQwI-THD zN9SD5eWSx*@KuxhwXrW3<{EBg0X8v=p7Pn3DP;WI+FjW03iyhJNW+B-tn$5L?GBA2 zDm&XDW{DJh(gX-ygl8Lv(M}RTun0(^f_3}8>XcDS>>_^&-Gzg_VWYKt@0ZpMhIKUz zX*GgU!GHvuD0%q!(HINbQ&yV_s?~#=s#U~*iWAd%R^lP- ziD$3Zs9w7>H-zI|R@a(idY*a?{L@udz2Fq9!z#I)pwa`q1%e9cmC<<6d-Yo%K2&sp zgJK10;ZIiZ3MeZ`30a0&IXCQ1S@n*=DYPsTtVgV(*6~{%-h%uks2z_tf~=th_md{5 zbs9lznoVm8w{30K9BxMKq_V@5Bxyszex=v0r<@4oODn7zk0iNq%Z=POu6bo}p#XJq zV=02U;VAYjMj>_t^LkU+Q$q3A>y`v^8`TR%z+6 zGpu*znn1B98V*kC{|GjP6Wjjlhdh3WTOWsXj+6v)MQ^$JKC4+U*XmE76Ev9a@rE0m z>5jjZPX$3vCtQ88b|Y7n$1T)#9Pukdlw5)^ z34Syl1>M&P4s9=nD#4f-)K`XhzHn+EQh<3gfRU*Pgzc2M-AJUN1o>#h1tG2tv+W zT)F5Jt3BmJpjbMs0T=)Xt(nwJ1<#qRckYAPRw}%Jm@G> zFdq*8uq$b|5-=JiZQZ;RtmUqUECrljY$EvbBV8k;REI7l$4(NGSk!xr4XyLx96o$$$LJMVYr{tb5P^JC6}55S z)(%Sx3KpftsMEfn#V+!c0=|O%N%y^vvS(ork(YM4Dzeuw_>W@xwIC%+QR2i9oX5lm zi9YhwrR@VgGB0EAvoaPafj7h|UY?)CC&H%}qZG=Zei3l-c@Gs13lu0&;9#aeG^#Zv z4NS}z;Ry-hqclk19z7miE_@d#FiHwUi(y%@bw2QC`uLl|J*fU4@f}Py1 zyahRfU@!S1fmsRslR&5?!Ip$75!`|nOBVpq-5tAD7K&~$yOX^4_9a>Jh1l*r2r+sQ zDAZmAw)+_;dC*sXT|~>h{q6&uAI!)0DJWpB6{sl#hNAGQd$Ax6-X8GW8(~blz&>oWCUD!8cgIZ+m{ro|SeFPpTg<99d+9gUS}y{^ zSUvC|(Q3AfB9HiTWYHfzAjW%dCgmqfC^l)blx(vFqnJhDodxgRH%oh3Zfy>vq9<<&m@(0@(izh|kZTl7%v)IPA`ET* z)b@gIQHq1Roy01tk7pegMfWj=6(HLcFS6JsfM6`N{H!AgTTbZ^m0k7YIk|;rfy^iVhv z&@ca1Ki2&u!2onW^1L-&d$H3t*gyu?{DzSJ85A6yST}ZK#h89$4SfN4nd6SOdIF18 zB5>dKtGlpbT(5*P}T`kH-cpH;JRMechQI1 z$D4SV_ES~Ew$U8hh0-L`+6Iqvs(bat;ko)Ts~NJdyo<;*W~-vMbIbM+M&=_}wui#@ z9md$0twf<QWLnOnS5e=XLWeQ^}M*kV|TgHK?Kj?t0RL&O5<=% zasvvLPl9ih_{HR>V=4QcuhF$(lC0WelkjQ=W-PgJGs4!#gEdL{k2GnU(H^(zOV6XK z{SKX0B$z{9EBc5ZEedtfDtBKBPe=*jSFgi>V52p#*R4f)Eneqf8tc)j?-u)bvAU59 z^_B9$dNNjf#bRr^tU$jo~Egs36oDb*qqBb8*hTi;YjBt&N3LfR*=TX!E z$5;gfPU7+BoHrV6d?WSs_#;aQT>grc&OF>>7gWhh65hl6f!?Ec=l3m&r8XDzQ5gdF zay(Dd!0z?27WZ|>-7_#MX5qU)fdU2IMHC3vC7+(0c@HM0XnG3P0@W8|rmy_Tm%rA^ z#8k@F7!NvrZ%7L*zy(N|cTvaKk5!RNbDBVl87vNJPdgDytTsz5c?pOJtntDQy3dM3 zUsf;_afgD6=vlrR_jD|2!Qd-_QB=RyUlxY4gJ6v*Fx=&qz0b=vxWb|X|7As>Ac)Dw zU&3l|YJiQ*y@Cbs!K&3g8oh(_IM{wuXEC$cc*0V^JtPpK%5t*vk*BfdeA42NE(IO| z7e*jB`m@>yh|xdTDtQos%LYXIn84#H{U(bG7g5S9EpMk97TnA-UaMx^PHd^On9txN{>Fm z@%9@pJ=dy_J2HSO@mDZ^N}s`?z3pMo>1yq&7MVn}~z3@~^ z#!s}SkAKkWaa-41oU2n_jQ& zo*5`KGe8GbuyK;0R#UIuE6ABnuxRTpSzr}M&H(o3HR?c~5^fKZionWGBLMEl61;){ zyV_tY@F>d-&`HlDZ0B06&w5^3366iA$13nP30^u(uHk9*4-PXZ8M>GU<5(?c3Bcv; zJk*n-9af0dz%-4!?A$;Yy^HrqxtU;1EI(q3cA97N?yoNqe|*C1&*>y4ad91alrt^%+TByq|2pSA9-xD%$zpTRi4S^2w)B z9xbI9=zNBK3Vfen@4QWvANT0hdPgw<-USt?J{Uj|1=sSk9R8RwL3VvTJsyKVkUD~> zNx_Fv6~+mQD&DO>FBXFL@Xh|MJ&Y{utLDyj_(4Ja^{m}Y{HeJGNSWb@Ubs@Az`;WS zpWXsUnJxD}1*8n#=9HdkBlu$u3U^h(w@-ORdoO6JHpqiF%{!x>CdEQ}7gInT65+bs z6J?p0LI@*)*?vh{b!GJkGZt&8ajd}(tOR9gQ3K3OEy3kVur%$#$}jOG7{FLwvRdz# zq7C^Hm`*VT{pBz^l%wmpmmQvA96~OY)00;AgL%w^WZm+XAoI)B~6i{0#@G<={CWaU5mEKo?h`~}g4uq3iydNiv_j;K11zz@U zgog_DDPd>%l*v}fby=YFb%G0yb!IhIv+5g)t56Fph6gYel!jbFWl5st!u!H7*34sz zLOU-_NIwrW%D7L1gWAgcn3y-mN`Z$Fgh-mWDYE>Rbxa?^b_E{Gu=%N9aB9ft2ZGsX zPRJmf*XB3YAb62s#!NJS=v$i}CDE4hNN8*P3D%{ksKm;Sr5&+6ucDpG5OU{Rd}}_J zfWP~h7YT6LVGRg+Yi1uEv=IXKnv;*U>f?`c%Q9nI-h_h4j*##G`~$k@G_JRWyA)lo_Qp&L=s59;2UGC1#;H(>W{gk`mqUCK;HP> zPZIoW3Rd8!xp2WP(^0xMUUqgEz;{F7RgqHPCWoQO=;cHBP!_Z92bNIJqunA<;JyBVr??KNC+RKVdtp*``9YKF9rC^Y?A1OnS z+03S97c#2v^dY2?(8PuBgYp^CPYF*FJyt?p#(n5A;9}C2#;se8(Tl>qLW*e#exxAK z_j@VjwU4@`x~G)Z{XJ=`|Jui_m!Q9`|9*oNA3Dz4VAwg}y+pI2>N?!G9_rrFoKyRt zAl8^KDhXj^@cfFr^K$dsX!0!FTcE(+qChl%F!#&QMaDdWfU7)e8vKO3)DTW{k1WM| zIWN!O62Z-&Ty|mmV4gzj4n`N*&A`WDbWuq>ndZOz4{L*0XuR+oUza+6aJzN>=208} z(JQR-{L?Ld;{#SYXNDEy@vPVziWwv*yfi#P2f7%&6+-UjjuBux7^D< zQcBig66>*)i;B0CT)zo#>S@HYnQkfedZs#!CQ(Ouu=Sug&$NsAL0jK zF%*|afy6t2GgYjj#tRqXwb&HgoyXHekMGTIm%Av#sEtRPdH9^*+L{P5-+Aw2&et{K z!6y$rU++g+hunQAgz-}A0y?r6csN1yR2@A-WF39VhC0`DdY_;jWZKL~2((~Zwr`mGC+jq}MN zGev$1F6N&Z$#EoT9}QC(Ju{O03-=s^6p)6TsPB~sM$!Zz?0NddfN>g*f!P;TR4+#` z=nE$cU|NBA5#scKty??)6pO=@^>ri6YDA!sFQnNQW!YJt8g>$3@?XrYg4T6@_ZBSG zx=fa(VuYNT@qmoJ;+L|mf6h| zjxY61xfp8ja`{T@Mu1)e#fAD@ z7d-FgpWi{#V_hTxz7{B~k=?ab?|8Q+7F2GdSBgT;iHVn$HI`qohAQR+ z0to-~4i{=R5O7vj<-UfBKG44$IG0j_EoPdx_~y^&Gi{{urwiVv4Yl6YpTgoubDpfU zB#;)?{^U9<9@l79C?spxAUQ-(M0;M-i*hW1rE~oGSHW;y?PZcn+%~L;dJ)LhBUD!K zM*S&Z)KE!+ePK`g246Q&{;Yy;a?S&Csmy*JnKm0%DPVj~(0T4vZxElMvNfJ_nk#C$ z1#Kk3JGk-a3If5qDlYoEYcv?+eKD)M_7dQGjthif{*FE?pE@bnQ1V+)NA6w0~w*chXN-XiK z&zommx83h+g4bp6W8Ckq_N=KLzkYzWMfeJQn$us`B3kA>CjnqE#_~=Mbr?RYe%AEy z%iX)d^VPj!-em+)tGRH#b^h{RD?9l}=mG50x=pNG9Yel*sMicQr_Cw~s6GTR-Os;l z_2Kk^zY~QQz+wFoD9(*rTAQGe}R;(uW z%0!22Om-P)Tb%d%ON^ot9ufS3Y@?mpAa#8|r~woTFY6 zp8J>{&0du`*DdPdH@fe6#L@^^o36N!;MdcG`6i;*E?z&H%i^P?c+Qu*h=)+pl;mj? zbDgZk>(4k5o@larSXRwC-1Bxmb65F9^$YJyuG<4 zH~KmFTeb1}aS+E_z3tZzS_(spqWUt6KY(TFVTW47!c&~aSp@tEc)-p_p8>yrIlMEc zWw66L0;&woeW>3dJ^8$E2;%~&)^qT}$zCZq8mj&a(T6%PAi5w2bmTnIBg1-^R`mWb}Ec%V0^ zqM772(IPJ)+adKRDPFKN0-Q!%D;3yI8}5U3%tUjM@R(%<5S!E(FsP#afu{ey?0fHp zywz_bi+2RK8e_f0Y>>r!_c4ci@M3wol+Bw7%+xA2Qny(No4NiZ7O^nISp;kegq02p z67~mSZx`X7?_=WKPD9mM`0k>el2+-6+1EE4zoJqsWQw!a@yoki=-32?whP2{og{4a zhAZA@EkC#kx?*KnjJqpBI=5Wc#*zP0JjPIrD9~9kmS`mi*GsS%SKAaLFqY6*!Am2I zY~?FKUoXMc;wZ=xOTi|`@|wn`-6&61=12yPkcOa?}M@^5LVJ>nhmz4M=)EI-z>=yNsY{P3N7#vjoYCEZ*4=Ngyly z_NZwaP>u4b)W3s0Z|qXSH+KL<0@ghT+>~+oqJJqciy+EO}Q0+K=e{laeDCD z=?4R~s45f?(5^0Yr#;f(-3}*kkLGj*Tx|s#K7%!PG5ufgAZ|T1h?mNhg!8VLO7~e7 z>%jIO-QnY~e$l+ZdOf63?*8aNjY7-x0qx`Mktf8BZi&9ju|%vuk)srq(;>lBPw3x3 z3<6>JXYj&keBW8_oz;HBZSLLXM2RvQ$+yZSg>x!}1=~ZGWUgpHkyCr>2|?g<>LW!| zkzk6Hcz^H?zIWDM!QBVtr)VvKmd1(ty6PNNRRR+I#R-<1L;xU|s)A+v@XajmjuCrC z<&vp2?&Y#{LD0$fz%HmhTXep-q zS~?wGCWi97{v(%J(+3t?1)g=4GY%te$P1QQy4;GVjz`EjjIdn<)Hp=0Aj5&$(@(Y} zMpeD9tR~PY@m<7M?M~9V>1*UDAJ#ezePT_u1TcTYnpwYv>#iWKg2Ri}&r#+&^zD=} zi|1gUJQ6XO5Fg@ex!Pwyit57o!IuWy#}Cz;=RFvFbd7VnlF{VXOV;Jx%Lr{E`BPJ5ljCvqZE{zuOz79T^;@NS@d}04^A^MFo4k()-<@qj8KJ|+r0V&V zfUSKCeGZhgN*IG&+<|-S=?@qQFfGR(_?v{Un+r|;g=)QM4PsQ93ws|)W}b+_!aWY$ zXKf?Dhhc8|NITqWwn71ZOIz@+7Vlt+!|%Q)6?@-T2AJ;l^lAtpSZELy*4`orE76DP zvg)CiNiv~d6B4RpOHuOaKKaAYuBFOzGe>4WKT|EJ2;Wh9!(4@XF=H!#@;PduR{OW- z5v?-=_>r(s!v>l{^)v(+O)DytG{F2&uud#&S}d!(aOyn5y5L$AUJ2DNtyOrR7~Fz| zc>4vgT<1m`3V@7pLnR9el^j^Za~u;oCO#kxYo9PSS_!-dn?TO5{EkW1qUlHFMl>6c zF+6HAc}<<{x-?4`+|#yW&7n1X$=s=MU54O&%MR3e6QFwbOFAG>if>*Zc@rQ6Lq0>R zrsdi5DCZ;FV!i48X3o$)Dk*4X%tZXtz{Yprt&<}3L^}wR601SrHzw0A>&&`j|E7z7 z!>ez?>k1a){MMj}Dv3#h<`On}z9M{EV8&)5C^#+CxcN&86`OgN7NgCzaQ_**Bzwf* z=1RA+n)MNNu&JatxwY%whKu+x;MMk5MMfCVFUD(uvKZ1@=YkeXZs7*o3Iza_^RZ*c zfFJ(^T+)w9(d;Q2@K!hfN)Nj>Ew!{rffMx=eOdJ92qUckE zXHrEEV!)_pMN569&o#UoD~vHs;a={7nUV&Jtkgl! zjwLE>DB#g1j@LOb8$o@E->Zq=;Z*ON4$`76ghzP9O8Dl4O z@TlZ3xXgmaK;I^h7QnSIVs|vWwN;I#$U{V65D_~F1u)9v8b{**dg7*I4Ip3Phj*R| zzp*ZQ2Ng-}U!RB29UeH>&eL&F@h`sqv9A%0#e*^+m=^GZ0&m8u-#sS58IvJ& zpO3Zlu+%-ZLVRkVh5W50)H#khF!O@5upSpk?JH{(E55ZyPUt<3dwNxa-m$7GseB0W zPXL2bgka_h4{GM;ZkQX=;2|2=cTlP!-1g#|(Aqnld>(l`C}J4^SJz>?59nU2wfFL# zvKsmaWa7s*4>v;SIqZXcuGxfd z8-w9q^{eX;1ot&H4^^WSyf+TsGy`4`gmqzx!k~dz{{kVr7ap~=MA!BFMv<>OW~|3Fp|huFGFUff;<4INP6peVNB8~UdX)DJ-QTdDbUL( zz&X;MFYuGUJeV7-tJw23-fi+bMc~eC9ZP1iEx=-T*IjqX>#x5qWo2cEWd`dhGZCXA zK5U|B1<&gP2c}rAb?lXH?p{s-jTjGML>z*K>KB0r2Ti}iCQxW}vJ)3fGDK?ChucAu0mC8$UKCE08gB>K;jr|iRtd>yHDl(pdD%IEzFUI*WLiU zOoNmyx*9^yewH8^ii;vxH)lccqgGE8tka?$7RUu5JeX_&2&`+LTn<4y zz8PU{V96P;!gqv)amK_m?RUch4JiamIC`*gUZudD*4h+CGdNqaR4v$)u8--4ko8Zd zrng(3-|TtM@EB$;%p6oEnS-XoT5lY1Ja-}x>M#g~hg-#?UncXL7xEef@z_MwuHS-S zsQc}}ylt#iAQU&Zq%Bhrfw5u`I(ryk&a87B2MnSJmttBw@g2wEp)!x%77DEsacmg- zK?uRGz;gJ_Qxoe88mEsOEX6m>S6p@CnCj*_HE#>&RET6yI8W%J))MPyC;lQ+sX@Vp z4^r<3Dkz8rPY(+Ugo($SK(H|>wgr#o;f@^nPST37MCens&n%ZPV2g^cz1*^t1HDvn zf-(t5Q3uvX9liu>~;`wrF39!2=???TKo~*p_gY>}HXrBhUm!Jq zhQ}3#PwBODb$+gY?p3u|R{<;6HjWbrCaGYhMS2kP+hNA~Vhj|6+s-_#C9a()!&g#- z^);${B#j}`#$&A&*)8`#2SSjLrZrDIudu2mfCtSy18_b}-84r~$rnC%j8y#kui{T2 zcr57P!@8ahZ2WX6;0X)FVA@&WvDBllt@r9&sDG?_rv9~`rvRN^e&qKE4b-sffMkyz zg86lXlznocR6Mdo73TCb48XG@1gN|0;kIJmE`!4M%H?Yi_Xd53YnPMPVIGuCIHL#x zmU?o)XTfVz_X+ss^pea&nHlh+XW}=fS8NOrvE&^(o5)va0trZkWH&O`O~G7esh~oi zt9#}}j1R;zLU7r1c%hLdk*Z1w0=`Mov38&kir`wIswveyx)g9J&?hL+IGUZmIL>v_ zAiNaUCZ^=vaa_<;W=KvknzyY#W&=wh`Y(R*3#o!u*Ncg$xkQ+m97K25{Jv`O4r|>^tO z#>TNG2y4zkk_ET(tZ^gZ!HvLB@LJ;LnSrc`U#`}jc$`62xrsMrHZmU0mpUqFzteH0 z&7Uy@h~=h_0pGZhwBUyt%jd>6xw&O&&Ar2MtrocSwNEVv_rvy5Xif^Xk{}dd0N6M! zsQ|kZ07O|LfoHwgINCx7wm(5^&p=FKpeJ3UX=&J8;>J7-H+#aVcyjQ5%=;}Sej==~ z(GTIqk4>u&!9Ax}^;} zLlp-S1$MsUc~efikEA1@0_X`7+Vr-RqrHXK&y~CjfWwdas{nx;f4~|!>(=h_dwE6% z941|fOI!J;rvcLkWky2;mY-#kf79g}K$%cQ5zs~B39vuA>39mDk9Z0Y4DrovfStGi z!JsEf)qg)Cz7d!=si;x9p$9=ZMr&CL(-}XY2G+9ScXnEWvwDoPvJ%O>2ysa!jE7gw za7l-SX)+nw>s)#&_QqsO-5-6F0u-WC(MnG$;qH4STZDU_r&SjVv*KuJm^IpJg) zwr!9Y0=H)j8HBa{AlA3{;LSElawnaKF*F(TQV2@qa-mgqVAmd4@*;l0KnOq0+K2hs zTb3s^4?Tl*AtEJL&Qc3_|5GnPxL$%W2O{zxhl;MXu#AVInd=|q#@5_!#uT!&n2?81 zT45->m&-Vf#RF4kURuh*L9KY>+Jf-=j`VT z5G#pB4po41OJL27z7Kf6-TOgT6i;Idc=eQh`lgoo!uF5@@6ykO_mc05!}uarSC6%6 zulN~1=iLL+|K3k3RFU>4z~~WfOA7oV7cLo8m82#WQg_DW%JDrjoO83&!EzPAs-=TmtrmfkEwQl^y z$tnTdcFti;&e4zA!kKt0B{g#?B}ekKxVTvOuRV#=w-MI2C%>Dgk5NDwE?ekgn6N(9 zgkDo!o6#VX5#F&&u>m7CHX!j9lgxz~;k~BfRz)ZXB10H>?*JH+H{tFFjyj7%B}^{L zjP$Y!yVdDl3h*0uU>)h+m!D##ag0-;jWMJaX%Nck7{c}B@CUs~ZYK+%R7hrM<{mTX zL)=g$bR!dkAl;jpBbk6{$pwyf7T{UZiwkkhnsW%FQoR^KtRN7K!TQY$VSfVxqvc(A zuHt@MbCXqYvOe}Zv_9sKqh97xTSr>`hCV8nT5R^Xvn2L9t+griC!87GsR_lA3E?Dz zY#x^!^G^M{`=t7b7eGeaO1Q1{3iR<}li#pvqts74TQXo(7RClwt;N|sCbTI5tK+PT z&WC^wd0=J6Ky>CFk7k3(=0~BRR>3JPYTHVzJ2s+mK={1M>nA%Cp7~aRc zv`%mNndDc4fCX?S5S&l|%pl0z2-8Jgy#qk6Xl=a;Yl`MigM0NQQnh@Q)MGQPF5tS6 zwyM|Rzicb_*}zSW*VRG65rOxFU;7{f{_z`Y9gt5c*Ut8LxE?+H0M|_R@h}uMwJX*@ zC~*wdp#vo6>WPv!`8;gu2dE`#17a#fcI=0+3b?jhPu+Ap1=u&Bn2Up!fjzLqJaeRk zuA2et$!gHGLIr`^c_0*`P`wb?)&+p)qR_75P^Cgt-%iC5G2R&zofgAX^fe$R1mR^k$I^SN_E%3z z{n$Y&=u8_nNHQQqC3brpg4F;Z0zJUAZo=bHh>rJq2NX)}!_Vp3Q9Nh5TL0D|$hKm$ zQ@+ajnMAK93QL)s*R3nf|E16q<1~5z%4c{~XHWsKas$lj!6Q+~d$QL9(gDd^lqZpW z2jtlOk4Xed<3h%hfpViu^9S0d&x236Mh&u#Hs+f0;Lay>AHSvF6)n;^W{$d0rjB;c_JK=nkSb@E%-bi zp7&Acj-c_%8@IRbINpVtDP8nZYDJnU&-$v!Xy^l6`Owx~5}tK2#!!g_8PA6bhb+b_ zeT(cks)aCiGT{z};kb9Q8@Zc`H9t1Esc4oEpa58BS(iFfw zmBO#;#V<-2mhObcPzK5EC%wDxxwSj_6yUgq5|b8W@fyIj*2Qwgm_3$EI~ErZkmt-wZ16O@pN%6iGY zdZzTd?P}fZa}H8C7b{0{6G@?c<&%Ghd;L)jD4VpT}ASl%B-{c03~AP%dxyh|?tZuV5 z1MJI&B^@@u^sr#c0i+KV5)!A-1HuoM+3AF5(O$ZpM~)to2!x`9(5YFu9@g&XNETex zY3Xeg0gVHq(=R;v4}xCwp2&a~Lh0?-!6p9!g$AJFhSsTcC7{ABdjym%u(pmKf;An4 zV~SmS@@wC_YQV`5{gAwq7c|Nqd4^Kjt|%Rj>s7x-qF&k}VI*rDHM0FHrz zrQEYdis$o-v`Ey&^N|j(6MP4hzf=x{f&HEhEBrd}B8;2j zf#O{)p81ZGow$BcY3#3+sy{xBb*w^)=U%39NwjKgM(G_rM5(F^N!~_Ph2L(tN(wdW@xlu%1({20Wiarh?5O=6rDfK?%{r0EQ`~qv5N& zp<2yX*1hUdz@@-Rqkzr<`gZV;_|G|a@Sd5Y`MYg_dk31)5|m5_ig2^K6mTif8U<{@ zgJKRZUXCC&B#Po^+Id!>F#^rHfZshkDyHy8dSZo3IPJwLBIrt4nnhb z3A(zwPHuTF1^NmFz|_Y9Yv2KtOZLFFzx}QhKrl;zJE2sFPaXk| zxk53(8oN8@DGH6b!ScbCodR#G4wy?QWEfB+`BNuYf@}z5bD%(QCJM@EDP6hr6?hHp zw%UQYwcQEy@&L*uy!|~De0oi=L}vjYEv=j=I92O*(pVGT4M9iM-&ey$|13$r=sb1v zj~xSzxdBb)a~9UjZ+bc)a-;wCjZlz`(apQX@Y&zAnMcf}w331*jG?*CqhS(h@mPfb zylf*OIW(c@DhOhtfFUTpa=Hp5xfy2=U49E%?X&;T5;$Y@PzeKWK;yS`#rm2RqE#E< z2K>NFjlp$0ioWNGd!^{|senL$a0Nma4S4J5$4bXe2r;aNp2WXs17R45t4x7c4(ONz z?~*8DHt;$XU%bb0$u%|etWgr#wO=h*DRk(J;N~Q@wg+B~jS%}Kgi^GEjRKA;qpVmJ z7uj`iwJIbpMH~qA41>_T`oSlqt_%ubtl>TcA}3@kM+w@z9nPIrHE--_SDgFL_xl;u%Pl<tflNyJMt)A@&lX$ z*)RAmtoa%jgZTS|a)h0{P38M`k3=0%r9v115@=EY*HRuP(*co9vTY!F} zMi$sVD#v5m>}XwkdsQ-DD(htCd`Fp0f8t3zqu(w&9f5|ShO>eeMU{A)v-5r?XmDt$QBAfFiH;)Yv zOvYe^MGLGTf^h}VCfz)CX48jfD11=7*k(3+X1;5#jTCr<0cDdh3|46%oo<$K&67ic zpH0iQ=)!eCh5mcQj{vd7aA($ck!Ndztj*O)UuV7vjtn{*{qQ644MR{{n?4k56OTSb z3pc!k{ikN_X1GxAMbNNms-R&xgdWNQ1V@O%dM&t%e^4K8>b?C6fzi7K{SY1u@S;#i z1K_x-&=kTI6}+QQ@tC9qJ4P4!Sr=>G;m0{HsL-M}7zHRXxZkTl!w)4FpqoMvti=3K zGGHU0g}4eO3uXaIVW89lUMYg_l^ly5e)B2%0Q)p8A7co>`{?tSdkPggBOkCadB9`W zfWuVSFlj$Qex3I?knoQOrash%tO~n-Pe%%HUf|qp9UTDe6MYf+X* zp$U(#YrC)TJz9mP^=S9=$&5BF?DN+6mBu$6pNr!yf&j2eRw{b*2inSV8y`%*)&1d8 zz@kZ-e33GFypT|fni5ziW+Et4)sh$C^0?g+d=VC+y#gm^+3s(b z0;d`Ubj1dz?n#rpd6!Dj>`Rh?F1azY7Prk z&|?HvR}_xtri=fD*R-akuo{hBo;jCI0`@wr^C46X0~b{~BX^+Jffvv(fbq#aYqY}bSPimiP zU%z9o)T~&of|N|a#{@R-Q~_A_MZgq?;G|*aeo2G1Y2hW4;8ie0jy<|qB2Xk*UIpz` z-1H^lbhNIVD>&bw$#*Te7ryYH_o8P6tNuWRyS}pb6+K;iW z<2oT8^YX@G{@AD3?R5w=8V?4f}>57erilYeSz?pkUda~^@v z{fsgRys};@@LcH)S4jl(cLOZby$s-ub+XgRR`kcqE2R9l4@bVw@he_SFr%mFMM_HOi)Q<~x{wPW5f>ovW+qVOVAKEr$_ z1A)bM!#E=D_e*FmcsM}ac>w{}B-sUN{2s*Qsa>@JnB+U5T!%4KF5=+;qg?r`@sr{kQ9#!t(oQ4P{X})%ROOxL{ zx)g9J(8nlX&!0LKaBAZmU~MeT?4Z*`%8r?{0-toGlvBqY_oqt%mjWl70x<}4z@$;A zRrAOaz%~G4=E@m>Z9yO!CNmLOXD9!!G9LItW((X`?zj<>@u{1o>gBZv_yfU0h*q9( zi+32*Zsz3J5Mwk%c=e39vuS)xV|pb>uo}hmC6REx1)9aB9xDk=E1t0YDUMMz-XTlPlO?vw4V zPzxEk>1Pw+!9e9t*3iNFZRw`YK%<0Jsf7S3gdpAhKXJWPNN4EL!s}1?WxK8nN?ZZh zh0xlqk~!@>v@1vQ=S)=$@^l1=R1qDvyC_ zt^q(1Xq1q9>aB#prtM9JT!j3iSD_H1Mb{4;0J$e&i$CDn;XAiK){ty`=iu=IcYFkW z47>w{#lbhXp+Q)9(^R{a`Zm`ZeH`s<(o~bN$;DO* zK80?nQ4rdrJmo3WF1INz1*}EOo-jDQ>3?n0B}L$FW(UWEDU*=nj{DQ4fJ=eiKmjst z#Ldg~!Mbx5tUE1iz#Is()is*Ky0?vEGRQU)k`C*Zvg_wcCUAclP&EqSq6XtR4VjeQ z(4E{m^dbsy>|zrXT)$b$A%M%hY_g<7K(1EB*gUC#5kgxZ0)%l>OzU#p96JVl0+wZQ zxN+0MI|kugfEG;8uLRB{1eC?O*kIR5)t{e%yYW#e2IPw>>l~~=VD|y3TlN|@UJ#@v zpbS$hr#5JW@vUQ&d>6}yo>tr8;i2>(bg=3h@Ot3dS@_GED8#;vm zng@bb{Y{|&+~Kofx=B3mBKoGx}@u zthaQe94jv|=V>iRntQyd0(ayAP9ZHM6_=imkdCCi9emHwH4WC~*?>O^0{d0_4BOpZ zG)F(-8WDZ}Lpk#MM*xKokwOH?H4sT0ANeycRQ!DZ8(V>KKdRBA!lu8~+Fth8rX>Yq z)i1swK49$+_|aG4xiA1$@4&zXgpf0_PeqPZX}`{+w+9sMbx>TZR|&nvx{Kb7&?qy|5=EajF7tk@;qlP9u2RJ}nK|o*lkZv8jjRF`GF$iJnH@_?XrC85{ z^@{gRSjSujx!%4@D!%u>;u~FN&70`c^k);W7J^?^31wt^^p~pVUY6jdZMMayJN{4XH*@KGV(HsGrF$Vrj#X7k&ErcU$WGHu z8U@O9OD3ELEttFzGWxLD^f5pcEMJMKNg;a#Zq^i_GLTd3D1>v>HIVlD^jTUiQ8285 zyq;RFtU?*$E6{S8(*_0F>Q)YSWObKyGWBgWt+~9shH>wO^>;m7$s@oWC5AGCi>fdk zLS9-f6JwUv(%dBLrVktP1g+%Z8m(4ps5cX@)k7E=xgHk!up|#+17G*|mAFCc=WIzw zfG)EKB20&emf65~*Nt~u_3!F^)Y+S#1q<)3Qh)wiV^?TcQJ?d>%5ga+RSNLUBLOn`3-r_`w$R#0XLv@)%%Wo`Y<;9xXuk% zHUtNCg9kwIa73-%o0O-eb>R=nr!{@}-94x$e#3P>uxqcv%M?z(M1ltoOZmf#CAfB* z#Q))Dxa?0>g;W>bc;X*rn;YxY?tl1=)=ZsRzcmJw4C2i6$%--Rc zZdQQ*NrRFgqkl&pQi{a+}n1PI)Gq-%5S1H=nb+wVf@NM*{?o+ z)HmjBUEq#ocjrRg-CA9AYi2@pgnC-M8rv-h^nIoib{Aj?VY*XQW6N`1Lq>laNSSPM$h6kJA zcU4fTILlznbuRFMk>R?}4Fs>D?!r?t2Xt-cQSb2pq2sY~%R>LdBN7HJV#g|w4?@VY z5?Ff=OxBICE?Edp7FfMr1G}E^jW^o~ zw5!v0P@qn_N9xyZQY-f?1kvnlVzrY37gHyG4}1q&y{qLgt@2D_wGHEDU(-wYodIu* zOjyiCV2Q2))a?7+c0irH1rVYjRWDgC3BVwD(RU;01EEdmTYxB&EUz?ddMJ>SoWOUxMY|N}#T1|? z8NFf{q%-r3K~jwvBH38mLmwWL=zH&rcVMxl=spo`&~azk{iXLW!yH{Hv3-XnZQL1H zQ!E8~x4ahfI%A8FSIRm6EC~^g4*}f0@VM%=dkIeN;PHr+9>rW9hJgeH?(LbX2oXbr z3X50rLJ1p?oY@lrJvLOy$+^!YEw7n%uL1k5>StD{M}rp-rQ{z8%_CgrPwD*^X+x?s z(#X)N&7>!Q^q)pV!QJOZV+pB=ebbXMX2z=Y5v_-g~>H0x=RUx#XfIWteA}zqLA~mghV- zzs>XJoMrP`bMG*D++%wvkkXk_P8&;Tyup5tT~zal**K73ONUKLkyJwa9mFO^KOk=M zgLU^m&U-9BSWzVvudRm`yhz{Aq1jmN=IiTTbt&Ldz@`9&a|i|)rK>ruM3JoJ&A#6o z54s3g6(giY`tZSO<%$WRH`ewPs*_9KKJziT@xj>E1jd#4YFcl3OK=2C zj3)<7Hw3WWLcq@O8t&0jiB|8rfpTu5*acWFgxQ2Pi4s#BkQN&FiA*vqp0dvwi%A3- zDH!gKMD7Fsd$0-i0xE;p@D!YSV5v)7Q(EtH!%U&HAP}eZk5YG)yyIEY0{^g4XMXV@ zaOm?dOL)g_Et3J*e1NKoz^b3v_vBR=kc_Y!p6p!9YQ87t7Sz!T7?9AW9pc}%Qz_?U zcuD8TLEyJT;nAhUIUknIQ3zriw(nNj>f8wubu>}IK}CxIibxqRKno-g*fm}a{q#GlBjQ?QP8iXJ(H zkj%O2Qfr;*&UaF%S09x0F+(vY4wHI#%hH2RmG$HsdTSy-qsqdd!ux48?RB)dDw~!t zFgsyHJy{51j&<4xB})F3i5C1A*AtXs{xwg_B zWr-d6S14XqqEaxp;mbSl4cS+iIB%GKV`P1L!~R17I%R~;JiKPo-o5+ewbg6D_F1q* z%xBF-jn8NqS~u(3>uc7^V~;=Cq)bzuIhyyGa~_j*wFzzN+n5&yN{+gjXOhp^b#p$q zapPO^mxup~=d8N%9uvzk<(f8`d%SP%Im_nt)U;{y7Wu=2f3|62mFs+l<(N8~GE>Xo zIq#X2S~s4j)-ClN=2`dHNeVQQ-!6dt#Of>7-^Ow=o3@^O=xn)#1yYGcde0vplTmlx zBH7SRpQsdo`}@9!pOC}8ctR?_|9Qs4wrKo>-N zRkWGFZk2?9q3(~KN|b?^gENXhNjN19Nz`Yezk5kbTr5IG?M)V zWl-Q-aOnjSIZ`PNudapSBTc+zrIIyejAR2No|bd;fY8Ke+DO?@o~A<>9Nzh!1?h8w zXwE>bT7UKhtak|r46>kL$(e9A;vT@_i&X`Q;t)zGEEB&AKY!azXrqPQbX)6!O%`x- z>j8gIkHB>~(UWPxaNfmI zcGCh0@Bh$(UP18E=w5itlp-Lyb3HymjVGL3^>Z&t>223Z!R$-rC<2Rnxpv#@PnTbd zIUr6e@2M96Qm72M?*i`j{>$Efrv2XN;d{HN1(rcF^d-(1}ORou^@HcdMJpXkD^z;3IWA z3Dp}CN~I{j`!C?ddLQ`7nfOW^L*Qv4WKV>lgb)1>jMjb#CH!Y`9|jLXVYp*I-Ntv- zc>|TFz}crfEZfp3e5SQJQ;e}v$aA6Z@?RWzyf}XG3wO)icYjuL0e8v7dnTD@Oc_?W zB3rk-Eo;|pkXvuL$z*MEH1Bs_Ougnj=Why~ec+o+dz?p>6GK1eHLuN+8=>{iUGK@C z{_>c7{A0HzU&r!HolP4|yPWUk1H7&RZ~XSzv`Q9)ADJ*JD#rfGBvUS4f#+Z_L|zZi zv0Nte9+N-y=&V~5-z3d`p81@0Gv!bbV(5}uR$o0gv}#ZN4ISE(x2-(8iS*SQqv{S@fv*wFl7m?5yOUG_3KJ_K5= zsFhs6JN3KiO2v}S0v@RU1q3;R)i4HM_tU^|C7mgm^>W1G4gxgh5 z2vxv9d-L)n6TBLelgVy(rR}wVUPh%0=P91A4>1B5R4;R28EDCG-?2pO{2VAbLhnG} z-qC*9kyknCgbfEFaA^HUoc}0=O8CvX5N0VJ_5Mavz&`o+aIp@*tZYAef%*)|zdn8g(Z3X*;kXQhvqMkWjeIEr>C@*cq zU?{goAYl2M3M=LTT%IrhsB;eBe2cX?Q3XB$`z7UTSU=?@oXkX5E7gJL@mealBY>5O z*7_|tEIi)YvgAWN6))s5v7_*mV-W5AA4v5pZ%EzSHL`5k3$Vgp3wxI|nKg5oELd=*3c{ayYO(zF(I=$< z9=PB9_CL!N^XAAr{9`(N_=r6F+){aS!)D2cao`p6=gO>EGb96s5KQaVt(W&dI4FY# z4Upg8|B#FsJzD}< zQ>RQ(g-HZ(kV}>x6ynJH7`1J0fb*^z(cLCsg=VIK7;X&4NW&E4+6Pm^ed9$Ap=y{esYM{&5d%4 zb1Bf%6u>0TO=kpFEAfviBprcBlVb^EIhmZllNa&BUf^0{(41Mj`?r~>=n9^B-dKq> z)QhhGa1*dt^#OXq10`I;hOHVvQZ4pf=CF&OfE0I=O97h#V5H-)m`WRQhNKPX56tKt z5`?8#4sfIM5R|mxjm>~#2`QXSa-Qgo#6!2H6>}Vd*6Np5!(#g)$vc0n*3@Efd$8Yg zo}~~2!fFb6BNa7Lv-U0VzqA$}0}!r47~f<^#{8Ir3E`qvXT~$BH9GSd!srYw!F&nf zMOPB%f0ReO^L{tY*R_P+51Md~l+#s&?`$QRe8iZg6`oofx01hGZ(&_fF9!rsEr0rT zDg4qcz&anTaS15!Av_X=@m>hvExdXtn|S?XC7b5_?iw@|o+SQFZ%cU3`x5=|FqB__ zMM58{0LrJ8!&HKJh#(RS#HR1Se8xcCu*Hp7-J#(!$-7 z4t@bJTPO9Kwx_;s9+v_qiUMY?#xV_$ZDn^{t59lG+QmcgqJcq97%^Ksv!_Zr*8AYP zEtoT5QGFuitrUpEdoFY0SgbFl;(udAc?j8uKuaFR8Io$}s_<#K9r*iMTUs2(7 zWo4Co@t&^%gS<-a{n|ZJ=l9Ds5NQA8r$3jkeC11;hvmHd>M9ku(~A7DCl<@|&wdtp zek6C^u}GeO{sp=4!V6^k_8l^Q{8=)5_)rMa2Z|qxzY8Z%l+qGMydBhw{WlFfJq76Z ze)EU&#_FjmWM&)Q-u8}s^&jt%eftmaRPMk3LAmFi&&wbG_-84B;Q2p(^a}{dUy%EM z_bVv@dbaTgKm0fO?svW+qeqXFVM7PYk)y}tA}9pP z;Ni(sUVcm#ef-l9W*5olKKltd2AJ(Du9zpk`OWXtnxEtA5CrnK-g2Yde&=Uo?&UL7 zIgm~s9?3cWcpkH@%&AED*MIww{OCXaRUSf}2M-z~zk{%T>GLb($;baJ{rdHjZ+-Kh zWbB!v<%S!sQ-ueg`QP6?fO}<1hmSrwBoi*VQm(xGV!8A7Ta^~mr(GsbKKTsVc0FGw zt6yIuzxer2m=i>Q4(CgSv*BxAWsl9NEd2vJ<2w~n!^j>cFqOoN?_F{sXAJX`2#`J#*V}Wqycjx zHY1$pxPdw03Gd*39~oU1>%p700mwX0m_XInt$npGR6e#PrpkI-j& zg50bph3D|n@ML64$^ZGZ6im55f(Jg5ATaK8&K@Hn{LVRhG;_jgJY=`CT`kjRPShXP zg>W*p&%KI(f(JF=D+B3y2P1$U>B&CO54x43N2GGei-?Ve;Ks1nXW+whcpyY}?dK;t zJrf&FMGJz)72S5V6iuCE4FZnw)0QZwXIF4r4GOT&V;$s_L1+@fQAGhmMYy;yEZZYT z${}PfS2&T(QNty;dQ%Uqho}s^xrh&*h{h!idytS?p0mDP{Av{D6NZJ}@rWDZM*!(K zVx;&6LU4z5s7d0xsK881mxAe+h!?z0-J4q_fVdg4gNLz9!HPErYaiBOU9);pfys8% zhg2b~b#7_y;&pp&%fIkk2>~L=zwA}O=fE%to?8tF)E+%jA;k;lOCF4ulKhT&&VH7P z=NJ^a7OY(pD!C`10DA24$?mH>=>29h;U;OV|Bf%B<5%z!TDPNb#v9h*Xu%}%{P@Ac znz7GYR@d={H!Oj>KF`Y94ZyF|L`!MO8zVpb{&!@EEs!1a)+U*J!6dcjo-}EKJh$|D zS+jndY+k=2DU2RBZi`HsI6g`BqU8HEWm&Iv;UNP|LH6G%1ftC zmEC*y%bK-ssKEWwOQ*`7z58IXy;W|$`9{rStm%1TpkA)Ja=v`w^Pkh8qZ1~ar}m*b|7g(r@#lNpN#jStWDF9~B1B})Bm2eZq zCcNOHbJenzR<}MV@UkJS46fVSyT=+QGcvVcSPG_3k^HHXA?SV|7ik#;>ppDC8=0c6 zldR1WIK*rLuz%^R*w_M_k$AaGsT+CDf3QBxoOrJE`}lPVCsMV1wFIzv_GH2w0gU!> z^Bm_wC=tB*`I2+~S)GD?u_}}D*U%A{JH(Ka_Vzqpw`sf7EM5V?N^BG%NH`8QC*_sh zc8d2WLQuNE)t>n6HLKQ1?IX)1_v&d91lBv@3<@rTD>JPe)v7Zg^*i=R=CFa1hJb#Z zW5T;od$aDLZiUk?1cc96C~*a@l( z%f#l^hj>f=zrPCQ282bY+tiLRmZ%R)9;{o75QBhYyvM&|7rKD^s7rxvqX6b$8rcv= zD^iYtm=Gd|um*=Qj_V2@8L`p90)ZM*hJ-eh>q zf!9#46bRzGv_5dW*EUGrjnj1B(*WysZxOJoQ`cA$nf1VaC~_i zf4R=#J{2lOb1s!IplBky_gcnQg}D;hcR-Ha|CmH>oG*n_CMdj~nGAB(FaEdo5y91o>M4Sev{fmo>Wd6Ll zRtt3e9p4xZL96fOHjAr&{1Yu*u?A7&=sSLJHyLL3NrwdPrbrIq<9bd@_3Get^NtQa z=4N*(;8LJD3i!Z~VG*M{IxWSsM-7#X(Ss$jXOEvKI9^4;CCg2_LSI+O$;`Lv8A(f-TH$ zsViHzRmv^MrNAjn0gM}ukFXVfsb2h|WS%hqimy_PH3VLU@G=ir-u2^0VNBy#YGDiyl4x$jJyF-K|eHtu-9$RC#= zIHyHk_GOc?d7iEoiJY%%3jnDFL8=dyYtcjHxK1l4JE^ceAilDGQhe(I$)7kLn=0Jr z{AcDwleaU+E|d}23oO~ES3vL$jCuz0Y_83nsS}^!JkKp~bHWtfXCHtPmWqgq`~L>Z z#~{1}fQ<{mQx-N}1(!~e`nPwfg*bz{`XSh^xc><$xPG=2&$`&!gmf1TS)X<$uD5Bx z4duVAp#uRKbB=@&5HEb_sQA}y2K2!$jLndw4?ROlZoOJ^#*I>p@(_e3Y)=Rt6hcS@ zGWe%cLO->P3bNIMf&76HES*kdaNFuqKq-Ln5IT5Ns-9md;oTG**J2LJ5@TZnWggyjbd&y(S)b<92%D;yMKZ z7!{J)W8sAdL38Y2If6;UXeZUW-L#Qw1O(~CJTL$4qf+*nnMO|MhOzrMOLq;fy2@RJ~R;;D-EnMwdN|w)A0_-@D>Iwi1B?|?VDPo zYEx=A$=T$@%EwF2-oW47S4$K^cX)y(Dj+0>fU{eYej|ElI{3gA3#Krc`~YBQ;$aLt z2;7^gzw>dfoBhfxV>ctrq(Gf8Cm{%gnPO<0vG6u|I0Od{?5}Vw%%j&G{fQXoCa(z) zN^5Z^>>GJk8r_#kcM-}&Bsuyp?i*|qCE8PY#b&WBQfDH@B)iZ$Ei zXaDcNRJh9g4CGn^IP8lro~%j$S~>Rz6bqB{UD?@8A9pXeGF<>mqG=g?#`J|D9B*{E%*W$&`%D(~nrXR-r@L^{FCWZ=?LHK8Vu+gJO z$#pj@0zUgz6}T^k_5B?mze%y<32jpVq=KiPc}~{8u}+_fgWsk__brQHR0$d|Q9)pW z!?Iq^x@m?!_{X$?^fDd|tu=#V(~GfVzMpx%wP#wt*K|NR=Yb}Z0t)Gnz}>vGY4PT& zdvqz_QlQsSfQvmWCXH~3LU+1xO2P+=)oi#?ZjmsA5K&l($FON<;3VS3rXk8ban!R% z_8`WW&Qy-+imMZnnQw^M9^ADb)*Kmt!Wk@;%T`MCqa(m!%u$OL3Um^1uNN;Y0Ri8T zI@$HQZ__I(WT@LKD&tn7H&B2U9}xIO_P;OHFTO7Q0M9^(lkz8Cko3V|QlZ4tk8ChtQcg?-^r8O39+Dfl)rnsyxfH z=gt${n&XN$Le4NO$SW7Wgy3%np)3HVytCcMJ=K8=DriUZX*q>5HOOCU{g8c`f)Xez z5_Jul-wP}9>g6jXuy%(G{LW`okz2h4bv>|OYMxmEsI?NwJ!i~GqhYc?;2ZjY@1LDJ z7(%gpz~CH|hGnly)@2i<^kdg)`>SEO&-Km+!AkJGJra6z8-z^6oav^`eFr|xNzICW zk*Ezy#@XW}qd)i?H@OrzO(~#OwFneV{@n-OIQsq}%n69&MCByc1_)nbN2-8bey-%h z!n_JW(j$l!!GNkgGH-BB#+n@6^P#S34BA@%;u_3ns2|rYvmSQj`|%mfgNa~3jfUvy zqgLr!CJJh4jli1A^(j_)OpZP9gd{$BBa8~plyq8{7mbtLvqr1cd;Rv^64?5#dK)D| zuzH6Fk*+bCK|SXnlyy@p6tL*qQa5VyAce-DcgDG6 zC3o6IKwbo2_rYNVou}}$3(5Y(9xvhy_)6iO2P1+u`8+C7m=DSuZ=*1|wOX*u!$*#2 z7Q@fcnwx<@Cj(oZiI&q8U^6j~Nk@(x)nK8?>yG+4^O^isKF1l#%D_IqrFNP6Oq?)5 zh3SNWp@8{o_uM74aAu+)^<&pglVASwrwSQDOZD{h3>7rflAL8{!6SqLT~iY+%qf)S zKfa4~F@jmPITtdM8pJzbG6HoT_d>x(Ykelu&X(Gsne0C?&V{JYE?BiMTzEb3)}MwY z`!o$&>#whuWy@D3%cC-2(JeQ~s?}>`+}JZ^Ba~&|{~m(kBBcXDiXH@C`r_y0Y6PjR zt*uqX1lz&#sqCQV0Nd~QTy`z`_Q8CI1MhzzzxwrWwXIZonD1a($6lId_ge;}{nRJ# zvgy&NR55wmKH7t^Nk(4d{EI_#w{bZ|;BG(Aq!9PSrGQI;K1TsgIB+TT^)Hjct7bMb zZ@@d(Af)-(uxxl+>R-i%ox%`Yr;wV0HSeHeV8kAU8~&SM63Q%>d(P4*^Ms{j`OUn8 z@5Oyu{T0r<5KQ`E2_LNlK4CemSYf#XW`KCoUMz;`aO2`c8%5xfCYGQltm1CLE(K0O z3UDKeIimjMH((JwLh`Xui-$u}@uNRLV2#Z?Eta`~@68GI^A0Fdm-P%-jAV@-E)B!_ zVP3E;)J}HYxl!kIM~ihbX_&V(*fns*Id{_=_!yYvl7&~m6RA-AP>yn*reJ{^^LTZ= zWI6A65RN<<8({4#JX0h0Z(Ia zCsyLMv^McNHedn)y;?KwhKv0>dlVNxW8zu*X!Xl$CA8sfNr%EBQ3sf^6>B9OmLCU!RIIvSUT zZSP9a{8^GV>I_)9V;?{mE+`;cOcY83-Xd0oIrX8ZL~Nlu9#Zci#<}9Z2%x*@wbk(U zyAs^IQ(_3H=*fWaoAa-}8+GqW{mBMY1tjmfxl(}m6KeTu&u^@YPIna0#mNIWT4Uxw zK+#025L}yzXj(tB&71`J?SX4dXp`Et8zj8*06Y{As7HfB?(q4p)Z0;&-tw~xy{O|& zuwTXlt+Tl{QRzib(QE_)jiaB}*1^jULeZ`zeoU5+eR}2uk>DS2KB|o(p@fohc(;#7 ze*(|mj+B>|D_=$6(~sSDtBe>iT%RCJ%wv!KQNHu7uj%=$nbYKZ|MLIjx@#9G&Nwg9 z^7^;G`7c@j<_66}dJrSqq)Zr-qza)a05t+_&4(tI!&*Dp?ajmX(L6tJ-~jpbCvKG= z|MZtq1p)Xkes*6n=lSQIDue^~zS55BAU*lr5yd2EdbVOxylIR)f!O_VuvE{6rZrD&t&{=09lfdIKt8Ah!5 zKR@!g{NP{ilbdh2Qbvv(f#-nc53Bo`Gp5S3OP6U7SL1!KbJs3ezkY+<1iW%ufb*Tk z!d)Lc1^$>mF&N+MJKwtZxIUKJMDo@?j7=&dn9TF3`MT@e*#{a&gO<)N;wF~@E(LlA z1?=%ifdMW1$T)E&YELqw9QkR{XPCDjtX&$`Z?%{)ED2t^k+OUi%d+_o@9{#Q7Fhe1 z_|G|03MQY^o;P+bk7*AU0;VW}DX|V@#OYq|HB5?qKcl~eYe;PRqN`_1H5i+;0i}{o z=!?Plhrl3I6x8i|9}Fcn-lrHN**PM+Pq`H6AO$!sDVX*~5GUak$s9Tu)=>yR`ue86 zrN}~HHedfjse?tc2MRe_hqZeS?I6iIl%4cVU}M&R_!?2T)fy`^%z1PJr-cSGXmHg^ z%>89IUv150uyEr>n%2Czv!_bQb#od8!>oWkPj;v--I1AdHr~y7x#o2QNrlCtt}Wd) z|6+}bAFGy3D1P#%UksQdC{DmIR{|eCfFQnJ;MMB-$hJ`U!S|BJCXp^Y2Q5808Sw7v z4{t8NR4jf$y`<>1k$vuXDV#M0iX{Z&PFZ(MF+FuOn*hceU|`gAV9RHW9wsHgCl9=T zP%0mI9901ZCxWS}AdO9B`|QnOPt~*A-@|TCeuRnNjNdV(O$><4>*NviTjP5(0HY6H z0EB~3?>6(i7Su=nnEu)mW0>#iiTCso(w{QbwEIw6VZHkC&kcTu243^7&Xh z5a*!y3pXR!GL(yt|6ROTA5+KJ38e?>LB*+WP#JK_OQjCj!}@;Kj~3pYO;~%#^M?_1 zIzDTvWC8xpzYBupJnV7WN)%FqKcLY4*n>}qeClSkbmwC#JjJ?^4vX`2?1l2MCkn!H znejCm5M(v7`+cl?Si_0+ZiHi~ONSEXuy{?qWJAzia>X>oWH$mrO*E(}2cNkaNd1$=cx)`GH$>d!O8J-PJ-&athyn^3$Kox#ymv`LDg^ zYFV~yh1|U86Tme8veZFf{4of*fBLguXn;>?zafcxZ&j79VGY18CuU;Rh9>yw`Y#LAdtsSI5D zo8SIkCQh6n4?OUYV$m;NvJ^p5e*t`X7_A`9o;6dxaL-p|?4#U`9+$7(I|P>HH_D6|(`4Zd*UKZ1K81JwgM8ucPfIzJZg<^vyZrWl ze=p;KrOrgm_k)KHTc4q6SJC_C53T8ssKJQHsF5RN>hziNm9KtXZohqzFaYR-e|%K4 z(n8;)p~HsCjA>KkyWjbyeCefE)SBDS8%5FF!)Pg7_|{Qqp|~IvB0^OG{6dcO&LlC8~4$@qz**={=50-*@l*`VT8t zZIE>2V{8WxM~0hR3b+*LSqfkwNx(8N2UZjbOt8Vt?^*(54p>}IRKf~`u7nWCv@3Be zLue2O?s*KDfZ5~6XfQo4UUZ=(CTzTxfpVa8Bh$rkZ^k~S0KA88aZv;r%!XSf1135b zzIN52txS9$H+@`00R_VVdsWL`1O8 za)w&hVO9nOvBh@9d+&Q;R>Fp*P#njaGp4Zc88#d zB0L=DAfx=?d$DQsm6pID0NBKUQ%cl>H)0TEVC7~*7?w412(0;N5r)G0TC#be6WQ-* zwWrD)zRNLg`x>d-`le98{+0}sTKmQpsa?GuFe#OmGS_@(Td12me;S0zXGz81mPo9k z62dqL<}mJhY{+2!OF;OWHDSC4X0Lm7t?qeroU^W7NECR-4p#zZZK%*lAOJ|Y_V1a< z?_^;8sFT1uyP=4HmlGAcsIQI{yI!m(*WH{kBXnPtK6)rjS^))DQL7%ex}FfyGIhOa zu3a35C@Lx=JP^2gxfT+aAK%LHcr)*6<&xbeJic6f$I)2(mSRn;LYeSvQ@{$!2e|%apklNX z-zdJKpJ9w&fNQ8BdEpk4_BY&HzTzdh>dHBC4WLP$e}1_TCg$F+e;q>iTQqnm1-v=n zNoLQQA$iz~uU)$yR_Vte1pbaJy7d+neDW2|iXsOUI8Nr*J8}Z~FHr z^m}7TPs{Szv**a}J$rx$KTysbGuq0>2ONpd(h_{km~nFDmGfle$Ps$i$SBT7Fx8ne zX33__TV*=}r&6H(t6%-M1{h@?20^{-(y7pY43pQ_u9L$MM1SKO-;hs!;trujJk!7d z17!aED-ncrpOiu|NPO_z++4Zxin*%OTKmR&sY0Bn@BiTY2v&Ms(qcM-Ie6I6GqkOS zrsk*x;}6d%NFOp}u$+137_~m1Ipb0x7W*4-ya^hn%RPXHnK5$~+BjNiW`eZV18U~s zzpR!Y|MNv!!_Yf1{EnoXRn9M91Dkl|I%xp27{`L+$uE@t_kIeNB+yzjFY}pXpVzDd z1|gW@tg*utO2!AgW-_8aFqHl+JER6eA5R_@PV+AFynAd)0SLw7N2?_7npu)_{&*?> z^b{zuy4oW#JucHSKVq*^>PIp<)K_J1nBKgA*LcbbuIB^VU2|=ej*USJAiu$%c`<3eO&S< zjBT2?C+KR^k;>V!yfDOR_j-gfBm$u#;HgT$7t^x6NiuabV+J>4n3qC;uc=3X)c};vQLNty ztleC9C{S0atl4LAd{OYpBg$f+bRUA)mfd}u-6vU{a8i-3g>oM zOfxy}ncwEf`^LhWznPr(tSe3bwsgOx>rJ1w&RWZxdXIu;TJ1ZNGY{*}ac1Ni&U?;h z_}h7p`0GB0Qq6fU^|{pZ)V$7f!ru^T$C;e>|NXxIRAt5wfABrcV(ytEFIsJa2-xn_ z&U?I{dd_QZYCi>x*HihPeX{B6KaoOsi9rpjiWo1(zK{LME-opE#|5keZgMH$QlQsR zfTI)>c_I))P$OtQ0ppN235zr);iJIaW29`!g7zAiGL>ekhmx|1FqiO97Vx9iafnIx)i~EH%qt#Rd{%6pFxJA-L{nJ2-jthJ;NR-OmH7 z-;|@(wbJjdg}QMjW;m6MF<5icx;YF%BL(mw2n@ozKa}7Hhp-_(QxfAKEQ7ZbxaQ8y z!`(>(yABZu#H*IP2#fI#EzhiO61G$DDq*a75E}V`3!gP+I4t{TTh@N|I#Ph(e-Y5C z=J!uY-fi=wV8#@w`0FzgdiQJEu62O8MTiu(=|q$kEJaRSe}9_XGtC`Ex8s& z@sCPnTF#$L(sIpXoRz#AXG5Wkb$8To!1Qd8x~G=I>e5zpkq_w18r+@VzB|hz-@~;U zT{;~W>^YZNUUhX)o>$)gH>`Hk z#zpG6$XC#-BEdK~>K(ueX55N_Z%4+h?7xQ{N*G?Zf%o=H z1Lm&Kj=gI2&b^5SapkiZ?+L(8B;dvC$;^`Ukt3vV!AvN@Mkgz%BOG~Y*-l}5{qolU z@$8e(+m(pt@eULMF=@cMReJk%zzMgMbTPn|#1J@`BbtE&L9_m+evoGAikgka zYmh0!T;q|~_%F2#-fJ#7^YXs4OmmNAv2I4#?oM2|p5bp(29K?^$-IxxxT$Lt&@pZe z4M#!f$2jA?#vj&gSKw~Z!Tsw};N(%jte>>tqBa&-q$OXw6IOQP!5Aa*Httsg_9=p3 zH=Y7mq<~>-cOnCd&0J*P2XgG8CnQ#m1sOVcbw_Wj7%;|kv5di`tmdWHMdn;4S-?tH zVNbg&U}xmw#f61$hXr5#jy+QQ3WC*b0y7MuzPF@68SnIALnIGOvI%&a3Im{%7|O^w z6A&{0a2qU38dN}4we&?W*6#q<4h$z>1(z&)%Cjrr9$X5z6zCKMI1fNM7X~IQH^qvH z+Sc6BsTcKuhp>TC>on!0?D{%s(V7C&**pr_V9^@hxm(Kr^t6;Nx*9I(!*q`1=AHkt zV9l18bhcX0(fXaSIGB2yussS0m&)aD?f!B*q!MH%?kx|A%uqs;M*6>yhwt3--K}MqpI?5og`CN0T#5kD=?Pj7ick!Gl5FqEOBA{aNa;abZvUp1JU>ORf0LG%O zZ}x`pWLCM`-VI?d1%h#ZomBp5v1EMnvnu=zf=@^g@`o<^@Idh7ArEk08(_to4NnI0 z35sj%#5OieLbp}!#1zDM2dXGQ-HAQl03n?pf$Y86+3;YwMB(w8eY4$9*#F5>=|5zQ zL+Ri}-=PA67XQR;)()>(?7l_oVt=iA07lCzr5KP_=|u%9*rTA|O?{IB+&A!BYy1f) z$oWkvfMrlr!e(V&1jC)F7f8k#u!zPQUbk_pCFmxf+>!l6caVoxq3~v*LOEkle}%YY zP-}XyXrJ!tJ2(cgF9_~AAlXn(dugHG-ts{U#()TI-zn8tALv=cfTSifzj1h?)~C_ZfP@VHNWfU3!afIS=D%h@A_G<}6zl<)KP z?$Wg=Af3|EAh7fz(%m7c(%lUUNJvS8gf87BAnfM_zCcuBO;>#b=FZc+n32YLbwlxrHoG- z6bUvU+Soi+SthdJntIOgAT&Y%Lk zrx&w5zufvH6Set9@D7zV3k_d0R{gQGQ3fn0sLi&>uI!M~A50drUZx8<9<~-d_ZpcZ z-&*2l&&6_ghkx+?k84Dy)seml?9xy9XU z^1o~TWplYtj+^40&K5GOEL420Ir@E8IjayxW>oNH-M69f6O~brucl9fk5#D-pf*g1i15u;=+i$EmTkADa2VcYNog=Ohosoy%B%6)T z=Y3eAC$wwK1g=Rz>nwVfam>`YRTHn3*G#$l^(Jp6(2H;!#n~5k+WPUncspjia^q|G z&!m6}?Z6v)?(CNp`xRGojfzDHOQ2z(#U-};DV;XDF!ZNUe2@{5wG*| z#Lc{TjvY3U>jd;jGWD`BnqIn8Hrgm7m5b1%7pc@)rL1)|OnX5d5bN zpD~PI%}htd#YkkKcl}3h8J;A{x~wgO=PKnU$D7o0q9@l%5H%1K^%%n7_;^DQwhBFo zdETtj@3i@bpEj780ipC6PlHtWkKkMh(sOD4cE(s6jgG@bN@J|{YupuD_K3jMI!`QE zK{NGlUJ)g9rsGG9E3#qsXoUCZJ*iXtb3az*E?cGQ1PoPZOxrlfa|G3!{j6?pJ!UP-TS9S?8K z_jVR*^i$Zi_j^ljsp&)FHeWrx6k9~3Vhu@{mlWyYd+D*=q!vi*|4p@7WX8o z^=vcp6SX}whwDGnV{yeNF9w`@7J3Bwr31e65TqN59`&mja@#{Y=9z_h?Q(_YN` zDv}4C6cx(iYb`%o(#~?lyfvt;&ug0p>{Ny9H?4OA6lWLg4B5yu2H$R5!v_CDKa*4g z_c)b+GoFQNOZO@qzw-BsZx+u9<$^2|wm=W3`cHKt>$IU;|8N^v-xL;Olld$s55jLM|-OH0@`vFxY7Hi+M zI+YJO5PdBT=qc3C_L>K1ez>7j{W33ATk2Kzh}&5tG39t=@FsVToK5EmXT@XjghGn3 zg2x&Dq?Mkaesk?IilF7Ko!Kqo&8ZW}B))DM%T~d;ZHQ6QfSph7rXw~q0GYAybZb~k z#2k=AXob|4U__ZmFUNH>_h{XIL>kt05}s!@&VOP-ZmFJb^u;MDD1s;O9W^ zJ(i_4(ss#Eh$JHMUYQrD9ETCLm@fOXW+t^_Ms}8pJ>mtomc&KvKlF>#N0T-qmWv{a zCK;R5mK+d{!AqO9UK9`&KI)_TSc}(k{tMF-D1s5|rm8nlnDjV+K9% z*An|+wPt*b27a;&@jaF{N*}+tX+LhcmZ8@-XBhsI@WAQy_I%m@cc$mQ=jcuB7mwq_ zU(&A8{%<-+tysw6VJ|PO{7YOFhZ=h0#%@~c~BlaK@jF@PQAz(&)_ky#_` zG<&N!mEqr+@7fP;&^leFU@y<|Wp`YVGi#6wZCx}W%kR@rjvY8(3rt%Nkn98y^ z)R`v**SRIi|k-2pLXF@l3+rK1`X ztF^01GUBe(|IS}+$Sy8ur9tId!7v1JR;?=fW7Z}N@@gn;c>y@Anl2as34S_l56yjKJ926vi*&ag^IJef9`34xagVJFE*Bs#~`FFs2W! zplV5cd12u94UpYwh~knuwpwFpP{vt3NZ`6jv~~^Y*hw>?n1ExMXKt>6$?+Xzch+)I zyKKx&5>9E`fVgn{%jC}DyVK=fge&L+m~W)jsuE+Q6O}z=!zd!o!N6DeyiIK+w-c6r z2K!ozjNkSDKP>>1(XO6`4*K$MF4aL?*rFGU1kCwU{`a;~WZBD;|ulMY34&NN85pT8#Y~QVIhh91qH;o>-Hc6n>Mn< zd`w!BJ~1?XAf;wvhBYsXIXc9e&Cy%$qb_dTE7h%)Y3l_`$GBP(+xK9LJ* zA&wLGW?sle()IH8UNq=~Ejbr{j3JiLzwqXK36`@+=z=cR*iw8*Ifd5`ZHlZ{pPN4i zhGf3R04p47R=#Y)mja6aRexE|A-%Z>m zexiF4lGhfn0nChB5k{<_PMBAF%&YRGm@Vf?ys6jKARFi9Z+R6UUw@GBPOoNbV3!=Dh;oB1~s3geXnEqw_rDfRej)}ksv7^YNdaY z#bnF4>AZSbW0BnuT*2GVrJG$M@)c#@iBT#T`R6q&cydN^8!Amj{M@`7*09NdXwzB8F>|xQ7xsAg%VuJ7BoWm=`i0kbd>8i zc~uC9Y2shJmDh=Qem7Q&D)EM-3stb8*flv>Zk*pq<@YswYUQqMLq$y6+a;N+ zF85vyKSiYWIBufvUup&H3awTEtGg=pFo>s&kR%CpT6yH-u!=6Q#nNKgn4BtkwC(3> zpdy?#^`Nr;*)H>KDhx|cZJ)gXd_O)mFeq`!aEcdB*pySyHJ&Mn!a$N)R>#Gai1f9c z8vkz7To^kG&?JQSyWmkXFh*?$IsR4yz6>tg10(>jpuemj><(5%8i^u~kJdhzias1& zppqKJ)~)IODK1-0nP+FJu@)`6#h_EF^u#=l{iAzSp%?FCb#>)8rAFoY6I_uiD6mpA z()yw=Huq3=)Kn1M%=#XXerO)Y0lVB-erc}o&x{eR(ErFxsz;1UrN_zYU16~h%3#b* zv2>H{ej&)*4xbaaO zTkdTiqd^#Y_R(XZWS|DEInL>|dm5XA$R7=COD z`kHZw%@DV?ZO~r>@YESYyU)Xby9N%pQx7fk!K``@)hUniOL5f53_(?ebGB_bbsTKk z%7>Os1m^?j`9M3I>X6Mclwn1bf7;gGNfPFuw@$KexaDHj@3C@|(R08Te3x8pXwVDp z+9kP8d~ zhb5iINM6A90v|Rf8qCABR?Z<4P)VWLj#I;NZ4x=oodHZvA85X0dDn8&_v|pfI^A4f zZkp8XAOQ>mB*cr>(=m@6thMw>>#m(zTt|*=%~V7YO{#f{;76WB?L>afukQt4?}nA8n*R+M6%XTR4%eIToEtELH({QsQ$!BmQH z`csdzV2*9D^k>;BMpH$&JV*e!%z$&3!4Z^84^&w+Y<~F}oi;AwOFnq9rj3U_VP2U> z7B}8h7wr<M+39DKzW zDsww-#R0o_YZM|1R8#6GaX2DjR|u?>aEf;}W7aek3TCFpJ)s#O;NKd^n?7S zQQu?=J)Hc;NUTH~gb8>2DJ67h=8@!N99UoQx z1V$hviEowR6bbk_V=F4>vUQ{NVe0F(d(oQQRu z&1HB82j^ko26g5?*7x-YflO(8lTmk#$NIc!UoK!l1BTJj+8a}HH*q*bw9YeOBCJKG zjq2AMieqk}{Io2gJGlt;G&a0SE)v0B+OF+y@g}kaYv+&5#xMIAagwMbPet%pJd(aX zQ|}14cRq5ftV3gG@;az|&Fc677%kz^QopZmBO5P9t%5WN)Y?$M>eh*dCf-vfnRa@*RwKS!~sH(*H89khB{Whp4z}5=z z8oW~PUrWAC-Ue4(A3)FX?v9(qwkH|__KpU(0 z6Cy;H&Pu!SVP4{U?_&{LKzxXf<#gyl`TOBz~#o`Vb zDnt40`}rK~bfBV+VJAQ01VD8M9NIoU<~4-lzett;{!Y0`YeaVh2fM-gNdFemPzC|u z6PK}j#auGNa!F!D`tMpSdoRIzTsLV_d&s{vjbZu8dL)nO&jOh4UFk6d#bw$!087@b z_f$z< zqF8=wd36+7@0dZIPPzho6;BjMM5TJEpa$>7ymzueCDPu5c$IeV-Ww7ZjP^yKWF}v_ z@VAarhXLIjqAbe)lqvod06&1zIHGSxNGHm(JJ1&o3(OSZvvP=?lqrv) zcBj~MP22IRXLas{YSXm_0mXEf2ce+#Vy!kPtvC>SULk)m%^7W01v(F|{P6LPjR6oI zhz6H)>O7?+`O_pPqd!#(F|VFevFYV-<&ht5c}MwTBg+d^gkGS40*MJhQZvr7*Zpd$ ztvcX#6$$?DEcK{9P!KAAgA{t2RoV$NLzC_ADTg`M0KjNtVX%Y6n;nbZ*dz^zh;|i` z=;94Liq51#I_e!pafiLH7K(V7)Jz!utRfhSVFM8CoR6SzT`9^opxggmHVyVh^E}cl z{|KVVM8Q1R9s1(DG)9T)70D|LgrC6#byna^r|MSvvZV-CFkH=hAE==RfA@P}P-tLV z{l!mcEQT9*BRx9G^KKR}l-7)wuC4t zT6$c4IW{u->MyZnpkujB#^yVtqVkb9=g2bCiLbrs;9qo={P;!xQjfD#f=XApa)21l z*bUDMxWi&kU!+mqJ{3C!b&2mIEA<1C_*fH6&HnB^Si}$0STtu7yNKP&iLu+S?M&9@ z9b6}u;vuq})dEB=2(Z$QLwrL|g0QJ3TdL-$HI&A2P9|{@`O^w7jA!jrAd%)oMDtBw6MgT&G%8H4GVm zvWEM|$L^*_K8&X_#DyMBrIt9RPNyJF8G|lF{9Gzvu!fJnL;j1D?@0g>%_%s&Bi&v8 zFfBcA0Lvk+mI{Xy$1qz0 zI8gasd!23A?a)d;4ys8p@NUf`;eR>bNl5@-fJ&SO!KoHBH6_;-ld-E#ci;VPn>CDBr{-@R8+r7$lfH;Yg52}@e{0BN*zvv3mNBZ-+Emqnv>#P554}} zl=i#i$d??WG8FDCgjEaans#REJME>qb8>3Z`RMKrk10+ituq6*Fe87{18<3AZ-gyh zoUDt+6+;!-)vOp0fukrN-J3A%O-ZOCekb7Xuc5M#6&EGUlcdP+_E?sBxZ}3WP2)?H zlFw{l93N))%d_ZhAl9kFQfdhAmp~=2D)0#4wwmNZ)TY-nFcf@$Sv_!%2jvTivL!$I z@IBuR5u3vY{!#^(;mHG=mHVLj^n+KoJ^zwh!VKcO+OCGLSLxT3VPW|M=*pVG#L;yB zW`v;a;HomoKr22yj39d%t4(x--qi}`JqBwG#!O{}%b2b+)nJ?fbUpIHTZ_@O^+m{! zh=4?Fi%tWOKgY?;UD)W0kyld}BN%ApWeRg)ZYDVyc>6cFI>DLy@Gb@uAFRw9AB+wx zcgtW0>u49}AM13VTBx;B=Kn>vzBlOS!8%~8U5=A2TVC<^VW8xm^oa^b4qtud*rs+Z zn=m*Lks5^bPHz;F#LkG(hbdSM_q`6S(%6%ee{+-f(DVQE}!TbCpO4+;{s#2M#LGSU9qcR1}zn=vU+5X{@ z@tV0S`f5ua_3C9KpL3)1xAHTFRK%=hb+A6KG5*b|eSY7ejHc-xiSt3}1z+Xl$XAT9 zz}Ng5_$3v7WBnU3B9e>nC5TQ^QjNqPuS85!9w_FA1X zf_ONs=#w7-qdbcsqMS!&G^wSsFJF7|Npt!`P%6=0eml$(nvuC&sX z+-CeYe-usCIXW+FX#PQ$`nOGZJ%#5L$08U7vFl<~pwMxpwb zDX=TJDGw_XBHzSm?wy{0v@TK=pKwTE*1>u5>!bsy^`hYB$A$f>$esEQG+#^nEaxAM zue9N(yN+vwq_ti%7B6l#fnMn*lFCw19(Xe;A)PbAb%Si<4AqX%cq;l=Mm?=)?%hI+ za~xeOVf;@Vb8YNPI9xfLVaN9|ZX-*a4DQFJ~dH#;ZF)2O&SZ*%# z91n-J{@m@BJ3Y;vQo4zsxo+ZGQly$sACC@WIZjVJt2mI8R2ZMrexUXMW6`A<_u+i(b*~@?I5j3+Q zs>pC_ndjFZGl`;=jmn*zn5NS|Ac`M^-?Bj&X%t8i0CvTo`gZ6SBq4Pl`t zV(CabfSoG}e^P$WV>w3mTHvC(M4`B8|0Up!yT*UspS{#5^A-pBw<5 zA5*yxB{xf&#_Wu6!i&ySDU>q6`XhR=@0IqnxF^wu1wMP7G3El8vIu?FF$KN09Ha*F z@hXxLCJ?!x#v<*?Fpzoq&t6oIZW)!w-=05obyL!J*GAf@7RTg?@W86XgMMulf zGw~zShag`v7D{Qeo6ka|%FJwNy^XPb=b~DSn2!VO8f$V5cm5OfHZ48XS$ql+H`aXIr z{MsvEODJ0@V^u(6H{ARvOiFeFlc6(B7D8j=-DH>$OM@Es4jMLcQ9|Rd6FHK_CL|Su z@{xCYui6zypCw}bOksRCk?0;%a&ieIY4H9K@{~&&a{otN_$jw*n1VBW#s+%NHY+!0 z4i6S_CIbJJ2<|!~s8iXwGV}Po|J8%c6N(a8F+rbi6XqeZ`-uS<9DTr*_W(bpdXQBk z@*j%vEJITCf!bH}X3T~Yr(q+|o^S5~{$!6#jX!dFV$5$6rdtlXCldjEy7gGGXb`Wc z5S>!9OW|Vw9q*x6RdKKXjz|&e4fXDaKr*wk#RaU)HuFZKj@~rZ>MGQZdc~NutjkC_ zZ&PaD^N>6EV>)5t4E4~r%y>tG4g0NW`7VgUz)HSGE_81 zDB`6D+OJpO+^yo~a`m~o;F^9M@H%MccWmKuS8e+e5(oS8`zS%?Py0@pwG*m{+{%Z+ zmZ7;1tP7$if&|O8ufku~zC%)p{C&96<3#AW(C~a1*`{3pSKWaC^2ZyzyJn7{ zw~PqouffwLX38-y*%6p&rXd7NO{#T`C{AFVUr432t z0g~5abQ(T4H+!a2tCHkR*tX4+1)AN4R>j-F=>?DDBt85f7^;r@`kUXbt zh5l(p2G75yLVnkuxW6xbw0kol|GWG?wt0Wa*0L|F;Q;#?A1Ofvq=~eMvu27(^%*Ei ziJ`}F#GWc`quTzow{F}ugyHfOy!=P3tF-siPk+ZS87?zoI!WG-`cc^E?RldN#J;@g z97~iMWQAjjPHW1`4VDZ9?1@uugdrG@0?(BDn*rp0noJ506l@H&9%8lkfGfT9D!(v< zssQK=N$2i%2Xr?6h3RTb4rk8t=ibR*#c z_?uipffd2E?qe`8hY9oP`PSFtBtl7^NfvR)8{CRH+W4hrp1ya9nU~_^K>N^rdR_IP zdUcm$LIy46U2%r<=*SVfkc-(DvQMw!RA{7fQYWwr_} z@9gvE0#fBxf~4y1pKEs>uk}|9Lq&jt?j|-M^$5!)!|e-v>UA?c8vEs-Hex_gv=q6O z-hNvr4bf=B%QXryZ1KdDPc7Y&;8#W(eV0eXOqbqC;pvACC-JGq&eWOOD5f)Uz5fQT zVtBG1b8{f??G~$b$psH#1bFwa#>fjM&m(|ggm$B>WCiovZfEuv`4!*7!IhdIr;mmJ z*&Q3S=*LbJR<^1~$$!uY!M8iv!gt=!GblNyLm5`c9WEq3Ysw9?gWCSS@>^m6lO^TW z%r^lt|0RW~#|2+TM8VSK)|BtQdFs$}@_j~a;XM@$Y~Fvr&J#fD8DMy=6!Ys9K&Kqd zv`WJePRO9^)>a7_L)PH#S}YQUBqzee=h3g?O*MQTq%32I(nlls=UE9`agGrOmrq)* zA7s|V&h5&lh{%4C{_3qaZn*&lEoug&KJEJk){5ixtk_6ak-z_`&BEKPyI5HP4wb z1h-Kfb`m?tF%n5mLc?Rzq%wQNu>c#fW_Da%lJ?7bR^MG01^b4kWG5afOs&9RU!y!q zsCaSECsss&%iwJ5xi}zPKEb!QSOXMmxl&|?&HH86v5RoZsZ0=z!QHm+ml(4uy^mEG zi=vPh|5mK|O7UgGsq251@011i|4WsprB>#+4v^RE z?;E&M*O0ob4-W5eC%(C94Y~cQq=@KujL{OmDEso;uBQn@g%fKiF+*bEc%1Sl_VXVP zfc&8kuMe9NpUPKQz&BR{`H|>7X?zVmmv)*JFAnXo^5ScltF|Cf`(@SsZY5GzP;PuP ziV=OR@$^u;m(FI;S?m*<)H}NcK%LRUfE%U7#1!xLd`lOCrO3eaT%|aqJ#nlrW3?F> zw@QNQpFe5;6QcsYnfEhZbj1OGMBw*}zRnPu%duvM=K=^X9i;7G1PSc~*rduk)Sa z41;OCwz9;{QB6ulR@HxPy}t^Gk~Dp*b;^VTa6L7iH#$ARS;Y}_pa6?f;7q8h;z)B9 z{wF8x03yU0X7=oM!|n+ z7owdZOyTDklf)&2aY%6d1xc`dy$&g=M6Y?=vx`3-z;!rLDMjh|ts_73J<-W(H34(h z-k6$Jznb@cc8>&Nd5*X#z^k{^Yx^!YLWxrLAi3jIrzP?D?7OJ1^(>I!o?)ljiOG!#QZe3y@~jAs zAaNF;>sB7RyO_Z3<=5ZtJf-t{deOU}uZzBhV?3P9pJ4-E4aRz5i8Yv}H8}H1vZ%H) z^~4`#-|yU_o!zI5WB`X72=l0M%p?R3;_aJz#C(d9jNId=T2EssZ@ZQzj&XFK87`k{ zev=98%i#Uy1-#GZD=ZT6tmm1bos1x1ED%buLnDA*$ZFk4NBqPfpX+euhIf70`VRL=;Yg&1QTUU^%} zEjPr=h;r6(OQ_*+AK{ZiKQFM>HiU%lDuG?)-6VDf9RlTYbU9Pj_zGY;XyIwX*G^~h z5@VSX+qH>|xQQM?1^yFBKds|Can@azg=(N;0#t}UZ%*dkEj)}A#sSNsI7L6;zx=~$ zjA=saFczW3<&Ocr7l_EEu^RZ5umAPeOQ`cdf{By)1%d^4Jq7VVRv7hfjln!n#;#({ zb+6X24nPwOA!H9;HwZr5z?->_@yxpm{F5#^0HGWA@;SEB#&T^VB=P~43Hhz}A-)aD z_b&Qnq8!}{mx&KJBi`G)$pNnGJ$GpP+pWaQUT-Tr4Ac==NDK_WlUPevqQG$Jp0Nr-bdkv?~L_mTM z&Q{z#Qglm{&8EUd2F8Z)(>592pR3on7>a}6aNM|R_s^N56Vr8NSidmmGh-AtajB*{~iw|aXf0Tkp1cdIRUDQZ(~(sOGN)EE@C(a=wVBQImd zrYe2!P_kqp;%uoL_=)k<9EjK9+!7Ns^7SDzgx}u--zVQdS#{{}xObVQF$Om}fp!xg z*%r+Eb#8T`YbMwd9PSw=~w~G%NRIns>9@ z4-;LVwwkq@fy-l-%>(9JR@1t&8^1d&9N7KvXKkB19zuhsEE+g$X8D0`|6*d<&CvlT zf?(A2>)|?jsV+;5bb7xUvWWLZpFFs}v>9 z+v3)S&A>Vt48<&7%(uC%s64T{9l`Y*EjPkUvt}^|dEW}`-sIBShjZ!XoJgrfq3GU{ zILBlEDu0aKPw5Q+q@TuT`NrH7l-6<;+ruvNTt#t3RD*VPFsOhn&nr6As>r> zattOHn$$}Ze;XJ68(3LmRRvPe z2MCKTrBm1;#3qkBRE`_sU?}Oh^Q#SMpOGdH%Pn{6Av{5$jxBA#ktGmzLy^4uz{g2B zT9KbkaA{-qSLc^8)J)4kBslzoS=_)&7yq*`BY;B10VdN1eNbJwQaHVbu&MRXqd{_O4XWluxp1$>;B5MjNWnj&z|3 ztw;e!(2rDD>)KfDGZu-W0y}) zE7&gAv%hC_j|4IQ!>Mt_$PDe>w_!v@yrveYUDPKMo2Y}e3M42P%ZRFaS0{0#NQYjsTt%fGZ#KZ~;p!~f&~LsCBB5*t-ZP45+{ zLj4m(0df{8t6W5a1F8UeRBF>vWDsC+5YPU}ZU5)$YjaVd8tP@>1B2zuS{=G`$XnxL zx;X%}5V+XKBfO7ts5E}h*CXiN@>cYz34-}+e6NBTg@Oi=zc{H9pUIQUK%#|}`5WtP ze$Vb=qWPh+x1^onf)}Dsc{`q3Z8sU(0pF_LW+oZai0!CaeP-H}K5VYnq3peX#A|3DL;L%|73-oz{p@F@ObTD|ur zS+V9O5~Jl=sUYIt&j7-aB-KucT+FEoXvnCXe_#mZnSu5=m8wC$i&}q_GH+=jE9L~) z7>WyhV-9N^*EgWez7|hFUdRh`hUqv?p*Xo8Dc=-O=y9=_U z+2uETYvUM_%M_eW%CVKzhOm#tSb%_s>aK8SO#2Eh?m*@>H36G1KhXnQyRSOQIG6dZ zlXnL=mU0$OW0kR-hVwfNDQXQAYhq}Q-#U~J^tM?k!UqX<=I1eU+o}Fb*E_YSfV};^ zl3a{NwJsUf$WYzsbH!wXUhO!pX9N1LsRchWUo2#BizrBB-N~7RW4NB>&(J*aY-GJf zpLbzqMP{jJkVWO%8a-I0FjQLU>s#Dw#;6&dZ>5l(vZxLWCVilTh0566w?yH6dij>! zm)y`w$LB8mf3>^@h*C2LkP{5Z*)dGtI-LnCXvJO?vTXQoRcovV*sHX0WFYCo@ReKH|6x^Tx9LW4vnB)Ggk+E&I>>vPLC>itZ^z+j$R|7)>s-E{ie z5A{?cwe-LXstWsmKXOloUx<6jfoKA7RRUUUZ}Z3bEk#B>-J;G4E5i&Rl|4cGk0|vF#akeh=l(Ud3>L*oy{A=Uq~6x+Gn05 zguP#pzHOYk^TU6xdIPzrm%!x?xWMq+oV20Z2;XXSeQ`yYHJvB>J=q2?5XG?-qg_KJ z|D;7o19ikh!_&sJ^`w0yh8~^u(j3>-asy%Z_26%)@N4Q7vMt5%9Ijf>r@q;z7+<9> zaH|Q(%QD45S~hg}ABFjcseon4kuAuwg~S2U`L6!I06A2Ib-~a*Tpr?EKHjVB-aof| zD$%qS)K@hBjc4cM0n9REIci-?PXoN}EhySt&JV~iCN+3gAD_?Q{Cj;I;rpwk&h8Al z&2(qF!Jix$Onl8r*(JqFEq%XgqIIZ-RvfIm*R?Q|*l| zSBd27V|IuDgb8QIC=KSMbdZm7*Q-Ibv$ zk?%oZzAS)I^+axciv|Ko(%6dS#KbCH=A5`&`|^U8@VY^W9#hwA9#t(aM*7Bjc$%op zOTJOhIwM37UtV!bN%K(Rvi$TVq{tg!8at=VYJNg7pfrrwaZrn1y8FU_WX^j*+1D>x z&TGLvNUa*FjEzCLXrZ2VwRARLcLbTj~$3=PkGF)yxu&hqm za#qmpZYQv0`e-=0Gm1pvwBduPI9GwCTI^kY@5JH!m~cn|&f z>eW2>BgPv>%L}YEAe!FiK8GO^(e6#(E>X03*Xuvo_hw^4t8u+wg`#Vj^aBg+_(b7X z8w%sWeAT~!_BiicD#lE>xzIs8Z%^y&7tZlA$G*Kw${*c-m2iSpxZS!iPKC%?Yc%o{@!!Ym`>=aMlJ)c|l* zEOw<=oMVLl0VHbzGV~HEa+Vp(!=6|4#gBlBWVHMGy|!!2-YX|`9(1X{w{O!C))@}L zvV0)q`kG5g&X6Zj`#%Q5Gme)4ND)OX&IRzcpbVNL>Qd$K5R$?Hxj(_owd+&3nY&Jz z8#3vEmx4ghzq~YYvLs!nh(lYj5=Fd$pTQ^6iK^N$dMBs?ht8&#{d}lkU>x#IrrE89 zYN89kB1Ys2Aw->n=>NEQOo9)1NWj@rMAb42a7x3-#@Z!&3n)08d?l)C8LO`BpQL#6 zS6?=18nnPser17((N5iBRDL`IA2B~jG`g;4ppMIZ(?tVDW z1(8N{+1iUm?Sld1gGnCO{Clli6T*)N&|+|QTTG%UrZyPMlS$I+d!n+Z!Hq<$740Wof%~U=ys6|WEhBYr$;6Vj8voQRtKxz1O<(r*$NX z9oB@avp|3dek6~Fu)p}%@zmf=B@qh#^$y`3AMz7E$%*7az^zv3V2nOiLu9rT*z z_kIRSb<2_lAI8S;OahUD_e4Y-5XH{4(GbNIl5JBx;t+>|!60|qLXmQn7Oc7oJjW%* zP{2~uNM^~D-F*I#P!z2w)nDPij+47JMx1F6$ZAfYZ3U*?5?yn^1qGJaJ$Z=|a~mm5 zEari3K!59%AKB?XO@w1N_gjhDg%tm@h;3e1Nncm|t<>)t*N0jxuD|c3%-3eKqZ)K zlj0AW$O+jgcA3BV4?YZ{`Qo$#d_}{z)Pp=h?#a-+va_ z167G~D>o%E8sf`+d&Df#8p3h4%Jpvlo`R_X2!2kyF;s9{vkd;<%upv8dG0KO9!gaM z^m^AaK6#$CliR$L95fA3xyP-5Y1OTzi|6v}o%G=C_2r5mjp0JVYuiPZEZaZZCJ=KF zWx-K00)qzSpobE*9rM&*JHhivKSAP#s5syhFTc`FGB*R9!bs3(c4qczX!xSRw2lX| zqO8RqNdYr{xut5b!mywlbq&{~Avbawr7QNne zYS+47$1+WQT$Yr7dUgjvG|TX#&(*a7ZWu0MVPDU4ig&=kiw#*GxiA6D(wxxyL)gV+w`d z8$(YMujkGc_&PMMaI=h51r_tMXr6VzJ#rR)`{?~g6z>B4t`QkwM99C$So`w>g&vxzTOC$_Xf$=qMT-GFo^svR6`fQQsQqJQx2F;BDvmh)&L_IF$~s+LMS(h zRlRGQRLJYs0iG)Xc2$5TVwguBX^1HU`}DO~F%gY4pDO>`y@l^~?15zcx;6)C2@)db zJ?Uh6Iy8V>h*zt>CiD~(7jgf4>Q4^gunrJ&Dr^3#;t@$Z!UfBhd{yha-wiB`1;b<( zoeT=@WRt$Sq9FP+iwPO7yT=pw+-N-oo!(&`ngY1x{+&GOv3|ooP41 zy30{Aa`h$KM6BkT!@=+!|hTx>L5$`(htZC4aE&}IyogSjH zZ7^;E9Oxc^X(bEiNd1Zrq~Vd5aNr2~h!8+mcr8~!=dXCP0ec4sY%l>0V!_6H4Rer*b5S&e~(x>3ca)RJ}cJJK_>-90$?{z$^GE-O42@_^NwALDZ!57ZlQu)w}*_P=iC zXg_{DN`P$#^D8YiLT|4X_te>-i-J-DXysbni!(kBUELEGOK|xb(3MpQovv#eL^?eY zINS70PCZeZ?&p#1dDmS2^@FJAfW)Qq&d`ku$HX{5>@c*8 zBcSgf2p`$CPdo$rDUgtsXw2~|QdKLpOW#$HwD79M;(-<`9o*Hw@)oRgb}2Oq$JGR! zW4ebAlk%%C09W^5WMP;DbL`{do#Qg;Xq@2aOhn4T_lLzhdK7?JfEw)u zq@^1pYaC}88LZ#Nug-m%&k|rEFhuQn-^8(MIY6y-1>LEQ-5U78dOp<|$)?&v(KD5jtcqo-+f$ zpFrCAvMl<`P3kOd0tKb_uQv5Rjyubdggx77w*aW#k ztJvzV%GI9hlY)!qfUEs<$$>QtgEeNPCT)K|`V!z69szLf!~rA^T^JM~N4p?Tb95sP zQ^$#j$l=SEva6OzaQ9xRf8+&mk0am>u$dz|+ZETs-JwrmVOj>H zo2bM1TY&NS+!^W+oCnV89GP*A$)xEiwqHEMF{^RsKB<1{RU8my8n%3 z#DRmexLE02f|yekoaFe#vyDs#vmQHG_k5aBFj2rpsZc zcg#zG)=sos5wve@Q|xcr=~`5s>pH}xwVBZ3EY0?(`)W-JeTcpx5V+QC4J>9{E4~%S znrD_RTQ0kI?~zY_@=8r3jy~e#L0C#ieO51{F7cE+t*9;YZY^Icu9YT#Ti>m+S#eVT zT4}Y6)7o|G8lP_&-%2yC_=CQbW^wpzVv(#X0jdi9j>2e#I)KI4M1M zE;MyVs8cio9#J@9Be=+MlA-0|RWGJ~SPNi`QAMD7@qoUD;~BvUYBc)cAWz3HYA;eN zyR=-&u2}+Flo3WM<~)(i2bzW@=bS0NlShkE%YeT<0zTO|s3h{{O_x$oN#qV4&{Trf z)`%!m@-i3a*f7L#xJn?%1#^Eo=j>`w-zC^&m4JJm^9j=`y#RHFKa+-MUo(J0&O6Nl zHWWT+3vSpZ@mbT962^Jm#c&?D1{(eYrEtkPQgincs<}@ME)Cq|Fd3E=b86$dO;WO8 zw$wbc6bBCZQUq>e)dFvpPapn)dizEV0aeQo1?y^p@4&Pi2jaO$asER)QV`Ia18b04 zskrkoDZTQ1DVTDS!5MzUd+x*X&qC3)Pq!u`ju{NRhp%q*o#Hd50C*oI4Xfc`6@1>2 zEjzS*Cji74TJ3Ye)lRvaTRc3Q95XaA`=hr=fMX)5x2$oN4zD?{a2|-)2c+cdS4k1p z+`M1=_DZRL_I31iSXuc)Qgq#Uz}KBpbN^G~D22ZfE`2eFX+yC<_e@q4?Jt3Kc<#)p zQZ#?2&V`nr52Jk|g4tX(TWzy^2vh3jol^PGGul?2I6TejI-UC}9HPe#RY=W?uS?mI zg%ZOdxBrE=#5ELJzN!_RNx_(D;hoWGw0NMjbO07-_^ys^?LA2rgngVQ$^ONE=6uk; z6xjE;FhbxnX@t~y!a?BI45`2_R*BlD88t(J8B=XU9;j@zpcNi*R8azYy54+v%d4MQ`e+T!nO_? z_}s03xm|`08!A^_c{!$`SQr2RKmbWZK~$sa^ZErJsq$gE#_(;VlbUDhck5Z}@A7xv zm8nxtRluFsh%YhS)Mu=JzAYhHHF2H4XgaRem&+i(WY9KAPU|kyUH^ zo(;GkDJ}boErIMv03%WYX22Xs^8t`}N{c0OxCZ=!&}wSCk7lPV?WM}G9$-uL9gjmh zBP2P~Ct@QVhFRJwXlmq25EKYLYygU&Ip~AdrRDsuy(H7V$BD)mxsP~+fK3ooJi#qH z6};g>-+|426o&z!b(;a+*xKz!2(7~ly{X}KSXeuPErIMx0NUX?o?)Zm91J=WXpdJu z3~p9{y|nfTgX_KI(sQNYR5%{Q_~XrOMI$wh5_+M{D*V?X@IaFq>f~T|<`+uYr; zDPxUTt&ELa@RF9yeG(i;j~gXX__7GXp=zX}MhZbc;VCO>kwc50NHYeymjn)i)t?B` zbHD)}4*_D(u8+ek-{tBC4U1W3$|`)Q3YwVv)M0pN%XWhTg_B{+0Pvh3MfjslQvJf4 z(qFavVF~6Y2W~<&)+0Cs_P_eJI6ut%IvJNF0_4#f#@ktR9Ca1Yih8 zwa~C?nRQ?JZEbXT7*zN6Dm|QV4<7{W*V;Dc&#cys(+Cd3p~oskmn@R}Q%}Yk0`JA; z)`KKxDYhDI%MZsb7hdopXj1OdKcm;Pei_-$c%YF|Z0bBdIB` z8)z;rt!Mk1JdWk^a_q$ztDp$RJ1UOQ=SFyc1^C9Fk;3^ir1ZQwYMn!hv%uzEQjY_~ zL=YAuq?GY^VIezA8dk1W2j8w?I9LT(-}J6CytV`2PkOVQNfR(8Unm~5KMib;3@zH2 z1>W!gp?=jmsea%Y&|g7mrxaTJw8YAG0LV>XKk)K9;wmqNEaywKvRcA8q@tgX=CaCQ zVR-n9;DE&%=c{H`SQ*U5PU<+80Gn8g{??W>jvNJ!ypsBCeM5uf=H!Y8`|Se)eAiqRuJkLg?ES6&2!w(#e4S{h|K=1vqm&$VK}vEh|AW9TErx;71+K zi{bN#!5SL^SYO9rfs0rIQHI*jR+!19#kW*JznHEZE}10euScQ?wz zGFqXo9&5SUI@Hy8j@MP*_*;)PEU!ngraExopcEtBVo;2=49t&mXJC2wkM*ditkieb zuU|QQt{bo~-!oeR(`Dcx3ghcLiN~ZMA5>)c%}|SS)uVjOm-Vs&-)UoGKng*{$@15r z-UIsg(=uoiwIcSwU&_joS323H9wMX@KNE2b$!8)ZI}KX`wglRj00(<$90ixJlnR)B zlVg_7&&n@8M>#t&TBJRRwx3ZK?{aWu8F4~eG;RR!;AH?U;H9KCk8=5{78f@A zbY@5y+MyE?u;tYWVcAiSbqR3%0QiiRrXDiZJ@OpJ70_r6C9sag>keq?-SMzQE?ywT zXH5kd(zb)RHbuoTjsbaT?_+itbJd~<&h8S>E_cG=X~`!qltOTk8&R8Y6!fC?VWz`0 zJb2zyif5QGv$4iQD^Kg0qjOF9UswSmsT|$#qpJy6vKA%jejW0%B z2`UBQ(6#cmN1%0hP@MgW0Z3r8(U#^PHhE5HY&PPMw_yT!sKG&>Go-(2-t#b^^n&>k z*?$0|liwl zIin}3MT(1uPiDWjHq716)J`GO5>QQcSR%Pir=j&LKbG);L!b^D3IP3()V=toI^PV! z33lM4%{UZ|=m8_#psEw?oGIgVybEvJWvquemUelZ?x1$)+w{%gEG?6g3+5@gE*S=AH#RYO0^gU6Q1^XFw z%AGBlVa~IIErFvg0Zzls!;urSHJ32nefK?JP@bS8|Mte)0MI&R;n}m~o8S1Vj2JOo z!DFsF*1%uE|NY@lvSHJ91Ow*bm78tU})7M@jMF4#n{`u6?0HqHpxPRLn_ew=oyHM^Dn$Azxw6B%jq+wD*&0gNGL^hZWv`f2G`f%U@;3&b`PdDpMzq zm+yS%8!~3}XnFnhH|4R%pOXLk-EXA0xCq+?_&S2`m;d?S-^=jfL*?@~d`=Hk9((L@ z`SV}y(s4Z(j-S8zwJ*vA7o4xaJr5t)1}2O@NnUvIRr$w#cgo5SR>^5or|A1$$p+k_Mvq0>=|jKQxZFlErH`f0t6DEbr@XvkyPLPnE0`%Zh*5s4IF9BjnYvQ zg}L}7-(oqmYswbP!a~)j8dLo)KVN*{#!Y}5*a_;ESXG5o{po(Gdh#_mWU1?RkvT!r zS(MH=EQcu%4x-e!uK}RYxNN1k2A4vc9op@A0QfzW8LS5EU`xQ3fGvRxOTbwIEe`@B z%7aNx*g|lo!%->@{vwB~H8+evT?-i3IJR+^V{p>^9GWu{5GlUwJb=uT75wI$(C$Lg zOo#Cl1mPUQH1#jOSQ%(8DIaFM9QqOQdFAjQ?w1BoiE$I7p`+(hl4|p-Sq?6|3n!l} zMVFol=bWW- zQ@&B|auC!B?)q)0OAK*AAwU^GL-Uvls1vOc$oox7qXM*-!pjyZwT!<1o~|qaKi9DS z5_tPVsfQM61eRy9K(MDvaopsmV*`6fVTSmaU-E#T2YQ|2psP@ zHYo)Oev`hd;e};V@z;MCzCvKNSq&?m04#lK{`!#AJ^F&g>u{jOaj`Kho}sX4fp%t$ zV9fIF%SWLRAHm_L8;(^u z?vswDDb1$mvi6O#Cg?t>L~8GZgYpB1rQc_-z`;c!{Dgo{ncAM_`^Z`u?1Ya^2^ih@ z=+!NmfAUL4%0l4#bDzCd_Cu5UiAU~|`|tS+=wbHAcmMUrs%=iq;BDKs%jC(EIztv;{SA5P)wdMT=Ywx8ds`MRI7hCz`f_>b{yXIV ze)~)L+Sh(6x8C|!3Id%;m zJP6wArSjrSFYA4R?F615diZe}H+Hmw?OV2Nl^HXp$@FPc4r1&iei*MC|b{>R_s7eD`@eD<@~$(?uI4Gr)D`R;eVDHBc}2fCLt zILo zb?es4+_|&$o-xJ zyyF(xv}toP0dnsD=gs?ZlzqYm(?GO92cK$IAtq@wuE_20dyFc0*?wOOa zosunqBPC!hNLwuG9N_FF1xf-ME_E+2Q%-a)zS&iqFJX^NvPZ6|190?b-7%WjVY(bt$TD6kuzkVI{V|MgrR=bdZ~Zz4bTOU zIsg(PP{U{1kgq;uf21LSUeVgpD5o98mcUVv00(5^v;=DbD8>OGCcyt1I|S2oI88Mi znRc@eSz{QI$%8hx=X=+|!syf{iyiB}Reg+?){?GS&WM-%oie6cj~($B@j148N(!a? z6APsQnw2@=dsj*wMsAt!5ecMuf$1P0YMGb7iDML8x^bAudf{lV{`sWWk z3*=~-r7%0&$qX9sLTW3f5`;zx_EW zzu^k0xbZGYIN|q#dkhn-%XHRuddIK?IN0{o{Mu5C%sUyH{YYMI`%C-r<4{sqa>C!8=!`VZ(Qg9Z)M@4Qx1QzO6puiwjq4?Q9mUbvW-)I#8;mtK)Yi_TR5 zpVT@8h;RP$UsUT|BjLjugZbAA{AN+5Q1gD{rcIE^IP137f5!C7<#+#EDXhaczx6$# z#Q+Zz7~X?M{Je86#KFR8TDC8K_m{H#ofUG%%+vKg-y>yt``_-yJ6;5;9j{JFx7_qU zGJEzcjl&PCY{?5*{9@&`Z{L2o>E>I-3#J7s_~><(1^oVo-iC> zice~ve;u2WK$Etqj-VV$?a)05*fQ*%{OqTXSqX3&;`j}Vo&+@99ax;Xpb6s{F~s<% zKrU);438NRLq4?!O$|bwAI!0_S>m|XVV12u*DMj^hn12C8i=I}&rBY&wi2~_mslRm zA1(msq)_83IIwZM#1Gd)I}<<*tf(Z8I6O#A4VWJt;A!{2u>$=0yQFB*Y&e5FQOoHB z(ChqA1@vw3_mMw-blZm)sd@Fa?_57Xt_he56X1%1 zD#0_LT*|-w8L4~e4T-_5S{?Rf6HMYk2{mC6oJDyOfOBCtXpM?apR9)?ET0{EKmw4n zE$JSRa|W`YLuzWNJGm!79}aHYBh?Q-E3xVtgU$;y0u}&FI( z5ny5E09fS0JQRg52cdNo$AnA-j@1L900b%omdgWhrUYXzEowRfD9AU@JpVc(po(zdD6XLhi=mQcs zn(c-C$YUufpdg9V(Vqn~f1@Akp;_wfBm~*IjLG4B{<-G}!FE!V5WppP{FSeM3qbTP zedyzl*US0mFH*3b+Thd*Cy@O8fBhUl-pvZQJ9)^3*aWqi#^UqOg=Y3O^3AV*MS0hs zeDWE9^Vfh6Jx6x#+$AH%4wMNK#%ucIRp<3nPn{$=Q1oMU$z%TbbMMKI|LuFt;!t~j z=B$OXd-rY=a1SfR2|4FkHUjEpWu<^$pfJ;NeW@vlOg{Bg*}St_Hf-1c;P@ z;9LOsCyvuJcJ1CHWuU@&>ZxZGu+2r;$ioiETzT%vgZ{>A%jK`P-l!=?m@i~<<{2~1 z91J;7o?-aIvqD8hrL5VqU#3l)s+X*KpE7ZR3>kGQ!1@EqKOe<&qehL?IF`IET*gX^ ze<^S4Rp*0)ebmU2^8U&XWb2l#au|8Ny?lk7HTOi-{%8D)mMoU*zW6<*0wN{PBac2Q zpSku*mDyeZ*ql#RuU;ej_wQE@`XcbguU_+!Jo3=J(s28q^}P&+55mD{9}Ml4O(SIC z!#ZFX&O?u1{0yxdZN8m+I7Pb9HZ5NM*5ugEP$B{lAp~s{n0;&AQtCt?#|4@K0uc=D4HVrj zPiGV0J4p%Fz(hxU{Q$aC%aEq*S|`S95kKY8_P;_-)Ka9zXkb0KDkF^&-h4>H8@7p` zr*Sy20B>q?YLb{k@iHX%-WnWq3=|Kj3EV{m$|KA< zi0KrcF-4=sp_NI8s$5HyUI-AL4q*XETh>|~6|qmItTL6GMBGtD)E=3p4$KmEsjn(ea4$5im6QZD$qIDQ)*wlh4wO&?! zJ@uFM;=u(DcIjBU^6p1v;MYGRu}c?9-NVnRPmyMF@2PUx`Se{0XkYBX;+q}Z1Mt{= z@^FdVzEs?c$HPiKsC|wj1dGI=qXqjS9LPtPZxY{vX;6%#r5{2X14T>6n|zEM;smW3 zn7$WlV+ITGuU? z@?ZY&dU^A$x8;m8&yZ)Idr_|Y^p)z=lm`$5?W>`Uz5@pX1k72M9B+>N`If%`5FcQG z=&mx2$1+$BX07yjjdkMn)bW!C0A&Tas(G!?nRTKj_RzuQa4})ftmF9jL0d3P-bY{O)-Om9hXz>bos=oX@Xlaj- zny0||yJ;IHz+9tFTzsNRG=Fbg^|6Fzou-b)*aO?{uH7$IMpD3gAjqMC?<9>0yw!Zo zXQ@R>?Ysae0P3HA3)l*rLvfML`xwX*QJ8%~p2jMo)s*auwghYm*b>N`1h8;SfFh&t zvbj=r-aJvQJ&r*=6=qX z)QjUi=lk4|L&OWPsNl4T;s@t<;N8`5N(+ZnUM$)PyyG3HrY8@mu`qTG=_i4=-p9XH z;se0m4?Op7Y|@Mcvr%;?xaf-)&VqC8HvmF=j5*cZ40L&(>Zne=;68ynZgl9}ya7(d z-Qbl6pr}`S{c1+bX@A%f$eIMK zbuOHR*1xw_!g~%#A*fk=V_?0BL(&ACbo0OrDAAEc;D(^(!k0^K06=l9ndx}d4b960 z9g()2GmcEH<0~vH0j)$xLOb_L`2}Z-=Z9rFR%=OcKOI0Nxch+AJoyUB2(5ipnBm5* zmD<*|BxOQwiIzz%V8&OOP~u9V87#9ht}`|zW6EGb^BWqdG1Yg zD?06L&5xNI&H6Av-qAAPb5|Q$J1J>Kj~=aYsX4vogSF67-=mIM zE$!o-yLQT+tt(MShj^h?UR2pK#XuiMj+)Ln0|FK@@`jv7@4MsUquNdEX zoj@|vTD0gK`SovpCre*@UAAuDCI1fKoq=VEVZFLw!F;*))7KaenxCvQ@6&mxv&aLk z_5G;R30iNaT|-Xs+B&ThAEBnYM=>oUfjnrT@83}?hYwdM#fz2`x2meD%|8)pN^75}vrtTbMIZK?P{S^VJ&qyyPAkpKNVKlvldXY6GLz=`bt`_0$nHPo4h z4zyyhH0i0ezis1Tt@8;djKb4R!Ll46C5{J{rbw{qW)FX}0Q1VqDtYwLC-i+#1})nF zi^anVzu&KQyz0u!@!p9q_FQNIxKn7&8*0xL#m?!tlK`3|{@35dW*Cc5 zn$V;EH2IG0IS8gupMj(*b-W4oODb z?u>oSb4&YI0JJLpr7NI;2<2g0)3A*zjHFwxR{a0|>1o6W`U;vuzkuBKFIr$C%yn|Ljfny4v2O-d)@&i=n z#0_)u+rtUJj2oYgrK z?=9gEO3v65r2IlS!ljlIHj_^BNvDQmSLCU+w7=UDXj=m2ct|Uv{K+Rt4%WB?Ok(xW z8Uz&-DPx?p6ixSVjN>52dXD|Ex_WV!gK~j~lf0gZzynGo=YM{g6ik`Wbdbw2w!N{P z`QttvrPjQ%Tp|Fi=yY7`b+pF;iiY$&;LCT994e)Y=S#z?k0kH{=8=&D(wBWE8FW%^+Iq)M@`u1sD}@L_c+ef0x=?9j&N+LYI`ZVjr=EUB9)I+H`JdnX zLgR2eQf+MfvOrPB|HPFy$o5U!<>{yIg{HA#*-y%v-~8q$GW*=m%9<6A%jgqEfj|9Y zIBNa5oIY!TYLJtY{0HCpBCh>R9jy)*bkR;4 zk@mv)@#AGMXmJ)T`h@)aKmScE;F*B(6<1s$OD?=XrcRwAr0^DqDMZ{W2bB>(m6pKI1RUavYSrN+2wS)<!|aQztLHaJy>tGd{WRzy6I&<@Yzl~c3A_C~?Yp)F zbnxIp(~SYn2Mssh*pWgQefVZ&M2QElm_=mdD z5mIO^4i0ATm%=G0OZg=W#0N)jbpT9)D^?>O7O><*MBFGQ%{Uj{DW{*kx~}alygO5H zh>EAJQ8-qrf%DifC}nt1pyPh zoZy~v@`B?=rpCT>i)aBEb$+RP^L>do)PqaD7}|pk;+s7~O2Mt`f=0NtscAJ?YaDH> z>}DR^Bq@~+!Fz~71FzwW{_N;^>!IWWW*V*hQA#oe-pNtyQfdX#D-=$fC=F{jiGRh1 zN|gXK1X_~Vm=RRsK?pRR_-y^NOO+eAY|&Y&&Cas(AAzmH({7jrS5$pzCb_U3&m@!2%5j8d(bf2bHsZ*-C8cOV!CQse-iQ=)1QXPu5CcCu~cg z*GqtW?Ho_3i5`O1cMN9l1fZkPdJJsXEa6>n^h~Nm(!_9oLnV`rg4w@x-vCP%?_dDN z+&8oYnL0|Rt^44EcJ}M1K9oompw=_ioY>YgDc2iuNZp8W!3p0RY1Jp?*{pqK`PH&Y zr0nV?5;|~L>K=SfTqEF&HXWH~tzdS-wgfsM0j|Hy`M%)9vBG~%i?bH#=s3~hT3hS4 zlxWmm{^FOvA%DB;9{DFY%R``0x#pSd8IC496B$pfYvdCwf-76Zme8z?i{&!Q-#u*@E+-82+V)+i`R=k;FnV;T_n>^ zA0?-ZA1mMZ>h<#SD@&CdoN+&O%~jx8-z39F&y)Z9#g}E(higHD^16KZ;Zs5_c?N3Z z6Bten;ZRsU{AepK9XY-lWlP}sLYWK4pSRt5lk&K$X1iIog$vG+-~9J)73lwupZ)^; z?EyF*{f$z}6c-y*JvUsB!-BQz37irY@pjXeZ=?}K2#<3tJg{0qt6+; zer~)u>GY<+iOgKo#TyzyL69%LnUi5U3aXe9gYg?wGQ5uv#bDa7W`op23nTnp@bXM~vO?9c-ez~NT>P>mEU znJ;;#j+etX--~vN7h+o#^nmc~EP9;;Ft@~^1?R%zy$F6P^0DZr&k9nT8IJ3ExWt_1 zIBno>H5SCx_dEfR8K%PE&32WR!TH-Yk_T!6YZKO`(wQ4LKI>n<&9JtDmUs@ig-cL( zg6~#Hop)0ni6O)pz^>~|qt#ni7zA&uY{Gb{0gK8$cZVP}bP>m_@ zZXO0;?np!(QgZbLQZjdjLCer0PXb-kq$hQQHUG9*hQ4~ktaIonk`%%BcH{S>CeLv=oZj|SU47zav>)hDh zDk=T)RiMWiCWroXH{=DsT9_Alg$8~%s%AfWqy+vyd+!})SCQojp6Ap1RLUFV5wai& z5Fk9lBd7uj%5`=3w40gz=Bw`g_S>&#XLn}5o;5T7O!u^{?w;QA1r&uhg@?i$K_Lkt zArQzby?g$>{r%3p@$%-&_fjvd(nLu4?!9p%PDGp==ER9(&OVAfCMQ5&IXiO79Ahr|({IYE8?Hinr0~!= zgfrrx<$_;FUdXTkbwXXvmd;zJ|M;K&v#egdLax2$8hPcFSJ76VIx{6>mcf`{A*1}` zkN2vRR7zlPSbu?>Jg%)zG9 z&r>i(Lp$=c$L?(}vzcc)G5zfDVK`k~E7jFi8qfFqUOb4{yLX?qmkv?atX(5(@rNel zaKiTP`S3$I`qeRMYHHL230@6+_LTz%4yeua^VhAFWlNV5JQ(af^1%mt)Fe&woF>@< zN&1EcnhGN9EXv)h&%}X&r7!b-_V52hZS60ClWT^Pu(|%;`|nFzTZgQNBi4lr7pimF zHEULDI+OkX_>X^~xBuaPbIkIv3c;dF8MMZ3y-O))EMw3dLbrbQxqR^b|5vK#Kp+b}!H;>t&jV}V&4+vT4IiI* z#RFDD8!QGU83XKjx(LA5=e%ZRw(9`Lh~cJ~otd_3Q;^iRrTdK!VE?rq1Ufbhl+?juX~Se;fJ=f676TRooR4UiI=pJB_^WFr+}sGQ zD@eed(?BwkYhp&ykc!MgdIww;%#lH{Z}JqqvJMRH8p%4*Ic<37R;hxSxjs73hN+o2B;T`%UK~1<>DroU?~%lj z6JV-i%>eIYPyj44pr(!1*r3Xf;K9Wm9WgfFf2(wXp6Gq{HA%w`sM>KSD1+A#fGs5{ zP5nhbJ^+(&4N_jUK+iWtB^Gj_O#UE49Yj#SWq4Cy#bUD3SB?%lT!YCUN_n(*M2 zQt2BvZqPq(BIV^E!k9zhJ3}iT12g^K|6f0lUqAf!N_Nr-D;=^T`S_hhQ_-Mo48^v|TvXSSMjWRCMs z^CO>0M;OFQvGy9Au%4G+=9u9zWewELnQF-F=AS8pS4!9KghaYGn0z$0{(^R96DjF=`y=W3=@a6sg;XRq z?`pFb2QD^P3|I_U3`{Bpz--8N^+IyIUh1wVf$1Fl(qXDnm*-+`W|>?Y!RRhuy<_*O}NdPov`Kb2l=B0`XMjI3F%em2zf8=Piyy(WW|%jvX&D?^!8T>r zn|rYCo+l9;;A?Q(r9`+BGxL94Ts7{xLdtQN-v!fkao8!&QqpFkBu%kbj=uSUBtAVN zb$8z=HQP2gG>nV?nU8ea!ZBk2eI*U1G#So5NKMj#=-DJP$6V$F0Z>K<+N1Ty6h^6b zYS;8*9?in6LCd#ygOOb>Xa4B{%wK05EfkKG5eJTGFp{B-MUyrD8Ze}c<WX(@nU1W7~sfqCx#pa#evN~ z3|{9Q(%>X6XEziBvS=VINEQSZ)I(k0nb=L*=oiPN^9K)!lwm+)Gp!P8P1SgfJS=M} z1Z^88nkeisCgAZN4EAcMv{ynBFI4Z?5d(7ce-3ZndOI_f#^j{$I8UO9vmuzK@>};~ zvmRIo)hSB*(5@I?+F&tYF<>z;nHa#_%Z<4&0<#z}ClhL_6WXMvZwY0%oAqxp>y%d( zor^aA{@ti!7*d4wt_c++Dxq%F5=(b>N~Wz-VsJ=W0fsEsYbBNef|C8&zCK8ayZ$p^ zQ{4x~i7rV{rA@%za2#gPdLfAuf&_JB)iS9#f2C?xcl_irNgX`~Mm?PORn$p*?1(RP~Wt2}?Xq+xa_(*Z3(NR?$%$%$dQ1J#riO}C?ear}_6Z-d1^sTe?i zO``9x-|&x4L@BYY{u)Y!F_qGRh9zCg`6t}mp!V4_7>9m1e~!VoLgFNB@g6%4KO7h< zV0w%`U_J$-ohDJp+}FJbwU2b}8$DFbiMp!^E{`@-Nf6yRm)cWgxT{I4bGc_j{kg88 zLrKHku-ks@g!KIK*AkeA{RTCnY_J%x7*Gs&nWf*n?;a_KLwW`iUx-o7cjmn}t!DJ( zHSdA%QjJD_O-$!OArglibKyYIM74jw!tZ@>Mnv_U)XDmYlBW6o8pRw_u7 zZY1S;>*B4eiO;|0!}h-SzT-6Obv$a)Icdz(0RBvj7lw)Bl_p5Mf$6-V5dOXI&HZrs z%sT^%MbI(q6A%8S?11h1va+(=w=nQ{HR+AujDf>NFI2n5JOhMj!A3AV>qQmufR; z$r$ieLBfU7?38pS!KM<=Q=ngx(av_#5mFpZC6+Fds>?5u>MiS(L6d8%61_-Rr1_f8 z;D%`#%(L?}bAQoZerwv+?E$l$>Z|^GS2}0rwt5P;YzmC4DU2OkwON7zEHj}sutRwD zC2(+ke$ELeop_(~;I0jU%5te#y>y^DW}O*`8GOf~?dDB^(N3m}A8T$H=3(@3+^juF z7KE*KKeWv>31^S zTYu)0=5O60k-3m2JX>7{*L>g!_0KJ%ZhZr=<6gZHHYisvktiIia~+{+8FSdJ%^rX- zyYAfYO_o>Z;-^XlhXIt%MxC{LfW5rQTkth z7xOZh<#7J2^WtdQ3S7|)PY`CeXl^V8d+usZ#xtjn7%aX;7Me|gmS(BGc$09w8S%XB z&hz29&G5xk2MK)a=U`UnoCr%{pP4z+Ee(Hgj~-69{@tVSZ9zsNk!Kn1BkmtI!>qu- zrcE2Qo#U~NbFWW0RaKRP%+q*bn>4)A9E>pu<3+YNy*K_`-J`10HW+-<$?RQs-jQp^ zS#dm#+nj6UIljqbxQ{nAevVsbiys>XI9XzYO(uGv4ia^kGy_ew5~!_#V>GClQ_2pf zVqMR^DzVqzlMqzC>%X>3`u81>z9(OWr+Y|yLkeS1Ff$c4^WlYaRRTocvn(+4Q;>Ec zA?YKdJwNXtK$G~uI`fbqk%0M_gl;Y?cU*`K<^?bd0~L0>W5`Wdrj4akaU^L=fj3Rk z^h3(B|IH6^xZ-X)c$h(AeJmS>Y0~zoRZY8!POa}@Ycr`B;QY(YH%x+6ZoWX7?LJ88 zQB9xBLlUP`DtPC|v)0XFJ!fFLEB+;_l!Nf|P}*@htI$ExeL zV;_@%xvM@2&1sUl-`OpFzj;skUwun_m7sZ*>FdsyBmJDr#P}omwP+R*JB9OTn<4aEB+zu!BcB$vIFh5A8(V&n=XebwiVL)lV3^( zCKUW|fNt%!Pxi;KnjPW*WZdAMXo2Yo+YZxL}}^Z!#_gSs;Tj zkjHQ*sXR&|U=UdQFzqp*#8*@ur`6xNOTv&+ql#dF8*{2L;=K}mXlSav6NH{f<2^S) z%B)s;egg@P5Z>npWm>~YO%#a}=x08c$?ERFX~!`I8}0&?=qV9M)UwWy`p9;H5QQ_K z${QfjzIB7zH&h(3qT{?kO^LQoL?wtP;56MAlO7zoLG_r%cF{bU*O|4w5US`a($Rg6Tdb1J|UH1~7uc zu*Vx%x>zD`fEuK|UpE+Neyr_e(q_8)hIf`nd>Q6D89c~WPrkgOkvU^WY8&Lrc#V)-JqC!aP9JCvi27&*VH#6BWSW5=NmQym1m3D?rt(Ua2o z=nIni943ES>XhUfx4NT@Y%C>J@OMyu!{so+RN;UgO&=Y%N?AbD4g;K1&}YbWSMy!d zt^rPkIp2`s9)ZJ9+CR@k6`<@8qOhfaHww>-g#zWyC7~?!x%$)9! zz_J!Flc8BWnn0Kkt_n0mGQFw_b14qzAW${hz(a@d;`x~WKc3ua7hOr6q;~YG09f7C zJEZ${_!oI^zXayP86v)q*|(0iZ8o39z)Z$Kj=mb_MxG5W-}BEf-Z@V5O|6V`m1aG- zvwf3UkDzfzK;EvBtCbD29s?itd~H>e9*?O4~JN^%WN1(C17$Klh`?b9Fb{3O-BrX5t8YNN!gYa5{A=FN_)?U z;Lf*fPaS-WM4(Yd^?skLk>y>t$mpusxed03A+`S5=U~>BFbC`UKFs`q_x`#{iM{(< z>0Plz!gCq`7bK@kH;fs_X5CeI;A4UD?hS*?0nN50nz#X8{E+akx$Y7P&To?Vfx~dr z*nW2DVZ|%H>oA{IxoG&lJ~|YJ-~?$U?N7`z+i>meboPGa7(jocba)0PDFZZ7X~y-) zA)V74boQEx^-BMzUr7JQpTc*-2}wipJbk7^wPXD-g{AW!80AF0WmFtZ*98g;3@$-} zTW}xToxtEOK?i4Wg1bWqZow@$BuH@AKyY`L;1b;7&hvivuDj}Q|LI=URp)Fu`&0TV zSu&<)jKg#+4}p&Vlx&n?yD=^$W!MlX{WfIx>B}J1oga=5Dtk!iQI@BaZ`tb9doH_= z<>~HSw0j35fQ_bB*z$kfG>~+PsPUrl!ZN+YF*$ z-pv(Udc9wpN(um85}la`S=5bVU?f0>gFy0D#ka@&;JE?bWp>Fl+8}l>Hj(T$+6_;+h$FqdA61TA=kbuUmhVY_gyD-|ur}CK=qj&Iq(cy^|yq zEPIl(R(YY^FxvGg&FxUvcEgPfK_X{;sYCi}_eOE_$TmyDp9|6@vo7_*d57cmwr6G^ z5b)^0Ig!lWk&F_lhkMI`>S;wE7i{+Oo z{f!?3udtMU2R#%k-F#mfe+)ss3;yNSQEP?RoN@yuY{Bj-ROwe7IM_ zX3RVJ7G!NGnMN$1T4-6PhEIM6ZkUeCOh?m5M&Kh-wp<`;APJI^ckWNJS>@wMQ8My~ ztBH4TThZ@;Y4g|<&=k1ah(j#0OC|?lDS<-yxPTO~IXcY1&t2mm$;AT@pD=8v;(+O6 z=Kt$i{@1sN5fMdvr^rKKO@T(hgLy1kziYVn5ojPs<}*8BA$;W{xYp)PcXh!cSuryF0>HNI305>x>)hV0IjTvprvKJ(-7@oZ1a>r8;{CeHK~uCW(XdT zE$=$#gFft?YPk2HSvJ}U8<}aifLeI7){AQ=nqSI%R)FQrwrxf64e~g*o}`@~$^BhI z^cSAu5q+XUBktI?C7#j93%R4{nG7L2y-IR6nv}Dq@O#b@d_JHPh@g_LC|4R^!pI+HNNR4C9=q-YXUCPjMM(u z-zUC^hLXvqk7VS%(%bMJB|Syo-Ruh75LHf*1O`(rfGX6g zl`=oLRw570N3BACcjI6<=Sqm9hX_`_zArJS{9LLq?wPvCQUAQ$UBoy(-{#M#R zuS}3YRetR3xahXgPTSW5ge2#_jn^8u#T{5qdx1fEz*swT(GiBu8bPP9r<8f1|e(GI`PUd+Vd@p37f zMvJbHY7gBGIGqD`e2SAp5gUS`XYY!!G&Rqx{u$z|u}=-f($M{!5%m`k335XV*@1G*5_l)B!Dsf!C792}|oU4PexZS2`3^UHoJ%-XLAF znSwuCPofS1z&v!Ee2G~}Cu40ZFh@cfZHi_d>stNE6) zsw>T5BbL0MJHE#Lzq^op?Jbh?7Z$bZcXIDQkVn(dE~{gqa>F+Jekv<1;ASZ9YifRn zRP=j=xzhy&#JeNzaJ%FHl=^g=z8;j9+1cJ0h{c?Dl91b~pdTj`!^}$!3G=6tLA92N zYgEcly&qC&k3!-+r1Ac=xZ()srmXu%SEp=vpftB+225F!52et3j?bs_vMv%vW zVyqB?o)UU+@q#I9RU)ENj&r*@6?7Kfmo@V*K6v=9^Ac;mMhG=@YE*i6wV8s+d3;dt zFfP%`W5%4_6zuNNr;3MI=8VFrlYrI#q3Z{C#%WIdN~fW1b*omZN#UBuN6d zGK}#FXgwsTG@02i=1|j7poDLRi?(!ixk;z421OSJ3HByUz3^Kl6OnRI6a}+#w>sR_ z7RT&7x9!~2f(#ws&c7@C^2DQmh@@P8OjF?L9v-4fr9^K0f3pBGREkNu+DPd!NQ&P! z_bWbUa+^Z-W`WH5I!xg_o>Pz-1BQ zxZMCz??5yuV6k(w-b0?4>}r1FbFACzqjprsRU#M(s}FL%W};J7b8y^U8~dr3Rh;!~ zATv;J^R^gvtMtQVL`_LwSr{IZ9l_ zN5klDDU%u_b5pIz1S0mksZFT02n(=fXQRO4a9A1Y!wDqndl{*EyeQCd_(+DiG)MI- zuAkz5dc;~{XfoZq*t{iv&a7F`)8s#KsT$}eyhdVv^}^Mmu?Kwe8j3+0-_M$cLTZV6 z(^1Fmf)iw#w0?YImsDt5fuT=XoNz#|Uk#cDKYYgxu6a26@QgHnaE^r z>tx)M9wZl2Zne!!RWq$yyGd7+`e240CA-`jCE1^e(S~se&~J(P;p0sWfKtzoWmy z_N79OV+1SOqRnqn8{nm4(jwps7l19{HqZ|a3#a@YB=mRC@9r<0K@H(0yuFoa!4E5C zOAM|p#4i2})Y8{i)wH);3_E6R{$O`W%6mIzTC5T^Qu{AydDz?zJPm4}3K~5Qi#WKN z)QP*KFXQN?peUaFC!btp0k-tJs1r^)t#K+xBl%N_L7Ia+v`#PXb4d}z5r0Z}HC!%q z<_<=rt_n$D)&w$KPmzn~Ae=DM<{5VJlU`ki6^uPoi6I_dX?S2hjNYny2RPb6bF=d@ zPM+QHNv*sHCdW@d&fdqxNw8^tumyMDf$t0w{LYVD$gtwSy&DsZ<@sz`JlmI|)LL!Q z8gSWMNOzR;Bzw>KYm@5RA8E4pzs`_r^Jcsy_ctzr^ozjxA#E5 zPCAW!?oLv#4=JFJ<7e<*;pwMexHYb!V8$ZVz7{O49&-7LVB46(ar?$k0kslVur}z~ z-Ce_TA5+8if?ivm-<{>#*g!lc;1Sv^uXZ+a7W*`gKvE-7M9o*1HCWf1ieW+Ig9kNFRz(tV;fM4jnm zrq&L}zeAUCB+=0I9>9$bFkApxF}~BS^*}mNl}1qQLwPU4KUm+@e9Tq6;%n?{GHsHR z(k(?Mfzf0f*EppY;{TUAs`H^!Ch#hk#**BFwp4oLz2eBZzY*Q^Av*o9n!hK@?$(u& zpPnYZIlgbdiwuc#%FI+K@9<+e)6942#kF-z+C9`k<(rp8^GwZb-Xy_$+HQ91Q~GH3 zW(_$?1xN#~@x}sZH}SbT0%B!A0UG_!tAUw5=gG$9o|5l%pqdQ?Lc0@~^gsPp@NOFD;kHV!wk>i$gS7WYH3 z;z-WVGL;I~XDQ5hN@oavY<3lwd$!T-$M7R4X56A6V+%uwwSH+o#$`b%NFKfLC=cmY zS^8Q${m6lB_BL5fqAij@L_mRt?@-7J{QuTK2>ggMCHifNuW?$?kgTQ#`T*o6{5bo4 zVi{8^#B~OVszIj%+F&8EJ85M~^JRqWN{lj>Ix`_H%od16Q;6J!!<+mrV(fZK!9V@H zN2t7yLuOJ58L$J+_YP%oP+AGx;$TAe_p#O3z)r>c$`1H?PX10Z66CfJN9ky&zsfh#Ovl!LnW_hv$LDWtvS;| zAF>von3SUZ;jQGAaQ^{j{O+oPF9l1NL3|jS!bwYVsGi%M7Xy`H$Lvr3B>LL$wn;7y zzfB#s@s*z7_q9R6-$VkWG(c0`0AorUkz3?UY4ngN@L-s&LWF;RKw+&vWtQ(YXHdY` z+zQ_~7Y>XU@vJW_Y_fwhNwV@dDDpW1bW*;j`JaR-{8c`He(yR(bm3&`7hoq&0Y`Jl z;!z*Rj*h#}|5mnG`bfCG zK1)wZ5q;$_#1uiXwv|h#OD9VO?DtF zjBdRUZBXa~vdpZrXt#MNtZ5U5%6&Nl4UZ)!IxFR{ZbsAu%BY`2 z7f!zj(XOvQv3;S%`BA^&FfCY)9FU=Ug%Fp<LsH@*671ro&%axL3@V4;IwIS25)$r(hsj1Hb*%6gXIjb5^F zBv#y1&MrA(XMgt)eMq9kA{(GbwZbnu`zn?x@*GYZ;4AT%3yY%?VeM&gP02_E&O}9G zx4Hnp6|`CT7oaY+p0)fsnhx~1;G&J(S+|Ob zx%XNY7g>RW0|ppMycqc$GucYSqnTmO-Gkj{qAa1poqcSW)6Oqghbwo)HX#)G2+717 z%KcspO1&P~?f&orujp1qFAUh`pxKe-3_NOlHnB+%RqvX+NkEq`f@3x#^`*aB)R$vzs=(+t}UQhyX#~|Idg0$Td2^SN{haUrtej=td zNtijoqfA*QiOkXGi2IU_db)YGF9=Nz#c?q5dT!9V>pCtdo5!_4biu!;n%`=$n}a=1 z>^Q+SP2$(}*In1&!uYFAf7FZJ*CQU;)?}E_yf~dpk}*1n6Coy`4G+v{crGXp6WOc* zeEUG^`J_nL_Dx@gI{xK!F)86t}SG2L+47`i_UPi9Tj_Y|z)`TL2BamrCAFW1_NPKOAKkCCyzbd^gU zId-TF8oyP77P{4@-Nq3{J>mTtLk)@I;EkEI`^RDtWbg;GVI|WH0pMgoPwshcPD3S- z#$3Q6w~CQS!wGg4Ef9}agBmm&p+Ea?DJCCu_JgU32dI06O|EiX39=OzR{c9>4c&sd z-)uxos5Xroa890gHqBGIX4AJVs;)##AtDJ&Dytg$IWIwb@Z3Z+1a@iB&xf9~7D&8R zKGOl^oi_^Q%g$n#lT)^EZg`iBYZ30f!06!eFYx0JDDY%lwN9#9`5+mz(c3@Ig454G z*FNtt#DnqOeyTwbO7#8o?4B(UT{+BADmZlpbcquWBA<%M=#iNY$=@J(<|^TCdtksG z9M=UDtM+Qknhvq&8yUGi#`}F6AmQL1iDOk-#Q7>a%$lyXeLo{g5oYB#Ss`gQnL;;8 z7&g{|>Z%Hdm1*bHs^DYngD1tDC+~b{*!@p_Y)n`i6p28u{ZD!7b(CcqJCOQ_1$g@RFs)#U*fNr)$zLc$hGXx1zBTYxqSlfrbuRw$W&ZNJPJ_W((i2JEz$WbTL zYXmdsBcAgk5|A#taNgc1Z^b#TVMGi4nw*l7Mf2_hdIrH#392 z_k@@5{ECKA%N!;7n8n% zOWZi{m#ulcJT4lB?{yoh0A|0$ded}5O!gy!jB+v1uPqhM7S21dFyi!inF=v{KjNo< zK#LJ?W>6)|60rTEHYW~ps+wK({<-Ys6v`(NktB}ke1FWwktTi~VLoeV<|0xY-)Nc) zxF_Og{gNfq)1fe8eihoI=asz|+z|gBpot4Gj08E_j5DpCfSXi@d{nH81&|?P+sj6s zew?)Qs%B>|TG%-50nGL6@zyVYc8e#X|Bh_dnf>G{N@+Qpk3Npb%z4^Qw=F>O1`i2c zyeuK?>+*e1skaX01+25U8me#iM6DyFv3L3hfCg&lkz5Xpd@rozC8$F5bztCa@@^Uf z-MU(Q0D=&@)g~}IXaa6`k$x16k-)Cl=w1N?-XY?>2Qgg0edTdzr3{fIQVlra9;RlZ zC@cR4BD%Ps87$hrAe;@prea&0(n9m4&)ioq?NpKD48(mkpoG^zy)vu4lu*^yWpx%vc^!p1d^tDaHHpgvBhH7j}+(L#aL@C_UnIqc z7RNUJzX)3TI1$m7M%JKn-Z)#6I|nLYbyX^J-b9=2#yLqJi~c4Iaps*U>CTy_SkgFh zt_RU+g3|3m@YMJn?N{JC$D)2XxG=69o5v8-D8pvs3XY}kh=$jH)DOKeWLWstQ~8a5 zVlnnXY=OrWbL{0!qO|x-9VRduYLS&9ZMN2YnEOYB|LL+KA9VVAe-U9q2PHYMo>Cx3 z5?f3qTc?hRM^GlD1%dQV7VOsaI@0&(V3VBKNLyE1R^;PLZYBK7dW$gMcH!@|^C{M0 zc*n+~L032}HlM0UnP6J*3n6t(EK&yk>##!kdMmvD`yGszG*UzbG3c9>(M9$O6vUAi zMbQ~5nAsVBD}QoTsL{3~Rd&|)kPxSWxfJh;foEY#?5^vOcBws5grNe&vlc3PvS~NDUAFl(2)fJ*L0}&B4m#$j5@dzOVfyxq4sTwlXtSnH-(jpjsM16{Y_*PiCtumYxq|3^IXH7}7B{v3@z@!HcoIdv z;D*hcabWe}A$KNZW>p0d*KtqZR1(sCe&vET-!RWLPB-+U&wN-m+cY$XjiWT1EIIYt zb1!e((qLlfTO0M<`6NzAKL#%={)Bd|A-Eg*LBn@}y?ni0WuL-U^EW6CI7~_N?zf9# zi7)Sg)F^C>#=SLBJSVtB*iWb**8IjXkQN`>@s~AP75L*iG|V`qQH1zh43)U7hl@T9 z&neDvs857=%P&cj8s@=UGB@5Je~r> za0>j^m>1*DQ+5kDZ~*e2bBx_2(vQo@<3&xn|Nrs)&a}HYV@=WV@G}JD0a3o}ZNTv4 z;In!ZjUuVg>V35$&nc2ZQtgw$$wxdnbgjo+xkw(QTSJ9f(M+8siv6L7Y=>w0VlEQZ zsT3rnI2coFL+W*V*Q|JjbQ#+y!I7wN~h#?pG;IhbBn!H?L$B{ZHTe(90@Tb&bl<}Of|OcVpuW zs+Iql^c?$CZ$BcSwY&+hJ8rauC1C7Wk<`8I?fh>Qen6Or(jq3_TH@2E%$h^Q;I+T?@~+gnItz{Q_n z8+NU{4fbhZ!G}MxaLhZ+xvonczTRXd*`K=+ogu+5f}?|7zrcGM7ZRrpqc1S~^K3Qr zq{}yYK+a?`4Cc$#M2QWstFG zHDf*9hxSb#m5edLMGQ_J+PCNL=_Ake&YH2~EL7QmZekxL=Ac|3Xb8tCBnal8AGU7GOR zijAywoTw`ov}3wTg^q*-c`pPa(@JU5rw^oF9PO{iXt8R};H41nZ@XKUKYh;R!x%nS z4)P^5WaoPmyxV5wFW$W>;XD;X*Yh`GW!vK1bq;-cuJ@j3apGpA2>M)O=;vcwbumQ2+O{*lzDQ;CE{Ui0(Gw#d^8+%q+0~g_aF%x0nvmDaEq6O(18Q zki30ab3jMgBV|2Z>%3Faw$W)eH{tleJk$`>l!3Uzuu`<6JE2g5UNNKwU)1-Px>$w6zv zfuNSqW}h9BsI_`cuKGHGYI)aPhOyvUe)GPdXxD&hu|@s!*QJ^ClqAURtSPQ?nGf{w zC^~g(e5l#>MPX>wH@g1qN*Z!0RT-?Y1#=wr2Z(;wdwJq~<-U1Vzd_ew=dRc4j3AK`nyw zqv&UP0Mwzuh(~)!X01Alu9aAZ#ws{97+Qqe5_WuAf5sivghO<8;~Zev3F9I<9v4_k|IqrM88GxE6=+d4W25edjd8+n8 zS+x!3Ly03eiGOb+4EY2fW=q}>VZB+DeL^kV0$FS*(*p&Jf+RU{p@&01)&-eHa^$Wd zkDi{2h$LXx#4YjrA_er%Sk&egh6sBckF6-|pBVqP=?F*qir|D11L>@4t#%a)_dB&; zpLO%4p4(|Z@j$3B3F<%REgpdaa5fvQ;;N*pwO^%>e&6XlWLX8Cw)7X$yHABI-f^!H2*I=zr! zuj&)cz_LVw=rDM>_N8LyKBILu2vx09-$d`R)cG5Fb3C|aV#P_)^!IoM2wf3;{hju> zUc_>!pKna}SNglu4Wd9RDJec0zB;4bln6biDYjWgt6)U8C(ZS?H+0hrof&`Mf5I0V z#Xt2eJFj!mmFb}!iZ&MubCPgc5-5y#78i|;Wc6L-d%<1yUan^e?N+VV_tDPkhHqd; zk>mFCl9hMZOL7TuE?-nLbR+EvzevV$@u1iD!Ikh5vhHL#zvFPh2u~ znWNJPT*Hz}B9MupHXdlZu;Sc`_z8$3-|@v3N;);R5=H^z8Wwy+FS^JzD5g}QDLg+- z(-+`W?(Xzm5f`ClTD+m}%Tbc#S}5Nm`_!(+%%N8xz$7n~<7IA8pkW+1Mt8IbE>2iF zkOcU(*Mg$ATD&l&LOKE#EO8MFJD!Hp=+>6e=!N*u64py-_<%FIwp2q>K-VX13O8B^ zb2ph|w-wZw`;x!R4WrAT>>VO6-_uZ^T=yTbNP#{2AdEXL+@mIBx)%RBi>;!C81367 zWBW!8kmaru3``kh2kHC)77n!0kw7B#}n$nJEBr?c%@hqJE7% zu=>nQVgW;_rZ5kIlnkT!3hd>`eGm$4*jayAwWFXUp@HD!V3x9?XQ_!3@xfd=JsS!+ zT)MMi@Ao3J2QoYzxk2c^Gd$am@DE0XJ1D2i`DkxloEPtgOw-pgE0JS_kaIBO2>0yU z`S0OFJFu2*3=0npX#1q~R-bC)!kpFYVT^yuARH8HQt~0v3s1)>hP;YRK3(o4V4DC% zshfW)bn;Ae4lNj&%rGu&Xf=S`M-nWi^`DNTB zd(BjoRE;RU``tua-~90d4o=kM`Fm_xD*WwYW!HSPp7D-;RJmiv`uaCPn2czAq; zA{V7>8UYI$sK~f#RPzX9W7C&|8~6&f$_FLfau&tKFNeCt$NTZo*eaY20+PLJ;TcDVnh^y;DQ-LTTXu^d2H*iN zH4aM`_tCa?zaEDjY~#hPpQf&faTtth&eKD#JrPS(n#=i<*i)K$^zm}41F22}-&|ub zxyC@KK2LK3vkkO3wCQRa_N>MJ&96s_H4oi-ePjw|%xEhG)~{ReL)W2ON~FJQ*yNFm zc*v7a;}l;g*DF;JxD)J4PgNadZ8*|m80J>+fD^D zx-KF3Wbv9pjATW3NTY5m?h|x2k=_QkX2bWfIuM24hhcz+%;W-&t&4RY-W8wN$YM9m zVS^S`U}V^>M@*cTP$8#D!LeT1hEweW(9328=I>tNlOH(`Fv2bvUDo&zmXS4@6Z(YZ z2eYg^snYpBrtDbL1^UG!1L2aF6;pgLdfg-}{%XvP7CaD+KNRXTd8|n27rtcZy8L-c zn&*Ri!*_lAM;e5=KSw|2Rd4>jXH!VB&SKRNaVu~TdrT&JAu?Ymw4KX6@arve2X>hsK?m~WO;%x2HfX)p0t?A@n79Z zg|CiE!o}pi(N5k=fL=sS`gWg1`IVCNO?|3|kpU*STLtHdiKWXIMJNIhR70fsr+*~6 z+ZCafP%`<8O}k7ubxVN>T`8g{MUm>F2yjDoF5#5%eE`S#e(2AT9HQRnA%l3E`NUq< zxQVEATcwK{nvZ!@pr~(>Yj~5nDgm#lg?~5U?!MWaTN456pDIRSU=uC^cn_PhQxtaQVay9jqu#Gr}3u;*Q+qgd{{2gqfm>9lt=m$#Dd zDECadzpH=3wR|)^Q*F?gb zA>(*f36av?NOfAU<+}IQZr6@$c@KK&qCcnJ`t|Q={8-OK1)@-r%6E?0FjEWdoBM@z zCp-u6DHY#~`X{9yLS08`k9~D2+AK{7FV7cRJ^71BfakjKr|T@PxRGxJ7tEK`viQnM zdtcxn8!IzoMPeU<;0mU@B+J8+{|qbdhe`-Cy--T%-_~(#f$^30xyt&@x92~5gSiX^ z%Z%SM$4P>}&ZP8*0q6UEf5bjod0D*rkXpqCbs{%1<3hQqsED;|P)JE7H;ZXveB^hFyU|)Zepr4S_#U~aq!z(_IhK(4QsW3 z3%Cc}?<3FID-q%H6F}}0GfpF~25^cT(S)33OzvjK58gG@gtWo z+nQ>&DjQK#KP4&hiSZM?Jp;2Dl99!d5tVFjy7jehauyV3au$L)L%ic%!!jlm*a!}p z!j(_UsnP}EK9ti8Zldq`**rG8Ntf5y3+<+Wzy?;P%Pp z{iDk!L58@lkcpS}_lZuXf`({v_{f5UhjviAeRPORiaM+R>xZ?dLDkWa8KY@bTF`WLD5K3 zjH3F%P71anQEpeDK9K>DT6$w+1}Hybvn+`=mw6pudahSL2<#?B zdFLbSG*a%I9?UqwqH$ac4lYy(ykJ9hhKZ1gA_*pQ*2c~1 zLS;me;%w-;PPp@{Powrb5$_S|dd%{*Fm`X0lYi<_YF{REpwmMf+nt4*1Y0dN7$6-q zaA;h1VGr)PLw05uGwJQ^*rppAQPSrMpp_RQ#yxV$-J`;PtCXs1tbJ?I>4~etCcQnN zxu@>Q`3Y&MV9GxoM}(WYlN{T$tOtxMTeJMxM*^Z$m6r{g*E!`!eAXjf|}(qoy5jopvukd%2`?91sSlagU5uY9tPs55_Tsc{ zNv=EZY8?$*Hzg|H$~VAQd2hiyFR!AX_nZPSN`$c9Abfu=MuL<;a|My%pSpNnR-Cqi zu(SBeG#7f^RBq1fib>;=0nwc6P=<9Fh2k0vf9sIR|M}^@1!g;7p2>+!CN~n&Me5!y zFu&N{a=Z^r*TYpGQ^6o*HcqL=g9j(_)E@gb3^~fV9pb!O zFWW=cr&74HE}M_PoEdc-k@$YJSNlKWEL1nP_vfa1Dlpf|Md>~2<+~j{sj>vOR9!FR}jaU@fu)XL#uJ1txq z=fW2x&S1R`h{L6_XnseJf>wd^&7oBy^Q`6L2lV{b!R~7>CnB@dW1U`Vy~^vr#}*lJ zAu3dGu27aX=$*trOtaZqGB*TVW_Zv8+?RKuGd81(ff#)vsHG+3U5^b#ae2=6d+(6- zv70cqgEU-gb_hQyA%7skve`)h!2M3LUeDxolUf#=3+J8 z>t8^t^e40sbRuSkzH^Pr5wmqh(8&a84*R&yDIR?iCr^jfPvW?W8bvQ4Fm~SM_`5K& zD``GYjQu}*)>l%FG{KE!HlD&AaJTEK@J?be=Hc7N3J~?wUYh{HP(!2@K%lhYDJ`0R3~LKP!2tu+y&0nQqce2gBHRdV&fpKuPU$W&+EPuX6o>$!?T!a@(bn@rn&M8 zXjoe1ErsLXd%9~)!-#6Gu2J4uB~LJ8I8)3#3^Euwoh8NvdLuqb+uW}OCc_kr)DGBU z@D8IBWZZuEzXS|6{ZM2-qgg?}M|K8%+YDbc=aa@m0Udayy3vf#;AI5fi+>M#E?Vhb zRODOr2!-hijv{wkY_Z$SMV0rc{Ol7{D!X3v%k^r#WIm>(=#6|vmjPym7t|du?#t0V z4p~d#Mb`VCSC{J~OTeRqBjzW{yYj%Nn-metiXV(hpg)uG&Qr0CR&P`F_8_}xB2+0> zlqvJh+eQSGah|Uq$ zFV;3IgwK&Rpdsx%D%r^k?RlIF@bv=9!+}=z1RRgxz1&k z!3Bh)2tL^XdP%iV~kJAVp6*(-$XpxK9v{^wR`Cy1EWMi0dWl zhq^@@j=O6ufH_1foya#wg^2O*6T$t-gL2W4Bf_3)ilKV?Sxgk?k-bEAZPG}j&2rw~ zbhSavA|EA?`*f%EhiD^pGrM>#!#Zga$4<0S*K3!ibL?Fzd&<$e?37y*F^(wzyz-pw zqv$3HWkL^;8#b&#BE1r(4OpUl*Se5RYIb~gtR4;ROkpHM{Q9K>ccso`8YbpD-gwi> ze7iSDaO=`thI#RM09S^-@nPTCQzD)mBjsVP<*t{OBIx*5rh`T!*)mEV#kW=?U4`RX zP3PPdtivU#Opg7MhsIf$Z5B&82hilHqvBLf3Aac>Q`Lh$?|#$F)!A z{xwdzg=&<@hG?w)V2_%W%i)j2rLJ}meefHp-(CM9mcR=j_+y0dQ!vy^@&^oa|BoaO z#^v0cRtx})qJ~zN^AVS#xP>NQG3bqG4_UYT zQ%1nJ3(wPE3KA=q^s-)kp@LLBU3wZa@N&tDaPj_{XoB-#fOC&wYBon-s?r(8?bp;} zUB$6mOy-kfU-kJBMV7eyKh*L@0>mh#bXyyYKz&Y+&6@s;G@$^J6+IB0sd%ohOz|24 z+%i@jzX*oTn1a$i=3QUa^EA@*-7L#COUSU9JJ%v+mW=`Bn}LisMgqN z1Z99D%*x=Cb4}3>(p<$Urw<2ZI;22~?X=W624o@mRM(k;LK4sCl4Ub|A zkJHJ}*2}B+g5~Wmeylr=Y8gBC3H$_;dsZ-WSGxH(h5xBu_h}CM3iMgBOUEBx&*jI+ z7vxvE-bk6c>`Hmo-3uMFmtQX<6Wk)9UmwPBGvx^We*FAMxw(6LbPD;iL2dmyf*s_v znO!1!PY!dzr^{g6ciR)qWb#M3=S+SdU5*XC==6`Iy;yn&Mvt4J_8THV>`>OiL6a zJD8I9z=^@*rGboMryz{vD9TGuSpbefTI zwc>a4#r~(1s_%xAj}m#bw;BTsr8Ppp!M_M4P0g8r1=Mz~ns* zrmwSfn64IFS8br_QUjMS@I#*9uEF@8RjfO>{mUIfhjxEX1J3-JcL4%)7Zawfc%&BX z(h^g#6Vqr2XH2{!m0!DdzTdTf_}Q{=C+3wm_L5LO(LSkk51*!97(vT}dNTJPB~8^e z^S(OX!`$hzJ;1@(yD)WX93{5@s3NL{;__>AaJ`{-3x7}EYiI&*Zmfl{E~)kJEdz%1 zOQkUMX@A)8BiApCKGJi-;G(Ckh7PMc6>wd(*3dsHGIA`$eBQ{z;KfyPdc_9c!DMey z8kddc+gaDcc79ssuSmUp!a~64o(x;GIJ2Z0^~?ylhyE$^Wpu96wxaDL#p11q5jqso zax8O7jWQebnJ0CR{)QYe`hn0}#?rQ%-Z*1^r6DkJx=l(AKgI<0X?GDebmyq8I+EFZ zhpL1Q`vVWMO*#NlQbE?)t;WG34oo zgkhL3f%-!+o*=GxiCMkZXHq29%rkKmPka1We(~bIlF>#j}qulm>W{ z+M0C(s;ko0lXB%uy3H_1M8Al#Az3mPEGa(+!GF4TMri&^F}07buyY-Jj7yiyxed1sG(Va#BLZqg0qnJ||D?iiVN!xc@L> z2pNnwgeUZcuTG+-y{>kGcvMwt!y>!UD>uV}h4KEgU}*vXj*)C?#BnU-lxMO3g@BP@nf%4Si)ygQ zz{T?UZT4qv4SO zCnE`8O9YDrl(J}VgI$a_s4O8zI*xjUNwY7Jao{Ix%3xWv^fM5XL~jn3mvjZ+%7?Ly z7R_Z!Z=KVM$oz_xe>bE(L{13-0?2Hw-li?-*awKs0B^jSkH-ENvZ#F`nw%wVahg|a z5u_9JV_F@VtpH@QQ;T+fLszB&pFEkZ?iQ;-KIrS?SX{l(1!CTNf~B2c(-Z0(Prx`x`nx4w$@a{BOIkVuJI5dQQyp1}1z&*}e0trdICN&dVeh2- zeAPNF)x1Yzv;=xNa33|ZGCEL~%`N?S){PZ<3LlD#VA-${E=~(>%6rYC{GR(~Bs4PV z()S(Y+?oM6X`-<1yj!gO{X5*en_s#Y*EWdKhN-zUg|(Y;CMS^{jODFiAO?EQo?SFg zG^QqcPRJ;`dpsFv<76GL?_r9BuFb|kK)UOA6xB$f{H8sKeA6(4xv7NjkHf~jqtnf1 z&&4g3u7!(m$v)0~#H;tJU(9(18SxG}lEHz3j>K|_P|NzAVBKCWXhzzd3jF$48`{82 z;xnb(JhhpzPD-;RTQPt6@{YUrt<4-(IMHmUw#q^0qT>g!w3vS*W(n%jyIP${& zY5d`Wp9)F5>!af!=E*puFUSM9?1577<&@!gjR~( zqh9Hjv{BM4F33Mr6t@;GypU;R{67HWKpell78&i`FTW$v_rPq2V{1R@P7+Op5HlEh z;U{LLIn!vufdL%*D`A6v`4Sb@s=I8NI%9ESc;a!+OO_zVb5Loup>|BSZwfID0bYaJHY`cTTe0ulp+ZJjxqSwMPlT zW}EF87E;oHE?=vN_4k7(xk%V4MM?Z`?SVgHmQY-Yc^msRq*W z&MAR+xsX>6E8(8QjOWJ1dZwdaYVNv0r4-cBA~)-$5CtAk6Mb6+Tk`xHHcUjFU0jfn z*74#S5`E)+$4Tm0B@EC5<1i<4?GCjG&3e;052aI@|LAThhuH}Yc^%b>w7;_+1L${Y z*THbpeK*0;Q;W{QX*wgujHrwm^mp1E_ebuMwqHCUaWGjTVEod&3r#`Azc>!&J0yr` zZV3ld)XwO8?LG0;I9ejZ;}~UBz$S1{zs}AT-_I9;%}z>N*OMb1n2N8mrCs=TfnHHUl>mv z-TU}g&~yURg$I1J0iT5JVRicI{eEm0>;p6S=hjI7o{!Z&arLIP%Ha1Vwf7bS76Vfd z0~o`DHnW~828J`w=}9*!x0shmhj#zyDT%(nPcm>IpXumSx>4t^LY08lW)>3Q;q#VC zvN-`ij@Fy0t2{m%3+ z(+8biZ(_~0c-}J#q>dg3!yOErvoU-Dp9Fto^99my$MrZMnxAVt>z2V`05>T`P1EF3PwyKZJSx*2 zOt9v=Z<5x?^V0Lc(`Xbl0650~=o_#*ij5F80$O3e6e`wXn2HKRnmGQ^e(}$*mk!u^ zpY#3iNdu&eTmR}uj(LaajTT$`>4E`lg6JTb($ujd$E5Xde+DfJXlErdQUk4*hHEZ% z)=$q`H(i=Gl6um=OBjsmNBf_9OPas`J5mlGJF&O+6y7n?YyvgxU@JcU z)?P?hE)oI5UBe9j&IWJxYB4aSF~D)iP=NlApE#qYW7LEn)8S89RJ>1TC9-HP9NELS z4xbC;cK}b|uUjVlV>R5gQ$o!R()r70VfFa3rf{L+X@({ilfaxg(r`DJ?Mvn% zm4kRmYq&Tn9RoI{#lRp8a7*d!Mc(IJJZ{X8;CqGvhP5{bhZ3H_I4AF% z`T3TAejT^mEn!HzS$OY84=~#iM+UqJ8FxGxI8L3MUrnPG8;JE}bwL=0qk+h)$Hf5Nr$-`%p&%_Npo0x$#o;xI?2`6Wenmi7Cjz`9Dyb^{P$9(HN^Vb>8rVNvg zIh4tc2qz9Py7oHIxK^{+LFIaZ;FXnd2NDJaASeSHb`_Uzlg8VwRjDeoxf_&jDm}Q9 zFnfXdzLQbCKG-DeqLWnm+75u=0mHFqKxfQCU7cR#Yp%XzfG|dlbJ8i=c>%#Y3W@@> zFJ>bK$jA-^UB-*sUxM5u=tjZq{p>$FCScYC4BqDNeN81G4HG=vJmAPQ2B%hizj+sq zeoL4N$*k#*f^obGHpp+4$lOMJ0?e>xlBEeMlxxbF>EA~;gJ>@gG8%8WT5;a@;_DLo z&3n?ZdYM$g)K38BW#Ui012aA+)Zr@ax_9>^VgJ2V!q7sXX`jf#c~W)L<*?_DgF84i zRR0e%9eK8W=N1DxKS1IDS{JFVE=K~fG9Z~#of1F%rKB(2Ja7PfZfiO*rMq*aj@>)1 zQyb^~uf3y^|H`-^ekLQZ9GJk%Ld&fS%qf3$6-*4Aa!k{axdcrFa}YqyrVQra01gRg z4u%JuU6^b7VG<{s#hj8%;J_1_PW{l9sRBJxs0o;(Nv_m>=XR;T{&GEZHMWI)blhr# z#el`Yxx;{={oVQ5q2qk2)!6y#*QM`;w=hS*Stw0kF%5-yPIpTA&WohwckVoQ_0B7q z!b5e?*rBv|2mI8;;OLYNL5IvSu8B>5S(Vh^do#?WEO#Jr?lQRW!1nWy7}Dat4CcQW z{ELB4J!&&LD8mPnG|_iIR!7w|<(b9&=<|WCVDRrLdo;K4Q*Agj{TxCVJ(8l}1+*C} zFWD^hS8a#sLHg+mV!uu8MreupK|AxRWV}nm=NHO4LlZ4^?6eBcgkVZC#(UsfxtICr z?X$(eSTJDrlKC)nd=8Few>8ncI>Ct{n~(2vf4KxM0}wB0Cz^q;u#?n##yB~7rG%{m z!AZ#^d^_-jM~&f|0@DXxI;kC5dZuD9`OVddb$$!QdGnaGh0+y@%TMo3Q|vxJk9js% zZ$8H5KNm{pP2;^cY0WkNo%gxWeW5r5%Ur!_7?=O-jWh4ebu=(cp8RV*Oz->Q-Z9-s z-sh*yfA*H^z0XfK@T|Rf;88Q>9yxUI=k)(vtP9xmf40DkG3Smcm0`{+{*k%PW)hB* z%e{AD)7i1+VKOa@@EGI3)r*_fn-xCxPERtBEqcqZeZ8tTlkmt%8BA5A z6r5Qnrn2VnA%3z=I^ZNV-P#IAYp&h);fh2*%yvhmYWL*>L?zR+e=>{{f#(3Tzq0}Z z!}WW<(>?`WIwYUMbI2TbI~(H}kS5s9!7B-lr*T z4>eyp{+kuS#d8q88_0Ag13iHaRsbeBC~emC&D*7W*+MYNVk+TOv2v+2{n>Y<`v2En|Vt{>?4mGLfj(*yI9DW|a$nb%Q z>q9?IetAMtux(DJ31z8tF&mFc zs=wDA|HM3*<9HYJtDl$*%*KRUn!sctmr11e_8zH*AVm#K)bt6lpz|LjYicrIyGBVI(xD!TdX{HE}>KI(6{f9&c*W}*zpeP z>zE=`dJ}D+GiRSK1m9IRO7-UR9cYE-AsqbD){!CytRZ(#m%QkC}0 zc{dc4G#J*g&yPYNVukBF3v;h2uQW(QQ@L%RU$NM}&!qQP&w(i(mJrGax>^XN$(w)w zYm(~i)44kVe?EOU^v$9@T0Rb9htPq93#NPujC>xzhTsb*ih17#i-ECVfYgRN!is|7 zdril2J0uliFlNZQGq5na9GFN?<{i7PUXhLr^+7_oE!<+ z8o@{>PYgFzhkKvw+pM5uErh!owXlj&( z+pfXJj;H{);By~6(QHleSXJHUqH9IbZbQNPyWOp>wNgvaE=Od0?=-vBlgZ;J*}q2 z{E&bzSa+Hc0<$IwCw-@X^h=4qvR4}a>{~it(>#Nks+b(C+fpnBECxIn;C>(mUkv?w z52{c@-Id#%x167FINHDOpk!LxVD=A(feaY0nJ(-paDZO}dV?k@bCWgck#ikb2h3?) zXDEC@UpJZFe(8Pm1@S>^N9Q-rcUeFDgk2}KJGQ9Ab}4&KN}`AAYr(j#RlhmW*WrJt z7PKY~Cr2DGC(;IbF9aaMbDQBSW3z)t&c|cHquYL(EUUSCyTswor+n)=se@KgL?zn+ z9+g$okZz?rUwv0nhhf^0ngBErlaAw1oQJ=jbqMw18j%4lnSx#XP)oD3W_Z(#7zs9m z#lQ$KfT4k2hz`s#f_xly+TT4e_?nMQ%XA22%u$Yk@iZx;vxB~OfT&bE<^u+BOz?{| zZeG3D`9z`Siqj`2yXJFB(%ZZrmZwmh3go@Dj}`;d6$4~%JA-g&3;0II2w%B3=9y!d zqhdfhok^Ux9L_#!gJAsWh(rY6FrLqP@21wY99{U&c+LwPYbGC~82HXI+!YnX22c;% z%;7DNUIpR7pvcp^S^7hwi$Qx7J0EZaqOR+;ccI$(hT|mlY?8suOEqr%uY!tY8JHLf z5=?j-ECwbV1I`SHKFHb79ntL8xTj6Y*pU+|eI011mCRSYVEW|Mh0aE@IYnKgjoJvSp9)bclJV=d#DIealTB>1kG+0wD zT~EOj&pRJG4zRg4vrGmGaG@_G&$LO!nibHA@xyO+IgIoq+t>w0mp}wH0c2$ z0tigN_f{Lp~@>HuzwNl!c1ePD_h9tIZuo#$d40!soGsl6*hjY(1IOvPR zX=QtcK(|rcF+hrt6Yn=f?($=}j0^o{5~{SG1X% zK}w`@6I^-Sc9mrJg~Jkst^6{~t(*tCfBGyKTyv!6q7ATxf0I;QvJvXhCsb;yeA@=; zd+HVOwZP6k=3^Ty1||#x=&xjY3<)q*kbomqnl_-;#_R~r8qI^TCOSbzqoZ$w=}w7K zuHlmvIB!CFHJi#x^_|yA&Gs$$4t>)4qlYE_?tW?bqkE+1{k_un;+sPb{C(6YI%{1) zWaFDtGM4lAnIAtaFw z6s!*CEjR6u_xbPeOy3*yJwfd(Um54UA-PJ6!2T=K)-N?*y8-mrdM8hQd5rbMW#Dgv zjB=V>8#bUlCSCP~Fx!R0Y?a{W#Ot6X*JP%vzWgH4;6eCXIt^xeyENW&t8~KgY~N!q zNnim?LejQ84q_R66%k3m*GkpK^Cbv#J&8{~AH9_Su#K=UEe41I4luXV7C;E!=n(WI z)8Wi#{Exy)PBs+0x~|&wn1SUWL*YiX)6-@%ixc)1B?PP=3al z@06e4r1!>q@6G$OU5Cr#eV2bvxTbDrD`O<@z2zVuA4?6!bd2eyCNHm)YB%357q4Sg zN3g!qbcjW2@H}LM3IsuS)ydil4aTQ1kaBBjW>QfJF|c6KfB*&@3-Um zW;7nzRxlN)KvAN^907s^NP+|rND!Hb4Rr38)Bb*^Zryj^?f1H0HyS{9;}+2G)~z~~ z&aFCCb?VePt02AVFo<33T?%;cwNV*o&{s_z*QvwDB)NA#RLDT*X)koP<0`&N6HFxC z?#&Zv;xKyDjH{oqC09xx3<-r{u%{J^yoSqWsDz5Q{(*naV89YuHNppGPPiMA*1U1y zEar9Gg9eZ$gzC{pp%SJ2o{dI&U9n(tP_;-*2gdNo-hI*l{lZj3aVa~M!oaMPg)-w1R=RlC&H zOV`&P0j-!XBinXJ{DrMxz(d{Nf>s%R_Ep@9fw4duMdh-Vj3Dd0ejDb0Qlb)!qU6@M zB@Q(T0!hh8N2{E9f3LKH#F%LZuwC3P}P?KQ#ubJDB2z=ql4Z&#`BZjf|iEcT5!A2VTfZ5JVvz^ z=_+Bd&Lup*LwS3u7s6(F8T0mAyD6M@^R{XFI8+L~xkEC04@z+)C9Qw(kaT`>6V{I{ zGVL* zUzR_;h4+Sg{WgB0=XhznabCZ_ZWEO;nRrh*#>-zjcuE;LQ;Zu>f@KirS3aCj^U!Zc zFGr4f5*7}?{AUfOY7m1hqn-h76>Me0EF1`0dkKA*9zkhhE(-2}u9uV4SCz296*}LBluNb96=-KPxwun_NhE6wVCE=vzB= z(Kh<*YcO=y0|P+gNL9EQ1fBo`(})3%dl0`uHVYlVN%)=J8jGNmI`xANLO5vL+k9x9dwx4bO_-+5f>u2~`-pZgS~;8y}37{Hh%Lm}TkD47$dr3nU-&5G=Tls*Fr!C(WOqn_PP7(qUBqE~Wf zdT|H=#)dtRJfF2h**us_A3YAk$}dZ1*8y|;s1YiEu#PAU4J*BNRsEbpUBc~<-p992 zf_~?>9mDO$h0?NSWf_C$9I_9R1{er1Py+^(kqea}yg69Lkj3Vfw~YFJ@FWabe~kSH zRIuPyEOnt5Z~#}=ja!M7nx^h@h`3Wqnv7ejq@zt8>JO*-sTt#R&jk9)9lo=saUNr< z=&Ut$yN~AO(B?3h%^^zkD~ABfRH)Dr*sc&gd>os_#37)ySa%hZV0OdaPCcZ_BeZ|v zbts$V@rHBaqa)IIuQyepFSfyrMa6T)=`O|yhy?zU4^I)8>NBUZr=N-d{$ob+_rKqb|07Hcx+@7+5Ghg!vfm1ob!Eg3qxhn@MJS3XEjvX72v>m!)m}8q>(}DCrzS zL$&5mw;)x(WOjZakt=(!(8JYw;!HQ)Q|KdHBthS5V(UAS1k;@ht@h8{GjsJXRzpk> zKI<`HrE?lDhgy?I?vbIN|IYMl5Y!?zc%ixmX?^HkBh~Kc2es1d1xWaezWag1mMzi^ z#K>E_Wc2whQn%_#smGOQUbp4OLK*HPrc}x^UVoh=UxSo84nEx5Mwc2MgZ5q=46y%_ z36TX80&0+GpFs^S`_}|~r{ivFE;%$un~FBogXvDyE7^~atM2sk-b@s%3^c6CMt}W+ zGM6HYaQlsn6o;9j(wwY_#s5?*#qUO4z+hz6uU;W7-}(xeO^~1jrQ(5$Wduz%`ygF_ zfdB)wVIZGKLOn`C5BbP&=lY3sH`)@D*i~0Z;|(h%d+-nr#~NTPb5t5vuap?n$|Mhd zEcua9$-(9Z)dLogkN#my=TG-b%e@<=>w!%e&oIoRMC~He>RRRsOV=FO%&9&|`JYka zqN+Z}6HmkQqYw(o9yq9mqbF@Nl~Wk!x_nOJZ|{B zJ4J;d+}N&XV-3@d>^U;!n5!$juIZ2(lCicdn~G+{l%=O#8fi4GlNW$Z3MWu2pb40x zGW+1E;!0(i+`M2;e%>J0Un#Cqn47@kv2gb3iE_Q;#koN6RD-J)?oCVocyQjhYW|7x z@RwKV-R5ndwdQHz?X%W&mFnORvw7O5KW}fiO>4vK)1St|ReO5VRZHuI@%n9^Cd~Bu z(kQaAnyV9B9$U)GPRTaJj8mJhr^h&embp#{{lkxzk9ZS?lISTfP=i<>AH&^3F=`Gw zHq$cOA=%!IML@u8cfPkXdvF2Nd=nU7+unCJyXZw+(433YP78xSr~4#!=LYECyT;_^ zEYQv+>mY4_feA6-^fNNg$u!SFT@p8JcA;LxBEN3=Rnm6foze=`M`6d7gT2bjC)4%) z{o~T{l?SD9=^`0@ZnNZ}dZPOqeej z7n$+R!8FHloH_I{R3i;TRTT8c(s}1Uoy(js>sO%J|HJhnU4#bxa2q87Mu{G@dl!-h z#>EA(bj_JdazmrKb{c*b!W__1-n<&BPOWobNUz!;ywHF2 zgrSpEZ)o$euoFFtQEuyzEo>Mt%SN zaoiT`mk=e;AxYo=i)SSQ1FEdMx30AFqlc*wz7Vy=ft+!>F??A!^s^t7v;X)LX};6w zc&Ey*LL#AuE^S}?fl@47RLpbYYpEpBM#||6sygJjIfp*g%-iDZ|j$;nv)fvxr9P^e+$vFcH z4?;7>jdeUehI=XLob?eWme~%;_MUHjNm>KR_R{BOhe8i4V8NOK!$I;{yz@G_)0s+; zQ}eO+MxxSi^&&{HU=bF$00S2S15UqYQSn{-aZUMGl0R`ur6@zqVE95BC(_XgLro9E z7#Gw?&?#{(5zW-WW77ZFZzT88VHy0{Gt&9B--F$U4vFDls%gbim5eOA5^Zw1^nN+U zfxBpX3mEEaB?-e`LkEsZBbaxTe5Z@8G#f}WnE@OdXC8!PcEDD|Cr(NW81bn$-ZL9& zPFB-Iezfr5C&0i&7+@EMlqJ;@xXyM~1dzd_V_n10IoUrw@ot*g=wUk?df9-(v2bTQ z^eB%QhKNHG&wH~RiT3ka4(Ls|xk=J61b_NFkLf{c3l3VTiXw0U1_BIR7z`L4?VvgM zPZcm!7nOl3E82mfUiTsl*B7D3Jrskka*CLd;hMxvM5venM;?{L=9V-I|J9N43_g54 z)PY5ypM1tUht{&5JnSQbdl*KcQ=4~4{$#(z{-h+H~i7+(0n4wk(<}7UR^5Hxx#;y$7{7 zgGMzV>3M5Z(!2J`z*8O4^XNlLXDQ^uLzM_r<%AkxH^c5TZ6O)xn1^~93bhRW(=YIi z@vYGZ3Ihpg{`|et^_fpeu5UmRue=F3)c-=v8xv$$Zkc95vglinG#ng&%>P{P1t{AT1?{tm-b zZ#$kkC!q|5BfOiQZ8oX-%Qqjx-3B9OE;=F=dho0onVxSy3TFFi(^AHnFEkfhUR#?i z4)7e>xqvW+6G9MQ9s55DPsr{?@hN{C((!Rf<#e4@{oRQzU6v}f!VIc{>*(O zCJCHFONmDs+8X?aC#3QAbugHGg)-oY%l6xEfZkSYqTzV0oRd@i`fDV<^&Zmg!y$T!;@kP8p=_P$82$hI!$;k4y57_0o3N z28p4~supaVq(M}GfdB*NjscFpFqrIgk!IXDhN{WIm$%8l)0?I9{yQ)Z8ziz2w@*@W z!*HkJP{LbM#C;3@=t!qCX$iNs;?RDbGIA~B*Z|D1UsfA+rur4?NFUw4OVaOsD8+C= zVxQa~g?I{WX+e8&h~RacW6);aL~g(P7D?|tAo;#Clee{@cneD-)YI^wk?UChKDZA0 z)1&KK%v#NCTKfuaYT`^Xy)Vkk(tBV({Rf&B#d<`1#b(rf$q~O z+|#tlyiLO>3XtIDa{n-u>`?m}>d@;VQjX3-gEDGVGJ_ z*4Z%s(;si&?bE{Z-RrOP?ho_BGkzjx)7YmM-W%riTbN2=Hm=gMI(#Xndhg{N=E9k4 zAzFwx1y%|rv^nsa20xmb2VQvqf~f#q*~+AJ7TT3-5`+dAm<9~! zN+=|%i}IJxO7_UdklKX4UM|wn7il!PIFgoVPZ!=DBIyuImTpORBd$3YZ@p1hN{x^R z%0jY+*P*FHl#J!Tm1BSmO6s(4Tnfqd2XB?^F=IH3QnO7fmgokK#<;j5t?Ou&?uYM| zwp*{4-tYblOwCi$3|yySTs3e31}+!|sM8kugkyK!guZx#&QY1(er2+!4ZntD% zV6FhYvNR-`*tJI5pdPJh;-I-yZ^eyr zH3lozZ^by)9Jk}p3~KCVymN>u1wj(;ekiePmP-4*wE-&UF^il_gd!@ST z_on(FI@BBc$A*n7HQx;8WisU1Edm!{z+!;CbTVCHoSyAuX(38EdzoqU8^*X9e;VhE z3HE7Q7c+WHUM9?wp9YvXJI?HzR>CBPmt~l0u~e_q+>{0wFmIgSuh|(6y+0~=4=^x8 zFo0faI;yWe8t4l%uVpcO(IJ8n=|=F_%6$QV69+hk>X<4URwY=*Sw_5pHDxlP3x$GQ zzf(L(fsf(tB%EsxA`XmQm29tr8X0A_uQ9E(1aYpld9v+s@Q{Ii^?@f}Pzm4=u5;>Q zX|j1u1kcF_i!vHW3tWJK^NInCeXDbl%-`H;NC81-I4LhBp(Ke7$Cc2L`S5yay&2N$ zP=lhbM41g0b;d{i{4TxrTg<_*7y57%jN-;C7o687%-+nod9K&LrghiK;NerynIDIK z*7<4_jn}8SsUGZCJY|ckh!F7~M6imO*-|O{>3tG3=C3dYle8 z^x-Sg+NAX}(azkaFO`2-|KzrvX3ge57~wk(wXyh?;iq4b6r}o-Ti*t=9s5Bt&HeC| zieMF>-#yaVp$Fmx=(~pz00eTQAGiPmQ@{Ybj;CwW>+elA%s#ag=fxvL>lV%^9ZMLu zj8`Tdo~o;zW0@r|oMD7@3e;ha7X)jNeG;VP2+SBd1EELdny751^Q7nN z80Rh13+oTJh1;ji$Xf@7**xgCao)TvjE&oO9VHK` zfq`c?!Mv`6RnNYjHiO3O`a!8Bhu_S&wuTwN963NNla^N-hHsnb%gHhbX$zl#AL zsM$j`>bOsU8JUA*Fd6Q=avZ|Oi#QZsm!`B8Hc_0KR4*y?m}bxPOUoTMN#B~w3J&+;0Z7=eHg%oKa6Yeqt9=a5$Lw%?HB3_rcpPY6Il|O0{jDA3G*6$HU){j z7bN-a9%;E}BM$Chs1H)%cC)3GD_gxyUv-0=&H)3wX$NLa^CxbEf%vtOI&egqaWGg1 zRY3*ljn?mX4%r7u0}KQhm;wesE4jW(>^m%}{YNFbXrVN3yirD9dqc7qqaoN`7<20u z>j$a^ESw#b7^T~ zAMN+uDLLG}$`22jbuQOS<2lS>Fi$OwE3XnV)%B(iXrkZQHJm?u%)8T`6m0g;2y3{D zwlMfz$Y5t(;O9mUehPEt&-O{;*h$=8zzv2dgkWmDCCa>T_>w(-O2V-96UEKb%-;Qa z5N?%z1Q-|x1KKIaiAR((&ip`R)VZTfvmuKOVLBF^K93OcvlRFuY_dZ^nsk?!&e*0vo z*YC~8`YXlz!t~V_rpdiw)%>;`@3R_grEnW&pWb||zfzn(%>T}`{xI*m*Ix;?QrR|* zeO7|8VfJZZ?UUiwZ=c>Uzn|}PURV?2hPhF$M*(bqx6oxzXU-V|TCt%dj6ICJUJD{q; zkICQ?3~;^$CDxjtlbxG7x(4Xu%uzB4E((2~+*miSS|<6?xa!ewgG!I#&2LK!n3v6; zy-O0$ye^SN-Ad1e`alC0VBmaVfa4l{EL0C^_86|jb1Gy%_8&lN7#46)yB6xeA@bQX zGW6J!l6-HkwBB_K4vwyo2zA(Ma=Y1@0mQ-?lUlJ$`3JiCL(qYoK5!VuuiK%{;cBU) z;XoV!MsO1{Z~+Da3|x2&sC_3e+?$|Yr4DNYGT(Dp7vy0-L!j^7-JpA_M&s7SLN zDi_gS3Ro!f9ZyR1Qz|{wfbYq)0^u&E;U6<{)`^T69kE8z9dPL4+U)_!RC>&X z0EaE;K1~h=l76rA=D~1hk$Pn{=;dYQ=QET}IycnvTx<1jF`_xh^nbY|1nO`PrD z4D*j6Z)&TfopX^3hr}ivAv(TI3R@3_Qy7M`BokxG;w!=!%pBqOG29t3M;s}RWwvAU zL}q*2`aq4$n6Ild0VV?IXia~70*kN=7DJFW@G}?2B%DG3%A(%ex+S>6h{bf{)r)aW zKLynsSSUjmcHjaGObZ5_MMZXCSdB4_Zh1#CxNcj7vEHV;HcA_eOi=_` z7^zerZcKE;;8N8}P(hetKv#vJ#dyY+FP1DM(1^b%Znco%UchF$5#c#}s}MF|yzNrJ zW{YZi(vXOczxRQ3KKv=EUvi}k|Kb_Ug^)O=+8@#<``rRm2N;-c3|Mt%wakO;htT`Y zxlJ01kha?=efy6{0tS`a?z~xI%SdaCabWGUHPV^sZjvoKb9O)vzVvpa83y`CK|bOPd!|JHWtf!~kg}x4c=tv9wX}lf65e$ei`KdosO(|wS@i-K(nGJlC9zdkN%r(v z8GdFnq}o>~vpU~Orr+evzwAhN@|}PMebRCSy5xFP!R^Fzg~VfBse+UgMiWogh^T7DmB<=K)DF z164t=R0 zOSF34FIfcz+C}vT03LXcmtWjMFc<&SX2+?<=}8!1bX+oqW7OtsGPPOj6Pb~hu4y#@ z(2p8SZRbphm{@h8lm1xI&!=)5}O0)R<^8VA>fm0H8Cl`IZ}`HO?{((sqxl)+y;C+VFZLi!8ekWA4^8!}JHfj7XwlrUgv!(^IeX9_si#(=2u<}wCIZ@~Ob9X$n`E}bw~jhjQDrMZ*6 zMpw6&Yyy^y2CVn-ICh8Q}Vb8Tn|0#YGcUTHpkCfmszNB;o)JZ83(^!dad{XGaEGDl{DuKO)$3` zajPc+^)7nz&@$ww(hyIbl$qWORb7vMQd&2zSIPE#B7rApDy7@?FdN^E40axDLVtS^ zH_B+&i?%6wKCy_&_&OAm@r&t z;=kp6Or=>tno9@+>@FZ3Uh-1bdP`Tz0u4M_dt}m~Mw)RgPUP5{%ZT* zXK~YJ7^W{obbj>j(J0F>kvEU|zac*C*KnT$Br5VC!!!g!0+)3c31AzK19HHRX zFwz7S4=7avGo0pZXo7*WN#`EJoh`G>_PQ8!wtrb#*RM7RAVL*E`WpNI14I|QM;=lJ z`Tjv&5LM{C=Z-5BQq1JQD4QqIE-=&}ZA|Hgx+~`g-{jn}duisND;GoD%qj+(G+fE; z|M@eLf?5ZNPfG~8DK)MTk=V+sRjQgc1fnzuOc&4tgNO6^>wF?^wsga&I4>F<_}Exe z>YWD8^dJKp$I(3pumQ_S+l_0a#wu_D24)HdcnC!O?j5+Tk&4SO4vCWQ?lt<|Z(3v2mT(L>o2d&ygNhgWPh-whGZux^WEhNh zXZ<`AY8uobz`)$c0QYHN{QOOUxEW<}~R`F_(q}IBxmDR*2q|0uIQ8jx1at?T>(Q4Wp=KYgU~* zN^4&-t|=KV#Ea51N;F_yL>y5)TC`3Yu3v7L-0_4;n@bz?w=ccIrEhv`bIOQw>Vouj z3+GACzyG$>!#+FrFcNBQ-vb_ed)Yf0KqD!>l7d$(XZDa{@4( z14y6x$!Iq*Ovk*P%oxovKsd*hszInqF%ASC7S;=8^C^3h&RF2Gh-rLbCC;@Be;)pK zR<}~vG&Up1>Krhj-^SAkJYIjUj3T(#8SwJZO1$2(Yyn<+*9v$8T))B)mVbD0)2Ih? zjaJ0_Yr7gL0R7}Uo7&DThC6Xq#%%wR%WUW7w$cYMXb66DV1DPp_%b>Yrx_nuJQtxl zreWH7QwSma%<9kK0}wWc6lJi=>xu3{SMq)3;++~T*BP)-^0G_0Eb z5C#mPk5tu7wYEzA1|FJ*B))5(G_6^wSFCkI1|wmi7O0~NnC`Qt4_p!zB~7B58T4)b zx&>yajuymH5nYU^EW!7Z8d$F^0Jhk znwa?Rk0ib8BV~}d2L$ENv;PeY8Q!!hCgO7Tdq0CfK#$D(+9SAa1Nwxui!!?Si7Fy% z_BTIhL4bi7g#i#NwR6v(5Tu@=hNS&7Sih}WAyh3l^1|y%ESGM4ihhCn_W`Ew$|05zSxTMaF4pnNq;GUjy+TT^^2tqYH}h?I7G1X z1S{^&6;4i|Q@Oq&-Dic`vF>%(L)h+*rlsYPJ76p8ZrlpQdKmfgP_Y2~HSpFIvje`) z$+-;@X@UxzQOt8^{^6&R+jkiHji^p?nbdY#%V8HN(T;}(LjRL$b1{?-B;MsNAtqcnszwBlR zv%|uqKp@#~4zT6{zoyeZX%Z-pop8+0$pdd%E6tByo3V!S$3mF6@@SLR*3LkiEXv^+ z<8!RQ`F7J$gg+1eJKInx?0mN^$iFrWO!C_h+zbQTw<{H6;!0VYQLE`}GL5t^CQs%> zUa^hRF%1wmj3wK61FQ)N&s3V50YQkq5lX$0|Lx!X^?&St?JcPTbQmMt6|XlSv*(xX zvds2qqx5|HQ83#Bo$V8SK`_~ zI8PiIL#~gsSN`h_V_c#!XV?pZ-C7rrP~u99M)$HDrTZx9guu#Qa!G`_S|;+ z&CtzyxeUP|*wD|Ok;b(vrS;BRBo~iM?&t|en#nV{)mEDTD!{<`#Q?h`{*&U$ zVlhcW_j)mt#{SEZ-iC_LBACi8pSVq$px>P;KaJfWq(fS&-s2i7ed>&)4j#iH10>il zn~(MHQ7QD{MiSS!0HvPvrrU0kZtT74y4v(Gf+}R{I@+YZr_HC}SiDXmI#SRreWagvJ+EyMefcdTx?l?pU;YLCThQ;*{2hgF`7!Fg0aFgL35eQOH z+Pz^djG`X+SPCc4g4v#u=%UM|3oY z9we@TVs{An)KhC(-!R3whq;ptxCf1H~zPSMX zKmxyhvsdN#RQ8-cnSo{GGu+8gbD`h!u3qzQV{{+IF*eRWX63?bzT^Ga72|j?L0o`= zi-!R_0>PCzfDq>7sd#~aYE*%cBU1YL*aPV zQDh>uw7J1>XR9o;y`E}h$ZV%XB;0x2#F_$T@vjFraj0=fZr_Q;5RJQeddRsp4~t{! z<_m*?*8a)cmFZa~d7?e?Tnh=(UlJH_`YY8Vj6yg2@asEpP;^SNkciIXYB4t;_4A?U z5}UBr+t*9BcR=dEyq*7tpH;?|_B-^)S{>CXsGjk2mHw%N4oDtzW2C*!Fu=L+Q#d@QaSA3nxZqS(DWHEm zc&sYXi1KywhBQN4-<3F|NiU@vBxD2$7+=Y)?@1Ehs2+w28>ko9`F=poOzd4jodOKZ z84OTWNDg**$Qb6c09BMN*DZ&7r-+Qay+=l0+6rCYMy(80jwH9dE17+VBntzYl%7t1 za8L?RP11n%f~u*TiI^ch0WF~c>)}_oN$$ic!)#|b{-|Ol3UxBAn{I|t({5Ft!rPi$ z6D7f5?|Yd4nB12 zHJ$X#X%i1gQXirYWNxz%hSOQU(?$)i;8%t`B-2ydc1im9Nr_#zN?M^#sDPz=4ATA` z58bP{8+vJr4FB|L*dD{pY#fqic77yD+;B}DJ*Gw`>#tadTdk|Xe1{shC6}u@9Wvj! zA65LAS_QuW27m$2ybiB@v(HK>GHf;nf@$!lV~V+Hu!(bezniDY%SjDDv)(dLCI!nk z|4dEn8=p1=9!-J}Cy_VK`n4>l0yeC+XL(t*r76`dfDdqSq56OsPv)27&R?z@?_4=? z;|a_0=cM41YMx9y55G)aOs{YX>*mHl2ih6;=4uLq5nj4+!gn)P!KU^kpPgP36HM$y z>fI!>{ZC73WXc%3v$J&%KqoN zvKKeBy2n}6RR;)S<|GE3?@m3$!`pVszz?5J#!qojKM6+JTY%oZ7haWHFil8u5(%^8!Ff%V=qk^IX3`~Rp z&aGg2has(57#Wh`pFa&XGapI|4XfU;8aHrSOb+K^o}&tzXe*4+jpJ;w>EpdJ3e{X@ zh3Hu^j+1syMCsZG3u&lj$Q?f+L(jdY2NZSPxN$>C_rL`h2rw|c7$DJ62ReiQH114c zhbRsP!?;<)HCzGeNI3qYkkZbd0fUuSv5}58Tq0B%;%0%ZZYCo`KmLv62ZyBd{!NgI zhk^AO>e$ZYmiJKSIE0c=PwdVM!;oyh`!;F6>lS1019c}Jcn~r4+S{-Rf?G$>SD%A{ z)aF}mkmkGAOI;83oQpJHyIe*gbdv8oqj}Lb4ppwGBYJiB@4gz(H2v}uaHgO!?g%94 zbEi*ZO$N1T?)R;+AZP#L|30Yz06+jqL_t&;!Fn(U1FC2K_8+9}3-?RUmmgL={X;Lj zCdt>|)$bhcZq@lz`@&^7EJfNp)XI!P(m#&F?dY;a%CK*^8c(Ps%8!i5==S#{wPSbb zK%mBI1z?vB25euh*kX<$r%$uLE9vnk0E~OH194=(Is86-Y9i+0^mQGVWqA@Fc_7R! z!>NpY5BbzlRH_GIH3KJYZ4b?=@82Q z&Y066hI-~q4RbSe$N+{5b2MOPyq3~hpMja(40qB6O17(!E2xp7fz%s~WcySYY$eoO zT0UBa&-V7Ie!ppNxig70tXMkXX1}Jg{hhz2L;=vO#sK>ezB?tIhM@jx5Su9;vUPs` zK1f1$%fRzngu2-~AKaws5_t8N>R?)LfchfP2VIO$q2HXF5vf^?@e5XYRoM_VIyhU_ zUne8aZ`Dl^7oyxK<_3phWUE-FPzyRqP^}9nAg5WQE_^=EdI3h{tBIecqhAW^Bi}cEwJDD4oI&_}3 zo(a&vilL==$LHElaOi0n0K!-X$5*z0So(kS5>z!EgAQD(lCcZbvJ`Xs1wsf^hmeNq z3TOhBo<|=B{lQ_Ms(hH+O%GZZVBmsaKKox0FTx0{wPRfDi~^Py4)xQHyCk9p%` z83A*C!N2*M!myM=Hj5iN$fF1$1nPqadbk(9kS+`+I|X5iII!fcgkl!uPo)m{-eIVK z%=ZmS;;o(1bnOc1`|+6ZadwB3US(wHh8rzzkygmohiV%RrwhmOh6`yXk2 zqKhw+c1Xv!-L+BDQ0vCq0d{|&>4Tq37z0?3q3`He;c)RRspzddf(&37ob&>Luy*3G z)|({htQ6xZs64_AUd@0quTH+)k|Hbw0f;c|_+YI;5GJ-`mG5NyslIn7nT=CW{&*{C z-;l6!T{S^j5>tC8yzHU1DGSj&y$QVjGDy#hg|Sahlv!*#0hQtzHJNb2(%GupwBB$V zMmVpZ?{t-5yrd;2v3{H0o6g30pElk;y>a9D$E$<4Y;PV6_m<=J z6VB#o(|Gf-X&Gn3>9=WYn3JdPm5^o5o6PHXfoz}~Q1aNkO^8!qDcY@GIYZsgFgLmI zSBv5p#Xk+@d;@2g?WQ8OOap7;nNVTyI(r%JY!N5(lq1>hVYYK}FGnI^IpLEU25t-n zC_O@hsa3C;k4Z7f0HD5zg&-#)GRdaubi%;`%Viu)HKQQi?7@IDZmBY6;F;HCb0_3VsmAGIGOl>HF1l zl6Y+!r0^j*dZ~^j&Kq2>K*e6}L@y+4VPw!zgQY8PFAgi9I0y|-; zUIjzed-awSfN?-N=m?sGR1Ht}AOD`Vl(r~HtJLT-L(Uh?B4WveaPp^-@Ca0h7EcZ1 zTp8E&o3SRNL0BG+@Y~nyOdsIkbR%xB>Nm%MXJqj_(WQe=H!i|{*5AaSVdkT6LbDK7}S0pEuGruG9$@LAX zA-AR#i%Sdc;JZ!=l`|gLj#*n#d|xtF2cCOf4W33J*^}PdFHP57qmob|7>lawY*T3- z>bB%H%q)p8QaKR66gwLk7X*I{Tk~B;mjQ2Chgi zGuNqckiyM(^U9@CKd)O({mnl?4<}AmKpKX&zAec&cLXYBX4HobDpNBC$T$F<3wO3i z`mNoPx%CD~!FECB^jS3=Oi9Nu>>cnxN@*IH7h#MQdqA$!BR77Nb#V@x6ao^X#CZb`bTft?@!)?F_CNwO1{er101UV^2g8asaxjh(u$7QG z)(iD7cR+1SqvS>s%48=aipD^hM(w?%GBWtm8gkjxNN=CqnM8zjqXa@@9KU0B50FN5~hJ$Nrv?QD?#zx}>Mmf#jx zE!m(SkYP`Tf8>CT8tf#Mv03f zhRGg*n#=kP>!bmTL}c4CgIZ<;F~~`>XYI-zs@f`*FIpH-Dz~f@+*Mz=>ygd9V$!Pv&G@r7#;;={XU6 zrFe$Xd23Y(&OnX*t(4vi<;~0M_rg^3*9u=NoVOfr8v5zHI4~jQzy356!I!75{mokr zQ~BRZIoX;sgtf7dHr$4lQq7CB~B3?k00f z)OtJNG^pxzK88CZZ82W38RiEAS9SI_P-i>T$W$)+UmG_qh801fF_Z_MLnmDS6`{$l}5$}e)qC8th!2C*RGP(vC|UY z{0^oqNR32bkdn;Hzy%nXZ5Y62tk6FqO%L1-^#NDGDBg3D+`K~~3%gYHObE>05a=7{ zz%c)s@dx@w-M%qMJ;q=Zu4czMnM*x~)@IHO$jDo}RA+ns7*sX2QsN%*&c?ImeCHCN zE`>o$pbnw^tM}`H$IzA?$^dM<>Izk5Mrm6Ley9Yg;ZEPBNF>GnAM9f zS6b5!W1;yW+Nm+p>xFb$+HSpG>cCVVff~K+$ET$Awi{L5RjF-mu8In!^Jq8e6@?Zi zvg2VAIXHA*;PI`^4VT2wy!5F))w3UizJ02)Nx^_E4~e@z_kiT?zEu)?_DOQv`%=JM z6NU{QWj?Z+<2jU6FX|Fzo7Y(|Gj>;^sI8JmbdWWuujEq~rrPaAqIo$Ne7BHe=8sCobHPo(+gbu#?pr_5m+0ad&f@hqQC%QRm5 zt2{g#Zv*ix4>IG@6YY8#L$w%QXTnTKc}xjvY`6`v&l0S^Hr|-Z{z`dxAuGk#8s^Q% z>#vl)TKq(?-gNZW3STRnH-B#$uip#f_j}>Iem~r~zWej`znAj&$JlrKEJ2RNCYj!q z;3@_BM}nq9poUk<#3o>z&JSd?>kHI8u~sILck1vbQKq~BGv#Pwihh+c4unR|&>yst z3%1CDdD8UuHb)`WaQaQ^5?WQwgC?EM~CSC*zieQnf#G zlNGobivccVL-k;k!>I%*=tTr{yAvC%0(6xciC%1+vB-_$yAM47x?~QVkOhD72TI?W zK8i(e_RtZtc`{vR#1NdU}S|_A&E5^W=6%v%!NSU z7q@Rhv3jgGM%@FDhIQBA7FCC&!Ng1MIVkOS-)tD}z`LEhRP_N-FwwV|3up@35MZEI z3^?OqboYKa`(J+y{pt{+Sh+-6U@SUy^qBPi*B`>*Wgqr;85rE`Q^s%%2kmr}dQTmI zR5zH?br7DagQ^BSaHPI&>|Y{~5Kr#@5XLm$QQgQ&3z-l*2}}UP(T^MH=t9 zQDRW}*n0Ez`WFY|J&s!nl81lfF2y$ zv1ibYY;+u2l`|UZfEWnIqq^KLy8-Y_(64>anzAgtH?P1SVBjKSfPK?;d)rU#v#e^q zIm@QQ2rgxS1lHa#^VEDQWu{@6ixmdHwgPFsv?#gmeq+zKwl`O}Nui-8eP@3N z+|0*-^ZiM~Nw;-2!?)$;n>3p$gUojiNy|;R-EiGXX~3d4ec}xC`oAifj}GC64j6^_ z_HN&p`K=CW7+|1;0UR_@ay|Lxd)R#8po#q%E>s5^2FXq9oN3UE5nhik;A*qG_OVdo zJUMrQIg{9TNQPhCE~y=RFh8d;ejwG(!4ojs4f05nbp9yF@GqYMUVv)|4z%8L3nX!S zr4MQiXjHWU3_&u!xaQ=VgzFQfU*mj&AS%GXC5HiLj;GqHfuB7ig+ZuMXu-IF`jO0; zKI!}WpJI$7RC zxxrCYTd8;@x#aGb%Ss4sWMPAWx8%6CaH=tL(2ok`aXXW=x30Sr40YL?aoJofCEQ=e3Tzhd1 zRtI&BidVo8nxMS3Jn)ZCiZsL41->aGC^(TH7=+rF9?5_KncndM4v*WU1-j~6Z(1j* zclSu{*eTVcuIgTpPnkoz3OEdISbGf)G;fvRt#8T5h zo^I`bSq2BsYY z-j2@9Z5Kq})b8o@Q*T!-uY*lsLos#`R1Lm5FSwMCGSEw}aL=Nr;k-w3XpW)7c_NM|d?F$X5rCR8WG!xb{2xVa!h zwp!mrI2rZoY~L_%!S77QfM>kwSI4&_!uQK_1N_BfVGH2ya|b-WozO`1o&S^ooV5ueg5E zLN(wVZEtg#f%YJHE@32SOMrn%VZd37an2^wxaF>!WE2~G^b6>ugG&l-$}6G^B5P2l!ZYWF^q0p$I3F0wjOizxsfr_QBBoPoKqs32v4m%Ww<61NP^kCVVH{HqApgBK6*0 ziCwis>#T>wmF6wQ3-*p9DQR4_T(Z!=Kl0e`U?>&Lakj^4TUi?>deQ!;%ShOR8i26I zLWwR}2uA8KXglUUe1l-mI1v)(cs%<*{+oe=IUnyj)^IbT{cE3-*wV%5w|Vp*^hYw; z_Z%?lVkqN>zE1lD=EerH;QquB{?U9mAZ+&Vs(>hX7`X!wK*YgR%(e!ogJ%o>>^GREK>ZZcMZZF8{UTr##eob27r4pV7|Dz4=>`VN>{-?IqX}#O!0Z6D?>- z5m(YifBm8qATiy1<8}JXkB&+XI@_C}>$zp^O1U~(O5XAbu@s<2K zf!7LLDT5gj#wIvziFUT@hO(H4dFt+%YhgmtCS zGidW1x6@mo>Q5Sw^E%zw>O8{*XnC9$F7VGV4A_2vuG4nsdKk{S-7M@8uKkeJMISBO zRM<5Brg+1>em`9BK4URpH_@yh4_MSWG>RKZs+nPb$PJ~TD{&a~9#U1LSKNpNF2KNC zz<^~KP1qJJS^!&KH4`tqjtw@X za4E?SR~Q|Z)LW+{`4S}5THB-%I;q>h*lU0RH69L!r~<;FU*i`N#0D6cgBW1nr_(VI zhV7lJ^u}VtV%TKKWTgM6zs60r)1XD2N}uxm)bULNq8K}v|I;UXA<=!As#4)Q*Mwxg zD^rSVJd8~;(?_3q4e7u<1%phbnLTAfhFou{kh$IYNieWg(j9Bci@8SR-V06-7I3&g z*9w&^>7&PG2&9PE|WZ$2VTt5?d5 z&4ij6GxRuT>}rV8S7Z)>Lp9=xgG;?73AJ7BL4X1DWMI5wvSt$yXtVdmJ5id@`t6f} zUcUm3^W(xgWqHf-CL%Ekq^`8pXm91RvSiyT_Xg#|6uC*ODn z`c8N1X&&`#5m`-8A7h@z*2% zut5()r?TP;o9jZHhSP8xXI_ug-+8q(K?Oo=`4UyVpv*y+ZcXAlOlzOny85{=8w`} z=$ePH80}M0wU}_7163|VFlJ4aGHff2$kS*x8QEM1DbpJD&JK)#ftLc~8@H6BW`COP z9e{r5tBl%B+fF=Llx3E)$y8gDf_j(4-u+;-e<)cn+>1Fd@4=i_#vd5`NFfOrtZjlM zZXJw`sy&^y7N`R1SB7;FDqfndT`tX_f39>c4}!^rRE8mLAH&#dJs9ZRk5iYrgdrG( zb}4g{-_O%eieSix=XasaO)`oD2qO)Tyv~J;qAtW2`(NKb{!Hfo#W$q$TfZ;;fA>QP zK~;@g29XlDxsL%JT)}n%RoyBti8p4T#*f+)!njEifeNJ99XCS=Yy%9+zb7N#`>jM* zFG9ZrlbwB)40>hE`%$GMOas|n`Nki^bf?!59ve*wyn;Dvg>7v4nIh5=Ue_ZVy) zq~6^PqtF9}4+B+N%8%iJ6Ek!U1DI`@<2c1QD)d5?6V@Z0U;T{UmOT64exh|%8i+bq za$|;-RvM7b(;x4Bw|@I%{$78j^1NX#EOF$GsNk;_?}q#9Yun-ErEnF>ansjOW+hk~ zW}h}2|GN$MKmBn2cRxJe{V?8l>$lHZ(pQ417FH==Z&)>drTo0G8t?mNmC{rU(~QRC zRuQy3uvDPSGie-0*QSDI>hp4po@Z!H;LVlZSRQEC&6_Ifa&8dtBtT4#wgEP@m+H^;y)bu5qB z5nWVMY zctAQIxCeF-7E65dJJR;)yP>OnjZqWm&@Se|J)BiF!|~PvL&nLCH%NYX1WeorRF~}0 z{h&&n>hckcCa6OR)fHsq*DrvPosh0aKB0QaEls?*U(3*Cs>I8}IA{^f=@6KHao{Kp zn?`zofVEE}jLXjZ@~4e1byPSHqoO0whn|F<^yYP|V7&Bwz2V*Q$vdQB@n!CMi8xY+ zr}|J_7Dhvj%noC9OAs1f@F z?Xr<^A8N+U2DFt2Ej&P|hq|s5b+(_YW5YH77$o;crSHd2%DiuWS=zvu9RBBD8);=U zIdF3b1MK(w?)3RqsG~apy`YxF4pbr!b_-VaaR{$@IIZ?9SI_9Gz8sm+^riK2vG~Iujv~FB4jZklw!eLbi<4R(V z?FJS$N1egN_>HRtX8at2*x82xZ=dIJ7srg(nYZ#VGgikydc@wD4_$R;yNNdh$MNIg zW4N-yCut+Ti*Z@2TQ5SQA26jtJwDuH%F%Ry)1n@Ui0&}au1J^tP|QF{PiOy#8Q z;X9#o5Gp|^HAhE0(oH%;lPvh1Lm04q3Vk9s0NsgPBtS|q#Kk&K@9C=c6Pwt81;29) z0}j1S!?;-v5?&3L&zA^j2se79*W9#o^JN{Sq4-bcNT&i9gb!rHiEffxE!4qmJn&+;)U9KQP-VX`1aDlGK4C(y;V$X<5D8%xT1J z)w!*fN(3+g24)Wilqo)%RQ=n1kN-~cL&I8mBiYQ&LSFKa;5_r)pGeQ2d`ZW~+3)^T zvhN>|p zLX269Gwl7q#FBd4P=WE!_)A+=dc5aL52~FnZ~ivLg?!pQWE5***9H;Vt!?C1DuhD@ zNWVuQfy;Fe4=@rR9g&gO-;o6DaYznQ>NvzGfQc^2EcRcG(smnFsTRzkfpl&} zdh&yVl6>z2Fw76(;1v?Suo)8Wgc=JvGTJLh?$Y>d4#q}vN5H@Xn;{K-?39A%-n%d| zqWeZo%WuUzJWrK$=XV@UNn*{__~wsF_n&`727dS?Z11$e##e``kKwKHNPD|V@~cEJ zQ~*&jUT`yFS{$>%`Y_ztB3ZP(A3_?PpSxdj{e#A6C3MZ}A;Yv37G!c!F~GSRH_(bn zjC<}2v_Fyugik!2lBS0@N#}$2V9p+bDy4qy1EfX6>$Q)Ol z=xCIk%GsSbcFPnVmefxc7 z)`#0*GFbHR}T8UfKBJA+Kn zI&>;!oZ@tt*F?!|CqqmzSE0jAkXsNv2Qi@1>}VIqW}XLJSm0X&P+Tws?$X8p=PS~S zJg!im{ik256jjH=_e%51C6XI7>bn#}4o#+Xu1d|}IsC*6l7(bkWclS%98F6MI$GQA z*dPPYgPPt6Nw-!=n=)PC0u0Pm3{0kbJ4+gF;#5*Qpug371=lv%d>0`lruy!AFpSN6 zk(=M+y(%$DX1nTy#wMCHDRZhCd6K7!h(u93{?~sYv6YL#bRu&Y#IYEb)R9w?IrOolpf9-? zhjjOw?@9``rRu=!t+X-r=0ELz?|Q^T7`O+EE}SQ+?YmXr0M=4n25<;W^oAu@K<&(c z41rM>f9);F!+@h2y>5VnEOa$f_r0_gCI0eOwC{cC`ub<34yrMDyMV$B!*8I?kY>+A z(i|BZ^%+dV`J)1py{z4UQF|02sPBW*Z%oEI9fHiXf?sETF%jjz{O-Blv%9PoVBCcDD=(`08|z1=`@9ZGZQUt3 ztQG6JJEb^;df>{MxBxaHcm^0a&ls?M zkHvWVU$t;s9UIRl(%HGxj#Ufh%heO?cwN@HFRH|7XM`=yg|-2RE7jTwv~}_2s0??V zJT*H{4nDw{|B5Dqpzul>i54Y|24UbTe`Y`;_is{Z$jr&JDkV@zrIfj@ABYP;NGav} z&PpHjn#v#jo*GULo2iYFgCbZ$;H!9KX^(R?v&CEgb=3i4T2=I z69X7K6sn+#hW2}Ig8@z$8ytka2&iqK)U~b)v1bTjzAvO9`~+G=6)HT~ieT<9;Eu>EP@}Z0;KA3YByr#EGW^PR ziU0f=$w1oMbZZ_-TjDr`>-gg@!hXUEN$mL$!bi_xO$Yl6pu0oQy(;aWyi??xBEvs=3cBapmFH!I z-`tw8`aU@`@UgKx%4~ZL@yjai;y|4w+4A6lE z2J-xGeMwIX`=5ATTJPGx7GlwX1sOjI7aL5+$(Kxb=r8a40hsPz2h;t!73QNcp2SoC z8^rL#QU|6V<$!biJma$F%G7_e(tvbVk7ZN@q9Kc$UDHmdBXtK zC-^^UN7{>ZkD08elEI`)oLvdHhQazUf;Cb5CpSrK%?cTQb~ALgFPDz{?gX8IepN`E z4TJeL3e^so-TQ${;1iqZNY8v}f9PImy>XR(8ya~G(~#qAUn|b8FBsJJVqpNZg$ypL z^c;C-m#Swl`wGw*GJ5H_HpINFD&P3dIhtWeTZH5$=XW{|!*QLiA+c8>b3OGsR46#6$@x*1NKez*r#$odG-fSO5@sP(h9?g4S#t#RG+>onY|w=V~&!xY2cE3+;9&K zHzP+cv)tm9;b=2ewTwRVs;chkeCQrYLAsx6DR{HM-S?hDld2{i?}MTJRF%QHWoZiy zhYWcbUd`_RSRxC%RMm^_;hlb-Pv;EiuZHI@#V$6oYcajzyssTpx2S668V=PT- z|Hi{=Bj)tq{C6pw>NB@65*caSuv*$beXla<2cGyHNZ)(PR1Y^dC|@e^{8rH25$XE9 z2f>$Vlfm!(LW)gJ``vY4S#4{3u??sVx;7|3GHXj!4&~3o|4!&iVcuN4@z&2LU8Qzg z7y~i(ccQe_@*SJg#C5Nfrq(dq4*RS%T{XB`^0Bz7mWMZ-xaaLsen8H1Q13`#As*1v z_J@Yy#s?3Ycz~LR_K{E&?@$q@!Y&S<*UrD*tc@Req73gR_EyisW;fr#$-oQmMsUnm za5gl`1rH6J6i)Z!IvOMl$#`c4?F3#S@r(=t;nYPQ^l&BL+@UAtO}BqRjhyy_*sx8Z zPu>od7LcgG^|er=Ibd+xLVeQ8bnlhEe}2+Py02b_uV7IHLWmRaQ5cySf#iH0h zt4hXu+>B1K`kV3y$<>gl|W6@98Or!pC84wJe6FY2tJ6P(-_FBx({5z2a}zP z8!|;xM_>plm6ew3S8BMsnDvaUIgON{aW!Fp2X+n17eR_^2R38^v<9))g}N6Ffa=+P^n*Y zPNo}=z5=GmtHyz=i~+2FDS?}OV~1o;R?T--op_ zq{?u!QlhwBN&3^;id&FZ0sUbacx9U;-~UjWVDPZ@#?@*dt#W}uXn=t^fC17T(47J{ z!h?_`AO8MRFxrQ9Ww74@lXHy3vZYnF>7-fEx1OUua*{E=J9%0V_vwTeb7#Oj|1ReG z?*q06o9y}63odfOjE4vG?@8grk0jFeZ>8h*Z{xshC9*zGG|<~Fw85@j(x?06>|?*d zO_)PC@GMBvrkkbb_aD@Ca_+<_8QHr}lG}GlJB+$EEL$R(osfQ|S_`5TDta`di5P_3 zyMy6CgQh8@&)l?D;*gFnoauuq6-e~b9>v9S#0zv{=YapP>7D~Uf2kJ*QNzbDX%P0(K4u1a$983V$vyBIGA@DXE%1{+lxK(}dD5Sra zOZfl%whVml=c+OuHr)rn<@PK*YK#TQ^T-Gfa^y@yT>FoaMXQlgJ ze@*(o`?%_)=i&d9Z#SN=;W-`o`t$I=>v!PKIL@1{gZ+9 zr=95C=53!7!A}%F9r-X1Js8Ch=)-ydHb|&SDU5kA(gu4c5PG3HrYH?;cXz2hrEshf zwqwppd@F=tb{&u+<{G8tACe!~*9#wwG&f7< zS09n^p`(&{eTU>f?uEWeNIFyP0}GiXQF6+-cn>r>ge!EsMmPH0W;L9FTfoZv>woMC zTxrAA8X9}yWa<(@r@EHue)6RB|LE5uUwK4Y)+_^)J}q%;Fu6kFY{*2LBP(%XiN;DXb46}2GsBeEp7+y z62kz;5&Aos6T*2hrMEV=0uGntapI{&C?SuNFBhqp2ZPIkzH8T9- z7ReqstP{0OA3OsL%pDAH5;pTRe?tx}uGT)gPN5#tC{!0@`ulLZky2kKk80^I$#CG3 zYst)eFwA_-GHG7DQsR5|%kax@!al@@*t9}#vTlySOyqi!YBG3D9L%(V-@U9V)8a2~ z#ab~XDO?**B5nJ<8zHf_2x}(LFa2PbBxZv~&s7XKb2;^K(+Ft$pL`Yu%=>g+F5;G> z8c>DWgNkcF(k?QZz&Oec!4N0MpOc@9E`%{&_jFLLP|V|CzVC0b_xJ^vXg2^1acV6U z#tvPYMyiK>AsF!zUI;aH-@}1GuhcF44>&8s0UB<2yOQ>RoU&v6ZGG(%nW>6XsEZ+! zi|xu_uT7dj;kMCdHmgb#WjI6XHoUM?^1Zle{a+qaiEq*$w;8qW#T_EgM-=OD3cnO_ zh@m>zS;vd%_)U5Hp?^eiQHKM7A`TudIG+KGn0tgbY3Xnk@M9KL9y^(cv@T)hwQ84t6*OFqSwzY99@R1P#Hsp0uPp zTR?iCW6$KHLHvPp>j00^J03cL$sU32g2b!aF^1<$)7n+w%Yg4hl}n&kL(jb|$(Ogo z_$ru>xbebpb(Ze%Cdq;>+#Wds6*WJW?r(fSdj7>9NdNbLiNn35IryxVo|v4^`M1>a z@~o`v3Vi zNPALGRYI{2y$Y8(*^6sS3*0r8`MWYmH`yW3djnF^JepSTP@Uo3Jha})4xRJzo8r)K+bU%bS?2wGU@}_it;Q?vB zX`Kx0JB;*5#Cbp$y>l9cLE|nJ47htZv+#4r2*yDHu8}C*5o+yFqlU>>-cp>$ zmM^)~u^P00j$PmAlcePLp%8fG_)M~WQ ziz}p~`W4>Fj@w{WJ`7E&)^P zUtwK<+bJ6Fg-6h2oo}Cz8v+yH_-RRk>6HYXWt+NbBMgS!hkx>0-CKvD9cJi>XOsy| zz2%g8=gpc>GwMrKuUxZC#i1@_!l?=kG>ZoyGiDz{fi2L??CCSo2q}KOfk-tM7jS(> zn?KRTmrKi+Z;{xtrBHbpm$N_rt)zDBDe17as$lD|&bWA)FjE9)ubiqyaZx zGrRVK=|+LT(m1Ejte$GAHX)~r>CW;@J#1~X9=0;hGmQQ7$S|1)mQfbn>Noo%PT z*lOW^xbfcodHCPQOFL2AbmnEtIv;u3yywJ|%yx|9!r2k&_!jIGfQg>QO;a8grH>v5 zFBe9&afqGo?Z*ud97I8FqdFu@Jhw#})?X{lP|eo$x%(x1=LSii;o5%$a$|+|6)2PZC`v)+sc!aFs}2FsUu-r z^?{KUUC)8Y(V$ia9l$u`No-cfeWjviOqi{91lKXB_nz01s4__F!@&3p2ERT7J9R2NR9_k>bU5!3?C(G2n}#q zJ6+~>s&a970jShSP21*#P^agZ>swUGgP?~smH}*}CuH@LLMr$}; zuz#Q)Rx*jh^~NrgX6(>0GU1B_FqG4KAffyiNZT4jTZwkNn<-VL1LI6_ zfHFfo7o~bH%Urkn)Bm5n_kfb?xY9IlW|sE`h9CgKk^~8o0KNA{bP^@XOWjgC^>&Xr z0H8o$zq7N`JF}-}P4AhrXJ_W@^z7{RbZ^hJ)ZH4nmPAUTB#Pd9f+Ro#5CBPd61IG$ zH~alJ^ChwpS%oT~UC-1BjQHHHUHKARquSH2}@b+&GHh`fu}E+89n=? zNUX^+yZ2h_N`g|K(Q7&O(o!@WQ%D&#zvxNd>G!2ekUE_!HgLPEt zXX&e4pm(+MuZn|!FZ#IFT}sLw{H++FUMOn`mqD@iknyO{8KT5tAi2P>hTuu1d5QWX zp*wv#2T$rpp)~vVzHH6cuC~PUYk-#`c=80Y9z7#WAq9>*1$=B_NVk8)x_|$EYgw_} z4m|K{ORagYX!R~dwDKS{mzP+yg$cABd1NrQkk_VAoTk>iYYoKWY`N+Z>$u|vYrXnX z8(qu13>;+clRl3n;xghIYY`tmhrD<&UbzrF>ySLf6V>+zcgl3owP3-#Q;dRS?upLXC8Rl+Py;yO=2CrU&QZQ)+b&>G6`-Ur-n`JG* z{ETp2TEqhPM-aRRxI#5bn9--AbYS5jd1tDooqCYY@xOV++17EzDmLjv)>g-ZZsio* zcbE=Y&VP~~xaBNXIa>Tj8?aK765(`B8Zs44JcbOkw-)rVmKFlZ$x?`NR5@ApowZ&mJQq^nuoMuFm4GInw)D$I zV{JZ<9I|d7Z;=`l5PTOoV4)CWjqxmktX15~dIP0cZe$Pv6^2$Cr^Rf+O|`!@&Z(Cy z_(y<^YFu~*ihztI-rQi>y?fjuFQOovDBYs0k;MaKndfT|RadkSAD7NlWmTr?-<8)U zaV&vctQ&e$Y<^EahI1zg@8P`!S)0ZBUvWh0=Fhb(9`$8!`boUok!7L(NST4+qZxRx zGy?wv|L!}$ax}S>eWZ>3i>@Cf-H)tp;a$^00ru(n{TP4Yy*KNt_rXIl#Df}e)}XzF z3$Nw*QK5X&FsvGRhp7tvSG-32NPR^&^Rx6-zIVcMgFUhLwczQx!;31H;g|KOz<5+A z1i_?yp1pXFeh1G-ou{A0q&o7xQ6U#>+HUd9A6XlM$HXgdtaYUR002M$Nkl+`gOiPZtY*a+heos|LLzR_1fF+(NXO3{8c8#f`)_l-(XFyuFrZq z+Kn8Oi|I{U@#5WN_2(|O)@v`d&g-tUwo6x8{GInLL995<)gD(y1(CdbKdSsQc05&H zsXng0zkFxuAoi#K;!pmp51goa7*JhFpq_bWv&FG^&!iGXOQ~xwvq)#FCFOqHjE1dT zO7-Jr_-|P_V9k`?yn|@*XImo{yGp5#!2&{fqZbe0G1O4aXvka6UR-RYYD(+InUac} z+utM2Vo+{%5~d%LVETnoum`c4XkE1eL3C*WSL*ye2!gT>xp`)tkRn0&<2l?_WW`^! z+UFf+ayuVs6Y$RN<)PQFYF~LgSHIZNwX@@*L@7!~0G{3aIZe`6+;Eldz8A zITFD8u$!P?NhvCeI4v$EcyGZ~xqjh18G{fx z3Jd@wT#pIF1!RoHAj4%Z$+Gb5bZ`J-G9Uq_6 zKIymC>*QU4y5y}5#1A|627Q7eEMSxo!ziN;WkhoQMqozpqR`%7p6ufBrM~9hr?a6| zjsAX8pAzptE>k!E4D0>UJwQ8V_4q7b}zP<_WSw%5o^8oX6w20W*d0?c^mz^-&ozb z3%rN;G_N^CifXZHeZ2RSdc696a9!t{FmgeDmuG%XzO>Gg#7~JZ&$O*tX)So0rniIp zjt82A?gybYRX|1Z2k=MZbb?fUwOmT+K;x2Grj(dy95WA%SM-b?w`Na*xwr3s|4SQw z?M-XD$V1+z0ilJ0e+Cw`#SuRv-{z<) zEe&Fp0Kvg{@V-$hQ5z!lnR2S;I^_%DK}dl~Qb4?fJ|~5qLwbQ(csTaz@h1p))eMw| zaNy;BnHS&I28#`R^Q9M9+lA-Shp~i{Hr(CECt05`TS$SEkphg7NF7*&>9`F%_&C-} z+q{sCu`-HEWBcAPx9 zkFNHt4F&g82b@|1?Uf%KDbhq%#PXJ8&FFi3GVGTSd@7pX>_VT`=Fp) z-cK3ephobBYZDIp|MrI{i`eG~{z#*!vR~Ia4hDj*X|K;GO5cyopGC0lK^ytu!?yQ7 ze%t41S-nfZUzCIgg_Q~@k4KHP@l!AkD|4tMPo;x^M^w$cdKq#cT-Lyk;f@@g-(w@c zd7h1egcd8AoJRdxP~Iu`%?4E(kOazx(T!XD^<+J%P1Bf#3Z!!Di;3G}#*ioIAPPhn z#hbx9cbWO~8al=TKo%1XXpmj`puSR>XU4qkBrD3h1+H9DMkxrAzE7J}5(s#Z78asW zw1u8dZJoDX z>l>$B-$*Ga)@d}3E9ev+o?;Y`k$^T*pL}e64?Je6Pxku@N=fRTA(ch}HD0}O-W*_M z2u_?t;C`6AHEs`2O@;#SGR2~3!y~dC&p=@XJN{}ok4}bqVV;>pfnd$3Z}tlN;<^ zhCOtT<#+cXa9=`fwB?rG@iE>m;MhyBdzdxN_)neW6$u)8+HLefpkjfNXeKsW5sqTw zcba7BQ_m)TM|l|JA^q<(AP8)sZRiKb}S;uE?L6L(6 zxAp`WCXA8a)Ob=bmTO#^;8bxe1p+nCSQ=inM%kpEp?(&8%1>5lm7ns3@`1{p@FV)n zf*(Bj5=Mj#)_T*G^mBsBN^vgMM)gK;T9I|=>35fDQDFfN%UeL?b9_V1bZHe26c zeBTD2c!9X0=UVd>#9ZkcF3KHCg-zJk$y0gVy*QBFNzol!INS0&_u9ysb=J6OK0Kq# z*B|9EcgWbQUHhQ?>Z|3UR601w8}Qs8o4K6BCq^xTB65e@vDZ>86q?UjZX-?4Fli&K zP^E%J)7V00_AlN^i=q7BunoVsrVJS)fx8GCB!*dW(RA=ca5N*ogLe~@Lln(_ZvO#y zk1W3o?Jc;5*sNIuHSF=z>Mg;2<$R~wf%-V_F3S|*|IJt|ciuyr09pMuoPpIo!6tnC zY8;a!pph~`*16ZOpk$78&Vs_Ibbb(6;`zP_h} zIcu@^ci+Gx0GRc)du{*ses0+vV1^>7oG5^HRq^4^kOC(s1vD>#IUJkSdC>Dr^OjPH zhZlcT{4Jf&2`d>PR~a&`B1?EUJroc;-_Q?#?Hm4C_uWg@L&#Z=cd61L zdkpb4JtHdP4{cvDggW9~i1xAIt79c!AQna>x|HK(mK*#Z`Nkry^ZruVhtz`eq*7fJ z2sMRkx-6yzYezxsl`=N``dV@h~u*7dC~5iIo_+xNFW0p{jCi!GR4v_y1%NZXdWhe+&6be3{L z-{UkzkoB)!gNwmKs@-nBRJ@a^jBiP342~)k6nP#U&jQL|N9uc@#?VcQz2G@j^?y z@TQLk!4FP`K2;^2-apkgn!jWr4J5Y*TozAPKa*v3n2wAB&@aLqX`o>y9(dYPm#lQ- zxkyPtT{$8q_kfDA!WfWTJG!9PlHj;^0I$@DH*n&q*DNxZz^f%=^NGqG@A>7Yln=y` zg51TERRVWitjMiHy*#*d@weAo@8|Be`V~vi4sR=BKTU#xO;qud_L|-q#*}(@GZtfe ztzk~DYsDq>kp-m>C_&I z8Z+?SB0NT|PJU>G)R*%JA|+_gwhp^@N@ic5)uSw|UvP$HKHSD4{LuTtGa&_L6a^R? zT0qt$AI8rktdP@dG<;222JB_GxE$U;Fs?u;92KEL4<^s>@yYDAkqNF zINoO+*Ix#F<6Ms^A)^rCo-2)+?R~r;%$9Rnf$LFXY~^?GLwUzr0CTBkQXLSEN9VI1 zR$x)q$NY|fYY>TCftCATAk#mOz3+Kkt1(W4b6grG=2hQc{{vRq4c34Fw*^m@R97J9{}9%qT#qd+0jP5xtIMQbX#If(^p( zK`<>1#2d+eyxZyPF``DXG?!3C!YY01qXYzu!wbnPKy?@Gbxq%sO?tk{#nY$}i^-Oo zu5wT97QDOW{K@Zm-J}4~9#={e1=^I6VGhrX&fBiDwohGW!#{b%qVq5|qko^)$zg$@ zKsEh+Tyy?-uOoa7gx45>7MpG$FybxOGOi=m_shpH93()o;to!sPC-|ldK;@h7WemM zp}PuEmo0wjS2^i9N|W!!+!5SVytVkZ+zy8+N%u;I)r*xoys3r2!L7GlZA0Jt73&k? z$_VPK<^w7p79M-Q*M1a5Yu)li#0I;>lAAsPzH2=m0|$_eB4bfJ3eggtTO22~8ZM;e zxD;THFqA-%9?&-Emod>(B%EwtuT`+-j#3#B=7HRnPb^K0m6i)uSp3nKi)H)VSnKBT zN5+^@SNd^K#y93_wS{}tgH$=Wr4dvlwRV%`K6SITtUk{M2)<(4*qy5TGZCFlZ2j`3 z)&Rb#Ci!|*(8hKIzEcOA>m_uJwou6CJx9-Qadb!1)eZ6Axo@}XMzK{YZ z83o|&9%yKE#0DOD8mqmHj>|4+gL>xiYQeh%8=1Z#4|1Jh!!Sx9F$G?gRVLDolkDYA zmFmE^_@Cd05C@$79MFu>3FhKc<*mc_I1MQPE72aJVNQ?bfanmULw*2(m-d|!k|K02 z$O;_UP6HOG9k*O%t>>Rj5L8*LbJ+zIepvidxfbR)0|x8BGjCYOHRoA<+ZC2Q@CwR! z_A4d`n5iTbm4yN7DuFuI-#Y0En`pm&OFaC7)h#3T&KYw(c(>MW@-mMCZz{59 zcki{#_T5&%L${znu=EuPQ5}{i=pTA7J!8E0Q!qXt30iJjW!-n&Xc+?K<>Lv9e*{04 zhXUW(eFuPM15So(1w6k5MUvk`AHmS7^ZF|-@z#4>M|mXc%PehpJlgI=wADn<^zkc9 zbU`>`%_}*9`ZBa|nrS^E!!-5rplv29?`W^_3>V1FnQa}vbv;VEGg#|?U?WexjG~W# z#cHcS5io^kscB1Hb_#bXtL~~0x(BCprPN=lyG`ZqBYNgk=&bg^yIn9>BX7Oqu^r-z z*Pvhot^;GsL*zcHf0)Knz!gr!cgWv)0m+h6YDow=grqz z-O@9i@0WR3skn)rFlMY){1{Kzt|F@}+$-)1>MzDA&F|2tcc$j$ONyOHg1l2PiNYEj zyk6_&7rB5`TK6V`tEAp0%6st6YA{*5pJGXi7`aAzj}DjvixdrFgSS3H&$>s^yU^aVoXPv=9T$_R#^WCZN z^5Hw2UKC&s$qx-#ivFEmx4}lD2)r&h$7cW5ebzXSK=<(cU=gVKqYmY3w4uR9-(6eu z^w362^Fo-Wp8^t4$W3)PV{OEf=)UWQqT*ZRu9*9$|G{C2Aq7qV1xgzv2{h9PyqYgQ z-$sXr9L_`@o`peTs}R_{?dGejoon^IB_ohZ{xivP&;lT0_f< ze^7$GPYB*x@+^u0h2uds*)}&}?cNL@mcT&k`uGMsrtzANbYrw7L1n2p3P0v40>77l zx%k}U_~7a{qiv&DEhg8#Z<#AryO6f=+SS(m*-!btvN%`KlIkl8l7~=43Ytdvf(3wUO3$LBEn512}=^bC+5I;Z5Iv{sC5~ ztN{_4NwDL62W3D+do&63u~Jnz(b=6g^7E&;Zy7;<@3H;=>F?<0Hu1aBoe zFfO7f0pm}+8@x_rNIqsfj`^W#1*5m>LPeWYNa8BaRvxMl zI!Lsu)iu0r7oBg7tIxIMns@Q&W3i-3F?depeKYk~_W)E@1fWwU-@D*g=rPD}v_ zISxshh)Z-V_Zb1nLEE}sN*mp&LnDDOgiDZ>yhroqc}EA}p2RfBRX%P2N&`FV%b zB|H&Q;8daj8gjX%=TH=;KiOwpw_a_Hz+uU)I`Qr%%VL@4IC0`}VG1cQ!zmyP&PXQ~ zXG-+x)SK_x(9(rAi@;$nh$zho5?&bDuZq|2c z9v5zMB-Uu{U%K78Z@v->UM%jEwA>0)NP$z30uq)AezD{73oMKEaANIymfrS>)h$|J zEw^589apaQxwsgQg@viFO~)A!CB7wrYkbo-%WMM^eSVJ({^Ch2D!oR(bh7gVv1Ye#_ZQ?Z88igH68`50}28FxS0_^qk|6#EWPTS&}zG z|KgqN(az;McZQD}fctx7vY$DfKgU# z{v3?Sx^4KS*J-mXZCAADjeyth0mDU)KuGTjkz!pME?VY$t9(LprSSfN|0-b}Cu3CT_XL2g_ zG4(YCEQ&O-;FPN+3(06lr}bhj*NTQ1``~_ob5ZW}LjigWQeJ zl|B)I*UFWaX5x1}&__|Z_$k#YBW$iBZNk5&1qHO3mlba|KZ48OY@lVpi)E1$1v54( zSTI+bR?VEJ1!cmQJS8chIT;H+PZBtEHali`)3URyef5f>OpA+}b28wX%G*i`+KH?= zPDwgV_e=R)%RG(%$T#(D2;4GLLN#a|!_~O!{yVJm>ecX{I!kQB`j0v&wuHw6n(q39 z<%JYD!4wdTm46UQX2HOY#2OH^gVPRfcI!Edd>nWcgMGwAYtzzNR)Xw~D=xH_6-zyc zW&GWZmfSvSZ7aWE`O!6uIre3-r4*~cpn(!SnBRj3XpIe)dG15%Z~?KZzKqrPS`1fy zPJJ)tnk=1_SNGx7Tfj0uvzOyi3O3=?NpUc=-mb^OF#_aFw7J>pC2#~bGX35M2(0op z^6Hx&>@C;VZ`rN8EOw@Fk`d+~&qSSN$vyJ?>u#mpasxu5hn}V`(AcAO!EtqQ!3lYE*i>GPHS&l`` z#OBa288DR7yFLMe<`c_(ybsIkL5Hak-g4uoR(QWmZ`t87*&O3T=Ej0jQ?sb)E0Y92 z+}D6-cO6D(d%pK`S5QY~)s1KIX^}MkfO5?30PFbHE3NyUTOFP;hVkL-Kl+-F#ioVx zQLGKyz|${T`;`}iX?-V9b?a!Kc~0*H$N3QgvrE~0GzOZgi$2Js#w7J|)-(ChQS1A! zKepD}uOTMHmEJc7e(@M`tF7*-Fy@{q{7|L`rKx7b1 z7?#&vzyEpfhr_>mhWI2vH?p>i5#K?w7(t39pMT3?vYH9_DO8Y_mFGHMc!EHk$+zA| z*)iZ2+YXZ&lJ}7Al^;o3=iN732AHq-BQIKPZqE_Tot0zvkZ}VqkzzIha!Jp9pR)RM z7h48Tc)?JW$7p5Es@iEPg7%=8$qC$*Tayo+DY0?0wOxKO+G1RlWxXRUW;Fv0N}p-p zVl*(BSZ@y+s&iPt@y=2)Pnra}MXY>Y3z&>FEC9M%hJ{ib;+?Eh11?$YMJkj9D+ zftxIsV%;6AAG@%;Z7;4F7tP1Y6(J*QNnz*b!3M4qe!B!pVG1d5DpEjuga%+hum~3Z z^{j7x)*5=d58|^20w;~1Nha|#&E@(up3!S<7oKBTyw?ha4y&8{Z!Ej_|HLx-H;k)Q z@IHBwRF@5pQ()BmOVsT%RyXT^V6V5s@`L}D{42>{EkM=%66^&6a(n8so*5<{s5j_(jcPG9P>aN zyxP{)7g*xex7|v!?D=%;9)4)aYI}I00^>kPvB%qM$*4j{J4 zIZNp?Lzcx$BHBqGQ9#2W)oK&Xqw?&3b)B_da-qWx4E)C*THX0)x`5YY<$kKjJ_0%f z-=%ia&)m)f*7n(3t@FmKZ0O}TY?vUM3i{jiJD;~Y}>## zU+ZqkOLj6x>}y@UF6g%Q{w9*LNvZlPEY} z`5oj5zALZQJXZV4E0Qra{NftxzWWwyyzp#1h;}&*r9h0$I|IcP0!ZMR+>58OAXQKg zlhCr%X3iHY^PEb@ysr!-^1z5St~$rsP_Fj>=4qU&;wUM)T{h~ppr88QlKk=*82-`2 zHVWKW$dAHk1|NSIR5gR%t0u5)wk6ir+d;EMvj%+(@!wpt2`dVzQ6wo zYinY9sIQ4eQ&=+uzFPhLh?2y<_qYde6~!-zUh- zi1qyL=dI(i3yVxu17e21)p=#Znv&` zZo+-|Qfs?nm9^t`-*y3T63Z947n(Mti7mTq@ab2I0c~a7UcsY|OMSzKgcLYl6wqAC zyes37I)n}N7>Ky{W#zi{Ncunb2g_U+z$099p=lIL>5gmRVT<8qSPy33;Z0E`7Wzt` zoqX?Rtj@=x`k$f{`)%g@EkM!y8ToqI&&e~i(!^QwKkEh?1a{^=gsV$*M-{6t5#V3*=OM`+-*aTfd!ugZUzAt72$In zlIV+oNJeq_1H;fHivlEJt(UE`Y&>om-ovd|gEl!1RSF&hZp+LqVA&pnarC z5DQX@K%er5J4CLE-@cv`&N^0z61GbwkslZa)?u3^-xOx@d#>=1Wu%Pd>JbPxEn3KX zUu2C7&a_biMW)|JZXs*yK$sg;tj4$3^#EQPzyx&wAyIeseB{7b(<2lT^sE9E=1H+)E7LW~rh?kF=*Sov|V+}4~rnzX_IiZN&_YhuqsUsk|d z>A&hQ638FGYk_tzD?9>TqP07GC)U+wc>*@aUwFgv1TXHo@oL(Se)i^iw`e`mAsAG1 zy4qW7fXYwJawmA`1ea)zCDPXU`A=Ezr*E^= zj!)b>M_wHf#;4XYF0XKz1;>=(!E%9tQd_A`C&eeA?R3>geM@t|K*D-aH03b19YUBM zBgTXHmbYW+SpmNiJ)B2ztN2sm^>-|}4Tv(qtzC7oWd;T0CfGn1&92 zijZjfUt=n?t(CXdx#_QESYk+l8AE~M=8Q#q3`|uvp3O@a5#;6!HV!Wm^yVFlp2;;q zYjhFlj7_KnkAf2upOb~&kuJ<<41vOmo_Z8uu_*k*CNNdIKXsES(4YeQ$vbh@7w__z z2EuKRzq;1a#4(WZKty=HlMp_fdc-=yH}bib^-w%(?O(jzdhWQ6O#(C=CndM@5+yQHnVjIjC^Aj&fDWqEj&HrDG>DS(*9{W_74*HNXR|%4v;b*vJb0=-yuwn zb{mzJnpR*yQs4;Z5oYGGsLW#Vtw5s=*%DMm z{6A=?;M}qLRvr1D`e?g#Tz7?AsOJ$rNxpDcd4lSwPoN*6Jq35`0(3v0M>soRN#JCX zFTCkk$x(#m^-EB;ba%05-wLKTnC+95TOjC(667}i0p{x`nBS=(N82??EcmliDkEp`Rfr&JpYEp7S2W}2JvOc0tP&SiG0>1Gl>%X09-{)as|)GnZ9@G< z9(cl9FTy)tV*)|4DPZwYEbN1p)@vVqsw{;)N5C&BSY6rcS(znxV5t(dE(KX8^X9ue*QJ<{lYy~zx*ud+GQ=Yd6MA7-JiML_5%x+{df-^d~MK>SQYG%^zGtd1om|c z#b4_!ixM(|g5xO2JDF-voQHlX-XffJwYhuo1b2vFPFN16N<8Q!#bwJ~*Pq!#3QE;Zyb3>70W0!YEakH@f$kj_V#(8 zRMBkcp{E=hKj77sR2H@LJNOp4Dv$NMW*T!7cZk2^0T#y)sTJ6t#*5Cj6y9i26m*9M zTdu4@&C(BhvP$4SL4G}pPABQV@bkKEyTR&~5^%-?!AxSJoS^8F;*ti`P|_L+cF?qB zVa+ND*UH^yG?_>rH@$=KkFuUi~z%=`!&Q8r2aSetg;a;+urxY`o9v*z{?BnySpDJ3vC z9&M$i9&5$cJFX`X>Q(R-;XSh^EInIGWj|&unB1|)4*cX{tO4J)mV2+WHmu*HWvj^G zj^k13@EIWmP7npAc~2DIyw&=?_X{j9Q5b40NwASh+3>PO)^zb|_AXag(}F9p=*Ama z(j<+>Ji_LY=Q#H$d${+JyCa12Eqk@FU8A>wJXr0v-oSmcZ2zyG2X7opX`rFvYt~wJ z$B0GeAV5J_lG_iA2K+YKTZDPk{x}Z=M;@i7_KRsOe$AmQj^S8Wl_fZnP!U0UVc&oY z%{sn(w+HW&AWt~Lg7**%YJQM-Hel4}KgI(<)uMi~bS=juD>E>z9g9Tyk=7c3dGj{fp#i$C!a){qMv^Sbkft1P|oBZSKR4rfvn43Rge+hof>S@MY_>O=7aG>usA zKl!@VV`L~;hs^p9$Kw8retJ*QMuPT=RHi+7qO3XOWpMzZdpF+lv%m2<$L&vJ5YYd? zZ!G=JCcI8((H9R`^UYUS*X=g|z1Hs->~_PImfQ;7eq*CGgVmqhvC9UYe8I29{`jlb z_g{XDP#wWKYnTF<&oVMl+h&o==$V4lYrYkQ4xW92?})Y|r<$guSD!);n#5DbmR1zL zAM8j6yDRy|W}QUYHL_5&7bELz1nJ4w@eIKWLEd_TlNnjR(fa?*-`VUx|L?8$x9=wq z?%$#y>8B6Ow)&+&I0?RK?rax6JJeTOtMxzfjK!aN#WBr~3ah_HbtgQf7YXInLt`TZ9_V zV;8`i;6H^dNl1CaWTpgbh_YMcj$PgC%v2a4u(SY=POX^1=j!MbIh&8 zngT9N#zN)yERiapSnw?pR31-A5;96zr2HN{72}ue`&%vBKWHt)Cl&s_5!Ac*%t@Cz z;Uj~KRgf}l8pbO>Xjm-&a(fO~E0N}Lu&~ry8(c#$qb;O-LgmG2*N%H`vQ`4~6caDa zf00BCFthi7jerGQ$l*RySI>Y(%g1COjIs#>RtD5Q*}r+m92le8tT$k}p}=aVjuPQy zCw^GJkOCnEri%i?`jm3i-NRtu61K;%glZtTumWH=vXL+XL(4L%g<#Nepfz$>arA!k z3%-C)0UZ`;!xHM?N_V=d7M2rI;Mh?>eH~)}S&yaP-HhxA3}0CQBH&1`-Gs1UK7ykq zmc)9@-Ql(N3De{$Ac5LY+?ubr*k;|2r8;mK<+wJYC7)okoWvdbzypsEBnxkvu1@Rz z!rj(>(K$uImiS6Y`^nQi%z1iKpfp~RJNH`Oj~~XO96=mG|6GUyZ*yyNJk?S!y=Do7 z+^v_ghfDszasz*lH6~W+qkoSO{6)5Noe0|(KuZbQeP>riSMfva(DE;W2mWUk-`;Bb z|LtF4O~1_=S1hv*;3;wlOT zJm0kbk+nK_MOwqLQ9e03I)xB;<-oC z4l*`GFeA^$?1wuo4UT*ZP^;NNU?Jf1Q9;zGY%I0iP(#NO0-o%N`OK4OBB2*hF44Aj zoApOuCFTNs|2zLsgcK31LzQ5C+*hlhy@Z-tkH`~c^wC$W^~OtqX==hyaff5V=YbMR zKEB49Zob@l@4w4N-dJaS|KYoq+OwPWd)6AUXqRkd@bTwu7>n2R+nczy&)R|g6%2~j zF}W?ft^Et1vTlU+5&}14sVc!)3&B8T-JagP*G5p32;O5lYT)WX)F2+FVy34KM{Ijk7+RF&O%$S`;fKU{Q z8QNmxmA4Qe=d6Q(xd{{`c~?L&mR+EI94G|8l2A6kcMyn|Uh8CC)=3>rz#E~fu(amAFwgiVp36owMkbm;}&c@nQ_ zZHU)}Xr)H>9#!KzxK`{4#k|4s6rVrYS3a)!;FS(xjb~UsnY6+0{-UVV_C7S#njC(d zh|Eq>O$PF=As&ppZCdbNO1!tx71z@Zv#D0CvT)a_30et3*(c6rqE5#iFw z!eE9cF%N0R8(`Q<s=CI-s&vuI# z@E)7bTaMd!+^xWp?|+EJ3~uAIW*j#^O&dLY?J*Q!40r%BHnzUOlywajJ(1348~XLr zR)5w!1XKuB7$Ytm7<2Os{2{@{@mQy5(}fjI0~^ks`)&oFnN6H%UHR;Q|F9-bV_}y8 zYC=Y~^$X^idkjL}T5HQ0NcFJFAq9>L1%mOCC4N{x{40(1r3W_Cwv(|}AYMiN*~@I! z*FNp_>HEbKmfV`OwsSvcx#9o9_`8A+)~{|pEkQeT`*=IG2v&!gmw~AH*OtqiZ~ea_ zKxDTpV{>-k|M{+UeEBW{4Bian<}4ff$)hMT5hfz!79UV@c&1 zl_8&7M^CprLC=#Fyqf4pX|H=_X~`TAn+Fs`JWWv0l+}UJpWF0_*-{KV@FFWdgSoaO zY*)}#S8VI~NBZn(Z-7#P)Fm)%S^MH;iIS-WwLZ5j;yWD8E#hTJO)Y4dW?#$s_l4B8QZbOtVgO!sQHt9kqk2OK*9_@{sLY(^k;Zwv=t~$0vq@J z=ppO8>n8d~(uQC9z_LIFWk1>HYaz9ZJp58GyloAC`Yr4E;@!6I|N0I?o4QJISJCfP z`>{1G)@Ho(wd(2=plp9fDU0A0xxIMwbhKIL7w;r~#!8P>F-&k@2}~PUcQq|qfKk=i z-bnHQ%F?HWOd&WZ#pVd;RauWQ$9f)>k-{eV%31W&vZwU9v;3(}n=|EfGLoh+U5Jp3tpsY*DlYc=W;4F=M_e&hf^GdxTy$`oI7*u@^n@A;p_sXtPJRSZGDG*X1q`*l_ zffDc4qP`AZrUjNPb&@-F+u(1Wvw8vpHGv`7fc05DF4p4NQ7o&Pa7V9W0VE#Zxb!S* zz4~Gs`qfiKe(nLJw7U;eNP!tb0j)!{*-`R!8w*=3#R~CJf``4wW(pya7XLFnF@9y8 zSq^;6`;^|g=9>j8np$~+Yr0X_{dcgILx7^^)Ge5AJzuyJELoHmHP?E@Qrxpfi)C%1 zkkd4tz1aDU%C3BleupWfKuCdcD4-2FV=#|JVn0@@@uy#Que8Ewmc1Cl3O392SRD3# zB zEaqPZf4yjg6`kFIK=7BAMv2z_X)MSw&g%c+FIi(?`6zE-2_?l-sdKKs-vrb2MWucJ$%5qzX=t>V zU~Pb~7$IjjJ@%}P{PG!;1MLK&1gc2Z z`1(j*)rpZ!;H`g*=pJ;f6VtLs`&9L7=!Al8^eGe^^kJ9hiPjij=D~39`^z6dIWjRu z<%uGGB1N9OI3yU&wDWK z^%1u#@$y=W^a!sT!ESk8@TZg??{YoHt(1X+K9VA}1#AEKdJuJgR&Sme1tm+4vFA7tD^zfp2!i};+=vv_x98Doy=Pg3;7fR5?9 z<3@|4Oi$xg5nI5Vt2WVlm)k|9AA=-WE`2}qVKF{w%LV6J{IQpdy!t2}SNWbnF;f$` z>nFxA)iq<2CO|bj?tp1cJnBTj^J7Kgzs4%Q`-Ni^Z^L9DVCOa9#(k=lTTNw1 z08uA+k5YJn}8Be#rKnS;<;!u=f#m>g9l!Ip!G|%_*dmqB~Zz81s1M7c&hYkMS z4~xQf?e*A{yLB^o)5%xY**=0%cYpOWSlNEX4*boJfVkO%Kv9Bu@@WH)z_sq|GqK>_ zgmC^gg0X@93v8V*tph$)s=$$bi7Z%IcYfv51UOt`afGHL&%SDz%|Pw+v=R`$#1EzL z^Hii|5#Jm^rYx|rPE~Ns-0%n%`?JAkoxTI}aXo=hyFb%hUZ>(B?686Tb1Z(5C#LV|4)Sz`a+{*QT=;Sm({xc)u$O zv7sq*Qf?G)Nnk9x?!LwL194PfT`9SOtgcPUkDyN-t13=ZF0u^?D_e*^(n~i~@$e`MDpiikn~r{~ zvJR6}-5{yjGb5F1Di(ofi_=>))60mLVZk18MM&xGL`(5zguFQZIA4&^H3w`}|HDsN z@8|Bc%olF8_#-dU76|C&Ra_F19~C_$Z=(u%ybLX!v!*LAw07ck)OB`Pe8VOie*8r& zrS}0V18i6u9?eR6HTrOlxByZrsUPLH_1mm}_fM_$k_*6`f35f)brdXb9_25;pMI2* z`frpyAo=15^=JR?m#~CB2jdlaE)lx1Nb|}3C%|4yKUQud2i6%wzX)==Lw5)YuV2aVCKLAz+%v1^7XH;S^>wU5Z2C>%Y zajkr@{^NC*8TEEyWkU*t6gbT(AYLAS^&RKajRY*rY~9X+KgHtfW6NNvka%GYi@`?g z`F-45uUhSVKLsY|;Ex_*;nKwBn}ALT-U~wnp428aOd$nkG6l5w4J_Yh@_T4A;)<|F z>;Bvw)(Rw)FkgeU+M%yD-r81UT28RVRQy#erNH{mg-p6s%1|evkpJd{>QJ3Zr$(`0 zN+WF3W>uC|jSH~$;+CQdcGa@Gx{UC5NP*Lx0vd1HpRlhSdi@>i|J$EC7H{_#@3OWF z6$c?|t>Ay>@Jeo&gB7=ugd(~}-}+tp6K%T%0RWJ3BToXE`2vDwtj!AuZInTIqVrh; z+{otoRs{JsSbBfLh97y#VHP}tLk5shyp#P>bZ$4+-yajW^=CHckG^g#;2K9i)y%!^ zHV7<>yrA<3hOG7W>#XPATP*RxR?8rCb*~}`bEYF9AW(2XdGckzOz!*h?^*0D_HgqN zwCfojq_65hs=t49o@06L<*-cs`D50D;Qow%{YP%4eE>Kd2~1{x?X%WM5c%}_EtX3l zd=O?m!b}%H)Z%?rkE{6;ewf?2-`arW65LMTFCVkC;C6%&K2u}}>H~t8z*0Mf^*R97 zzK>SlD2VO|kP0IS)||~Y=YRS`>!1$|J@7aJy5*K4NN9d9ik%)T;<4iPr1ny~9FN4f zk?_9`FVD`KueSbYUIKDszIFf3{dVBrf7>$kA0xAq01QueJRnT?($kfAM;E?o%z0ZY zsHz~GfF)57OBZ-n(V^<6S4DkK_h5Zp$fSG?@A&LGk41BF+>_I3s&c361*TR`@Yq_f zFtw77WA0k~NpuX>jCz^i#e!-%-5C?JIx%WmXG0h;b={0%0vPJD29E>7l20%m=zGCB z%5RkbeKJB}?Yo@c5fGJN^$iz+B~RaNoIlT!+jd(2&mOhR#w~8)9SanV^bfD7>Pr2B zK+0}71w5NghX4RT07*naR1X>@h`kg85}K!8eb0r&-VYU6RoL!QGRVkEbyUBl?h^EC zOm|=%p9SYWdtjiLcd88xjXkCkb>6@I`_^;?Fkpgol0p*#Y5wxQt8y!j51ubxFB%5N zh*@xs^?c@2mch$u5SYNyR{q0x=#fQ?TCu?yK%4?p{6wgqTS19npu((^2!um7z9) zr>8c+&k?vcV0;(H`=(fr$rYho)kCBD&Ldm-i)f`mAb@+vHLpjzC}uaA0aRU!li{}r z&H_Zym&*ZAE9#Y3MEX%J(keOubkM>i--q=iusX6daO^hGM@(pjq~>!MTU5*?NHeGE zL5;)jkOCnELJEwf0DQRR>_yh}kG~3Ej#>g`YCpKE`QbqpH%#ijAYm#UW9 zOC6RoQ38v}JumywPV4&eeFV$iZ^Hy?i=9ctbh(X(DWpJ1ffGvsSxFA3to^QQ7`JB= zED)H{+kWFYi*eI$vq3ClQ`?ArM3Cl|<%@uTC~b&l z&|2|0P&a%;NC7CIeHLRJcXQ3TZFgMf7q*Q4V2lu)dnAZ)>^Rm9DVgIFDFVM)6w;ttPP=f3+tjJ5HoRtBjyId zi6COMxVf(HF)^h7r1k6O(`}nh1n7)dVfB^Ogt7lXa&z52(nV{Mn z>o=c>VxvS5G$Fi^Twvf=PkQ?_{VVp^z+Ys*%TIo|)e=CfWU&gBrM&Qi-7?$hd5o!` zXCT+>`poTk><`<(fBJzn-niOk|IU}J^AGN~Bo^ordI?HIg7;}p)ny`hcgtQqNCRcE zN%U4($ZXuAR|0(9&*^efo|7O|*J289c@osVstVOFQ+b&-P$27(N1jFSy2YB{8^YF) z!bb;x^lOXEMn)(>xQ`W@3*PRQ?-FX)O3KGN&w1(q9wSQ^TKiY8vF2rq9s2pePk(Kx z*WX1b3WU=cg3f}n0UxPsduPB!suyy=LcuNx=qid4b)CKykep) zt=9XGzT)s@`@ZvIQvhixK%|&$BEWI;^2JuT4Wy9Wpk~kq(#$QnkM~msMZpujJ{4pU zoh`>4`cLjhe!9#Co_N04j_MPd$Bt)$mZrAmx%m;$OsIq2TZT8T#CH1EuFwRR#@rD5 z(|_?Nf7bW>8ms4yDCIi-&X_DUerOO3#;yJKt7(81i@(6;0yiWN%oS)eroudHJmR>X zg0Kn*QNQ>s>m}%eaLnCGqC5Z;WG{)^##(|!>@8`v)Eh~n1yD4`0;?HZrx;pmT^Y0J z^Nc6w9|@vd^LTPrFRWEafsg_r1&)jY@NX#+V^|MFnV0I?TdigFdG6L7f9ef4sF4+e zEYGsIB1Q>-)x3CtZ!`)_w6S@!t^LvqT}YiSQqMsAgLVA zYjHmG3OJ&|nr^~~As4mIyKnO6ANcNrmU!ZIYd{Iue9oeSb*WWeP;U4gQs8u?Kxs_K z_^A;=hpgET#+NFNH6Od8jq=tSL!~iUxfhE>fwHKd%f^2JpM`wRWK-RPVywT&tPPmvi`+op)rse^DUUQEltkb+{QN7HK!DS7(F)5ENHe|e1NMb6YXh=l2qAU7 z;Omymx5R6B+9?oez+kG2oyu?CO&HKWa|V9$I_pVqfH%1j(Z7CgR&+y&uJD zw(r5;(BJB;<=kb~O3=lI6-%AAT6+p}+J#ZI`msOkDF3JpPuCh*7py; zMBtBXgW%rTMBIbtHc>alF-ol8jKYApZZgE1j{bU-)t~Tojq@3lG*l`-GpOp5s;c^o z;5g#{@T^4^&7!|Aw^0lb3^|!wkF!Q9j3mKThwrMtS1Sm0jxi<3t9;)u`p_r_SXTo6NIeQbU&~FZdgU>i-nzr`f+u3^D$bYCI+~U)cFX+cOIBL* zs`KEj7-8X^SO?se0>aAMdB1`QqiBn8&lr!2Nj|=uP5oB#H-z?5x<%UXAgcbrL&Qf8 zet>I1N$M8+iW9-!RSJhJ5N8Rz3zFM*SUWL2VxVorpLrdjzTj?ZD2>aN80R41-?W8L zFmfOFSv|0bvw={Pyi+vD;aMe5o!qXyKss%(1TZe;M*64UL9kCDQr@|ZhFj}Y*2;oD%bCN1YS`#sp(By ziW^53QaRj!o6cQg^;keOFFDKFSPaNILyNo|Sf^Sb=E2=7y1@F5{KURn`1B*AfP@5L znwb>PIz>w>tYW$lwzpk)uK#8=>T6P8$9SHDzqO8&1yOcj*wXv@eEdoQ=YkTh`C3-r zqDaN>%Cg2Bk4HJ~P2(-o_tQtPkQu}!KWmL_Hrg(^&<3A;!IDqDX04yQ87rh4oDT&? z9eJ#$gqy2pIAo!edSMDF5K_P?;Nw#QfM74lI4NE5F*6>Sa*V6=of64aDiqOx8K zlx*CjQe@4R!Lo7SnOAIpahu(?6M=?2WlGN&r*IdpV&N>S@*EbC$}R8S@h3D4HD!3l;-0?noKjqPPkVnTA=Uo6#aNx}An^A3;@Co+XllY20mGfs%A)g>i{F`%9s1{ImsJ*lYZpOQ8))()!G~V8d_aH&Bd*(>7 zh>@`%og(5d`}!?~@;R{%nxeF;KkE!@Uv<9Kb#+?H#VZMLz7Pa1Jisu5>-^GP)^W|{ zc#wnr|G=*;`Qlq8VY^1daZJJEL>qJyb@S#}>xJi8DRKbF!V1@L- zEmN&!mB3weq_o2&JrHJ`*|e3YvYXM$w7A<@D+8-;@jUR21}(RhN-8?KCU9x1lvMPQ z*3=6)Mt@k$N#NeZBBB*5bqUbDnsh?1GT*tu5rSYLa3{b_*)0OxF}a$^8bFLiTCnD` zm-s@(2Sd=Yk5RRcrdVz4lw7HB64&!+-Z8v4q(Df4)0_fgoC17>La`a!v0O-@ZV|TO z%xXgk-B@$w_hY3e_gOY$vK(~5^+a!?@h>Yx#&d3P6!@rj5c+I#Yt-U-3EwIEXxBk{ z4t313M$Bvn3m13f2CRZ|@RyN?pRtBZ&S#T(??KFI^+E2Dz+HkCR|075d9?MIh!)|s zkODJ}0>PeC<6<&nL;1<4u{gZuT|4k!AHaL9!?CI(!i@D#v8+NWYkj|Y&W3*YF#Lgg zgsUx~#w1gu3Cv&C6M`2>uED|&i*N-PZN<8;zPAgZ@*LI^OD&G|eDcxP$y-$Pxy78` zC3v?7mcx3^pK4HsMIwU=AN z(z9GpTo3kl;*ItG?hiVQ45V|diJUwN^m4;%mnVh4HX zPZA_frms(y2wDd#vF2^N?sCfw4Ow#S2Ct9$yRUx{_~((`DDH@RC=~Aq{~kvQsF^B1 z$MMnA`zQ%wS<5ImuPY)^EVZm&>596R>n|l(@^U?5^EDK2vMo zcj%`Cu^JM;yI5}v>+vFCXdj0wl!b53KSEd+-|(mn(=&zzrUGS zDi6Xln8Ta~C540L3_V}-D(mqgJy~miu*+Jnzs%eCz;}M?kTQ)WC1Wd|<4Oa>N*Q_Z zah?g(kH^hCK@)hpJp+Re0aHh3iwhD#ld1kzCb_;8Iu=^dGUYy?lfg+A;Y9>~k_F2$_0Iclc+$+`y&expDe?TByk13| zYON_1I4ehBt}MJM${Nz&YpV4K^M@2T)hG~*>&d{0n_uO-*Y2|WDy!pPx z;A>65Fth@rqkx7jz%dAuw|UhHtXu0Wjpb#-D)!b0c9K{>%1F_FJ#D4A#1m+ei`RkQ0#G zg=M~`C2yEc3JRztg3n1&p($2ER?n&RA6jzjcFUsViPT}pgvIp0FQ0(_?kZY1$44#o z@_X=^CcJ}ISofFiwl;+GnSEG3|NK!Kee?y^dD&v1VNv5K1?}Zm5T6r&Eb(54g^~rc z)?Qi%%Hv0nEqWvv?=l`1zjbT#N}gIS@B|*HlZdxa|19&Gg4MQNc9FGScPZHSC_fc5 z2p%0{{VR_omtUsvRwD4W0z4bF)rFNvdoi#mPbGtFRL*6Zg`&8y{C|8-h z)hbU+d<=0TxZB6(qqW7FXY`?`2!is8HC=vzwO)FW^?v!&?t-9*z)2#_8+b{={5iPU zn7H`kc2xt8&6qYk&fWCjssW{-3I()p9zX#+(7H3{Sqoa4mJ7gm0)n9b(b+cgtLMEV z)%P%oo#e@byQ+?Q_o{b2$*Ue#FQh<7fsg`6P62pc49vW`P6D5iQdh3F{o(1tN;*~weiwg@|F`nq z@pDc7%4DA(soV2@vmTTv;XDi zeV*R`AO6lF^Ez2Pl3Vj&m`*MV1cG+Cx2AH$*jZq$U;wuw%xRoQpgmF`99N7T$7#oN z&js3eS1Q%9!H}nlr_x$SinHE(Z?fhUOK@r4jq)vS8R6)%0TFyu0|NOerBb=tG$>eV zlE8z}+4L*bpKERn#6mv);%gR1SQSNp)p5tQ;J7cgk#+Cm+Kk}_^_21;jsifKrL(>O zHa!-y;reV!EfHou9Vy_fn?Du%m|!kwl%?Jk7h=u3-u7Z?EelGw^uwY~{6fMT?dcRK zy&Q1wNNLDek9J^v$tMpMdi?PhEl#zfv%0MbD>)fsb>DldWpBI+f&52aCt1x!nq?(F zMeOyUjwtW6r`En(e5U)J+bl*bnvtJAh9CnTBul)CK!UJ#p`E-EVXM)gL050a}JVv@Fo_ zy~=nmtml)_wY{DC~?)IL96-oxEjd0odrITh77_`c9r-U2xU+6TVn_rvKV+2@Xo3SUR8>aJbNTT=ZvmF*!;nE%kKq(QQiu` zmc_c+FN-uhqk67&vXv?-#YG;7?Uv84^mq{IbsNFKpX2;a&(v>0xkcH33yP*zyH>w* z@VoMzgLBjRU3!ry5b0VQq&K2CSN&01wBl9UcIhf>z2qWSLdfGGvv~*aA;k=HqIl?G zQkB5{Fu7}87V$-YHZ_sCL<)wWiRac3faOiFgwC^8tlhisy4kY0qK%>*PrSUAQm_)& zCden2T7@3RbKZN|6a|Z}sz(P69B723U@$g+(h_$Qd?ZM-K6{66{^ILD@BlyVqOA9; zSOf-nPxQB3m!;A2bQ0F@MAIjHen^3k0;ezq;CZqh4KS2jff7rxFloQ~BF9~o`(PTY z)V_^dEepH;}9wr0wqb%H6ncGr@{?PG%1CIp#3*oJ<}SG1+{FdE6nF4_EHt zt{+n16iysz+2h?;rDew#?)1HP90f#%K=1{uNX=n!u;i2g9GVmm{1VO6 zI)D28{gT;YyrGR{WjpK!9%LP z%g?DeU+Y|Ox%yi5Z_ihGQaq}}rz%g6SKdVDYuz8@55A8i&zO6(&q0`-2YqA^2pB2a zF!(luf zKT~l|b1MiM5?Hq^TVkW^rDdpWYJcFY+`Ff%Xz1nwYU*06yi&0z?n^wF6zyd0BNy~Z24NzVR`6SESr#aaB>jbr~61a=1N0?l?FRd-wpxIdF&^Rd~ z*QQ>12iF2NHbj2yKNMO&bE_k<*iZ-bq`?&|2K<}7 z8=8BIuo+_$7sc|ZiA|uAYkT;Pfdkdc)z`Pg@Q_pj)QO%@C_r3GSI;W((<6W=5Hc>t=Y!ZKh=PGMZ&)~Mo@+*%k zuTOMe^*#FSLV!n~wZ=sYtPSDl0o?EN#sZVYpa-n*-<) zFDt@B$&wX3;a~&h?aNOI?L6MlWZ#f6@8dyrW$ios8ZZ*9ckAZ$cpvlL9PowGx4R>& zY71vu{FOJoe$gJ*oGK%Q3+~yAt?T|zfg8Ef>*ICQyM!sEKuCdu6wr7ojSC+g{8S*e zsI0Y>N@G*s+Tb@Wp6~Isas&OvF@6X?ubz2|#T?b&l5j$0XpIn=-R=9#46goZ;zx|I zmS_Y%q4%?QQq6+zl_Rr?R&`T;ZjljL?95&S`!8AcK)-c=<__!qM_;qSho5$cf&9Kf zYrf-ZYrE(?_NU;}e)@J-FiKD^NS!po_x%1r=erF+0d#%lc7n^}x&6z>E&lB51bzjI zpcUZ@^Q5ONmh}iuvRFe7e(#|o^a4VfXiuBN8Wb}j?C&ZNnD9f(-a2T*7%>d~`YDtG zz;^*_5D0Ll{Jy~rQi`er9MYaahLic5MnfSXXu~|#ri~Z?#0e~zPXKjDe{tSFoz)ke zG-l#yYrEkJAaeIv@|ATige!YMOy~2$vO)?36cE2w&`%`^-?6gJ(GQz1Tmdf{umk`3 z2V9V+PN&WO)>oX@WThlje}%6Hyx#8*|4fbo@I(*rc?R>2NY8wf9~r^&e839CiAb@& z_Wh2$nW9*|LuUne_Lv>aBf&k+hk~}7%#&r^et@|K41V$W1j=OJN2w2p2UYfk$&`1Z z^OWWmDJ&HGtpJp)6x*XH(3`JX1$5domD@Rhvl~t2a zU6|*d2(r^~!F;!v^54{_XgLK;0gWOEf;`YU!L{N+_&20LNP&<7Aq7q<3TQ4NX``;q zqhecVv(tR@<(384Ij7*?AMCVYAR?L;omq6p)7-{ZldHLI-mi}%``|M`#IGFmS2d4gN!Q&?3i_ROCBmRh$70S!ScwfNVqZ1td*FeMvSoDC%5J=V;)a|;`hkakHDZy~qi4H!0^iK11!AyBXe6sm35^0Q@+p*f;*zV4tk(x_b_Bk#5#c26MQq!D20+J?O0dslq_F!LLe-M_6}Di&!d2c>!p=PA1N>O zEk0kGtB!~!;>*kn%_w%$d-qy)^Y&s8Z_dx?r20!_4Kj-q+nNjGPrPiSzk0#W_&@%c z%YzHU@Nexg++(ix+fKj0z4AFFMlP4O{OmR`nr8V#o_X&haP1JrPo$X+wAU(+KHwWx z%F}>lcT%B6uYBMU9INxGqe-hQZI6K1BjY}3=sJ;AVP;iWQyO)3IXPpYOCTKZO! zpq;#V1QA+4xJzxYpe^PI|5j5#$`HAuc6VFXJvUqPlA;%(vMIpf;B&8od%VE|6Gj@L zDY%j>wu&?l=&sD7vpy2S)J1IcsaLJ_!gGQ8TUI<@y)LW%tuhXi+z3NTnq;PogDJ&~ z!y>`DC)HDlewTa;!5fecjq~R^w2juF5w1rOzL)bCbBBLJ3Y?Y{5ag4B9LG0p zu@pR9IJ3f`RzT$(5KTRwxz#<@1XGYjkeLHwML~$&nh%30=ieuia@5};s~Q@uz#)T{Q60Rtc{kz z!#sthz2>xfy!RS`-Dx@pPjtM{2MBUE@a>-=C;@^%-s%BAtK^d6(sM1A)hyh|+GCtn`h$g2~7N`u}I|y`$v1t~1|Vp}V>|Cj=58 zh{yY`8rna9)<=H1uu5NU)d{;!h3jM$%FE}_Zx(}}_BR*Te(2B*!S>5^T zto1uzfgk(>fcK|;Ll9}C$WL#ol=jVpQ3SQ36P1qXY4W6rmwKf#-UcyeNk3L^_MPyMrbpUnm91D_J%E#z*I>zAzcKmNY8|M2G&|3qI=tn&-onrA0;5>3^e zI=J(qs|yrit-b0(-y^49L7yq}bR@>BJ+mCPYI;!={^4{_z0Yj!(BY!b$>DTPESzus zTC+yl^%|qzSG^eIFamJbne^!-H*F^Bh!`U}skr_et2*su>%HT5rNU6dZ-x}V7Fbfg zV|Yj^7R`4axfq5*T$Of-EEEuu-u}6@|KR5sDlFay(_Jk@L@C8uTRb8lu7z5C9ku{T zB5JDiTQOfA;UbGY6?bX6bnv;qq5p<`cj&$Fmrw$s1VRaf5}4T%&|-=HR+@S@1o;2jpZ>KwTUbMxF?q$Z-dJg+ThFZV5+c6kh(XsM;P`lkN~$@G(x7RINf*s zu(m7uut>B=`px&9Ql@(SnH1AK!>X1pvR*dzgU`Nh$@AA(?V6RoamWa)_;j0Pw`{Zg zF4DpQVg=qOpfIUDcZ~xBGPL@Mu?NlwVaGFSfYa0s9;od{qkV))tYdid1dHwwd&N|(7VoK{Rlzx2z@o}a| zmQB}OYFS?Uo&$J)WdrBO39h~$h&-oqF6bU>eB85WOT7&~{xbbvZOP>)*&vP)6UED9 zH*6YrKr52|w+~tJloPD^OP5ju0R8*vIBdj$!fCY5T0-PB_R7oU@Fgc^~p;; z)1~Y7d)#3se)caiKbfOEuW|zI{=x0m@{Jp8_Md*+dU>8Rq73_NCwiSa9bkT53Rcs8OZvy}DO5Cj1FA#c zoLRqUtx`}A0at_6K&f55!eX(5!^Hb-j9R^K!zvLSi$G6yhn-Q8sI?Qr_J#JpqK zTNqGFN1uc2cCU=gx-!j|7;Da%dDATDB&(tw1rQ^?OEyqHXma`opti{PR-8 ze7v^Cfu#cDQ*D75;8jQ|6WsXl^{AA99xFX_fUv#jl2b#ZaW z2t?ER)c5+^*7M`vT5RcD)+ENPjXvLXKttafd0xFIy{dgQz(9KIc5Ap`oz?xpb(a3% z6Zn>QQ)~}#1ZM^(@?)#lul4LNeYN|sr)}U-)-yhLfM0Lwevo!wP(e^p^KIDV^>7+5 zztE!Jzt#F4e;!9kj}o) z?|JNbOWpq*V}yE(zIVV2U%7Ib)iVC3>o2#=+Ev!`@H1pN>@1yoG`Xpt)7`Yrk+omw zplGb_8|y)YECP*Lbw=D-F;#tH4iu?RlYZrG8@TgHtNXocJdhwp@!kSJyw5wIax>sL znJO8C=RG76aE1$NSE!}l`_OV*KDYQ%SR%?m{7|Q``4j|`-`!?yfA=$MxcLgJM;8^( zTT6|OZU=GG1YqO=-xUpC!VZVN9sY7CC4fFFbaY!4wzq;?dLM=oNWn0oeGIaPv3aHY z5-U$4OKGv|qay1>`rVBLENw4Qf+#^o5bp}#zzDH2cYD++^J|<^hv!Q+_2G_ufBxBDRV9N-WE@@)}pDXFx?EL zIyGH!p>=Cx`s7RHg`1Q>!14SCEK2|87B*5VeA6+rA+X0*6xPUnJ+xtl;(NVMpjQq)4%kM6XA(@t>i$w3Un z^oyjgV?Zj3FHYuL1;BeHh2a$4k?-%fj=P{hdHG#9WdJHLzS6J1N2(=(1nbYX>J=ve z2t4f^x}rz%NIdc6>bi%6vFVbTr2hm$0j5Oj8?E8mi{LMx?I3jbOK)4(9S;E7P$NN+ ztfW0Jdn2GAyV~1Q-&-VUWVfkj8LNFsFK% zGtx!1%a@kUcr?zBk+KZ`K1wC<#pD+!du}Tck9hz~>SZ~N6B}FY(;UFn?*fnmAbuuD zOnQSor$BA#cmWM+a;U{;K}mJSVhS#Q3cU*y3W@+1-HV1C0OUGez_i{|)46m`y$@)e zrMPo{d^aE z`J3TXPFdZB>nt&Mw)Kl;?UC1VSH=uX0Tm5KJH|IVkpkX{4XVu|_3xQ@?L zpjALxj%=hXRIT~l6cFVn4mMDK^BK@;E%YMheH2z4c;OApy|LMv{`0pTRBt0%znFpA z4Gvw6Ed!lR2Sv^+R#0sFE7w{r{p=(QKB8K2fz0+C_4NKFyrHez;?#d@xcMqT_6i?c z97jovdT?oq+B%3hm3`%zh>+121BVfJb{!c3vReiy{1=Xq+P$y9tDa!0{y);rkOH~25s^+5t5juZ(2emC)3B)KB`mI@UvICnc0^NPb{T$50 zB0VoX7`8(z0o^--NfJvJx<0GF=3>j8xzaM!i^$1oi=NMK>aePFPqUU=uC|=$-f-j! zQ&j+4+t2Q%R@Nt_njvK;@u3~i1g_4yql~c}Yp*h{lBZCZ{U;Ckn&kABnwzZ8a;Uca z@iz!0B3OF@r=6Tb)Hzb`GjD%rg-b6WW#lHyvQbhBf?AOqrUg0yZ*KQfFIw;I_gj=g zGK&83O)13_#N#G@K2Npf8Pj8?`@G*xUI&r;FJ1tZ%y|eR$um0&*sc@nVJ;gjx$YiI z$s2RoIZ)d)9{Bb5yTjoZLJ5Qt2qh3oU`i!W*7J%qsuX{F9IzB1REDAveWh9-HP>I@ z(X{EE?In;+9SRM;DZMR+^yF*+WS7K_n+2`OHtTv93IL3(*n(LlyMT>B4x=*r;T9Xf zREWZZt0*?n(nMzqh`{K=ND&a!{V%_@K{gNdS786#cD)U({@8lqtSszk$I#?h2W?A0 z%po1~bX{D}n`ar4Nq_T&R=4s*Hd=Y>eBx#6LRQ5hk(+GP0&e!9ZprYY32f`5sBIB? z2~o{tq3db6{!%#Aagt!@X5j}FU>$=pVbYB?p7|W-SCB}QBD~(mz!=rI^p96hnN3z( z^#x~H1N_QW(A;$KS^wQnSmnA!R(J8a*8BK#9`)7owHqx*l#q%ui;G%xhl!IGdf$N( z{d_*~@V`(3N1Fs(R}}qOZn{Lz(J|E4_|Q@Shq=#o02V^!rM)7N;{tUo2N*sGM?jSZ9m9N+y@=wsN&M_b^0N7t5Wl9ZKla6QRgsq{qd zM_U=+fBh=7d^NV~$9Fi;QaPWZ^Soa%tJx9@=2=t#GzC|+P70V1(BJdi%U)-th!a4O zgz;6!STuX8=GT+lrzGefgBNfQQvmb)}`=PYaBxCMZ z6#!J@RTp`*eirJUSZ#^lxc8;k$>M@H-zjiB%si0dq712aQ*(CqwT9 zSOaQJed@jcaqcHs5wb-NrOYOOy(_U88VKlsdXeuu#Ug}8F(=CS={TUZ{K9C-@Ms&|NZSa(us6e z=J??Px@(Q)-@tnttqEMa_5b{%(%co;F1^n_q=I!$y0qxIyAF*g2kmSes5{sgW z)@X6>e)0uw#$q=Jw6LnWtBePE0y-%oGf2vHY!NAOYFfDUpnkT?s@9)jbws!KzWSCg z%+V@tm_Fa1CIKlbAX;IKU%J?;798W>)^k2yQxv}V?PLgL@U9DR-`97>J74%&D1lG{ zp#(w+%rFU*H)xe}Tb)8C-_=37G@D+c>QqRx{@gRH2OjTg48J(eUr)!LVM7SJGl>$= zBCk0i$4hmxRA^2nM-Xw1VHMG40x&_xIYkJdh^L3^7^0WeWZT5p9OORRZtZ{d6H8uj zhNsIW|LB`=!@p+z)C^F8JLi?x`N!Ij_}Pw-|1d~J9Z*Bme*?VuiuUZFIBn0}kMXR{ za~i?ihj6zyBuf#WGGb-#>3*p3s;tS#Y;hnLZQzOL-T1A6FMsg;O%CWZU9!#()#v_U z`LFR_lmacV%J1RG1Ir+m>islbeW6uC58?M+HYJfHGr&%RHyUrD>sqtuOQQ<`i4v2C->7ogNrpUB7n6;`C7FxsEt0~z0 zy7fZYqUdoI@l0Xs7*XWX#{#@EP<2Vi#g1($tx;ovUF_Ml*H=(m^Ovvj$osY*-GS43 zJHZPTmO-a^V_g)$5(9XzIA)erK-rgl;~lS+Qp5ofB_cZ_P)%zo&g)`f&^qsW&}RJ} zneNwJWPPj^v3c|bAlc&Zq65+iP)2)~zr$;=UW_&ew5I6u@s1hodlP++^UEQeK>s)2 zc$MG7uAlyv>uEgdBX)(TgjgHAm6x`Op8kN2({+(mKXyk_MJ(~=WZOHe=F}6NUZ(dK z4_NdVWUh5^yjFf5r%ZO^T|4}2W=Mdk6a~D!Q!rvFLQ1s}4V?Y|=9@O_4{o#FfYLcKs-*W13%XY3v(tk5$-UG^}_2m_%Mt5um{U8s?M|U zc(fP4`$NXVR3v>@MaWvde697p^MUpJoCRT)QgIJpb>Dij&aKH?N9=t1VRaf5}1J!P?797hC;r*&8cJZ zWLH(+#3px6tEF3U{*v}AkG-cf&cObMU77+3j0S?sb{JMLSJZeI1*Oftx*!`z%{L<0 zKMu~DbN!`6GjrwnRu4yIlFe?ug7-DMX!vcU@uE?aztr zG)=?CW@DR;Z8o-jk~Fr{*ftxSxUp^9Hg4YUyYIdKz#e<-F`m7iwdQZmh0*@}Vgej` z8flF`IdVF`Kq8h%3n+BRd*7K&Qv|hP4|~mA!BnA?sEQ6@J$@}qZJB>d4{84;jzxeS zr)RUx+rDp)@P)%J@ErI?8_NwaesaGJCX_WD+HXaB1`)2jeY`@V$Icchh_>I7qKw1? zI2jU}RtL1{5CxnR(H8;NQxt#4P7(^)nErmLc9b;Rcp7ZY_8H1V`xBG1<)0_B8C~5L zNsX%Of7}GD8W+G|PATx{?j~ zi&VS+&~Y;AHjHU#fv~z+NB%zOZ-Oe6p3kV=vdz-P#-^AXtiD$Y+@mfzW%GX5U=jaG zM}6`qilB8Kk=dV{T|+>CF**BBlafb{TXfb>?xOH1*JB4n+BuSC8GtS*KD84<5m@^O*EvRXcf~G+HB*a zuO8pqH-{FgK^s3k)$8O1|5l!7NxJfrHD*8YYZ-Ix-q6n(Y_|5vmSA;iDAbcmnf@R- z`OA{JM`n-wb@bxes-e;UO=|3i_+MCIWmw=`W(upjJgWKRY`5Uh%M0CLAZ~dl*7*nl zPvuFquNnLx~fGBPDKnf0N+cWcoJiSA+|c zI&tKY`8O5{dnZKxZwI@187qi{GAB(U3k&RAg-1Hm__iEN(w;Jg<$9We^P!1QfaaqO zp^O^i5CqOJf9db z(BI9!kUxhSBoH~vvBZNlg!=XcyLW?AasQhIa9ph|-}kt^ITHp(fC~q%@(A*eQV<-h z5IQsOs!|hh9&?Pmm4h5h0yg95#2{b#xRAQeHIw(E3Q2avR1@AVjRA4UgA^7{@68*G zVk@x5_{9QS61h;(?(k4AVp*^oephZ8THl0dg?}p5Kbw^Em?a_Gu8Q`Lk{15_Tu*Ce z-kQb$y{Hd5E_CXi)6d89X|>G%don@DYgO#RXsf= zeeRgcpHvlOEgR*#jcsOGFFR$Z)}@GLTg;Ae@dbnmOT>`RXB->bzAWjUK7?`OF!~5$ zGa(JQ40m|)6SY=nXgu4Kg;M;Z@kH32^_##f3LPrKtFBr5c#{BdDK8BTPX{e?(>7%C+v+`MKjisBpzy{kIRT*yW0R7y zmMJil${Ep-U0E=_v1&I*J*23G*%w3>9WyDs(3r(DJ zqv$p3;s%1yT4_A8d;9^A@7S&5=4mM`DPc)4MH{W)=BngYfIR6lpY1!M)p=uT^|Ccl ziW|_8fgo|n59CF2Ueoy^HOhUZKczPIZ$|ZoP zQ|gsZNovN>Xz0@U3&pCW~Iw6yJogOhL42_MnkpjSVaaPScuImqOz+Och1ehJA|E4?|MelI^u-L ziKg5nXz((;kKd~|!^+681-9;S=-6@BJnF3dm+w2&q)No8Zh7O1_i7NKO3ypbYU<1v z^KEZOsE!g-v`jo~d^ENwjn}Pl=FEMKMAtB~<0QW(2!peXEayOc0y0MJNkC6#i5i|o zyj_Em_d;|2Bs4tf*m8B2%^y-?Q=(3S&6(g0M^%fO9w;>oP^5CJ$R!8cmY`w zK*x==^0{!9JYMU_?2p$gq7lWsNZ4x)*BhUQ zYn&0El97agXJA1HqH{g9wrV|BlJR@~gWU0$EKz%5Is@f($1KNleP(1g{0-L$Wqkh~ zHX8;GXKakq%QaJ=3wZnD{?kP&c##kN}#jSIEosm4oVdPuoK6@wX zVU-6l<6R()U<_syc|~wu1G2(3g`8#&GoZx89;@{^(~~*Wn~^J@GCyI9>sKPw@4~A{ zG3v(^XL=CN_}{)BXf=@{y?=Gkzd+j_2v7$C17ZJWr4*>@-veCqh&^Jr2hamjP`o?x zZybz%!Aq6~L6i%EM4zJ`z>{TWY1dzaZD6E`CmDw!l2PJ(=eIErWx>a!`;or5zxylB z0~$x;EbBn}53xwhAl$4zTR;G@63Ae_4WBD`!xya+!9HlIxB{$Ps2dfV|J zvN$>7Kko8rz_|QUY(OjsbBjJVlA=N0fV@6@pfc6f_sV5$P)=X(#1R)qjj&8F2CGO! zZ2g~3I+DSkIjh@0DqCa2E(bpqx+_2G%^h@cXvY87ZA$Flny#A6cQezgPy`|LMO#*+ zg}vni>5Up@_3tg+9PAo+e&qnmUh;##u-e6jKeGN5~|4$uX&gXhT3A)0|#B|?T4J_ zYYr3xr3m|_>mh*?gR0{jw@sN)mp0A3nn;)(^92a@i3x@S;V%Mj*KPCihP|H0h$im7 zyfZ?H@NbjBSjK8%$l&L@6J9S_t5Pk0qZ-X{A1j^Gv24x#9eMh;JExAoDB1n~Nqqdh zx-IRHT&PKPXhrKRzalf5bCO=NWesB~XigZC7``-^;9ON^K#68m8k^ZNg0|i@&m)L<})D>(@M`=!MvOvTuhnO?Wy<4l^f zQFi6NkS(^0iD0a+!jgvHy)XTbkR|(qLJOf<&oqB-&6TYh{=|2Sp3^6tzQw$Qi0~cf zzh_7y7^*>0>HC0mq$IYZ;;x+Uf^AIA<*WfNydfgFeGLXxAmh{*Dw9-W@P~Jd>0)g2 zs&f=F9pAcACn=31u43G_Pv-aiB_OhpT1kH&$2(F^6wWN6=z=k2OIw;HRzhW>xQJO`MIuskT7qODz#0Bi^WDx zCQCI2qHtek?063ZccCTsFE-594ek41$SO==gaS(5qe8Gpbk7i&$hyh*agp?237hwx zG-pJL=I4A{$vB{b=kE%lXf)0<3_hpb(|L-`Jdxkb^M*StTJwSP9Ug zZ)}+_PH#cUoW5D)D#U06{OvHIfzl-x5YC*sF`Wi{ZhXTJF!+(lI|idCNS*u6uh9e; zK_S}C;=>f>I!%*-01{QH3^-0Rz_OM4wxpt>UgLEd*(M)zOkU{gEIK&b6y;Z!r4r!c zZB}{6%_SLMjGNy&q!TKY5=ia-YW-(A}7W&S69N z8*ZnBBJgOjRS`cCfgK|-Y(J=uGXm#elGLfvQH}PGdVS4~gY+uqJ?7y!{)8XP!dVkBV1IG*$X_d$_#rql zcfuE6CXc-W8Fz$p$MruyWQuKc9NCelWgvSK%9gt+wTiuEBxS z!UePIHOzQCgM14o>|eOD|Z`|sonQ-g&lY*-8*KT#~6OY&O7pN*JCGEXKkaJbO}Xim?i zLlr`>fI4#7>jm;Qo1Q0HeF1x0pOQG|h67cLAnuY)l*kLn0qh1G4Id6!Z-k-jhE$|U zlT=%kgrVD&xV5HL!4fsU`*|-~cDR%_DhLz+3MD_l@>-{lOH^_J@WJfO#&ANwt&pBzL*0v#!4A;+_9tMBx~z_KGIh!VDtB^^JMl&8eYBPM&$Q}CNlFE;JV{o5=ILL3O{Kt z_pVIx9(|QY&Fd~`-ucht6Q0g}FZmuPq@Br1YsEz+>grO$vpwbsK?7acMBbf^J`165 zPw8uBi$+fN(9L*_CWoFyraZr0>A`vvXHd7*U{g7dQ&1_VLuryJMumQ)5Xtm%(UZCq zd#dksMVliU^vSY{s{rrA4=F(uVe=PJ5A`sS`iCTrx0Wyjby@+|mI;10?mT`j&MC3r zv9f^s_gC7`ZG-ev$$LYttg|1u*br+k=N|31yhC&uzh&^Pablh?WU4KElyg__`R9KJ zsmX|o8m-rk2G%*h^5^nE5K!^uH6ng%dPgSWE+4W7dyx$~Lv8Z+1{dJ@W5kSLBBxY= zoRpb^!vYAj&~CdVw#PY=f3qsf=aZz|7gL|nj`vGsSZ}LG#ZBj_$t!-PzyAz@D85~o zeXWLX_0!Ex^Zjjx{3*W^Cw9fr0gp82vyq^YX0pBeFTSR^AA)MD7u$ zh_KL)DQT+Tx1H!)oO7{pM(h2}^m~ssBqo6tE&g$yhn`-W>T16e&0z*H5`EN(Nf;dZ zsR`qjf&U^EL1P?d-QyO6`*Fa&n3bTHzwM{|f~mZ5XPS8xmU4QhI{CPu;&aMUP0=4& z>$F`h<<9Pz%IMkHCXIYF9wYAhU98}J7~~D=EsX){qQFUc9V2MFQVd|ES$wQB5(gZ&7V>E zX+Lp|9SzxV+wVa?Yt?nHf2bNn5q<>d5#sWy)G37+3Lnm`|iHw~nYYH>4Sk;~3_hW$l!wTgo7~dlRo=WIj=T9W zl_v(=`c~B%nm4JN?D<4+F@r`AB4Qi*0Ctq}2bZ|2Xwy^ZSyW|*+~|o7&3z!Omv6og z{F#$hDe0u4?H!)*u7>)RLUPASp3; z)^N%1)jCx?Z@bXVBT5%fL6Gm|z1xq*8ZA9&qMn9cv-RB^1$A9chS2{nMwSazBo5J` zVld05=M#s`$TOjo-lQ=BjxjtO3Z=t~S9UtOtdJ;&GLf(0n%d_;Bp5#Le57QIU3eb* z6xm%1O{rkiN0m~e%=@UDxr&Yn%_IHS$N*t}jb_<~xS;&ebRsl9XyRPt<;#6kQpHHm zQxn9q@*&%ur7=h?WZ%oMnRjXg#eaVi_bawbge9Igmd$lL-M=me%TODXfg+V;>{d+q zQ2EYuy6WEQOgPKnjFA+Ma?bdoe2B)*(jUOD!E_Xh)>S8E&SNzDrLA|%My~|&I zwtVSLS_N@A^q0BR7D_*t+v3sH6{`kfPtF@}lWo*|u37R%4^}>zZjIB_UnC#Tl~3{= z=jc9)p#0^Pss>Jj)2{xX^B>16^MIHp!H04Ebu$l=x%~Rc2#BWO6DR3F*z{X<2%Jkn>_l76CFxaO35!rtZg+Y!}!xb{pF1JU=z!m;(3<|(qyuPvLl*| zh}p`cwj1phMUv=VI2{+|H5wC4Y5d!ol6LdPxU{J%a4N_W9J(i2s4@D~P zVb68LL+UtoO0i8E*-uJf5P~4{goya~!#AcXI)Q+Q^qCz|-)pV$guW%#8iH*ec8$hV zL^Te6%DK1DL|AABQj$z7i}yf5%?pBI3xS2~)+_qK$z*AvI^;p`pu3jjICZPlQ+{k* zUq|9ZeCG+v&8DnAdgUVb3tGePybuvN)>1AG_VJMQkgR$>P?){d=*8VXJe6;CY@B4p#4393|e9yT2+XG1{1u-dP870)BHNs)%$kTq}KTs;) z*d4(@o6|?ode=A0W8R(WbrDyUbx4b@1LpMUCTFrMbx`L21n%c{*?BK6JjBdcVBY9 zowfWq{yA{^56bmfOJ*ejYgJ^r6AG*=dhDEmi85w z!v$sIs#dP@^;2X~mVgjNkfeL|@#z43_N}03!g6jWF6zUv`S%E~(RcuQKD#wN(E$|f zh+%lUEQGWB?V-S$1=~sTCrKWLe2~HK9MtFFRC#5kuJP77LuD>Orq_aO`#h^8-~MZ; z{FC!4M6A4tJJ6Z`jQLRFmTSsphgP1whqjiTGVPrS#^C%+B<0P627n+GCko&4vsS19 z0c2d6-#}Veh~e+6PaGezvrL-ojNaz89~bf!$=pUBkJfWBWwgoYeBSM6&nteloX!Me z96CpWt_K%c4gUH9mbd^XMwDfFwS+F$g}eMid?02!J<6lGQ8sp` zwBSAG>Mi!{R;WtX(x?m8zqPm3&lP2_TkTafjW#UtC zui0&^(ybqc+2R`ke^~s{wuQ)rU$rkx5c|yVy-JJFJk;QAV2T#d75`{xpA3~zUT@(0 zmL1i$clYCNzZN@KxBbhN|0Vk2$eDB?x|Iq_iq}{C24Es@?INLV z3VOdt8)%Ucrw38l?C38LJZPU!JAvJ^GG2o+*S=)ZE~8hZ^-ggnoslf#*t>}}7cc%W zU4MczC>^!oQR?E2B}C2-b!Yb>L}$JJn#l@)%Mfs!jEB;h?G;$Lnq=jqId57gzo9mA zFH;qHP>`A})+60 z^{F!2ivDIGRq2bA4rPbq!&UM7Wl`*SwzUr?{Qb#hc73-N)%Ssmrwe9hB6WZYqbXcr zGo;bOy|Bv-eB91uFJ#pZJ--2jL|b^Bk9p4H8UtsA;X>>Tzu12$JOI-ryDZ3s z5Sg8W&h13muuc6Ot%?dQe3@}XMUo!(|Ok zJUqIIS_OKaX$qCPN-ixs;?+GA5nFLOg8%y;-<2{jkLpXkg@}d+_oB9Pe)if$KOs80 ziH)kkz0Wm)SeidhQ0<%u*Jp3+Gz;Kic|qfbkgX|a-*ERm#G0$MrOJHrV<__u?{i`8 ze*gB+2Pmo>6@f(Z*wN0Som`JIp5aePYzA{+sP2WpA|~Z^7*=W-CV|!M$kmrtfEOYS zB50@tGqfw;YmCQCYM22xFFlU|mh@)r8SDe0vq=+|lxz{^cJbnbQUR-^>;eB|bX~*` zr2o*wzhndz$E>%dJxMo(vX2?+)gzRg!IN_mMRz2i(WR!BVmB?A;jdtQS<^7UxxWk; zolmu^)HB-!QUzy=i~&21EXPW}Ro4>r{93Yox@aSMR z`v|(ts@n$Um&(%G)|&;*WHzxb=Yn`FKScmBi9>VoRG?-2f6X$(~DA97*gXafCTmQ@^y&* z9kc7(F)&81S_|A`;l0aL$z^I$+9`r}iq7G;=&PN*+xk+vb>)B8`N+*erj$Nfhb8u{ zQ4i~n0LpV+@Kc&He^Pd360~s<}jqHExwK&%`4I>flR+?MqskT zq2sq|@YiCLKR}c8FjtQ7`lUYr>A)qoY7GvT!^{4}g2OF|*$j`nF47qC0e}h4`xI-J zXVx_+g(}Ea^?_Vz;F&Q{=)`xiNDiXg`yW@aDN2K14@>mU!lH9tV_&u~)-O9LJ)^Ip zcM`j~Tww3bTM2(2S&P`zRSP(8|9|fm97w>ylSW$_y6)3bvKcE0LjKu+z8P#jaPRk8 zIENWV@$B!fELW5DLO9?n{S^EZYt0L(-G`h~cgHdvO1;9gF3^Q5zW__doOfcmP#LW4 z(Pp~w9xExsf-Vv9J7Febw1ZCPbjgXQ5_rDV)cJZ4KSpJ%F@6Dk&4Mt$DbFds<7B42 zrkVn1pbNzGh-iF!lpC>KJ-s*e7q&e@Ceqjk$5fz3Z&?1lGWEL?xNpbN9CLBix=CSx zCL^W6Zlhh-@w30*`Tpm}me~J53-_vdd=@QxG$-3Gfa3(oAod<*Dk7T(AQG4g-;?L= z6)&0V07)iRF#)#g3%v+1#30uR1UIG&2s`zHXP^ZTQ}-;t(1W@3h^Fer?)$=$iUB#* z-?h!+{skiO9*K6WxKFht!_bXC+-b4_lEMvXl-Q*ARbCj+oqQ~Y^DxXQ!1Towr5{|J zJ3OCBL+Y8LFV298({R&d4JINpAxOn19=awFNfkaLr3v9=`Po2cljcU-SXzfqzRUY% z%B+6iisnh+I5T!-`@LkpOSxQ=FO|3J+lC)%65Z4bsD68@n#%=u>TmDE_>LRd#4^+6 zRk6ZOyKSlZhABNTvcDGZU+vn%Z3H2?zSr|mA+v=}_w#^7plP+JX75|EX-?os`v<%n z_SF`tS*4vaIcn!N)W-~8;iKtZhNfC$+Dl288sW(AT8uTd4$Mfe!{LgBGQLeG5tKh+ z+`7&_G0A(f5KCUvC5!TLnk+K3$@q4vqH2_>oiqU}FVlGQFX3H>Ty{Hnmc}ShiC&ERZU|jQtI_{Ago3=WzE`@%pYN zKmUDvsOMfTgHftgw)4+|*C?bq-)r&0pUc%Ko*LZi+})A`h3ju;OG$Js2h-JRIaId} z1Fb#`t7!>nHiyI+x*E=CUTn zEdbr4GUtr^iFB|EOtl(7+kU-^ElG3NO{1f31h47y0qi%J89ZgHF9R%k_4z9}9MYL1I{ zNY3h@U*;{w^dd00d;syo`)C2_fEwB`?gBWU_-$>PMRnOJKQX81M(Q4hM1s^JDuXqy za_V`G0T@C^PRuU3A4Z>xX@55Boj|8xfKDM6j>EFl`}BUPhs+3(hdRnuasRVqB)i5; z6k=HAgY(+Ngm&0tZ!_<6q)N;uFXpV& z0NxCB6;u|R`u*aI$*YLjWM3>mb-7a^LU%G{M zSD7!fhA~q#=sz#HDVcU`#f+4gRsK(nz0;h5$MF4;W7$!pC-hY58u>w}Ei;l%B-XHG zz%V&>GR2W$Pbya>D+oX%#+s7XKWH_#DNQwpX$U;;H@@fvLH3LvRYbXk1V5Gt;SSO%mc*%PY25t|A^luuBEyZ* zK)iMiPD4kId}bY@bbs=NZ;)968<3~N65YwDo0pM)?XLXAC2#s+&jhK%FEz}#vo#{W z9q!D{f!GRJAKZV;K&qVlO;ORbvbL&B5Bq$;!WM%!oEa6?VvG$(Yv^?R@n@?kjeA!4|3gf5n6Eniel6C228RjI{TSSKK*P|FSOqGGb-adshbUjG_{|=a^sDRFX zO95EL^>*EVG4dAz z&hq-qig#oQmnO|_Qlpi!!ENrpUWJP*l9lDjhR%kmksNTL0t5?@YN`FcR`+h29z@`4c?n^F~vy z?G>QP9)W;J%nZo~Z=gU{)y0A^IQQu{${Q+6QPJqtl&Lr=O{hE=_X2|LWz{f}Dl0B( zZ=>fSo%8Z|3-#wR`ukjxK924vrtN%;oIXxbbH)P3gY#wy{H`z~2sjW2Y}UU4j%lfU zX+Vp3ClS{8ibd`w`2gAV84p%aKcqa^@=O%m{Q8~(e6nlO6?nwO6*|*foa5AQfEK*X zjGA{i2%L9*+e_{&T6tdLkiY{vL#|M})9YSsz8C9<Q+UR?=bV?ysPbM0K%!gXfJ@8xlDwJ@cueU8L|BTk6UOc|PRtZ6rh#MuT z`OO8X1?_m2{1lbM=l!h>aCGIpY$(iGM<0vmFBvojml;%B0!zfZ`0*C#A?C{gb`WXJ zP@B2|FJFHuMdbK_kfP3#i=y@K^X2)Lwd7ur*hOxl)U{saJ54h`ZfV`#MUOpDD0%{F zCQt~1U=Ilgw`$Y7luj##6OuKs1%|0Y4SV-mTj>^-&ai$CB_uogoluRp7Z&708Hrr6 z*dT*(psk7A&yhhNV)Nc_*vXV5g`qp;fXzSo22NGr1a55bY>N3!57=m0;g@j(49|~2 zh;I|?8BN`z6^LO?Q`x=P1KM)X#myJu`j=S|) z+PnOrhJ6@|&!>pN_|2?VsR z(;X>7mp`|UxzW={+W6mD;HU4pG#NyaWg=P=FMC(ma}$D*nhIrthz^C8zJdhn$uUJH z`V)X6zY+{9C>8gOCPUS$TMOhY=$bdj*XoO^9cm_Fv1Njv>}wKQOaK+XRVpkUo;L(k z6Kzx^w7SW6vK*}=fIjYW%kVw%Ie`(h1aBb(V2*EQKoT~VQWZ%vl4)a@Hi1W43B7=5 zC(Krl&vPKHV#rpo;aaChXorIHmmFzg>FwX9qP`4WoLLwCgn6d+Rrh@TthFncgxLQX zW{$>zW`j9yWsV`cX8eIN7+fn0D%)IcpidxhWRrIX3~~O&^%Uj@@0wPp16Xw|=-eRI z=+CEXjNy%9qtByS{QHFDsfOTP{ge>SCHII?SWLxT8Ya-@qigy7WdqVN;YtLI;D!`k z6ap2ArkdsZL3;A{ftjj?p59nkqX$1)(*z01tdgm}~gKnW|fJJ7Omi)a$8~)ECw^_RY3! z7AI=q-M36$!@AAaGo`Sl82xN$&aR8HQu~|oUTwYiTB*U9R2Cg~c6>b- z!ksu0W$z|yHFuH%QdvVNmEqI*ce@^`RwcDwosxf71?=bzmc~Kh zOE+g(3#inYr9!>P5SFQrP{Smg?Xw$LhXO3u5Kgj+8|;SVsjf5&UV6* zrzyad7!%q%g$IcUe)jczQM-b$RK2~(VWD@@3b|n5~h~ z$Z6y9CteT6pjVXiH%fh;$CB60)h(<4ddu)Lpe7fjaqf|ax-+R?U8($s5TI? z*kVOv;$b0fsXoje>a>|s#r?#L4KA2ce;3ojnAE$=e&E$9nV@&I=4neZGfq+h>9V$I zbD)nQ#oPxUT|Iflz=j2$eLU#lwh~dx`V3_k)Rxg>9a=*`n2l#hMh#>jp3CJC%3L$N zHFF31<(1k=`+=fNCkg@9U)2v~M$Kb-_Z5NP@;E4qWbJ405ImnoIm8$n8ETqN?$^xU?2ct*aNYol$7=6JpK^!@{3 z@dmxsirUi-m;#Y_D_$KwNmOuN@BQ2iI`@-QIeHQ`=rFjWRnywt@SRwGAJ|Cgay8vV z+Tci@*koK5*{{pm+5wqA)yEf^NadVMAh(~$l?L3f0s&dPPK9>~$mGN6Sm)>Gd63jOBqO!GnXdHFqbL(Ll zo5>t0EI?&5k>I61G2z}+QqPvA4vhUiti zKG*>{OtUkQ0LwU9#W6Oc?Kv}Bcl@Qv@3CdC30*ZJe?65W?>1~Maj*Plh;WmVyEx41 zqG8SNN`C%!E#2mx$Y*BR&!@96*DsP_Mv42}9QfLgbqU2kse(nsAs6!%WN^clVvm|X ze>JH*|Ik)E^#_U~lt}j>mvA0B1J{uZng0qQkzvy*FOnN8nrw_Ye!mICP5?_#mE=zv$Li)tx z+;k+KKmq(JdU~o{X**VyYn@=3L9fXIxBM|6AE!G_z-GJg;=E(Ry^%ZZfSG!o;2C-{ zi}kM`9`L;X(}YLyWfxY!%=Y@iy)I-hUX>5a^xzhg=?579oNhfR`qNAP3_&?}@ziZs zvAw(F9x4VMIGnr?9wJsMKfW z!n106YU|_wDH}@|_C9(Iz9c;?qRWXST=$J%f4Wlk+yr5K6@h@l#ga6v-~~Qol6b*D z)A7Xm#EMUtr_3~{Cz60vp{L|4H~sbhdh(Z0*}cfLY#AHZf8n%;-sYsFT%x#Is;_u|mZ`kYV}lYN zHD;Ad6JSq>Ni$R9t>Y8rc71=l#w% zH=4xudk+-oS@;hkf+7JAFmHDUDS#>DQodB0=a6%PY)$I;($mRg3kYgX(s@18Sty=I6&T zIDtOa6>KEmv^NnEpmt={QnniVM7M@^VxEjHH0E_Z6>pmtATT9MLyg_XV1Xn5KA%-5 zGE2MkuGFuHq)TP+6B>@d#7TE-LzM2za%&E=S31OOdIf|5!@>-t-%SKcXmYPpG z?1ZYvYb{mEIUoq zeB<2592l*Wc7F5SFeVC|_=e~1hnYi)z6zapYYcB0onbu2p>Nn&ye-(>&4RBotq{;s zoojvwBC+jTuf^!kDAmk0nJiDIiT$`U ze0;!dnlkpR2o;NdowfiYSI8}Pl#D=H{R=)RC6+JbqPEzSwtumY8$W`sb=T*ZQ>Lx;hFQJWX>r1=epSiI4SuR512%)zoid&R)jIfYBlu@=M%@BtflK^Q9}JlW;Fw>r1+J2;*H^vZiM`szJN|BfSlCwD(P>Eqj& zc*0v?rUr396#`__ud}01&VxrZhjIw&v>}*wyt#GGdOU;;2wRxvF4|(Z8^?JRh7F3!13sMc}V%T-XAR?=KUG=+ZfvGgO^HY3xBtr`^)|#q=1|(w? za~dPw>%g+g9wBko>JI4m{Zaj4T{l|1VQA;ZYL=8A15uDq;yWEiEkJ?MMrd#%0N5Uf z;MI~Snj{s)(ldOMX9#4sro2EG8jUmdUB(ca+_#>^2f&Zkh@$q_fm*~Fugbiuy>h%$k^En^>=xp{FOwBr$kX2 z5>Y{wI?kNSY8j63k~tU_$^mivsV*y`uUPsyS5*}XA&^eG7c`8F!=bhYdU20)m#Bp+ zxmBL~U0nD*`;x0*-!<#Vf!5Th9Mx*iGlp9gqb(OSLhgL3X_Exh?^SM+4n&L_20gQV zu-A_k{$N!695mD-4HS|P+xe31m!T>Gd*CD?SkCkZo_&Z+=KJPtlkOreRv9!Ry8WN0 zQ>PKMSgPV@^Bd>W8JS@3GOuvDHTe0yG=kNg+D?slKKIDL%0)_Df!D%4+xFSCs@B2G zV{oTCz!Nt^)iE-Xxp;u*P4VH+KFh@2CMn}%IcN^z^+^nY1hJja@)KT}$aOkBp2T%K+`7de0&@tUXw|B(*UrjZXw0=@t9jky&ObNewU;<-D2ui$Gqs5N7r?t? zvE5qc;(5IU%&9?R%MYw|?z9-4iEfVr;^IsGMikcRA zVkS*0?X&x84Id^s&Ztatmr8^R6rwmhb^a+32O188a@5-O<3V<_oGgck1gSIsK*L(1*CSEv1Tw6E_j zl5mX0)Zk1ew*H-Y+#{FsyD&%G>-fp* zkCCk8XWXPT5D(I|s%}~QHqK8_)-7Gmef|~JTl&7JLqGZ&uUug3*iDzr&~o#>nfc3k3TWzc!ojUbdO>)-_<% zaLv!cF_}ldFDH~k%?ILNO;LgciLZT&){~`Cg)BVSAdo>A3`^79~#X+ta z-3`$B%cZ2e_8InhcE;6HW?Myin#0)SHs?Fj^?MWxmS04z`FUR~IOCP?fp6GZEK5SduJyHI6T=&((Huf^}){Ljpa>$!k z5^Lnjx!*8PAodFN!r;;CzfGZR85C9+x$klQ^kbHaR4`?_GyLGxFYF(%z$Bn6~t%F$gSlyDpiC zU?G0fe|qt?f7JiatIf~?&k6%V+{&tSeEVSqo<==X@*y@Tuw{Y7qoNhAYmNbJ)Wh78 z&IT%ML-){4u#jr7K{~V=ND3_emM`ndPs{PDbFTg^)4 z-4fU5)|DLz3X^mqL~Su!H2kJCO#pK%#IM_`3Vmer3B4qv1O>$ifQec8Pb3H6WAAfsJ4@ z2|@M49S3FsNRP4MP6JxdV5ixxZV7A1y5~vTW#8ho*@64C2t?})*Mpfi#~DCbZjou2 ziP@9`enacXX*4GJ8FHkNeIWLnT=UFU3~{b&msFe;N}7HO8|BlQ7W3T>-03sRP3Rp? zEO;(7+39m9WNe6^XK&T|NLSusUb*MijK0(Y2?}ee@?yue3CJU8O?<9Cz?Bu(xeok4 zOr2F&o8h*tlVHUu?ogz-mg24jio3hJyB8@^q*!q&#e%zAk>VQMU4sYbu=aV@KIb|& z|IIg_nK8$Bhf;@qThJ4e{Kks)v)4Kzd*uMboYwGPl85OiBX^7@p@=aF1e~w?9Yj+_ z5|_nPE-uFEqE6u6TZD6_rmKNTy2#)0NNy@|5{e)8 z>T+-Y9@`B&Ja!M%y0iw@gzOuowTAP@FqdOgk8J#66)|FM6Ez}baN9E8W#*%#3psg1 zTR~6+|4oyb4Oy|V{F^VXblKiv_!rQ*47Aw?sHw29RGPUv&yFAb8Ts-L|3A#P3g1PL z$XBSMu3Av@k7>GE+&%_I2e$O!)-Qn8u9hCp*OMlQm`k#70pc_-&Sk7kLVKH_%=>X|4Kw0@Ae-lJU=;cWu8A^iHpkorZQm(CPCnyJ7q*vN4AG^R+VGQp^1s< z#O41kS3GIBT`{kFX)k)|w7#L=PTZT&L6a$K=Jr@6$onsUC2sc3v4vEPpTD5{o;`o- z8!g2BRBFL6homO%zbpXsz#jl`u4_WoO2awre=N=_Gs=Hj0HaisvO?Db&7BclzmoonU=P5l{JI3`9Sm6J78+ zRE?4At(NE52yagPy_Dl{lv8&rdR z)=lzzy(4_P)AP%GMF{hi9Nxr7RC)Ib+oH9HDx{a(fscI2K^VO06Z`iBKN8Be_jHdP z=0UBw>d{N{y3F=sRXy?Si5KR6l!d0Gz0?Ia$VjVgxdG^rQT7p+yf6>NA2W4~GE;#vme}}OyZdiN+I+m_Z1W$NZYU8W#Ur1#MP8s!9%ky zI!@dQva8Nd7R%>LdvjCXPrOws(hG~&X1p;kSf(6Rj>T?BBSaz83hz*^Egq!wNSp;f zRwVSS;o&og8p8aOiuYpib3rPThl?;Cz1N61+-%`&@jBcVjOxYBY>|u|PXCqdXVz7P zogn<2M{l?vq@gwa-#9Z~)?!pG{OE(I*ZWt{qf1qaU&wo2o&5|>>q7)N!j1+ z#8tIq*=|}@(g#Sa&siZY4+khKxpNmGn{Q@mJuDe2AY%4YPdhnO;|dl|EfG_lS@i_W zewEZ{Xwdhn38IxV2?-XK26PTo7BCWfE&MmBZ@l+~a`JlIXb5p8r1jTKM>SnOyc~A- zq#8P@L&DaL2YJUSw>o>sU=j}Z50pIVJjd_Yr_J-5OWr1;#P1Wv02|ToY+pYZ`+akt zhJXLfUYV{Rg7PpZ-Lf}*1y1@hlJOH?j|^dU#V|=o#%K_Uf4F1NSdG}HzjmAD>P$Mi zglr$-Oubpr!8-P*2{qy~hS7fPzHh$UOi-Z5ScKxS|E!9|bf;<_qwGKQB6DeI?yGv4FLe znoYXmHcrcg2+uvOImi~Y+C}Z0Js5w=ji2^8l(D9$&9!fAd~0p1oi{K=cP>W7rKpfi zlVb(_AsH9Jc?gb!yv&OT<$kVT5mO zYu|%Mx?o&9(EePZv~&zg(h}2~dEN7S@eK7Sy1{h1*}eok`KUBvpz&I{=jeX$p+ZPe zF>J96nFAY|;2qqIj=zEXHe7BOp}vXye8h|!g;lzNRKJvY1sz+K3YSxQxJt*MH#=D_ z&D4LzU{wZo4ozx$&}>)&HQ^VEtQSUpR95A!k4QQ1rLmNGzf|^2gm}urW`UPtw&?a= z{?zzPdd;U4B9YbVC5FaBO~@!_uYDBASEG}41df|MMOYwz>Rt*7B|MzUZTxNtrckJ}mkvi9DYM1x3}*AZ+8 z?_Qb$8M>`NjbDZ_q)Sa7M_V)hpYQsRdjGt(UffF6^(Tvd-$1 zDH)mu;MR>etRvnb@iGPowc9{r9a$|AE8gJNEHPpE-?yeyBva!dp*i2z>d)S;{Ks@K z?Lm=shq{;Za)|Ts97JmB@IZfVIDuB(kyjcQ!CtZ`CY5fl$D(eN>eXBcPa(H-R`-bd z8P_=rDIJP5S*GJt+pr!Of3r8OS!0|-z#BK$(}v-lONrw1#d3((x%YRYV^dCKZtbW5 z1&7ETl2!BPnsFB+H{9cs)#iTRL(3c5{RME9;c<6ERluVzPpFFmto)(KDkK;C;Dxpp zXNcIkq{cS-n-%?+oLw1azLv$6;_m62*U|zX$)LfBd~&6=Zp{-aek(GlfbQ zl-i=r5%cw3mT<;kujO?is4wHpcMsP-FK>vL{o`0)j*+l+&3%QT$c8BSF&xEcl#?8c z{;J1=p(+FJ-|1wzo*)eZW^PEiz~1lm907 z#*ZFF9ClKBob)tbj~d4iczWt)>EfuM@DJKL-wiMF{JLUlUQ4_!E2Y}Qziv!6A>}XU zy1~2#4<{b!e6}zU0y(Gc6dM;H#26XV=kd7W3dtr#6BGe#{BP}zMz5TU+Ej2!DOL!9 zr~Xavl&jvAXE4p{JtJ7@f-uW7e1&u>l2N)ttLpi6E0N+KS*H`V-`uNl14Y7hDzP8m znv8mx^$XyB^YU~vX-$5_qa_DG196^CHiQ0G^fsf-vtE1imZc|R(=XbBSR{RlbH9Kj ze3+?qq(3K~{&Uk*(~iY`jpx=`A8~31;zDXCZWc zCK0YBNAa}G^HHgHSf38ptn&=lAeZ2dc2dp%U;-yluk_Y_d139%T}=-DmUFJvF~N5` zgb#^O7Ddtd>zZC1HO(vvCDKDHVairpd-^dwa+@l6;Kq(+;N>$mLUoK| zlYWp7g?G1r>Y*F=!Nd1C*KyV4*4vgjt1R2qT>s%U*Vt!1K>Zbq7H$RfWl+e~2fv=y z$nLzVx( zBSn!p8#TA({0O``1)Sil>MrKji;3yC!-HF@FtVaDzV}3SJfLi%u2p`#vGMg7X}s8o zk#P8#THHvz?gehLFxg*<=&dv2$IalK;F5T9g@6Dr-8H5#g)_Shp^*!vlZLr;|3Pam%|G)<%^Nkdz!1uj|erMfC%$DV*+(ZC|K}GdD3xh3pdb}_5 z#I3ms6Nv5~Z0MblxC2dZ?6gu9^E|xn1c`3yGi3ZJHbi>b57XSF6pkCuV1W%BdzXRP zX31fn5l=klQR_&+Bvz_9TiqU3*(Uuz)A-U2zleQ+E6F)LxbE#i09dLFAMgro7x0#~ zoQd1DpMWOdzo^9uMW{`p$||Zf$q>mNvV70t__MyRt=>~B>jjAKu2$|Qt%^tMRmxVEv&c)5%cD62LQ`hMeqha73QIz8o zcQO%H!r{X^)IB)vHu6?FQ}u^cV&*f!^2Q$)NWdT*FV8Qd3_Fu$JGXvsDgX8XE^*N2B(cBEqSLw;{TWh&&-k>_yO-X ziba+~K7@ArQ}d2XVOhF3W6_Rle_x6k>-Uzt8&CXb)f31jy{*smME}1bOG!|VZIVOe zL?Xq0AR0?NL!yWGG+c79J^4wQwOWV9c;<0GloSp7?!9wMyr=CV!vZzJNyS+kd5xgW z?tA-e?CM$=0lc+jl=lVK$;AmX5wun`EYb?9c6yI7_+7xz|Foev`yltb;{-LyVB2_( z)#6o^E5+9Ds5C`wSJD$7SNX4 zV9xM{iD*zTeUe(@_!8UYHZ;aIEbn8HlR!6XoCO|48AcFpE^YGD4A=!=$3Q_TY5k7+d_&=FGqGv(@H`6`{CV>iC% zuQwHPpvJpMSBd6<$ROE0^RAUi{Ph~A943sy3;wuNA0L_!zILXHj_zo36r2SY;xXFDe5XRBWip5Vf2VO10ddn5JrAO#MOz7t7#sqy;m`c!>X(?AMazSmKoUO)#yZ&2CJTRnTwVf$F(gASUL})GHFO2 z`vJ8>@%1MgRk6Xi*r{mKPNCb;U|}9n;~GhYthAujcv^0cY}NK$sBp>)@$>6+{e^_a zs32t8zC}sIYwg)WuRTX@}Q=N-GY3^6dy5#*%_9%NPle0oI z4;$cdtfke#mim`0`CW>J7Mo^40Ga!Z^IBl`F#7A48Wd`=Hy%b z+v>zbu@qD-d)oytTS*WE$bD}Nj>NLaaCJLnP?u^rt6bLQL4rdmW<_!~%oyztKjyL< z;QvIZIh@l9CgvS7FboZhoiDVB4peJjSQ+YA9cn;z-h3cw%#ZhLc*F&FmpQ6a2Y60{ z71aZwm9TN{vpJbF(2W;l_i3EfuKCK>jyEX$rt_}sX5|Vi|BE(V(bvb{gBOWE2X=D) z5>D~DOc0)`P;GQ3(K+Z74r${^i@X7p?IpaeZz_GrmGUsj-1npVvfQIgYapgNqgInt z*v)^iYH)EDC-)pQgQi-nr>h0eF=9PmUgqq7q(3d-^4Yv9k7Lt~HMNdt=?HPLkaOru zY09JzfjD}OTF%qGcNM2#3w5c>t#B3mPj6J$YiM^&RIrEl#h;1l*-}(+M$oi6U5(@X z&S|E^t&++AsxgJypj{6spu2Bw5PA%O_u`H!5#!hRE$K&G{J1_1pj|PpXl!U0y2Hwj zrd_8Jk)7E@AVV~svE?d~X0vm+28+PlwDQ2;h2kOlUYJ@ZrbLby`4No287WsLnxB{b zXtM10MIl__84=SV`7=hOf84EmLGNbgX4tDXEDjb>O`%Sd96C{?w7LGDtMre0_~GNj zZX}AuHHs%t;0nvAn)Wxd9#U}WOU`k03$xYV%LVj-^K&MI`NvBUhJC?9srAFUfwl=X zT03tdfg7=38knMM{@W?qV!7r*FcHgevQy`Tq0k(@5g_-t7pOdx?<>)x+i=y69(+3P z!kS$0cq=X4F$(KNw*x7lY^6HlXX+8vR*{TvMVFcL;XPkF|b( zj#If2h0Kmr&4^*i;?cv9lLo3PW2QB$S4Dv9k1jnj99LZo6;{u(`z7fp?Lm|70kdd(Agk?tZ5kaf*#=NOP!uFwKjvelj$2{{}ZbpQw>@+mY&RnT5d zC*hET<0T@gMz)Wf)@-sdg(7Ir?C>)c@(j@k0~GMar{m{ClGSRR^oP(` zv{@dig8kBukkHGGAf;io=Yhu`B7hcdJs9R$)8DQKbi4Z_s|r0gB$Rydt^tP0Uq*VJ zuf|405-#so)V^Ix+NP7-@4J&TVoM`W4fxvKZ?U8%_k)=)F3gj612zjZxJ3b*KwRV& zh2@@wVZUa$l>TGA%6dZ@35G^ZF2*=Y_PsRW3Vf zco`^Mady!p(eI?SPzfw9S%<|=^;j7dvvCAba3@-;4z4l>ZZT)x-b~coIW;KqJKHj> zWbCu{i)W9)SGqOG>wHVG)^;e^V$Qo4l8lOIV-|MHm=h;co48S=z~SoTcbGhs_oBEo zV!C7|*Z0#X68N6x@kMG`oER+Nt{kWc?@^3Buxv!H0XN>Pm>#Vm@m3%Y-N`m(l z{YMwmy)ep+ku57?537@Lt2RiD=y|d2LL0ctdrr7SjG6{^MTO@;e-g4W%FyTtbNL3> zzTc)>=yDNNUld9iTqRV>T$xwXa5MM+)`5a zRVR!kXkVxPy>G11twCWJ+f^`lx~=Q+6N!EeygW?aVaX|I@xjo0j?{zlcTr7{jqEp0p(3{l0!k1i%ju2wIMwI z@YuO)r48LCd^yd_-K$H5OBz$7P=$o*j-Vm3t!+^ z!J**9;>(dEoL@cLQ5tEWU7$b{l4#mUc4uVi?zAsnxDp%c{Nv~|k5b?41ACwmV_v>$ zlb=QThX2}|epwZ$Ct{a#9(E49s=sir`JM6*=7wYNo_;o(^rDLM{(JY5m5KR#Lu+kC zO;!EE(4wT>aMeLlMWN>1Uz6-8?frO)`o{IUtg(mrE}K;)A-A4&F_Hj9jQ|keF_CW-^qTH&tZN(YnX=8S3BBVQA6GR_^F&eNV#U(qZ}CC^R00rQ zwJDX~YKulTh%8lgTfx^}?Q7&eb~F*GiP&!%(%qstxB_kn5#EkAydm4kf3Ac8q4FWI zv`&9$eFDn15XT<8bEbi3w)_5&FE^WbbwBfRb@r z(G+_l_9&`WU|}3=Zjs#d4q}?K&6y?u1^^4{snzW8W^Ron8vkSa(qk&;nz1Qw^2l z(fNv|Svw^v-_0SK*gk0F53*BbL+<9i6f-@l5Zp=J5_90RzdY!PX~9NXzwU1(1J+Oj z`{W=r4&w|ntz4Z^7P{#}Yof00c$<`=-Gq&PJ5xhqgn8fMQURQP$ zrQ?-&FVKhuaKRH5(M;*b{-TK9Zm$A1EJs%T1==9>-)sorGEPBwx2DDuPkpVNID zX!$H+Bjps|5!L*og8y()v0xd zRDLYm=2RrGn^XIXbjA?}Ig*<)^|V#n%ZuTNp;zJ?9WjyC@~cG4Wj-x%31>_JV9kji zs|~BFNe)7b(Lm^)^F~cR^2NyQM_xnM3PKt2u_EFvv1QT}UxDjpd}mKqgNUd-)27mC ze#q7*4cNWd8-6vB8i8LDzbWcKZ4*!-=hAt$s=9cvY5!wnXt#Kix!4D2myp?&2~cl?uWrDr&bIa`OZ zw4?8Zd4j3u@QygTr+D2xSZHvC>m9wL%1&Ib6dKwp6e}#Uh28^lsM&FcdtQqZV0hIc zyQ@a_B{aAwmgwy9rQzjV2w-~BURMz`<==Fm$oyWSPyE>O2T`ypqiVc<5Y+nm5$F+zCqiW7zRLvW@_Ko{tuJ5qdf}8ADoI-3ZA= zU6xu8{Qh+P{zsL^)S^S6VfuNUhypt*;X-*5stZhEe` zVG}RibXF{TacMZ$xC)LIs>)NzFJs+BKu6dn#sOJcyckkh`=Rn0lhGw}UdWO0CQ_r_FeyE2fGwdTGUO-VAuR4h_oDlBjfW{p*CkB zl>@Ip#iTQ9zjU4{qI?ex?e`MVoP?OeA`!-!lt||1JxYbJP{wg(Qah64POD zcSK!vapZzP%$vs+5599yp_aq+f*8Z;1n34wXHuO|JGutERe`#B>uhiM!!H4wu-_6| z3uY}vygZ-1dHG@aofK>5_mSsH|JkSp+u@&#tzCl4Q|;Jl&i0SMNR-}$LwqayG`Y*X zcj7;(oI4)R9xLKSQ#f!#R6y zJo_99`Hz@&ENTYYyvKFVmj8*7jvP~Q;RpU<{bzEQy6M)~o?jEp+^N9#f`STD6Ux!y zh%aL3&KOSuE#I^gLfRXwayB(9FPW2$TXCx>A=!l(j=J+>VR#zj?|~{@RFsWdN6fAHoLHgi@C@Nk{O?e2ws_Xet2ueyU~M9NI{D zpRF{LHB7D3HEi_~=KHeQS<0MdjH%nlFOiq@4h@bFX?< z%o#ajKvJ@u5uNHj;I7HW;^6^QDE*swf0dulVhw5CZedx2Cl)aqwFz*!9gNzi1`l?2 zCG@D&e7maFka6JmkJW)JLRH0y#N-@yJM|qpUdG8s*(g}Sp6hys2=ZxGTNQJ_N zBrwV&TB2hkzQe2}y{^78R*}e?`lUA>!FuDsgrUV)T862 zt>5a~DWUg<78x5~i^T6@bvx6f)(x1r*gr?%nIoWk9|zt2p|xJgp^N(RIxNum_G;{j z_0<{lGhp&!MT}Qqf9dnbKpurvBxF?_tvNm`?V0|4QO~YP-`%}BXIA{%EA9ICGgM&I z^pmzwMT-NS$Z#G7N~SYsK$pJP1J z6#}>OXkHYs&KyHWuyxr!YfHdV6M>q#yyiz<-LubboDhQGC)uJXbG$*@arKc|BsCd> zl~JbIi?|%2_w55oGqEQ_hbQr)aBRL8UfW3%y`x15cE&ya7f?gZIG*Dxpt507pbB)y zvc~QStr1;`7EBGmpgA06%##pB888H$!29=Co5z93qxA$LR6j-ZDyR01uY#@0VtXum zMwH8}X<7j6uS(SkuT`@S)Nae6m*Ij|gvhfE!92qNVxqci!Q-IwSi6h*GlX|ONi7CI zrTk=LL$q!u)*aEH+PR=T#$zO!lwL&Kf?eXap`{%hct+Fo9pG2{hH(v%}?hdEbeCy2SOyS*qe-uI?-=QH%+W;v!WUtV|m`ΝWxpzqs2c~ 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%0D2rTbA4<6-S17_j$|Q7rwR-o}m` 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 XPHQ%sj3hn1gSkLYwVsqKnT7rz0$> are displayed. + +image::maps/images/spatial_filters.png[] + +*Show spatial filters on map*:: +Clear the checkbox so <> do not appear on the map. + +*Opacity*:: +Set the opacity of spatial filters. + +*Fill color*:: +Set the fill color of spatial filters. + +*Border color*:: +Set the border color of spatial filters. diff --git a/docs/maps/maps-aggregations.asciidoc b/docs/maps/maps-aggregations.asciidoc index 2b65ae99a381..6b03614ab9d6 100644 --- a/docs/maps/maps-aggregations.asciidoc +++ b/docs/maps/maps-aggregations.asciidoc @@ -37,7 +37,7 @@ image::maps/images/grid_to_docs.gif[] [[maps-grid-aggregation]] === Grid aggregation -The *Grid aggregation* source uses {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[GeoTile grid aggregation] to group your documents into grids. You can calculate metrics for each gridded cell. +*Grid aggregation* layers use {ref}/search-aggregations-bucket-geotilegrid-aggregation.html[GeoTile grid aggregation] to group your documents into grids. You can calculate metrics for each gridded cell. Symbolize grid aggregation metrics as: @@ -48,13 +48,13 @@ The cluster location is the weighted centroid for all geo-points in the gridded *Heat map*:: Creates a <> that clusters the weighted centroids for each gridded cell. -To enable grid aggregation: +To enable a grid aggregation layer: -. Click *Add layer*, then select the *Grid aggregation* source. +. Click *Add layer*, then select the *Clusters and grids* or *Heat map* layer. To enable a blended layer that dynamically shows clusters or documents: -. Click *Add layer*, then select the *Documents* source. +. Click *Add layer*, then select the *Documents* layer. . Configure *Index pattern* and the *Geospatial field*. To enable clustering, the *Geospatial field* must be set to a field mapped as {ref}/geo-point.html[geo_point]. . In *Scaling*, select *Show clusters when results exceed 10000*. @@ -69,7 +69,7 @@ then accumulates the most relevant documents based on sort order for each entry To enable top hits: -. Click *Add layer* button and select *Documents* source. +. Click *Add layer*, then select the *Documents* layer. . Configure *Index pattern* and *Geospatial field*. . In *Scaling*, select *Show top hits per entity*. . Set *Entity* to the field that identifies entities in your documents. @@ -99,7 +99,7 @@ image::maps/images/point_to_point.png[] Use term joins to augment vector features with properties for <> and richer tooltip content. -Term joins are available for <> with the following sources: +Term joins are available for the following <>: * Configured GeoJSON * Documents diff --git a/docs/maps/maps-getting-started.asciidoc b/docs/maps/maps-getting-started.asciidoc index 6495b8a057cf..a74d442d6ffa 100644 --- a/docs/maps/maps-getting-started.asciidoc +++ b/docs/maps/maps-getting-started.asciidoc @@ -62,10 +62,10 @@ The first layer you'll add is a choropleth layer to shade world countries by web log traffic. Darker shades symbolize countries with more web log traffic, and lighter shades symbolize countries with less traffic. -==== Add a vector layer from the Elastic Maps Service source +==== Add a vector layer to display world country boundaries -. In the map legend, click *Add layer*. -. Click the *EMS Boundaries* data source. +. Click *Add layer*. +. Select the *EMS Boundaries* layer. . From the *Layer* dropdown menu, select *World Countries*. . Click the *Add layer* button. . Set *Name* to `Total Requests by Country`. @@ -112,16 +112,16 @@ To avoid overwhelming the user with too much data at once, you'll add two layers * The first layer will display individual documents. The layer will appear when the user zooms in the map to show smaller regions. -* The second layer will show aggregated data that represents many documents. +* The second layer will display aggregated data that represents many documents. The layer will appear when the user zooms out the map to show larger amounts of the globe. -==== Add a vector layer from the document source +==== Add a vector layer to display individual documents This layer displays web log documents as points. The layer is only visible when users zoom in the map past zoom level 9. -. In the map legend, click *Add layer*. -. Click the *Documents* data source. +. Click *Add layer*. +. Click the *Documents* layer. . Set *Index pattern* to *kibana_sample_data_logs*. . Click the *Add layer* button. . Set *Name* to `Actual Requests`. @@ -137,7 +137,7 @@ Your map now looks like this between zoom levels 9 and 24: [role="screenshot"] image::maps/images/gs_add_es_document_layer.png[] -==== Add a vector layer from the grid aggregation source +==== Add a vector layer to display aggregated data Aggregations group {es} documents into grids. You can calculate metrics for each gridded cell. @@ -154,10 +154,9 @@ image::maps/images/grid_metrics_both.png[] ===== Add the layer -. In the map legend, click *Add layer*. -. Click the *Grid aggregation* data source. +. Click *Add layer*. +. Click the *Clusters and grids* layer. . Set *Index pattern* to *kibana_sample_data_logs*. -. Set *Show as* to *clusters*. . Click the *Add layer* button. . Set *Name* to `Total Requests and Bytes`. . Set *Visibility* to the range [0, 9]. diff --git a/docs/maps/search.asciidoc b/docs/maps/search.asciidoc index a461ab6fbb3a..124a976c009d 100644 --- a/docs/maps/search.asciidoc +++ b/docs/maps/search.asciidoc @@ -10,13 +10,13 @@ You can create a layer that requests data from {es} from the following: * <> with: -** Documents source +** Documents -** Grid aggregation source +** Clusters and grid ** <> -* <> with Grid aggregation source +* <> [role="screenshot"] image::maps/images/global_search_bar.png[] diff --git a/docs/maps/tile-layer.asciidoc b/docs/maps/tile-layer.asciidoc index 059dd527f481..6da8dbad0a66 100644 --- a/docs/maps/tile-layer.asciidoc +++ b/docs/maps/tile-layer.asciidoc @@ -2,12 +2,12 @@ [[tile-layer]] == Tile layer -The tile layer displays image tiles served from a tile server. +Tile layers display image tiles served from a tile server. [role="screenshot"] image::maps/images/tile_layer.png[] -You can create a tile layer from the following data sources: +To add a tile layer to your map, click *Add layer*, then select one of the following layers: *Configured Tile Map Service*:: Tile map service configured in kibana.yml. See map.tilemap.url in <> for details. diff --git a/docs/maps/vector-layer.asciidoc b/docs/maps/vector-layer.asciidoc index 17c57c82b0f1..d6a5931659a4 100644 --- a/docs/maps/vector-layer.asciidoc +++ b/docs/maps/vector-layer.asciidoc @@ -2,12 +2,15 @@ [[vector-layer]] == Vector layer -The vector layer displays points, lines, and polygons. +Vector layers display points, lines, and polygons. [role="screenshot"] image::maps/images/vector_layer.png[] -You can create a vector layer from the following sources: +To add a vector layer to your map, click *Add layer*, then select one of the following layers: + +*Clusters and grids*:: Geospatial data grouped in grids with metrics for each gridded cell. +The index must contain at least one field mapped as {ref}/geo-point.html[geo_point]. *Configured GeoJSON*:: Vector data from hosted GeoJSON configured in kibana.yml. See map.regionmap.* in <> for details. @@ -18,15 +21,13 @@ The index must contain at least one field mapped as {ref}/geo-point.html[geo_poi NOTE: Document results are limited to the `index.max_result_window` index setting, which defaults to 10000. Use <> to plot large data sets. -*Grid aggregation*:: Geospatial data grouped in grids with metrics for each gridded cell. -Set *Show as* to *grid rectangles* or *clusters*. -The index must contain at least one field mapped as {ref}/geo-point.html[geo_point]. - *EMS Boundaries*:: Administrative boundaries from https://www.elastic.co/elastic-maps-service[Elastic Maps Service]. *Point to point*:: Aggregated data paths between the source and destination. The index must contain at least 2 fields mapped as {ref}/geo-point.html[geo_point], source and destination. +*Upload Geojson*:: Index GeoJSON data in Elasticsearch. + include::vector-style.asciidoc[] include::vector-style-properties.asciidoc[] include::vector-tooltips.asciidoc[] diff --git a/docs/maps/vector-style.asciidoc b/docs/maps/vector-style.asciidoc index 7bc8a909d1ec..5f5b3a1b2aec 100644 --- a/docs/maps/vector-style.asciidoc +++ b/docs/maps/vector-style.asciidoc @@ -86,7 +86,7 @@ Qualitative data driven styling is available for the following styling propertie * *Label color* * *Label border color* -To ensure symbols are consistent as you pan, zoom, and filter the map, qualitative data driven styling uses a {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation]. The term aggregation retrieves the top nine categories for the property. Feature values within the top categories are assigned a unique style. Feature values outside of the top categories are grouped into the *Other* category. A feature is assigned the *Other* category when the property value is undefined. +To ensure symbols are consistent as you pan, zoom, and filter the map, qualitative data driven styling uses a {ref}/search-aggregations-bucket-terms-aggregation.html[terms aggregation]. The term aggregation retrieves the top categories for the property. Feature values within the top categories are assigned a unique style. Feature values outside of the top categories are grouped into the *Other* category. A feature is assigned the *Other* category when the property value is undefined. To configure the terms aggregation, click the gear icon image:maps/images/gear_icon.png[]. Clear the *Get categories from indice* checkbox to turn off the terms aggregation request. From 807803c2dc10e9ffad3ccdedfd5a818bd5b1fc3e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Felix=20St=C3=BCrmer?= Date: Tue, 12 May 2020 18:50:26 +0200 Subject: [PATCH 66/67] [Metrics UI] Fix mistake in container ip field name (#66198) This corrects an apparent mistake in the inventory's container.ip_address field name. --- x-pack/plugins/infra/common/inventory_models/container/index.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/x-pack/plugins/infra/common/inventory_models/container/index.ts b/x-pack/plugins/infra/common/inventory_models/container/index.ts index c142f600d1d5..8f2336d11e42 100644 --- a/x-pack/plugins/infra/common/inventory_models/container/index.ts +++ b/x-pack/plugins/infra/common/inventory_models/container/index.ts @@ -26,7 +26,7 @@ export const container: InventoryModel = { fields: { id: 'container.id', name: 'container.name', - ip: 'continaer.ip_address', + ip: 'container.ip_address', }, metrics, requiredMetrics: [ From f24785f33bc716385ad8b5fd12ed35fab7411eb6 Mon Sep 17 00:00:00 2001 From: Quynh Nguyen <43350163+qn895@users.noreply.github.com> Date: Tue, 12 May 2020 12:13:49 -0500 Subject: [PATCH 67/67] [ML] Search should have a categorical option for job type (#65770) * [ML] Add categorical filters to ist of df analytics jobs * [ML] Removed unused ANALYSIS_CONFIG_TYPE * [ML] Change getJobTypeBadge to implicit return Co-authored-by: Elastic Machine --- .../analytics_list/analytics_list.tsx | 34 ++++++++++++++++--- .../components/analytics_list/columns.tsx | 8 ++++- 2 files changed, 36 insertions(+), 6 deletions(-) diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/analytics_list.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/analytics_list.tsx index 58bc75bd7309..01cce153ce49 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/analytics_list.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/analytics_list.tsx @@ -17,9 +17,14 @@ import { EuiSpacer, } from '@elastic/eui'; -import { DataFrameAnalyticsId, useRefreshAnalyticsList } from '../../../../common'; +import { + getAnalysisType, + DataFrameAnalyticsId, + useRefreshAnalyticsList, + ANALYSIS_CONFIG_TYPE, +} from '../../../../common'; import { checkPermission } from '../../../../../capabilities/check_capabilities'; -import { getTaskStateBadge } from './columns'; +import { getTaskStateBadge, getJobTypeBadge } from './columns'; import { DataFrameAnalyticsListColumn, @@ -154,7 +159,7 @@ export const DataFrameAnalyticsList: FC = ({ clauses.forEach(c => { // the search term could be negated with a minus, e.g. -bananas const bool = c.match === 'must'; - let ts = []; + let ts: DataFrameAnalyticsListRow[]; if (c.type === 'term') { // filter term based clauses, e.g. bananas @@ -174,8 +179,14 @@ export const DataFrameAnalyticsList: FC = ({ } else { // filter other clauses, i.e. the mode and status filters if (Array.isArray(c.value)) { - // the status value is an array of string(s) e.g. ['failed', 'stopped'] - ts = analytics.filter(d => (c.value as string).includes(d.stats.state)); + if (c.field === 'job_type') { + ts = analytics.filter(d => + (c.value as string).includes(getAnalysisType(d.config.analysis)) + ); + } else { + // the status value is an array of string(s) e.g. ['failed', 'stopped'] + ts = analytics.filter(d => (c.value as string).includes(d.stats.state)); + } } else { ts = analytics.filter(d => d.mode === c.value); } @@ -291,6 +302,19 @@ export const DataFrameAnalyticsList: FC = ({ incremental: true, }, filters: [ + { + type: 'field_value_selection', + field: 'job_type', + name: i18n.translate('xpack.ml.dataframe.analyticsList.typeFilter', { + defaultMessage: 'Type', + }), + multiSelect: 'or', + options: Object.values(ANALYSIS_CONFIG_TYPE).map(val => ({ + value: val, + name: val, + view: getJobTypeBadge(val), + })), + }, { type: 'field_value_selection', field: 'state.state', diff --git a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/columns.tsx b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/columns.tsx index 907297cf69bf..194d59faccf3 100644 --- a/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/columns.tsx +++ b/x-pack/plugins/ml/public/application/data_frame_analytics/pages/analytics_management/components/analytics_list/columns.tsx @@ -64,6 +64,12 @@ export const getTaskStateBadge = ( ); }; +export const getJobTypeBadge = (jobType: string) => ( + + {jobType} + +); + export const progressColumn = { name: i18n.translate('xpack.ml.dataframe.analyticsList.progress', { defaultMessage: 'Progress per Step', @@ -230,7 +236,7 @@ export const getColumns = ( sortable: (item: DataFrameAnalyticsListRow) => getAnalysisType(item.config.analysis), truncateText: true, render(item: DataFrameAnalyticsListRow) { - return {getAnalysisType(item.config.analysis)}; + return getJobTypeBadge(getAnalysisType(item.config.analysis)); }, width: '150px', 'data-test-subj': 'mlAnalyticsTableColumnType',

Mx#IF}diEM=%>_pJ;s8 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%0D*mh_ zqJU5lVaDb%gnmeMC`D#~-i<&1z=(@*;^_B&rD4v$C0Q|U#OO8k~*LK9@$;cQfn z|G1WmXk%v@+sD2-bEP2wx)H#7Yh#?vSd>fxin7T&zOTLlM7mNs*RJ zEXGrn2%Ps^4sXyhX|K_@$>rKc&kDA4`2j__jDfs2v`Q2vYPgiZFMx`!v)z(>IxI5& z_UBo#&$6$B>j6Fejca?m#)^$9jR4?UUJSXg=x_#QQZIg!UFe(Ge>!TZod=-w~ahc*ZYo>^3w@V6RaYI zpTp$Sg_n__lVMQ}=&6u&pB?jA)+mR~AgoH7G+WbDFQ+-dsfku;zdc5mn`L(p3|b2W zjjp(D>hc|uu_88%ur_RYEf|5>Bn!v(KZ}W&FFuQ2XylRGcY6t(2a8+z$;sggKkW}$ zCmrz`4uUeV!=a+hUUy@eo=N<``UyMuCfC8;NvuerUwrMTJt1<6*Qg7STp$5H&`ymH7|yN4U;x={I_YgFA}5XZM$>V^bnT?_fi-_H-L>9vE0MKir%{&w%vB|euad6CN0VyC9{phL1XHdfYn&NUG}y{8FT zw(7&urU~H}z8VBa7XFf1b)O&ilJ-z{mHKLpYl?W+CmpdPS|=eM%C{BHVO*u#oz^=kvL1j&xCdLbB=@#0jMZ))gye;Ly1 z|H=1nh|d7+U!JGGIL!lWzIUGH)gt;C&(m?GUUo2Z_!OON_R~rH;x;p6k;C`{9RpSM z(7HnjJKN*=&Y0!qj@SciPS~10<5C!U`1P9~_D@xZ$;Wxau?3#iXC%+N+_@vHG`l2z zesYRXP8BbY{=$mNSpEBu0fq-8#N=`k1VF@(lRg3YC zk9edxSMLH5tSjS#u(aLQPW(B>f1v2Gl^jQHi2XVi*-A^gK(9>N_3x9JzngJ)yqKFk zv5ly(EK9ZdK%M#v^LX*^XVs{h^o9@E>_`UaN6YxZz?+t)mkn4S{%u{pXm{w^M2igM zl-CB8W;ah}{htRKs%12x3u5o}+ZLS2AAb1n-dog$qhJ1^x$5xp|8?AtuE!%zDX!t3 zi`WU5X|hZbwsiKo=QlrAl~Q`iZ9ifr>IX1C!}C|21TvsaXP(zB@MQ+znehT+nhlQd z zHoH>dAEkFJ%@EoN#f-xdKXDD}_0|zIA0LP!szl^YNt*S2N!Aw1rI$A}tiqUBzY_>S zo|nH%OqYHeoSu?Gn?+EvVTSLVr=r_UD^h(|?n%P;4#OGaZ2VE&%+xW^w)%M-vHOH2 z(=+=V=wy2FUe+Ek1e-3ENfIVWrSAY9r_UOBHWiCgTIitXwl zq*C}IGsV1*Tg9#cBA&1)vuR(cI659|#uR<5#FDou%&TD;7!S^8wPZ?Wf#x$MLI+jZ zQu8GuC|v1Zk6D#&V@V=Kmy`0z?0rRpJ1BJS^-wxLHgyX}Wt>!7WgK2!t}p)_a>v_A zfGH0nyzSRh%jYC=M#l3CMBblWuC-{OeNhrRN^Je{(r3Uspl40sD5k zSo6tQ?m*G;DYN0V?&t?1s8ht4=^FsQY;BgQY)rB}xBg?|=>48758&|~PwLj-lwgPS zyW=T8+M`<0mddTf>euR%ke#CY*^kl6k!i$3r7E>YPjsu-M z%eBwezRemJHjM&TCM9~K>71S-q_iyXfE~FrcM5t><@|{0Jo6Gu_RW6|uxWOix0syN z!|OOpFX|5&Wsmvf_QU$1;KiDbK-&oXI(Ho{WkWLs1TXA<1(*C{MYhE)6I_7rG>cHF zIq)ALY7zSntk*2pp!t6j;z-RWY$+Rt#(#`j0571VU+Y42IK$;5lb+0{_^~|_4OkAM zCSsuwuQm18p-)fbsSP^tStHQ>&bXsny|u7~S-*88Kbb7!2$;L0sj!J{`XCjBzRGIVg->N$5EqhX; zyj!1S77@)$tL~6ku0DI-SA6+J?y)C0!@WS^vG?W-alvH+t#9yg+7||^*}iT#EK>px zRNt3%y8ZtwfS3$zR##=9ewRQ~>b(HxZbI?D^+Y>9J|4uLno6UV+9u6UvJ31TL z>2+v$y$43^yeQN8iWye<89qNC&{mT^3eKSiYMm$8zlIP|idOdZ>94d`%Wb~3BdHx$ z_`zJhE0|*#fryY>>UQ$y;3-72I+Vaj(ZzqdTi{=bAb}WAF@~J}|6}Vb!rE-RFoRPl zZpCSFDDF_)-QA0q1b3&nySqbi2<}qc-5rX%>*V|An%yk3%;KE)Jh!SlU^Ivo>jByd z9@1SS6(718#%|Sr!8nJ?g>p2pErw{t^?q`PHQ?LB1$PIaMd^U1q8MXURDCn)3Wz5T zurnIc%WuO`hgs-x{3eI{vPaN3KI81#-uk$?KaW!xO&*C5yRI0{r$wE@4_9VRkx;yx z%cbZFbHi%y;_Zj5*M=+F_};oJBAf~>iUAxT6fT+;=v ze5V|5J)!jKV(=^opx9b$Y1B}ow)iccpkZYQ_s^~;+4{D<2F7VdH!<75Ni zi9k$&E!u^?A7lVzs*}UNWsVV^8xs>pNi(#Or*T;H#b=) zt1r3}34J>J4bShsDBWk<0c>3~;qfq^I>F+@Kp+{JbEv(o3Q2NH28 zKWBiw-#6Gg6{vM50wFE}oq1^6Ku>qUg<{17Bh!kl{n~%WQ@@C zNBo`a%lw@rg{2kn3Oh8YlTw8HlDq?CyF92Dg#fi>rP*UrU%GE1Oagb~#Jm$##MKVZ z3{z-I8SZ}X9BFXB58fqFqbdue2iMKIJagr;Eh~G#Xv3*kI)(e4(j{IS24F2z%8=5W za4!Y2%>ydu3K4J>*_>+^RSebBNa(reZyR5)^XW&S)r_b%s%^)%^3|^hewGTn3L*{K z)7{*kan_EU5%ss93RtumU%Kd4h=Cqyf8?TsF2fQeUZnj6-?w92_V-C^@eI7w9X*oA zN`64Dbf0Kqhdm;`(?gTfB;O7)lt(0<7O%dZGw9P}dNkmni4Ekd(5QuHms;+v#lyW2 zT&BP56K z7d?CGH395>leK7aCkc;3tiJpF-LJ`;dq^&l24_3<3VF;A#6P#XScKRKM?^zVos5tN z%Tn!hn>yvJJ(&Y~b@-i+-MHFtd2ZHfYS$Kf*D~b{UvQBVcb&x8eey??nEq%`s`5<1 zw<=_D&igz?Y%Vw1ycWxitF4q-kWjTof-Q2~7wG;Fp3TiFHsH`}SiC-E(FX`wEb z#UV5P=<~TP$U$}zl)5mi2VYPxtv{^&Owo7A&Y{sR@-dS$zIbh1Jx}C+hI5$-ySTZk zH8v?55Q!U`&mB0Nx7L;Ylo2L- z!;g-bsFK&JrlN}WEQk3Maek9knc-)w3YKuh4v(e``PVnd)m-E@!tvQ zqzoANd=R?3!Ti0t3ZtG<6>W%wSydN{-KcX4T4bpTqlQ4}0Z`Gq1@c9dBW`Rr2Cz|} zpCS5P$feG}+)9WnxM)faR!Pc~SD8NQee!Ku{)?Am-6sS1EC*dL*NK=)LZb=~2d9Fi z>~?xpatfY}ZYYT1)pIfKDkQ(KXf+B~LI_o+VE(2HO*PoUl5xG4FiG(H=v12xf{(w8^QqcX+eXie76iVLwE0k0(>IBg8gv8eKmxNf|z)KEEbXVg6lFoGFbc7m2`f_ zCp_sJ#h6xD^W(tbwCRH2bnGl*JHHl*P^q{DbB$p3Rp$|bIv(j2?$b1EBfTDGaql_9 zu9o5$grP8URQa@!FW#2<1^PkE;cwHHBr?f%!6_E|7(F8{pF2K{M&;-q92e0uubyRc<$FVgGVa&>+V$Ny!dH{^Ybx?V;YtC3~w5W6T>s2$RPehaD&64o~VyPVMz2U7OG zi$F16Q1w%S-a3r`n}phXLpW8^v1=A1nWK7PUEQI#@`xtW#s?4q)JhV&w|n1NFRt#V z7&0-ucdZ^-WFA{D;(fdjy}aU8k<T0>5^8bJ?Db# z(8C1=PLu)n)d>XVk!RU%g~~uWYtKdPb38-{h=y^1WoTh*a6I3nG$x zjQ{qMc|HxkndDo=?dT9Y@rrxQ-R3kMB6AHrHqTZ&pf+6B(q=pKCF_C;E9!aiR?WEONTsD zk9{A5`z9t5%K6HJ;-4UGS*cF(RpPLKf@fYFizYGi}X3aTp@+xEQ=reH>9X&__RPymChPYX5Nd+5I1rB zlNf&4H8pMPZ)!`+GmG-kc^dIES=}F3F7J7a70#Do3_2IVc!k`=PO*|_Xc=FY>Zuj} z|9GIEJKcyv-1?&Y{lYV6hQYU}JCG7Q70P&}Iq~u!K90_$Uln5GdQdjVbpGkfC7e9c z60HE=1cUf*(B{ZGQG|yHn#zu|GDZAeVPR^EPLGL4T{2YmPZ}@Z>ao*3f@e}QOFUPbs&{6 z5#%~e8XLgwgfNMO1S!!B%>Ih1bLcgM#o)>gH_g7Pr937GW1e=jejKrTiFz*Sp*WQdxOeIu@Dk@o(D;tH23i#|jndGzdsIDU0k8zq-2Vd#&|y z@9IHop^9H@GG z?ogMzUW^tuOtXC;kmAZw>`KQhVc-o)%W^l@az#c)K1;V&NZDP>I1Q&~OoqQVJZs+F zuM_iRk&r^P?j7tEnGE%e{uY(>RWbF9u|uVaM4vQj@Fct zWvau!iMc!B?J#LLIjJP4+^h@1JAYs;jqD|S0(^1Uu?#mnx=DcEvq*quN z&*b?l&o=#PrAozP$YypOc=8Y+s+^%p)H)7+fw`eC6% zr5BxaCs@(5R9^Rd7$3k6!bCRXjmJqvXO+e->!A5WdOo*@KiucKIMH_#2{gPf0wM~& zDLM|4(YB|q|2T4~3E2oa6GzQocuOcb*S4u!5q4CBPkX8jI)sbOk@^kUm#nK9G*%x@ zb{sv@Pg?)sd_>bu;US4Ry3}edA$3$GJsS}OapW`kTdtRo3*9)GsnEP19u1NvRR^zv z`dU@^Zr(~(;P4EM2pf)E7a`BaS;Zd=27Jkc@orU!m@j`i32k9N{MXlZI3_WNZ>&R+<`J8I6cPOudV$@yoA`G2w7 zln#un4}&~Xw>k;{-!a-Ta_6?zuszGwCWIWFZ#9_3x{7lYtGJ z9w%9-&E(xsN|MHZ!;_%b43oN3$a7od8bu_RXD5Gb;&VA@;qIvBpb*j(y1Nz;Q;-EH z(R==(q!c|HAnXDL&7^)jG1=6L9*~}PV;S*VmHO5P-T^tH8>a_4;kr+9Sr)%#^aLHX zpjuKF7sY%N#^I~0xn!;c7&c&XLy;}%2?f~sv9DqrU?@oAb=wa}##^^1FcC5?fg}l8 z{&?%bVOQu zS~+VQy4fzjc4t41S~n<{kJoFHv#0#Dk$`$xgJ9yp0r7r6F}@t3ZSIpEAOzZv*;`7b z{<+Hjw9SVk$c-|ODs*T09+M1pAjMgI+1L9CwG!P&q_UW&0w+DYqr;N4?$h5-@g~uN zJ?12Keq)(x%S9>PYw*K^h=3bv0e+e2AlbYC>|TviE_*rJ$awwct55nP%#-HSbD5?pA=CB^7nk4(-qNIo^wlv!ZBOOds@ItKs|faA3vykH;9aCHm^`Q|WV) zsF`f5l0+*@g6~)Iyk<#xjW#V9rx?$d)D;Q8T>pLIkZUuhlOHWxjOmnHlT*~AZ#m!} z(s)f{qgn};;eod4X8E;b6d68P4gF4MhqP`$4Bjok`UZMl#}NZ^lF~OEsgxzalkdY6 z_{JNAQm~({7XBbhQmT9aMpvpB{tSk$=bAHFYu@g(+We;K4I#7sr8kgZxmA7WGvQEU z>dap-jLYjkh|0xu{v{otm?Y3?=%&Ba{hrKuIt#|HTUnLaL}S7~r8a_Qu6lH4SXqk$ zxt&pURL-(2S(cFOiK}m=DZ$e$noq}5mV@dz!;%?v$%Sgi8WvdU@uou^q>(?MHd*a= zXg;D?KV5CBE72$=+e4ryRod>CnBfHD7T#rQYwaQ3*9E&%7O~y7k`Uvy6SdL-=8^=3 zAMe<0cW6zmvsV!0VQ>9u-PXs#_i_H>Ota~Ah-(}*)6svdmSgyJ!AwAsQLAR?>CI)F zb~L#Qb06U+#__&DGZk(Vwp3o=k;ifooLwZ&~qz zcBubHN{D0o^@!38fIquvd^G$SKajZ|9)(rgNZ2crB$sk~K}uxkkn_(Q z84+A(Pned7Vb{hlcs$IrcqZAME2up$^>)5*Fut%W0S<|6947& zF2xgL?&!kT5Sa5C7@BW)(cxQP5S>mH)xvZ_;~Ks5uF5G9(|A*O$7MMsq}$@)y~tuc z!^zpW1gU4k@_#}bN*sg2>}NAoIKa&iv~A?S>@K*!8l7+!u9X(C|M|w1k$Cm<<(67z zvKWTo6c|eOC@Dg}2_#`>2RAqJ+=mz7-Z)E3^LSRw7z z!A6_=^hx zvPwv1RO4!DF9l(0#wiuzmsTLN@a&J})gt{^dvy*%LO}M4)ci|7zsSFo480W^bXzO#He`?nb)wGJd+RT+*p#8EUT|WH10^fn;LNpE=gA znXI9$mBU~EWHMFC3`msw>2<&RJGi+|i<90bm;m-gJPTRYbLIWKp0rxjZlp8D>N%E& zsXHbY8L!h>-32STQk#xq(=w4;-68|fc)L$}T;Qm_=)lp%;FSi#7`QoE6rhl8;JZHAApN8dVx71&eOS8zrG-9+XZgN|c;8?nECSgn ztqr!+fa>BcoyfomfAL1IBM03km#lHVTlCR|+iY^SG-N}s@odinxJm@tl|o&U*%F0Q zkCfI$Ym3)|JM;6t6jg2gjB)(z@7c;oKeAZqCif*MrmQTmzx=~cB`fYG5&m!UkhgxV z68jI^;tPPjbU^G5au}%ZEbhzJ-Y}Ppyr7O1`)t7UyB0YJvwg~PfZ|iM8piJ$-SpCq zhBIFHuhfWwHSu$ngT1IFxCm>EP!HWO=DfRF$_B=QubUsWM-D50S!`fiBuSq9qlo!* za87C<2F?DBkM~(3;J=4V7>iX%Rg$agQaXjlYZsGYLBZHgAUiqHYRCNVP%}8FX5|L~pLdjS0N%Z^?1E2z@<6~^(*pbQ*mN4NLKaZ5UA??uSvp(M z3KBE7S`s-1mc*ND?wGW!IL8TG8KfKLjc1(75)iUvoQNYg1=TU?fJIy~9&WIhQa6^g zyoyOhh(uVHjK|6F)FyN1+de8xa6;Mq6J(^#neXydwRUbl4h)bd7>YR?X&WC_|Qed9JYoFD(KE=_{;bf_EIsh=NW%^# z5?C8c0kyWp-$B$#hH-9Z{jEsv0KoaNO&$_McO@S?GSaPC2h~R<0RnX}BrQD8(eA=T zfd#~Nzx-=WVKcsLlju}ES*5$}SiugbC4mx4V7n7YPhL5KyXX%RG6WQMH7-^VAHcfc zme_GQVk;HBJz?*r;mCxd(Z~Wh(_dKS!Y4S&2iJ07F3^31J3qYlD9q=w z2=iaH{{3>UE0!pRvOtw@oQAn1EOyuU`&3>gI2NV+nxz}T-SpojvOy1F^Ikl~pPJYH z`{{xYw^duW$8J#oJ|_6Pm3N0KI;$&016wMNPCy1#Qe3PcnW(EL3vCWuh3b*?A|b;0 zoKdn($cd!n!bVopaMJAn_Z6cg3sKq9iCioQ{d#4ALo#oAhwrL?w;j0Cbd2cjXwu<# zi|v1Uv&Ly<;@vTxJ2Gw)GV)&=mYyi=Y^~awyn%9pV9v zeu=_{VwuQriJ-)>bg?1R`*@!%3w3AqC4>0f&AK1Ja}bZ-&{#Kbj?67N)dw6C@{hEF zo|d)NA$~1ez(A1e`#f}JYl1K;T|G8|u2`L%k**EapdvIiFYYQ-9s6#SY`#+?x9BI? zmabS2k0qo+6n2A1nC?<`=gI6w$&gc`tjdgiIS!(93P!0{hnVo(#4-l^I z#Gp~|&`SdL;GrLjfynH{J zzZSUZJURAPVtul?+s^qW1d;R`G%fEL*Da$7DD17C$@Ki!xoAE&3?MRJMpV74xb>Wa;?(3H2pITb1IHenx z41Jy$3?0KZtL|aLJ?l0;N`D;F$o}Hg>LwzjuOr(v_EZE-mH4@+&!aTD{AJzTBjEWN z3iHcJY|e(&)kcUbc=+67xJJ0sXICvz{@JA=!J2&t0WmOULw}|#1ArE$-FxSt_q@=% z&uP^)&FVRw@0{CpLk+l^a_%9Nh5NSCF0iO5Tqwf^DbUaZuVvM7BD(dP5}Wu7bi2Ig z`Uh35PY_~m435hHPBf|Obf zMgf@#S+E<+eUmatY-|Vih%TqcH;(ywIc3OaI!ptk^dFsv=l{X5laM_lpzxwH$!PoF0E-}|dIge*sl!N&R;J~v2=|!fz?+m#eH;+8~ zCIrFVakA0Dl9Q!qSG1!y)bX=ab7_wX%&GF9a{bQwqgI4(JA-M6H_M>=J|%`}=md;8 zOlcz4WSmj$wyV7r38i128Fswq*$88Oo|5}r5vUF597(= zhipZVp@w_|m*--j_iDkEFGPW5?CIU}%c|sf;97-;o`j}S1nM-k{Y&EJ=0@THueTnB zA3qzzvi$IE!U81Eb0x8ATxe{J8PmXU*{Ixf;%6XHH6~znm`m5(T!YT`wBzO&hLiGl z6ba9Jy)KQAVPoif`(PU5q9e3qdWCca+ES!>G_rc$g$spJaIt}vc}8Vi0~WNA=RY-E zo74WTxs>anoG4+ANtg#fo+x6RR*#!ONfZz`#_D5MR8($L7`CFwTes6MSxb~|TajXw z#%t9&x_vtJN|E+;%B$)}E*9x^5%8KCa#r##`ZzmPQ4KGrUYyh~0g6?(sZg&(HyoT-{YqX#8@@X03dW@rI5{H0kvp~C z5xesjP`-T0!ck~9AGcsYwgy?~e2nu}C9vs;Y6~uBM!O*c4(|v@)^g<4ohvh9zmh`G9i6Sds7LuN?1sav^BDUz@=f4E?fp=&O`C$} zRMsg6%?@zfdx+LW5yg{}vIe{b5=xV|I+xJ5LqW~@C)^Vj&?{gKeLWgr^}HE3TkuU^ zp-b=pvI{kxAMx9hzQg z?Ank&C~7@w$DgGxWdu!JD3Ly6|GT^6-NqAgbHkYyk%LoE(L4(1?dc5~edBpWd+O`U z-ACON@x31Z5(*J?XURit@E_0~T<7r)_uFzVJn9>4+8oXB3OWJ9aimFhH!O)Wi77g8 zB*-1Re~nL%$!e>x>a_i8S$F=o&iOIbViV#$wI$4Hv;}B8j7M8-`IlK#`(ZIm4sr>T zb9mcX^sRBCMUv0{G0fO{_=EN{F>M;vXjR9#pc(6pkL)=fB=7Z*dSzhp_<NY>S;0|OHsG7eERKL-Gqx>f6#q8>H224RkxJOU*W0=6!9Hu``caT{c!{B5T z^#~u{>&vPNd}T0;M@uKQ6mW0B9NBvDn1nQ#cwye$TJN_>TZkp7=og&}x#FVJ(6 zJw>6%Qsv>GG)V2ncw)yb;dT{MO}|Z8bK9cw0_YB9a&gl~vaDKgLOPz6~{UI_G`|Siyz5LEx1eR@F6S zGIx2xxa|oti_urPKk!J=U)f-%6sNrb_g*|&3}eZ~Ro6SjVSS#GP^V=DEeNp@Sd+K6 zpRE;lQ#~)A;tH&y1;nS$tq8&o!m@RQHlbzm&rp_7r>ZJkN+e%IM#U zZC>Xv_i}m64FRIeFT#M>fkc!z@2pt-WZq@5l6QA2V(1LBMp@8bFQEpx#wmjVI*{UL z`Mq)aNt(Q3(QScKmYe<>_-}mXaXrjR*{f8d2gVKd^`eQlB{;8*amPV zT8HOr83pI{6hk@r3Ft0(&=)xm6ixVv(bMw+XOt>kp?8`}!8?=(|IU_W3OoqN!-^6V z+2MH~;@(&eESLP?_0|iKx&>=+3zk1`qC-`P4ZspiYBh0=;9j>n7olp|vj#NqUUEXOMJ+3w`oRlV-P^&9Q*x^6vkc`xCar0l@_@xFU|{ z>)}69NtF8{R+%~Rp_&2LLUV2J1-lFm&OWN-AvIXe@7NyYinrf0{UTUxW`~=<*-oBR zGr43un+zldUQIpqhU%`=krx!Mcjl3%pFlLowJ0Z}kU~eTeGaL{#Us+^K;G`fO6@k~ zcB2eix2?4XaK#AMUF~=$@JVO!=isg3$Gfn-U;FmzAvO4#1xNJbCxJ=d08-jW8Q4m7 zuuVm@*bAX0jOed!Tcg~S&K{U^c6`g8bVMa5lw>^}<0F#xvWf=1<4>mP@Vu8n1i89Z z>q$-UnEkM6$-(%<;{2vFu&WQR{s1&*Mcz_(_3%wlP?1$Lc-{M-KBw27UE4eIVyo?+ z-Dts$bMGzE`#lpyH~x?37~hps7_=EHa~|bv=D*oqJG9GgA0d zK4s~P1FMvHzEkqaEQ@0~zOj>@kNuVxQjIOw(nVYo7eTHz5!#j+PR0f%@4Z+2sEs_s zp*iTLl`0^1v=kHVvDjMNTIn-K{U$x_YAxBu1}Z06T*&`{ym!z_gl4d8)mbF_zy8O) zq(Z+?z-g!1B|I7=S7r3Gs0yA-?mI;B zJD#il>#u7retj27J`qP_@0X1Ha%u)^DsmeU`W=&M2K>)DP|+&+k3J!#DJFt^HLiWt zR2KR(r`|*6VDdgi@mGO2m~|FB(F{8sgiwrq@uyTcKLs`Z!jg7?2;5hflSSsIeUv)d z3Nt*%uX&wca~>}?B%y?8I8z)7{iEH<l9vU6 zUlREJJj;Y`%|QZ2*P-OE9dMRHEdZ?8NDeFJ^ynGxD(L3Ln=G7Ch=hOMQ)7P0Mlw=1 zZg+vAqr@C}PqBb0<8u8(B%8ff@2Pg%;Z!VZ>v(Od1T>|vR9cO38

ZUAH1qi-0S2 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 OCnh8%Si!ID^Zx*@pMRAA literal 0 HcmV?d00001 diff --git a/docs/maps/images/tile_layer.png b/docs/maps/images/tile_layer.png index 60cb90ac5b90b3fa18152f60c15d89566c0fb3de..fc1d571b3e9b01cfe4dbeb7aac19fb720eb5ee6b 100644 GIT binary patch literal 508782 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