@vidispine/vdt-react 0.15.0-pre.7 → 21.4.0-pre.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.es.js","sources":["../src/hooks/useApi.js","../src/hooks/useSearch.js","../src/hooks/useUpdateEffect.js","../src/hooks/useAutocomplete.js","../src/hooks/useSelected.js","../src/hooks/useTab.js","../src/hooks/useInterval.js","../src/hooks/useThumbnailScrub.js","../src/hooks/useJobSearch.js","../src/hooks/useLocalStorage.js","../src/utils.js","../src/hooks/useUploadFiles.js","../src/hooks/useQueryInitialState.js","../src/hooks/useUpdateQueryState.js","../src/hooks/useEntityAccess.js","../src/hooks/useAddMetadataFieldAttributes.js","../src/hooks/useSavedSearch.js","../src/hooks/useSearchItem.js","../src/hooks/useMouseDownPosition.js","../src/hooks/useGetCollection.js","../src/hooks/useGetCollectionItem.js","../src/hooks/useGetEntity.js","../src/hooks/useUser.js","../src/hooks/useSearchUser.js","../src/hooks/useListGroup.js","../src/hooks/useListUser.js","../src/hooks/useSearchGroup.js","../src/hooks/useGroup.js","../src/hooks/useGetItem.js","../src/hooks/useCollectionAutoPlay.js","../src/wrappers/MetadataType.js","../src/wrappers/SearchCollection.js","../src/wrappers/SearchItem.js","../src/wrappers/SearchItemCollection.js","../src/wrappers/GetItem.js","../src/wrappers/GetCollection.js","../src/wrappers/GetJobs.js","../src/wrappers/ListEntityAccess.js","../src/wrappers/VidispineApi.js","../src/wrappers/Auth.js","../src/wrappers/ErrorBoundary.js","../src/wrappers/GetFieldGroup.js","../src/context/RolesContext.js","../src/wrappers/HasRole.js","../src/wrappers/ComposeProviders.js","../src/hoc/withErrorBoundary.js","../src/hoc/compose.js","../src/context/BinContext.js","../src/context/SettingsContext.js","../src/context/AuthContext.js","../src/DropArea.js","../src/moveEntity.js"],"sourcesContent":["import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nconst setDefaultState = (\n {\n hasLoaded = false,\n isLoading = true,\n isError = false,\n response = undefined,\n data = undefined,\n } = {},\n responseRef,\n) => ({\n isLoading,\n hasLoaded,\n isError,\n response,\n data: responseRef && responseRef.current ? responseRef.current : data,\n});\n\nconst apiReducer = (state, action) => {\n switch (action.type) {\n case 'START': {\n return {\n ...state,\n isLoading: true,\n isError: false,\n };\n }\n case 'SUCCESS': {\n const { responseType } = action.response;\n const newState = {\n isLoading: false,\n isError: false,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n if (responseType) newState[responseType] = action.response[responseType];\n return newState;\n }\n case 'ERROR': {\n return {\n isLoading: false,\n isError: true,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n }\n case 'RESET': {\n return {\n ...action.initialState,\n };\n }\n default: {\n return state;\n }\n }\n};\n\nconst canceltoken = api.CancelToken.source();\n\nexport default function useApi(apiHandler, initialState, responseRef) {\n const initialDefaultState = setDefaultState(initialState, responseRef);\n const initialStateRef = React.useRef(initialDefaultState);\n const [state, dispatch] = React.useReducer(apiReducer, initialDefaultState);\n const request = React.useCallback(\n (props) => {\n dispatch({ type: 'START' });\n return new Promise((resolve, reject) => {\n apiHandler({ canceltoken, ...props })\n .then((response) => {\n resolve(response);\n dispatch({ type: 'SUCCESS', response });\n // eslint-disable-next-line no-param-reassign\n if (responseRef) responseRef.current = response.data;\n })\n .catch((response) => {\n reject(response);\n dispatch({ type: 'ERROR', response });\n });\n });\n },\n [apiHandler, responseRef],\n );\n const reset = React.useCallback(\n () => dispatch({ type: 'RESET', initialState: initialStateRef.current }),\n [],\n );\n React.useEffect(() => canceltoken.cancel, []);\n return {\n request,\n reset,\n ...state,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_SEARCHTEXT = 'CHANGE_SEARCHTEXT';\nconst CHANGE_SEARCHFIELD = 'CHANGE_SEARCHFIELD';\nconst CHANGE_SEARCHFIELDFACET = 'CHANGE_SEARCHFIELDFACET';\nconst CHANGE_SEARCHFILTER = 'CHANGE_SEARCHFILTER';\nconst CHANGE_SEARCHFILTERFACET = 'CHANGE_SEARCHFILTERFACET';\nconst CHANGE_PARENT_COLLECTION = 'CHANGE_PARENT_COLLECTION';\nconst CHANGE_FACET = 'CHANGE_FACET';\nconst CHANGE_ITEMSEARCHDOCUMENT = 'CHANGE_ITEMSEARCHDOCUMENT';\nconst CHANGE_QUERYPARAMS = 'CHANGE_QUERYPARAMS';\nconst CHANGE_MATRIXPARAMS = 'CHANGE_MATRIXPARAMS';\nconst CHANGE_SUGGESTION = 'CHANGE_SUGGESTION';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_SEARCHTEXT,\n CHANGE_SEARCHFIELD,\n CHANGE_SEARCHFIELDFACET,\n CHANGE_SEARCHFILTER,\n CHANGE_SEARCHFILTERFACET,\n CHANGE_PARENT_COLLECTION,\n CHANGE_FACET,\n CHANGE_ITEMSEARCHDOCUMENT,\n CHANGE_QUERYPARAMS,\n CHANGE_MATRIXPARAMS,\n CHANGE_SUGGESTION,\n};\n\nconst setInitialDefaultState = ({\n queryParams = {},\n matrixParams = {},\n itemSearchDocument = {},\n rowsPerPage = 10,\n page = 0,\n ...state\n} = {}) => ({\n ...state,\n queryParams: {\n content: 'metadata',\n interval: 'generic',\n ...queryParams,\n },\n matrixParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...matrixParams,\n },\n itemSearchDocument: {\n intervals: 'generic',\n filter: [],\n ...itemSearchDocument,\n },\n rowsPerPage,\n page,\n});\n\nconst searchReducer = (state, action) => {\n switch (action.type) {\n case ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT: {\n return {\n ...state,\n itemSearchDocument: action.itemSearchDocument,\n };\n }\n case ACTION_TYPE.CHANGE_QUERYPARAMS: {\n return {\n ...state,\n queryParams: action.queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_MATRIXPARAMS: {\n return {\n ...state,\n matrixParams: action.matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_PAGE: {\n return {\n ...state,\n page: action.page,\n matrixParams: {\n ...state.matrixParams,\n first: action.page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n return {\n ...state,\n rowsPerPage: action.rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: action.rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n sort: action.value,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n sort: action.field\n ? [\n {\n field: action.field,\n order: action.order || 'descending',\n },\n ]\n : [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHTEXT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n text: [{ value: `${action.value}` }],\n }\n : {\n ...state.itemSearchDocument,\n text: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELD: {\n return {\n ...state,\n page: 0,\n field: action.field,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELDFACET: {\n return {\n ...state,\n page: 0,\n field: action.field,\n facet: action.facet,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTER: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTERFACET: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_FACET: {\n return {\n ...state,\n page: 0,\n facet: action.facet,\n itemSearchDocument: action.facet\n ? {\n ...state.itemSearchDocument,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_PARENT_COLLECTION: {\n return {\n ...state,\n page: 0,\n parentCollection: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n operator: {\n field: [\n { name: '__parent_collection', value: [{ value: `${action.value}` }] },\n { name: '__collection', value: [{ value: `${action.value}` }] },\n ],\n operation: 'OR',\n },\n }\n : {\n ...state.itemSearchDocument,\n operator: undefined,\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SUGGESTION: {\n return {\n ...state,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n suggestion: action.suggestion,\n },\n };\n }\n default: {\n return state;\n }\n }\n};\n\nexport default function useSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n\n const onChangeRowsPerPage = ({ target: { value: newRows } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage: newRows,\n });\n\n const onChangePage = ({ page: newPage }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page: newPage,\n });\n\n const onChangeSort = (event, field, order) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field,\n order,\n });\n\n const setSearchText = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHTEXT,\n value,\n }),\n [],\n );\n\n const setItemSearchDocument = React.useCallback(\n (itemSearchDocument) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT,\n itemSearchDocument,\n }),\n [],\n );\n\n const setQueryParams = React.useCallback(\n (queryParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMQUERYPARAMS,\n queryParams,\n }),\n [],\n );\n\n const setMatrixParams = React.useCallback(\n (matrixParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMMATRIXPARAMS,\n matrixParams,\n }),\n [],\n );\n\n const setSearchField = React.useCallback(\n (field) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFIELD,\n field,\n }),\n [],\n );\n\n const setSearchFieldFacet = React.useCallback((field) => {\n const facet = field.map(({ name }) => ({ field: name, count: true }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFIELDFACET, field, facet });\n }, []);\n\n const setSearchFilter = React.useCallback(\n (filter) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFILTER,\n filter,\n }),\n [],\n );\n\n const setSearchFilterFacet = React.useCallback(\n (filter) => {\n const fieldList = filter.reduce((a, { field = [] }) => a.concat(field), []);\n const facet = fieldList.map(({ name }) => ({\n name,\n field: name,\n count: true,\n exclude: [name],\n }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFILTERFACET, filter, facet });\n },\n [dispatch],\n );\n\n const setFacet = React.useCallback(\n (facet) => {\n dispatch({ type: ACTION_TYPE.CHANGE_FACET, facet });\n },\n [dispatch],\n );\n\n const setParentCollection = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PARENT_COLLECTION,\n value,\n }),\n [],\n );\n\n const setSuggestion = React.useCallback((suggestion) => {\n dispatch({ type: ACTION_TYPE.CHANGE_SUGGESTION, suggestion });\n }, []);\n\n return {\n state,\n onChangeRowsPerPage,\n onChangePage,\n onChangeSort,\n setSearchText,\n setSearchField,\n setSearchFieldFacet,\n setSearchFilter,\n setSearchFilterFacet,\n setFacet,\n setItemSearchDocument,\n setQueryParams,\n setMatrixParams,\n setParentCollection,\n setSuggestion,\n };\n}\n","import React from 'react';\n\nexport default function useUpdateEffect(fn, inputs) {\n const hasMountedRef = React.useRef(false);\n React.useEffect(() => {\n if (hasMountedRef.current) {\n fn();\n } else {\n hasMountedRef.current = true;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, inputs);\n}\n","import React from 'react';\nimport { search as SearchApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\nimport useUpdateEffect from './useUpdateEffect';\n\nconst setInitialDefaultState = ({\n field = undefined,\n text = '',\n maximumSuggestions = 10,\n} = {}) => ({\n field,\n text,\n maximumSuggestions,\n});\n\nexport default function useAutocomplete(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [autocompleteDoc, setAutocompleteDoc] = React.useState(initialDefaultState);\n\n const setAutocompleteField = React.useCallback((field) => {\n setAutocompleteDoc((state) => ({ ...state, field }));\n }, []);\n\n const setAutocompleteText = React.useCallback((text) => {\n setAutocompleteDoc((state) => ({ ...state, text }));\n }, []);\n\n const setAutocompleteMaxSuggestions = React.useCallback((maximumSuggestions) => {\n setAutocompleteDoc((state) => ({ ...state, maximumSuggestions }));\n }, []);\n\n const { request: searchAutoComplete, data: { suggestion: suggestions = [] } = {} } = useApi(\n SearchApi.searchAutoComplete,\n );\n\n useUpdateEffect(() => {\n searchAutoComplete({ autocompleteRequestDocument: autocompleteDoc });\n }, [autocompleteDoc]);\n\n return {\n suggestions,\n setAutocompleteField,\n setAutocompleteText,\n setAutocompleteMaxSuggestions,\n };\n}\n","import React from 'react';\n\nexport default (propKey = 'id', initialState = []) => {\n const [selected, setSelected] = React.useState(initialState);\n const onSelect = (event, checked, props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n if (currentIndex === -1 && checked === true) {\n if (checked === true) {\n setSelected([...selected, props]);\n }\n } else if (currentIndex > -1 && checked === false) {\n const newSelected = [...selected];\n newSelected.splice(currentIndex, 1);\n setSelected(newSelected);\n }\n };\n const isSelected = (props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n return currentIndex > -1;\n };\n const onClear = () => setSelected([]);\n return {\n selected,\n onSelect,\n onClear,\n isSelected,\n };\n};\n","import React from 'react';\n\nexport default (initialTab) => {\n const [activeTab, setActiveTab] = React.useState(initialTab);\n const changeTab = (_, newValue) => setActiveTab(newValue);\n return { activeTab, changeTab };\n};\n","import React from 'react';\n\nexport default function useInterval(callback, delay) {\n const savedCallback = React.useRef();\n\n React.useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n React.useEffect(() => {\n const tick = () => savedCallback.current();\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }, [delay]);\n}\n","import React from 'react';\n\nexport default function useThumbnailScrub(srcList = []) {\n const savedInterval = React.useRef();\n const initialImgIdx = React.useMemo(() => Math.floor(srcList.length / 2), [srcList]);\n const [imgIdx, setImgIdx] = React.useState();\n const imgIdxRef = React.useRef(imgIdx);\n React.useEffect(() => () => savedInterval.current && clearInterval(savedInterval.current), []);\n if (srcList.length === 0) return { width: 0 };\n\n imgIdxRef.current = imgIdx;\n const onMouseEnter = () => {\n const delay = 500;\n const tick = () => {\n if (imgIdxRef.current === undefined) {\n setImgIdx(0);\n } else if (imgIdxRef.current === srcList.length - 1) {\n clearInterval(savedInterval.current);\n } else {\n setImgIdx(imgIdxRef.current + 1);\n }\n };\n savedInterval.current = setInterval(tick, delay);\n };\n const onMouseLeave = () => {\n setImgIdx();\n clearInterval(savedInterval.current);\n };\n const imageSrc = srcList[imgIdx === undefined ? initialImgIdx : imgIdx];\n const width = imgIdx === undefined ? 0 : `${Math.floor((imgIdx / (srcList.length - 1)) * 100)}%`;\n return {\n imageSrc,\n onMouseEnter,\n onMouseLeave,\n width,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_TYPE = 'CHANGE_TYPE';\nconst CHANGE_STATE = 'CHANGE_STATE';\nconst CHANGE_PRIORITY = 'CHANGE_PRIORITY';\nconst CHANGE_STARTTIME = 'CHANGE_STARTTIME';\nconst CHANGE_FINISHTIME = 'CHANGE_FINISHTIME';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_TYPE,\n CHANGE_STATE,\n CHANGE_PRIORITY,\n CHANGE_STARTTIME,\n CHANGE_FINISHTIME,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, matrixParams = {} } = {}) => ({\n queryParams,\n matrixParams: {\n first: 1,\n number: 10,\n ...matrixParams,\n },\n rowsPerPage: 10,\n page: 0,\n jobMetadata: [],\n});\n\nconst searchReducer = (state, action) => {\n const { type, ...rest } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page = 0 } = action;\n const { rowsPerPage = 10 } = state;\n return {\n ...state,\n page,\n matrixParams: {\n ...state.matrixParams,\n first: page * rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n const { field, order = 'desc' } = action;\n return {\n ...state,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n sort: `${field} ${order}`,\n },\n };\n }\n case ACTION_TYPE.CHANGE_TYPE:\n case ACTION_TYPE.CHANGE_STATE:\n case ACTION_TYPE.CHANGE_PRIORITY: {\n const { field, value = [] } = rest;\n let matrixParams;\n if (!value) {\n const { [field]: deleteField, ...newMatrixParams } = state.matrixParams;\n matrixParams = { ...newMatrixParams, first: 1 };\n } else {\n matrixParams = {\n ...state.matrixParams,\n first: 1,\n [field]: Array.isArray(value) ? value.join(',') : value,\n };\n }\n return {\n ...state,\n page: 0,\n matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_STARTTIME:\n case ACTION_TYPE.CHANGE_FINISHTIME: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_JOBMETADATA: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value.length) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n jobMetadata: value,\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useJobSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeType = ({ field = [] }) => {\n const [{ name = 'type', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_TYPE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeState = ({ field = [] }) => {\n const [{ name = 'state', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STATE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangePriority = ({ field = [] }) => {\n const [{ name = 'priority', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_PRIORITY,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeStarttime = ({ field = [] }) => {\n const [{ name = 'starttime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STARTTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeFinishtime = ({ field = [] }) => {\n const [{ name = 'finishtime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_FINISHTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeJobmetadata = (value) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_JOBMETADATA,\n field: 'jobmetadata',\n value,\n });\n };\n return {\n state,\n onChangePage,\n onChangeSort,\n onChangeType,\n onChangeState,\n onChangePriority,\n onChangeStarttime,\n onChangeFinishtime,\n onChangeRowsPerPage,\n onChangeJobmetadata,\n };\n}\n","import React from 'react';\n\nconst useLocalStorage = (localStorageKey, defaultValue) => {\n const [value, setValue] = React.useState(\n JSON.parse(window.localStorage.getItem(localStorageKey) || JSON.stringify(defaultValue)),\n );\n\n React.useEffect(() => {\n window.localStorage.setItem(localStorageKey, JSON.stringify(value));\n }, [localStorageKey, value]);\n\n const getValue = () => JSON.parse(window.localStorage.getItem(localStorageKey));\n\n return [value, setValue, getValue];\n};\n\nexport default useLocalStorage;\n","// eslint-disable-next-line import/prefer-default-export\nexport function uuidv4() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n // eslint-disable-next-line\n (c ^ crypto.getRandomValues(new Uint8Array(1))[0] & 15 >> c / 4).toString(16));\n}\n\nexport function b64EncodeUnicode(str) {\n return btoa(\n encodeURIComponent(str).replace(/%([0-9A-F]{2})/g, (_, p1) => String.fromCharCode(`0x${p1}`)),\n );\n}\nexport function b64DecodeUnicode(str) {\n return decodeURIComponent(\n atob(str)\n .split('')\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''),\n );\n}\n","import React from 'react';\nimport {\n vsimport as ImportApi,\n ChunkedUpload,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport { uuidv4 } from '../utils';\n\nconst DEFAULT_AUDIO_SHAPETAGS = ['__mp3_160k'];\nconst DEFAULT_VIDEO_SHAPETAGS = ['__mp4'];\nconst DEFAULT_IMAGE_SHAPETAGS = ['__png'];\nconst AUDIO_MIMETYPE_PREFIX = 'audio';\nconst VIDEO_MIMETYPE_PREFIX = 'video';\nconst IMAGE_MIMETYPE_PREFIX = 'image';\nconst ADDITIONAL_VIDEO_MIMETYPES = ['application/mxf'];\nconst ADDITIONAL_IMAGE_MIMETYPES = [];\nconst ADDITIONAL_AUDIO_MIMETYPES = [];\n\nconst getDefaultShapeTags = (file) => {\n if (!file || !file.type) return [];\n const mimeType = file.type.toLowerCase();\n if (mimeType.startsWith(AUDIO_MIMETYPE_PREFIX) || ADDITIONAL_AUDIO_MIMETYPES.includes(mimeType))\n return DEFAULT_AUDIO_SHAPETAGS;\n if (mimeType.startsWith(VIDEO_MIMETYPE_PREFIX) || ADDITIONAL_VIDEO_MIMETYPES.includes(mimeType))\n return DEFAULT_VIDEO_SHAPETAGS;\n if (mimeType.startsWith(IMAGE_MIMETYPE_PREFIX) || ADDITIONAL_IMAGE_MIMETYPES.includes(mimeType))\n return DEFAULT_IMAGE_SHAPETAGS;\n return [];\n};\n\nconst chunkedUpload = (file, props = {}) =>\n new Promise((resolve, reject) => {\n const uploadInstance = new ChunkedUpload(file, {\n onFail: (error) => reject(error),\n onComplete: (resp) => resolve(resp),\n ...props,\n });\n uploadInstance.upload();\n });\n\nconst onUploadFile = ({\n file,\n collectionId,\n onProgress,\n metadata: propsMetadata = {},\n placeholderParams = {},\n importParams = {},\n chunkedUploadProps = {},\n generateTransferId = uuidv4,\n getShapeTags = getDefaultShapeTags,\n}) =>\n new Promise((resolve, reject) => {\n try {\n let itemId;\n onProgress({});\n const shapeTags = getShapeTags(file);\n const filename = file.name;\n const mimeType = file.type;\n const [mediaType] = mimeType.split('/');\n const metadata = {\n originalFilename: filename,\n mimeType,\n mediaType,\n ...propsMetadata,\n };\n const metadataDocument = createMetadataType(metadata);\n ImportApi.createImportPlaceholder({\n metadataDocument,\n queryParams: {\n container: 1,\n ...placeholderParams,\n },\n })\n .then(({ data: itemDocument }) => {\n itemId = itemDocument.id;\n if (!collectionId) return Promise.resolve();\n const collectionIds = Array.isArray(collectionId) ? collectionId : [collectionId];\n return Promise.all(\n collectionIds.map((id) =>\n CollectionApi.addCollectionEntity({\n collectionId: id,\n entityId: itemId,\n }),\n ),\n );\n })\n .then(() => {\n const transferId = generateTransferId();\n const queryParams = {\n filename,\n transferId,\n tag: shapeTags,\n ...importParams,\n };\n return chunkedUpload(file, {\n api: {\n method: ImportApi.createImportComponentRaw,\n props: {\n itemId,\n component: 'container',\n queryParams,\n },\n },\n onProgress,\n ...chunkedUploadProps,\n });\n })\n .then((response) => {\n resolve({ ...response, itemId, collectionId });\n })\n .catch((error) => reject(error));\n } catch (err) {\n /* eslint-disable-next-line no-console */\n console.error(err);\n reject(err);\n }\n });\n\nfunction useUploadFiles({\n onUploadFile: handleUploadFile = onUploadFile,\n initialMetadata = {},\n ...props\n}) {\n const [files, setFiles] = React.useState([]);\n React.useEffect(\n () => () => {\n // Make sure to revoke the data uris to avoid memory leaks\n files.forEach((file) => URL.revokeObjectURL(file.preview));\n },\n [files],\n );\n const onAddFiles = React.useCallback(\n (newFiles = []) => {\n const newFilesObj = newFiles.map((file) => ({\n file,\n metadata: { title: file.name, ...initialMetadata },\n }));\n setFiles((currentFiles) => newFilesObj.concat(currentFiles));\n },\n [initialMetadata],\n );\n const onChangeFile = React.useCallback(\n (idx, changeFile = {}) => {\n setFiles((currentFilesList) => {\n const currentFile = currentFilesList[idx];\n const { metadata: newMetadata, progress: newProgress } = changeFile;\n const { metadata: currentMetadata = {}, progress: currentProgress = {} } = currentFile;\n const newFilesList = [...currentFilesList];\n const newFile = { ...currentFile };\n if (newMetadata) newFile.metadata = { ...currentMetadata, ...newMetadata };\n if (newProgress) newFile.progress = { ...currentProgress, ...newProgress };\n newFilesList[idx] = newFile;\n return newFilesList;\n });\n },\n [setFiles],\n );\n const onChangeProgress = React.useCallback(\n (idx) => (newProgress = {}) => {\n onChangeFile(idx, { progress: newProgress });\n },\n [onChangeFile],\n );\n const onChangeMetadata = React.useCallback(\n (idx) => (newMetadata = {}) => {\n onChangeFile(idx, { metadata: newMetadata });\n },\n [onChangeFile],\n );\n const onUpload = React.useCallback(\n (uploadProps) =>\n files.reduce(\n (previousPromise, thisFile, idx) =>\n previousPromise.then((res) => {\n if (thisFile.progress) {\n return previousPromise;\n }\n return handleUploadFile({\n file: thisFile.file,\n onProgress: onChangeProgress(idx),\n metadata: thisFile.metadata,\n ...uploadProps,\n ...props,\n }).then((currentResult) => [...res, currentResult]);\n }),\n Promise.resolve([]),\n ),\n [files, handleUploadFile, onChangeProgress, props],\n );\n\n const onRemoveFile = React.useCallback(\n (idx) => () => {\n setFiles([...files].filter((_, i) => i !== idx));\n },\n [setFiles, files],\n );\n\n const onRemoveFiles = React.useCallback(\n (idxs) => () => {\n setFiles([...files].filter((_, i) => !idxs.includes(i)));\n },\n [setFiles, files],\n );\n\n return {\n onAddFiles,\n onChangeFile,\n onChangeMetadata,\n onUpload,\n onRemoveFile,\n onRemoveFiles,\n files,\n setFiles,\n };\n}\n\nexport default useUploadFiles;\n","import React from 'react';\nimport { b64DecodeUnicode } from '../utils';\n\nexport default function useQueryInitialState({\n history,\n queryName = 'q',\n defaultState = undefined,\n}) {\n const defaultStateRef = React.useRef(defaultState);\n const queryState = React.useMemo(() => {\n const searchParams = new URLSearchParams(history.location.search);\n const encodedQuery = searchParams.get(queryName);\n if (!encodedQuery) {\n return defaultStateRef.current;\n }\n try {\n const decodedQuery = b64DecodeUnicode(encodedQuery);\n return JSON.parse(decodedQuery);\n } catch (error) {\n // TODO: Show error snackbar: \"Could not parse search query\"\n // eslint-disable-next-line no-console\n console.error(error);\n history.replace({ pathName: history.location.pathName, search: '' });\n }\n return undefined;\n }, [defaultStateRef, history, queryName]);\n\n return { queryInitialState: queryState };\n}\n","import React from 'react';\nimport { b64EncodeUnicode } from '../utils';\nimport useUpdateEffect from './useUpdateEffect';\n\nexport default function useUpdateQueryState({ history, state, queryName = 'q' }) {\n const onSearchStateChange = React.useCallback(() => {\n const encodedQuery = b64EncodeUnicode(JSON.stringify(state));\n history.replace({\n pathName: history.location.pathName,\n search: `?${queryName}=${encodedQuery}`,\n });\n }, [history, queryName, state]);\n\n // Don't need to set query on mount\n useUpdateEffect(() => {\n onSearchStateChange(state);\n }, [onSearchStateChange, state]);\n}\n","import { useCallback } from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst useEntityAccess = ({ entityId, entityType }) => {\n const { request: listEntityAccess, data: accessControlList = {}, isLoading } = useApi(\n AccessApi.listEntityAccess,\n );\n const onList = useCallback(\n (props = {}) =>\n listEntityAccess({\n entityId,\n entityType,\n ...props,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [entityId, entityType],\n );\n const onRemove = useCallback(\n ({ accessId, ...props }) =>\n AccessApi.removeEntityAccess({\n accessId,\n entityId,\n entityType,\n ...props,\n }),\n [entityId, entityType],\n );\n const onAdd = useCallback(\n ({ accessControlDocument, ...props }) =>\n AccessApi.createEntityAccess({\n entityType,\n entityId,\n accessControlDocument,\n ...props,\n }),\n [entityId, entityType],\n );\n return {\n accessControlList,\n isLoading,\n onList,\n onRemove,\n onAdd,\n };\n};\n\nexport default useEntityAccess;\n","import React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { metadatafield as MetadataFieldApi, fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nconst getValueFromData = ({ data = [] } = {}, key) => {\n if (!key) return undefined;\n const { value } = data.find((d) => d.key === key) || {};\n return value;\n};\n\nconst defaultGetDataAttributes = (fieldOrGroup, keys) => {\n return Object.assign(\n {},\n ...keys.map((key) => {\n return {\n [key]: getValueFromData(fieldOrGroup, key),\n };\n }),\n );\n};\n\nconst getOptions = ({ values: { field } = {} } = {}) => {\n return field ? field.map((f) => ({ value: f.value, label: f.key || f.value })) : undefined;\n};\n\nconst convertValuesXmlToJson = (xmlString) => {\n const doc = new DOMParser().parseFromString(xmlString, 'application/xml');\n const fields = doc.getElementsByTagName('field');\n if (!fields.length) {\n return undefined;\n }\n const json = { field: [] };\n for (let i = 0; i < fields.length; i += 1) {\n const [keyNode, valueNode] = fields[i].childNodes;\n json.field.push({\n [keyNode.nodeName]: keyNode.firstChild.nodeValue,\n [valueNode.nodeName]: valueNode.firstChild.nodeValue,\n });\n }\n return json;\n};\n\nconst useAddMetadataFieldAttributes = ({\n fields,\n groups,\n getDataAttributes = defaultGetDataAttributes,\n fieldDataToInclude = 'label,displayType,required',\n groupDataToInclude = 'label,order',\n fieldQueryParams = {},\n groupQueryParams = {},\n}) => {\n const [isLoading, setIsLoading] = React.useState(false);\n const [fieldsWithAttributes, setFieldsWithAttributes] = React.useState(fields);\n const [groupsWithAttributes, setGroupsWithAttributes] = React.useState(groups);\n\n useDeepCompareEffect(() => {\n const addFieldAttributes = (fieldsArray = [], fieldsAttributes = {}) =>\n fieldsArray.map(({ name, ...overrides }) => {\n const fieldAttributes = fieldsAttributes[name] || {};\n const { label, ...dataAttributes } = getDataAttributes(\n fieldAttributes,\n fieldDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n type: fieldAttributes.type,\n options: getOptions(fieldAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n\n const addGroupAttributes = (groupsArray = [], groupsAttributes = {}, fieldsAttributes = {}) =>\n groupsArray.map(({ name, field, group, ...overrides }) => {\n const groupAttributes = groupsAttributes[name] || {};\n const childFields = field || (groupAttributes && groupAttributes.field);\n const childGroups = group || (groupAttributes && groupAttributes.group);\n const { label, ...dataAttributes } = getDataAttributes(\n groupAttributes,\n groupDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n order: getValueFromData(groupAttributes, 'order'),\n fields: addFieldAttributes(childFields, fieldsAttributes),\n groups: addGroupAttributes(childGroups, groupsAttributes, fieldsAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n let didCancel = false;\n async function fetchAttributesAsync() {\n setIsLoading(true);\n const fieldsAttributes = {};\n const groupsAttributes = {};\n let fieldPromises = [];\n if (fields) {\n const queryParams = { ...fieldQueryParams, data: fieldDataToInclude };\n fieldPromises = fields.map(async ({ name: fieldName }) => {\n try {\n const { data } = await MetadataFieldApi.getMetadataField({\n fieldName,\n queryParams,\n });\n fieldsAttributes[fieldName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${fieldName}`);\n }\n });\n }\n let groupPromises = [];\n if (groups) {\n const groupsToFetch = [...groups];\n const queryParams = { ...groupQueryParams, data: groupDataToInclude };\n groupPromises = groupsToFetch.map(async ({ name: groupName }) => {\n try {\n const { data } = await FieldGroupApi.getFieldGroup({\n groupName,\n queryParams,\n });\n const { field = [], group = [] } = data;\n field.forEach((f) => {\n const dataValues = f.data && f.data.find((e) => e.key === '__values');\n if (dataValues) {\n const jsonValues = convertValuesXmlToJson(dataValues.value);\n fieldsAttributes[f.name] = { ...f, values: jsonValues };\n }\n });\n group.forEach((g) => {\n groupsToFetch.push(g);\n });\n groupsAttributes[groupName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${groupName}`);\n }\n });\n }\n await Promise.all([...fieldPromises, ...groupPromises]);\n if (!didCancel) {\n if (Object.values(fieldsAttributes).some((v) => v)) {\n setFieldsWithAttributes(() => addFieldAttributes(fields, fieldsAttributes));\n }\n if (Object.values(groupsAttributes).some((v) => v)) {\n setGroupsWithAttributes(() => {\n const newGroupsWithAttributes = addGroupAttributes(\n groups,\n groupsAttributes,\n fieldsAttributes,\n );\n newGroupsWithAttributes.forEach((group) => {\n const { order } = group;\n if (order) {\n group.fields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n }\n });\n return newGroupsWithAttributes;\n });\n }\n setIsLoading(false);\n }\n }\n fetchAttributesAsync();\n return () => {\n didCancel = true;\n };\n }, [fields, groups, fieldDataToInclude, groupDataToInclude, fieldQueryParams, groupQueryParams]);\n\n return { fieldsWithAttributes, groupsWithAttributes, isLoading };\n};\n\nexport default useAddMetadataFieldAttributes;\n","import React from 'react';\nimport {\n library as LibraryApi,\n item as ItemApi,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport useSearch from './useSearch';\n\n// Has to be set so that the library isn't auto-deleted\nconst UPDATE_FREQUENCY = 1000;\n\n// Prevents access controls set on the library (i.e. saved search) from cascading down to items\nconst UPDATE_MODE = 'TRANSIENT';\n\nfunction saveSearch({ metadata, markerField, markerValue, itemSearchDocument }) {\n return ItemApi.searchItem({\n queryParams: {\n result: 'library',\n updateMode: UPDATE_MODE,\n updateFrequency: UPDATE_FREQUENCY,\n },\n itemSearchDocument,\n }).then(({ data: { library } }) =>\n CollectionApi.createCollection({\n collectionDocument: {\n metadata: markerField\n ? createMetadataType({\n [markerField]: markerValue || library,\n ...metadata,\n })\n : metadata,\n content: [\n {\n id: library,\n type: 'library',\n },\n ],\n },\n }),\n );\n}\n\nconst getLibraryFromCollection = ({ collectionId }) =>\n new Promise((resolve, reject) =>\n CollectionApi.getCollection({ collectionId, queryParams: { children: 'library' } }).then(\n ({ data: collectionType }) => {\n const { content = [] } = collectionType;\n const [libraryType] = content;\n if (!libraryType) reject(new Error('No Libraries'));\n resolve(libraryType);\n },\n ),\n );\n\nconst deleteSearch = ({ collectionId }) =>\n getLibraryFromCollection({ collectionId }).then(({ id: libraryId }) =>\n Promise.all([\n LibraryApi.removeLibrary({ libraryId }),\n CollectionApi.removeCollection({ collectionId }),\n ]),\n );\n\nfunction getLibrarySettings({ libraryId }) {\n return new Promise((resolve) =>\n LibraryApi.getLibrarySettings({ libraryId }).then(({ data: { query } }) => {\n resolve(query);\n }),\n );\n}\n\nconst getSavedSearchSettings = ({ collectionId }) =>\n new Promise((resolve) =>\n getLibraryFromCollection({ collectionId })\n .then(({ id: libraryId }) => getLibrarySettings({ libraryId }))\n .then(resolve),\n );\n\nexport default function useSavedSearch({\n markerField,\n markerValue,\n initialSearchState,\n onSaveSearch = saveSearch,\n onDeleteSearch = deleteSearch,\n onUpdateSearchMetadata = CollectionApi.updateCollectionMetadata,\n onGetSavedSearchSettings = getSavedSearchSettings,\n}) {\n const saveSearchWithMarker = React.useCallback(\n ({ metadata, itemSearchDocument }) =>\n onSaveSearch({\n metadata,\n markerField,\n markerValue,\n itemSearchDocument,\n }),\n [markerField, markerValue, onSaveSearch],\n );\n\n const mergeMarkerField = (itemSearchDocument = {}) => ({\n ...itemSearchDocument,\n operator: {\n field: [\n {\n name: markerField,\n value: [{ value: markerValue || '*' }],\n },\n ],\n operator: itemSearchDocument.operator ? [itemSearchDocument.operator] : [],\n operation: 'AND',\n },\n });\n\n const searchProps = useSearch({\n ...initialSearchState,\n itemSearchDocument: mergeMarkerField(),\n });\n\n const { setItemSearchDocument, ...props } = searchProps;\n\n return {\n onSaveSearch: saveSearchWithMarker,\n onDeleteSearch,\n onUpdateSearchMetadata,\n onGetSavedSearchSettings,\n searchProps: {\n setItemSearchDocument: (itemSearchDocument) =>\n setItemSearchDocument(mergeMarkerField(itemSearchDocument)),\n ...props,\n },\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useSearchItem({ itemSearchDocument, queryParams, matrixParams }) {\n const { request, data: itemListType = {}, isLoading, isError } = useApi(ItemApi.searchItem);\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n return {\n itemListType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\n\nexport const useMouseDownPosition = () => {\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n\n React.useEffect(() => {\n const setFromEvent = (e) => setPosition({ x: e.clientX, y: e.clientY });\n window.addEventListener('mousedown', setFromEvent);\n\n return () => {\n window.removeEventListener('mousedown', setFromEvent);\n };\n }, []);\n\n return position;\n};\n\nexport default useMouseDownPosition;\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: collectionType = {}, isLoading, isError } = useApi(\n CollectionApi.getCollection,\n );\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n collectionType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: itemListType = {} } = useApi(CollectionApi.getCollectionItem);\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n itemListType,\n onRefresh,\n };\n}\n","import React from 'react';\nimport {\n item as ItemApi,\n collection as CollectionApi,\n library as LibraryApi,\n} from '@vidispine/vdt-api';\n\nimport useApi from './useApi';\n\nconst useGetEntity = ({ entityId, entityType }) => {\n let dataType;\n let entityApi;\n let entityTypeId;\n switch (entityType) {\n case 'collection':\n dataType = 'collectionType';\n entityTypeId = 'collectionId';\n entityApi = CollectionApi.getCollection;\n break;\n case 'library':\n dataType = 'libraryType';\n entityTypeId = 'libraryId';\n entityApi = LibraryApi.getLibrary;\n break;\n case 'item':\n dataType = 'itemType';\n entityTypeId = 'itemId';\n entityApi = ItemApi.getItem;\n break;\n default:\n throw new Error(`unknown entityType}`);\n }\n const { request, data, ...apiProps } = useApi(entityApi);\n const onGetEntity = React.useCallback(\n (props) => request({ [entityTypeId]: entityId, ...props }),\n [entityId, entityTypeId, request],\n );\n return {\n [dataType]: data,\n [entityTypeId]: entityId,\n onGetEntity,\n ...apiProps,\n };\n};\n\nexport default useGetEntity;\n","import React from 'react';\nimport { user as UserApi, group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useUser(initialState) {\n const { data: userType, request } = useApi(UserApi.getUser, { data: initialState });\n const { userName } = userType || {};\n const getUser = React.useCallback(() => request({ userName }), [request, userName]);\n React.useEffect(() => {\n if (userName) getUser();\n }, [getUser, userName]);\n\n const updateUser = React.useCallback(\n ({ userDocument }) =>\n UserApi.updateUser({\n userName,\n userDocument,\n }).then(() => request({ userName: userDocument.userName })),\n [request, userName],\n );\n\n const updateUserGroups = React.useCallback(\n ({ groups = [] }) =>\n UserApi.updateUserGroup({\n userName,\n groupListDocument: {\n group: groups.map((g) => ({ groupName: g })),\n },\n }).then(getUser),\n [getUser, userName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (groupName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getUser),\n [getUser, userName],\n );\n\n const changePassword = React.useCallback(\n (password) =>\n UserApi.updateUser({\n userName,\n userDocument: {\n password,\n },\n queryParams: {\n passwordType: 'raw',\n },\n }),\n [userName],\n );\n const deleteUser = ({ queryParams = {} } = {}) =>\n UserApi.disableUser({ userName, queryParams: { hard: true, ...queryParams } });\n const disableUser = (args) => UserApi.disableUser({ userName, ...args }).then(getUser);\n const enableUser = (args) => UserApi.enableUser({ userName, ...args }).then(getUser);\n\n return {\n userType,\n getUser,\n updateUser,\n updateUserGroups,\n removeUserFromGroup,\n disableUser,\n enableUser,\n deleteUser,\n changePassword,\n };\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n userSearchDocument: {\n sort: [\n {\n field: 'username',\n order: 'ascending',\n },\n ],\n },\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n userSearchDocument: {\n ...state.userSearchDocument,\n field: [\n {\n name: action.field || 'username',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchUser(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: userListDocument, request: searchUser, hasLoaded, isError } = useApi(\n UserApi.searchUser,\n );\n\n const onSearchUser = () =>\n searchUser({\n userSearchDocument: state.userSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchUser();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.userSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n userListDocument,\n onSearchUser,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n };\n}\n","import { group as GroupApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListGroup = (args) => {\n const { request, data: groupListType = {}, isLoading } = useApi(GroupApi.listGroup);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n groupListType,\n isLoading,\n };\n};\n\nexport default useListGroup;\n","import { user as UserApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListUser = (args) => {\n const { request, data: userListType = {}, isLoading } = useApi(UserApi.listUser);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n userListType,\n isLoading,\n };\n};\n\nexport default useListUser;\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\nconst HIDE_ROLES = 'HIDE_ROLES';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n HIDE_ROLES,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n groupSearchDocument: {},\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.HIDE_ROLES: {\n const { hideRoles } = action;\n const role = hideRoles === true ? false : undefined;\n return {\n ...state,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n role,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n groupSearchDocument: {\n ...state.groupSearchDocument,\n field: [\n {\n name: action.field || 'groupname',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchGroup(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: groupListDocument, request: searchGroup, hasLoaded, isError } = useApi(\n GroupApi.searchGroup,\n );\n\n const onSearchGroup = () =>\n searchGroup({\n groupSearchDocument: state.groupSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchGroup();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.groupSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onHideRoles = ({ hideRoles }) =>\n dispatch({\n type: ACTION_TYPE.HIDE_ROLES,\n hideRoles,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n groupListDocument,\n onSearchGroup,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n onHideRoles,\n };\n}\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useGroup(initialState) {\n const { data: groupType, request } = useApi(GroupApi.getGroup, { data: initialState });\n const { groupName } = groupType || {};\n\n const getGroup = React.useCallback(() => request({ groupName }), [request, groupName]);\n\n React.useEffect(() => {\n if (groupName) getGroup();\n }, [getGroup, groupName]);\n\n const updateGroup = React.useCallback(\n ({ groupDocument }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addChildGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n childGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addParentGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n parentGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addUsersToGroup = React.useCallback(\n ({ users }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n userList: {\n user: users.map((u) => ({ userName: u })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (userName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeChildGroup = React.useCallback(\n (childGroupName) =>\n GroupApi.removeGroupChildren({\n groupName,\n childGroupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeFromParentGroup = React.useCallback(\n (parentGroupName) =>\n GroupApi.removeGroupChildren({\n groupName: parentGroupName,\n childGroupName: groupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeGroup = React.useCallback(() => GroupApi.removeGroup({ groupName }), [groupName]);\n\n return {\n groupType,\n getGroup,\n updateGroup,\n removeGroup,\n addChildGroups,\n addParentGroups,\n addUsersToGroup,\n removeUserFromGroup,\n removeChildGroup,\n removeFromParentGroup,\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetItem({ itemId, queryParams = {}, refreshOnMount = true }) {\n const { request, data: itemType = {}, isLoading, isError } = useApi(ItemApi.getItem);\n const onRefresh = () => request({ itemId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [itemId, queryParams]);\n return {\n itemType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nconst useCollectionAutoPlay = ({ collectionId, defaultEnabled = true }) => {\n const [nextPlaying, setNextPlaying] = React.useState();\n const [isAutoPlayEnabled, setIsAutoPlayEnabled] = React.useState(defaultEnabled);\n const toggleAutoPlay = (newValue) =>\n setIsAutoPlayEnabled((prevValue) => (newValue !== undefined ? newValue : !prevValue));\n const allItemsRef = React.useRef();\n const orderItemsRef = React.useRef();\n const hitsRef = React.useRef();\n const onNext = React.useCallback(\n ({ itemId }) => {\n if (isAutoPlayEnabled === false) return;\n const searchDocument = {\n field: [\n {\n name: 'mediaType',\n value: [{ value: 'video' }, { value: 'audio' }],\n },\n ],\n };\n const searchForNext = ({ first, number } = {}) => {\n const { current: allItems } = allItemsRef;\n const { current: orderItems } = orderItemsRef;\n if (!Array.isArray(allItems)) {\n Promise.all([\n CollectionApi.getCollection({\n collectionId,\n queryParams: { children: 'item' },\n }),\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first, number },\n }),\n ]).then(([{ data: collectionType }, { data: itemListType }]) => {\n const { hits, item: itemList = [] } = itemListType;\n allItemsRef.current = itemList.map(({ id }) => id);\n hitsRef.current = hits;\n const { content: contentList } = collectionType;\n orderItemsRef.current = contentList;\n searchForNext({ first: 1, number: 100 });\n });\n return;\n }\n const { current: hits } = hitsRef;\n const currentItemIdx = orderItems.findIndex(({ id: thisId }) => thisId === itemId);\n if (currentItemIdx + 1 === orderItems.length) {\n // last item in the list\n setNextPlaying();\n return;\n }\n if (currentItemIdx === -1 && hits > allItems.length) {\n // request more items to find the currentItem\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first: first + number, number },\n }).then(({ data: itemListType }) => {\n const { item: itemList = [] } = itemListType;\n allItemsRef.current.push(...itemList.map(({ id }) => id));\n searchForNext({ first: first + number, number });\n });\n return;\n }\n const remainingItems = orderItems.slice(currentItemIdx + 1);\n const nextItem = remainingItems.find(({ id: thisId }) => allItems.includes(thisId));\n setNextPlaying(nextItem);\n };\n searchForNext();\n },\n [collectionId, isAutoPlayEnabled],\n );\n return {\n isAutoPlayEnabled,\n toggleAutoPlay,\n setNextPlaying,\n nextPlaying,\n onNext,\n };\n};\n\nexport default useCollectionAutoPlay;\n","import React from 'react';\nimport { parseMetadataType } from '@vidispine/vdt-js';\n\nexport default function MetadataType({\n itemType,\n collectionType,\n joinValue = ',',\n flat = true,\n children,\n ...props\n}) {\n const entityType = itemType || collectionType || {};\n const { metadata: metadataType } = entityType;\n const metadata = React.useMemo(() => parseMetadataType(metadataType, { joinValue, flat }), [\n flat,\n joinValue,\n metadataType,\n ]);\n const cloneProps = {\n ...props,\n ...metadata,\n itemType,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n responseRef,\n initialState,\n children,\n}) {\n const { request, data: collectionListType = {}, isLoading, isError } = useApi(\n CollectionApi.searchCollection,\n initialState,\n responseRef,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n collectionListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useSearchItem from '../hooks/useSearchItem';\n\nexport default function SearchItem({ itemSearchDocument, queryParams, matrixParams, children }) {\n const { itemListType, onRefresh, isLoading, isError } = useSearchItem({\n itemSearchDocument,\n queryParams,\n matrixParams,\n });\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n itemListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { search as SearchApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchItemCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n children,\n}) {\n const { request, data: searchResultType = {}, isLoading, isError } = useApi(\n SearchApi.searchItemCollection,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n searchResultType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetItem from '../hooks/useGetItem';\n\nexport default function GetItem({ itemId, queryParams, refreshOnMount, children }) {\n const { itemType, onRefresh, isLoading, isError } = useGetItem({\n itemId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n itemId,\n queryParams,\n itemType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetCollection from '../hooks/useGetCollection';\n\nexport default function GetCollectionContent({\n collectionId,\n queryParams,\n refreshOnMount,\n children,\n}) {\n const { collectionType, onRefresh, isLoading, isError } = useGetCollection({\n collectionId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n collectionId,\n queryParams,\n collectionType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { job as JobApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetJobs({ matrixParams, queryParams, children }) {\n const { request, data: jobs = {}, isLoading, isError } = useApi(JobApi.listJob);\n const onRefresh = () => request({ matrixParams, queryParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [matrixParams, queryParams]);\n const cloneProps = {\n matrixParams,\n queryParams,\n onRefresh,\n isLoading,\n isError,\n jobs,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from '../hooks/useApi';\n\nexport default function ListEntityAccess({ entityId, entityType, queryParams, children }) {\n const { request, data: accessControlList = {}, isLoading } = useApi(AccessApi.listEntityAccess);\n const onRefresh = () => request({ entityId, entityType, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entityId, entityType, queryParams]);\n const cloneProps = {\n entityId,\n entityType,\n queryParams,\n accessControlList,\n onRefresh,\n isLoading,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nexport default class VidispineApi extends React.Component {\n constructor(props) {\n super(props);\n const { serverUrl, token, username, password, runAs } = props;\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n }\n }\n\n componentDidUpdate(prevProps) {\n const { serverUrl, token, username, password, runAs } = this.props;\n if (prevProps.serverUrl !== serverUrl) {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n } else {\n delete api.defaultClient.defaults.baseURL;\n }\n }\n if (prevProps.token !== token) {\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n delete api.defaultClient.defaults.headers.Authorization;\n }\n }\n if (!token && (prevProps.username !== username || prevProps.password !== password)) {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (prevProps.runAs !== runAs) {\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n } else {\n delete api.defaultClient.defaults.headers.RunAs;\n }\n }\n }\n\n render() {\n const { children, username, serverUrl } = this.props;\n const cloneProps = { username, serverUrl };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n }\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { utils as api, user as UserApi } from '@vidispine/vdt-api';\nimport VidispineApi from './VidispineApi';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\n\nconst handleOnGetToken = ({ userName, password, serverUrl }) => {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n const queryParams = { seconds: 2592000, autoRefresh: 'true' };\n const headers = { password, username: userName };\n try {\n UserApi.getToken({ queryParams, headers })\n .then(({ data: token }) => token)\n .catch(({ response = {}, message = 'Unknown error.' }) => {\n let submissionError = message;\n if (response.status === 401) {\n submissionError = 'Incorrect Username/Password';\n }\n throw submissionError;\n });\n } catch (error) {\n const submissionError = 'Incorrect Username/Password';\n throw submissionError;\n }\n};\n\nexport default function Auth({\n LoginComponent,\n LoginProps = {},\n AppComponent,\n AppProps = {},\n onGetToken = handleOnGetToken,\n onSuccess,\n onError,\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n ...props\n}) {\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token,\n [VIDISPINE_USERNAME]: userName,\n [VIDISPINE_SERVER_URL]: serverUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const onLogin = (values) => {\n let submissionError;\n try {\n onGetToken(values)\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) return onError(submissionError);\n throw submissionError;\n });\n } catch (error) {\n submissionError = error;\n if (onError) return onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = () => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n };\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AppComponent onLogout={onLogout} {...props} {...AppProps} />\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n {...props}\n {...LoginProps}\n />\n )}\n </>\n );\n}\n","import React from 'react';\n\nconst ErrorBoundaryComponent = ({ error, info }) => (\n <div\n style={{\n height: '100%',\n maxHeight: '100vh',\n width: '100%',\n maxWidth: '100vw',\n backgroundColor: 'red',\n color: 'white',\n }}\n >\n {error && <div>{error.toString()}</div>}\n {info && <div>{info.componentStack}</div>}\n </div>\n);\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { error, hasError: true };\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const { hasError, info } = this.state;\n const { info: nextInfo } = nextState;\n if (info === nextInfo && hasError === true) return false;\n return true;\n }\n\n componentDidCatch(error, info) {\n const { onError } = this.props;\n if (typeof onError === 'function') {\n try {\n onError(error, info);\n } catch (onErrorError) {\n return;\n }\n }\n this.setState({ info });\n }\n\n render() {\n const { children } = this.props;\n const { hasError, error, info } = this.state;\n if (hasError) {\n return <ErrorBoundaryComponent info={info} error={error} />;\n }\n return children;\n }\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport { fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetFieldGroup({ groupName, queryParams, children }) {\n const { request, data: metadataFieldGroupDocument, isLoading, isError } = useApi(\n FieldGroupApi.getFieldGroup,\n );\n const onRefresh = () => request({ groupName, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupName, queryParams]);\n const cloneProps = {\n groupName,\n queryParams,\n metadataFieldGroupDocument,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport { roles as ROLES } from '@vidispine/vdt-js';\n\nconst RolesContext = React.createContext();\n\nfunction RolesProvider({ intialState = {}, onRefresh, userName: knownUserName, children }) {\n const [groupListType, setGroupListType] = React.useState(intialState);\n const onGetUserRole = () => {\n if (knownUserName) {\n UserApi.getUserRole({ userName: knownUserName }).then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data);\n });\n } else {\n let iAm;\n UserApi.whoAmI()\n .then(({ data: userName }) => {\n iAm = userName;\n return UserApi.getUserRole({ userName });\n })\n .then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data, iAm);\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useEffect(onGetUserRole, [knownUserName]);\n return <RolesContext.Provider value={groupListType}>{children}</RolesContext.Provider>;\n}\n\nfunction useRoles() {\n const groupListType = React.useContext(RolesContext);\n if (groupListType === undefined) {\n throw new Error('useRoles must be used within RolesContext');\n }\n const hasRole = (roleName) => {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { group: groupList } = groupListType;\n if (!Array.isArray(groupList)) return null;\n const groupNames = groupList.map(({ groupName }) => groupName);\n if (groupNames.includes(ROLES.SUPER_ACCESS_USER)) return true;\n if (Array.isArray(roleName)) {\n return roleName.findIndex((thisRole) => groupNames.includes(thisRole)) > -1;\n }\n return groupNames.includes(roleName);\n };\n return { hasRole, groupListType };\n}\n\nexport { RolesProvider, useRoles };\n","import React from 'react';\nimport { useRoles } from '../context/RolesContext';\n\nexport default function HasRole({ roleName, allow, deny, loading }) {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { hasRole } = useRoles();\n const checkedRole = hasRole(roleName);\n if (React.isValidElement(allow) && checkedRole === true) {\n return allow;\n }\n if (React.isValidElement(deny) && checkedRole === false) {\n return deny;\n }\n if (React.isValidElement(loading) && checkedRole === null) {\n return loading;\n }\n return null;\n}\n","import React from 'react';\n\nexport default function ComposeProviders({ providers = [], children, ...props }) {\n return providers.reduceRight((acc, Provider) => {\n if (typeof Provider === 'function') {\n return (\n <Provider\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {acc}\n </Provider>\n );\n }\n const { provider: ProviderComponent, ...providerProps } = Provider;\n return (\n <ProviderComponent\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...providerProps}\n >\n {acc}\n </ProviderComponent>\n );\n }, children);\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\n\nimport ErrorBoundary from '../wrappers/ErrorBoundary';\n\nconst withErrorBoundary = (WrappedComponent, errorBoundaryProps = {}) => (props) => (\n <ErrorBoundary {...errorBoundaryProps}>\n <WrappedComponent {...props} />\n </ErrorBoundary>\n);\n\nexport default withErrorBoundary;\n","export const compose = (...funcs) =>\n funcs.reduce(\n (a, b) => (...args) => a(b(...args)),\n (arg) => arg,\n );\n\nexport default compose;\n","import React from 'react';\nimport { uuidv4 } from '../utils';\n\nexport const BinContext = React.createContext();\n\nconst defaultIsUniqueBinItem = (\n bin,\n { entityId, entityType, entityTimespan: { start, end, field: [{ name } = {}] = [] } = {} },\n) => {\n const entityExistsInBin = bin.some(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n let entityTimespanExistsInBin = false;\n if (entityExistsInBin) {\n const binEntitiesWithSameId = bin.filter(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n binEntitiesWithSameId.forEach(\n ({\n entityTimespan: { start: beStart, end: beEnd, field: [{ name: beName } = {}] = [] } = {},\n }) => {\n if (start === beStart && end === beEnd && name === beName) {\n entityTimespanExistsInBin = true;\n }\n },\n );\n }\n return !entityExistsInBin || !entityTimespanExistsInBin;\n};\nexport function BinProvider({\n onChange,\n children,\n initialState = [],\n allowDuplicates: defaultAllowDuplicates = false,\n isUniqueBinItem = defaultIsUniqueBinItem,\n}) {\n const [binState, setBinState] = React.useState(initialState);\n const [allowDuplicates, setAllowDuplicates] = React.useState(defaultAllowDuplicates);\n\n const onDelete = (binIdToDelete) => {\n if (!binIdToDelete || !['string', 'number'].includes(typeof binIdToDelete)) {\n // eslint-disable-next-line no-console\n console.error('BinProvider onDelete called without a binId of the entity to delete');\n return;\n }\n setBinState((state) => {\n const newState = state.filter((o) => o.binId !== binIdToDelete);\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n const onEmptyBin = () => {\n const newState = [];\n setBinState(newState);\n if (onChange) onChange(newState);\n };\n\n const createBinObject = (binObject) => {\n const [binId] = uuidv4().split('-');\n return { binId, ...binObject };\n };\n\n const handleDrop = ({ dragInfo = {} } = {}) => {\n const { entityId, entityType, entity } = dragInfo;\n if (!entityId || !entityType || !entity) {\n throw new Error('Dragged element needs to have entityId, entityType and entity props');\n }\n setBinState((state = []) => {\n if (isUniqueBinItem(state, dragInfo) || allowDuplicates) {\n const newState = [...state, createBinObject(dragInfo)];\n if (onChange) onChange(newState);\n return newState;\n }\n return state;\n });\n };\n\n const handleSort = ({ dragId, hoverId, originalDragIndex }) => {\n if (dragId === undefined || (hoverId === undefined && originalDragIndex === undefined)) return;\n setBinState((state) => {\n const newState = [...state];\n const dragIndex = binState.findIndex((o) => o.binId === dragId);\n const hoverIndex = binState.findIndex((o) => o.binId === hoverId);\n const newDragIndex = hoverIndex > -1 ? hoverIndex : originalDragIndex;\n [newState[newDragIndex], newState[dragIndex]] = [newState[dragIndex], newState[newDragIndex]];\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n return (\n <BinContext.Provider\n value={{\n setBin: setBinState,\n bin: binState,\n allowDuplicates,\n setAllowDuplicates,\n onDrop: handleDrop,\n onSort: handleSort,\n onFind: () => null,\n onEmptyBin,\n onDelete,\n }}\n >\n {children}\n </BinContext.Provider>\n );\n}\n","import React from 'react';\nimport { metadata as MetadataApi } from '@vidispine/vdt-api';\n\nconst SettingsDispatchContext = React.createContext();\nconst SettingsStateContext = React.createContext();\n\nconst UPDATE_ALL_SETTINGS = 'UPDATE_ALL_SETTINGS';\nconst UPDATE_SETTING = 'UPDATE_SETTING';\nconst UPDATE_USERNAME = 'UPDATE_USERNAME';\nconst REMOVE_SETTING = 'REMOVE_SETTING';\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case UPDATE_USERNAME: {\n return { ...state, userName: action.userName };\n }\n case UPDATE_ALL_SETTINGS: {\n return { ...state, settings: action.settings };\n }\n case UPDATE_SETTING: {\n const settings = { ...state.settings, ...action.setting };\n return { ...state, settings };\n }\n case REMOVE_SETTING: {\n const settings = { ...state.settings };\n delete settings[action.key];\n return { ...state, settings };\n }\n default:\n return state;\n }\n};\n\nconst SettingsProvider = ({\n userName: initialUsername,\n settingsKey,\n children,\n initialSettings = {},\n onChange,\n getSettingsApi = MetadataApi.getSimpleMetadataKey,\n updateSettingsApi = MetadataApi.updateSimpleMetadataKey,\n}) => {\n const [state, dispatch] = React.useReducer(reducer, {\n settings: initialSettings,\n userName: initialUsername,\n });\n const currentSettingsFromServer = React.useRef();\n\n React.useEffect(() => {\n const { userName } = state;\n if (!getSettingsApi || !userName) return;\n getSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n })\n .then(({ data: settings }) => {\n dispatch({\n type: UPDATE_ALL_SETTINGS,\n settings,\n userName,\n settingsKey,\n });\n currentSettingsFromServer.current = JSON.stringify(settings);\n })\n .catch((error) => {\n const { response } = error;\n if (response.status !== 404) {\n throw new Error(error);\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.userName]);\n\n React.useEffect(() => {\n if (onChange) onChange(state.settings);\n const { userName } = state;\n if (!updateSettingsApi || !userName) return;\n const newValue = JSON.stringify(state.settings);\n const currentValue = currentSettingsFromServer.current;\n if (!currentValue || newValue === currentValue) return;\n updateSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n value: newValue,\n });\n currentSettingsFromServer.current = newValue;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.settings]);\n\n return (\n <SettingsStateContext.Provider value={state}>\n <SettingsDispatchContext.Provider value={dispatch}>\n {children}\n </SettingsDispatchContext.Provider>\n </SettingsStateContext.Provider>\n );\n};\n\nconst useSettingsState = () => {\n const state = React.useContext(SettingsStateContext);\n if (!state) throw new Error('useSettingsState must be used within SettingsStateContext');\n return state;\n};\n\nconst useSettingsDispatch = () => {\n const dispatch = React.useContext(SettingsDispatchContext);\n if (!dispatch) throw new Error('useSettingsDispatch must be used within SettingsDispatchContext');\n return dispatch;\n};\n\nconst useSettingsActions = () => {\n const dispatch = useSettingsDispatch();\n const updateAllSettings = React.useCallback(\n (settings) => dispatch({ type: UPDATE_ALL_SETTINGS, settings }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateSetting = React.useCallback(\n (setting) => dispatch({ type: UPDATE_SETTING, setting }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateUsername = React.useCallback(\n (userName) => dispatch({ type: UPDATE_USERNAME, userName }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const removeSetting = React.useCallback((key) => dispatch({ type: REMOVE_SETTING, key }), []);\n return {\n updateAllSettings,\n updateSetting,\n updateUsername,\n removeSetting,\n };\n};\n\nconst useSettings = () => {\n const { settings = {} } = useSettingsState();\n const actions = useSettingsActions();\n return {\n ...actions,\n settings,\n };\n};\n\nexport { SettingsProvider, useSettingsActions, useSettings };\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { user as UserApi, noauth as NoAuthApi, utils as api } from '@vidispine/vdt-api';\n\nimport { VidispineApi } from '../wrappers';\nimport { useApi } from '../hooks';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\nconst ERROR_CREDENTIALS = 'Incorrect username or password';\nconst ERROR_OFFLINE = 'Offline or CORS not configured';\nconst ERROR_TOKEN_EXPIRED = 'Session expired';\nconst ERROR_SERVER_MISMATCH = 'VIDISPINE_URL mismatch';\n\nconst getErrorMessage = (serverUrl) => {\n try {\n // NoAuthApi.isOnline throws cors error after multiple requests\n return NoAuthApi.getSelfTest({ baseURL: serverUrl })\n .then(() => ERROR_CREDENTIALS)\n .catch(() => ERROR_OFFLINE);\n } catch (_) {\n return Promise.resolve(ERROR_OFFLINE);\n }\n};\n\nconst defaultOnGetToken = ({ maxAge: seconds = 60, userName, password, serverUrl }) => {\n try {\n return UserApi.getToken({\n queryParams: { seconds, autoRefresh: 'true' },\n headers: { password, username: userName },\n baseURL: serverUrl,\n })\n .then(({ data: token }) => {\n return token;\n })\n .catch(() => {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n });\n } catch (_) {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n }\n};\n\nexport const AuthContext = React.createContext({\n serverUrl: null,\n token: null,\n user: null,\n userName: null,\n onLogin: () => null,\n onLogout: () => null,\n});\n\nexport const AuthProvider = ({\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n LoginComponent,\n LoginProps = {},\n onGetToken = defaultOnGetToken,\n onSuccess,\n onError,\n serverUrl: propsServerUrl,\n userName: propsUserName,\n token: propsToken,\n children,\n}) => {\n const { data: userType, request: getUser } = useApi(UserApi.getUser);\n\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token = propsToken,\n [VIDISPINE_USERNAME]: userName = propsUserName,\n [VIDISPINE_SERVER_URL]: serverUrl = propsServerUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const { maxAge } = cookieOptions;\n const onLogin = (values) => {\n let submissionError;\n try {\n return onGetToken({ maxAge, ...values })\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) onError(submissionError);\n });\n } catch (error) {\n submissionError = error;\n if (onError) onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = React.useCallback(() => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n }, [cookieOptions, rememberMe, removeCookie]);\n\n const responseInterceptor = React.useRef();\n React.useEffect(() => {\n if (token) {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n responseInterceptor.current = api.defaultClient.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n }\n } else {\n const { config: { baseURL } = {} } = error;\n NoAuthApi.getSelfTest({ baseURL })\n .then(() => {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n })\n .catch(() => null); // Will throw if offline or CORS error\n }\n return Promise.reject(error);\n },\n );\n }\n return () => {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n };\n }, [onLogout, onError, token]);\n\n React.useEffect(() => {\n if (token && userName === undefined) {\n UserApi.whoAmI().then(({ data: newUserName }) =>\n setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userName, token]);\n\n React.useEffect(() => {\n if (token && userName && userType === undefined) getUser({ userName });\n }, [userName, token, userType, getUser, onLogout]);\n React.useEffect(() => {\n if (token && serverUrl && propsServerUrl && serverUrl !== propsServerUrl) {\n onLogout();\n if (onError) onError(Error(ERROR_SERVER_MISMATCH));\n }\n }, [token, serverUrl, propsServerUrl, onLogout, onError]);\n\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AuthContext.Provider\n value={{\n serverUrl,\n token,\n userType,\n userName,\n onLogin,\n onLogout,\n }}\n >\n {children}\n </AuthContext.Provider>\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...LoginProps}\n />\n )}\n </>\n );\n};\n\nexport const useAuthContext = () => {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error('useAuth must be used within an AuthContext');\n }\n\n return context;\n};\n","import React from 'react';\n\nexport default ({\n children,\n setDrag,\n onDrop: onDropProp,\n onDragEnter: onDragEnterProp,\n onDragOver: onDragOverProp,\n onDragLeave: onDragLeaveProp,\n style,\n}) => {\n const [dragCounter, setDragCounter] = React.useState(0);\n\n const onDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDrag(false);\n if (onDropProp) onDropProp(e);\n };\n\n const onDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter + 1);\n if (dragCounter === 0) setDrag(true);\n if (onDragEnterProp) onDragEnterProp(e);\n };\n\n const onDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (onDragOverProp) onDragOverProp(e);\n };\n\n const onDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter - 1);\n if (dragCounter === 1) setDrag(false);\n if (onDragLeaveProp) onDragLeaveProp(e);\n };\n\n return (\n <div\n onDragEnter={(e) => onDragEnter(e)}\n onDragOver={(e) => onDragOver(e)}\n onDrop={(e) => onDrop(e)}\n onDragLeave={(e) => onDragLeave(e)}\n style={style}\n >\n {children}\n </div>\n );\n};\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\n\nexport const handleAddEntity = ({ entityId, entityType, collectionId, rootParentId, onError }) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.addCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not add ${entityId} to collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\nexport const handleRemoveEntity = ({\n entityId,\n entityType,\n collectionId,\n rootParentId,\n onError,\n}) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.removeCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not remove ${entityId} from collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\n\nexport const handleMoveEntity = ({\n entityId,\n entityType,\n addToCollectionId,\n removeFromCollectionId,\n rootParentId,\n onAddEntity = handleAddEntity,\n onRemoveEntity = handleRemoveEntity,\n onMoved = () => null,\n onAdded = () => null,\n onRemoved = () => null,\n // eslint-disable-next-line no-console\n onError = ({ message, error }) => console.error(`${message}\\n${error}`),\n}) => {\n if (!addToCollectionId) {\n onError({ message: 'Missing the collection id to add entity to', error: '' });\n return;\n }\n if (!removeFromCollectionId) {\n onError({ message: 'Missing the collection id to remove entity from', error: '' });\n return;\n }\n try {\n const addPromise = onAddEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: addToCollectionId,\n onError,\n });\n const removePromise = onRemoveEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: removeFromCollectionId,\n onError,\n });\n const promises = [addPromise, removePromise].filter((e) => e !== undefined);\n Promise.allSettled(promises)\n .then((results) => {\n const failedResults = results.filter((r) => r.status !== 'fulfilled');\n const allSucceeded = failedResults.length === 0;\n const allFailed = failedResults.length === promises.length;\n const oneFailed = failedResults.length === 1;\n if (allSucceeded) {\n onMoved();\n onAdded();\n onRemoved();\n } else if (allFailed) {\n onError({\n message:\n `Could not move ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n error: failedResults.map((fr) => fr.reason).join('\\n'),\n });\n } else if (oneFailed) {\n const failedRequest = failedResults[0].reason.config.method;\n const failedToRemove = failedRequest === 'delete';\n const failedToAdd = failedRequest === 'put';\n onError({\n message: failedToRemove\n ? `Could not remove ${entityId} from collection ${removeFromCollectionId}`\n : `Could not add ${entityId} to collection ${addToCollectionId}`,\n error: failedResults[0].reason,\n });\n let rollbackPromise;\n if (failedToRemove) {\n rollbackPromise = onRemoveEntity({\n entityId,\n entityType,\n collectionId: addToCollectionId,\n onError,\n });\n } else if (failedToAdd) {\n rollbackPromise = onAddEntity({\n entityId,\n entityType,\n collectionId: removeFromCollectionId,\n onError,\n });\n }\n if (rollbackPromise) {\n rollbackPromise\n .then(() => {\n // eslint-disable-next-line no-console\n console.info(\n `Rollbacked moving ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n );\n })\n .catch((error) => {\n onError({ message: 'Could not rollback after moving entity', error });\n });\n }\n }\n })\n .catch((error) => {\n onError({\n message: `Could not add ${entityId} to collection ${addToCollectionId}`,\n error,\n });\n });\n } catch (error) {\n onError({\n message: `Could not move ${entityId} from ${removeFromCollectionId} to collection ${addToCollectionId}`,\n error,\n });\n }\n};\n\nexport default { handleMoveEntity, handleAddEntity, handleRemoveEntity };\n"],"names":["setDefaultState","hasLoaded","isLoading","isError","response","undefined","data","responseRef","current","apiReducer","state","action","type","responseType","newState","initialState","canceltoken","api","CancelToken","source","useApi","apiHandler","initialDefaultState","initialStateRef","React","useRef","useReducer","dispatch","request","useCallback","props","Promise","resolve","reject","then","reset","useEffect","cancel","CHANGE_PAGE","CHANGE_ROWS","CHANGE_SORT","CHANGE_SEARCHTEXT","CHANGE_SEARCHFIELD","CHANGE_SEARCHFIELDFACET","CHANGE_SEARCHFILTER","CHANGE_SEARCHFILTERFACET","CHANGE_PARENT_COLLECTION","CHANGE_FACET","CHANGE_ITEMSEARCHDOCUMENT","CHANGE_QUERYPARAMS","CHANGE_MATRIXPARAMS","CHANGE_SUGGESTION","ACTION_TYPE","setInitialDefaultState","queryParams","matrixParams","itemSearchDocument","rowsPerPage","page","content","interval","first","number","intervals","filter","searchReducer","searchText","value","sort","field","order","text","facet","parentCollection","operator","name","operation","suggestion","useSearch","onChangeRowsPerPage","newRows","target","onChangePage","newPage","onChangeSort","event","setSearchText","setItemSearchDocument","setQueryParams","CHANGE_ITEMQUERYPARAMS","setMatrixParams","CHANGE_ITEMMATRIXPARAMS","setSearchField","setSearchFieldFacet","map","count","setSearchFilter","setSearchFilterFacet","fieldList","reduce","a","concat","exclude","setFacet","setParentCollection","setSuggestion","useUpdateEffect","fn","inputs","hasMountedRef","maximumSuggestions","useAutocomplete","useState","autocompleteDoc","setAutocompleteDoc","setAutocompleteField","setAutocompleteText","setAutocompleteMaxSuggestions","SearchApi","searchAutoComplete","suggestions","autocompleteRequestDocument","propKey","selected","setSelected","onSelect","checked","propValue","currentIndex","findIndex","thisSelected","newSelected","splice","isSelected","onClear","initialTab","activeTab","setActiveTab","changeTab","_","newValue","useInterval","callback","delay","savedCallback","tick","id","setInterval","clearInterval","useThumbnailScrub","srcList","savedInterval","initialImgIdx","useMemo","Math","floor","length","imgIdx","setImgIdx","imgIdxRef","width","onMouseEnter","onMouseLeave","imageSrc","CHANGE_TYPE","CHANGE_STATE","CHANGE_PRIORITY","CHANGE_STARTTIME","CHANGE_FINISHTIME","jobMetadata","rest","deleteField","newMatrixParams","Array","isArray","join","newQueryParams","CHANGE_JOBMETADATA","useJobSearch","fieldName","onChangeType","onChangeState","onChangePriority","onChangeStarttime","onChangeFinishtime","onChangeJobmetadata","useLocalStorage","localStorageKey","defaultValue","JSON","parse","window","localStorage","getItem","stringify","setValue","setItem","getValue","uuidv4","replace","c","crypto","getRandomValues","Uint8Array","toString","b64EncodeUnicode","str","btoa","encodeURIComponent","p1","String","fromCharCode","b64DecodeUnicode","decodeURIComponent","atob","split","charCodeAt","slice","DEFAULT_AUDIO_SHAPETAGS","DEFAULT_VIDEO_SHAPETAGS","DEFAULT_IMAGE_SHAPETAGS","AUDIO_MIMETYPE_PREFIX","VIDEO_MIMETYPE_PREFIX","IMAGE_MIMETYPE_PREFIX","ADDITIONAL_VIDEO_MIMETYPES","ADDITIONAL_IMAGE_MIMETYPES","ADDITIONAL_AUDIO_MIMETYPES","getDefaultShapeTags","file","mimeType","toLowerCase","startsWith","includes","chunkedUpload","uploadInstance","ChunkedUpload","onFail","error","onComplete","resp","upload","onUploadFile","collectionId","onProgress","metadata","propsMetadata","placeholderParams","importParams","chunkedUploadProps","generateTransferId","getShapeTags","itemId","shapeTags","filename","mediaType","originalFilename","metadataDocument","createMetadataType","ImportApi","createImportPlaceholder","container","itemDocument","collectionIds","all","CollectionApi","addCollectionEntity","entityId","transferId","tag","method","createImportComponentRaw","component","err","console","useUploadFiles","handleUploadFile","initialMetadata","files","setFiles","forEach","URL","revokeObjectURL","preview","onAddFiles","newFiles","newFilesObj","title","currentFiles","onChangeFile","idx","changeFile","currentFilesList","currentFile","newMetadata","newProgress","progress","currentMetadata","currentProgress","newFilesList","newFile","onChangeProgress","onChangeMetadata","onUpload","uploadProps","previousPromise","thisFile","res","currentResult","onRemoveFile","i","onRemoveFiles","idxs","useQueryInitialState","history","queryName","defaultState","defaultStateRef","queryState","searchParams","URLSearchParams","location","search","encodedQuery","get","decodedQuery","pathName","queryInitialState","useUpdateQueryState","onSearchStateChange","useEntityAccess","entityType","AccessApi","listEntityAccess","accessControlList","onList","onRemove","accessId","removeEntityAccess","onAdd","accessControlDocument","createEntityAccess","getValueFromData","key","find","d","defaultGetDataAttributes","fieldOrGroup","keys","Object","assign","getOptions","values","f","label","convertValuesXmlToJson","xmlString","doc","DOMParser","parseFromString","fields","getElementsByTagName","json","childNodes","keyNode","valueNode","push","nodeName","firstChild","nodeValue","useAddMetadataFieldAttributes","groups","getDataAttributes","fieldDataToInclude","groupDataToInclude","fieldQueryParams","groupQueryParams","setIsLoading","fieldsWithAttributes","setFieldsWithAttributes","groupsWithAttributes","setGroupsWithAttributes","useDeepCompareEffect","addFieldAttributes","fieldsArray","fieldsAttributes","overrides","fieldAttributes","dataAttributes","options","addGroupAttributes","groupsArray","groupsAttributes","group","groupAttributes","childFields","childGroups","didCancel","fetchAttributesAsync","fieldPromises","MetadataFieldApi","getMetadataField","warn","groupPromises","groupsToFetch","groupName","FieldGroupApi","getFieldGroup","dataValues","e","jsonValues","g","some","v","newGroupsWithAttributes","b","indexOf","UPDATE_FREQUENCY","UPDATE_MODE","saveSearch","markerField","markerValue","ItemApi","searchItem","result","updateMode","updateFrequency","library","createCollection","collectionDocument","getLibraryFromCollection","getCollection","children","collectionType","libraryType","Error","deleteSearch","libraryId","LibraryApi","removeLibrary","removeCollection","getLibrarySettings","query","getSavedSearchSettings","useSavedSearch","initialSearchState","onSaveSearch","onDeleteSearch","onUpdateSearchMetadata","updateCollectionMetadata","onGetSavedSearchSettings","saveSearchWithMarker","mergeMarkerField","searchProps","useSearchItem","itemListType","onRefresh","useMouseDownPosition","x","y","position","setPosition","setFromEvent","clientX","clientY","addEventListener","removeEventListener","useGetCollection","refreshOnMount","getCollectionItem","useGetEntity","dataType","entityApi","entityTypeId","getLibrary","apiProps","onGetEntity","useUser","UserApi","getUser","userType","userName","updateUser","userDocument","updateUserGroups","updateUserGroup","groupListDocument","removeUserFromGroup","GroupApi","removeGroupUser","changePassword","password","passwordType","deleteUser","disableUser","hard","args","enableUser","CHANGE_QUERY","userSearchDocument","useSearchUser","searchUser","userListDocument","onSearchUser","onChangeQuery","useListGroup","listGroup","groupListType","useListUser","listUser","userListType","HIDE_ROLES","groupSearchDocument","hideRoles","role","useSearchGroup","searchGroup","onSearchGroup","onHideRoles","useGroup","getGroup","groupType","updateGroup","groupDocument","addChildGroups","childGroupList","addParentGroups","parentGroupList","addUsersToGroup","users","userList","user","u","removeChildGroup","childGroupName","removeGroupChildren","removeFromParentGroup","parentGroupName","removeGroup","useGetItem","itemType","useCollectionAutoPlay","defaultEnabled","nextPlaying","setNextPlaying","isAutoPlayEnabled","setIsAutoPlayEnabled","toggleAutoPlay","prevValue","allItemsRef","orderItemsRef","hitsRef","onNext","searchDocument","searchForNext","allItems","orderItems","searchCollectionItem","hits","item","itemList","contentList","currentItemIdx","thisId","remainingItems","nextItem","MetadataType","joinValue","flat","metadataType","parseMetadataType","cloneProps","cloneChild","child","cloneElement","Children","SearchCollection","searchCollection","collectionListType","SearchItem","SearchItemCollection","searchItemCollection","searchResultType","GetItem","GetCollectionContent","GetJobs","JobApi","listJob","jobs","ListEntityAccess","VidispineApi","serverUrl","token","username","runAs","defaultClient","defaults","baseURL","headers","Authorization","auth","RunAs","prevProps","Component","VIDISPINE_TOKEN","VIDISPINE_USERNAME","VIDISPINE_SERVER_URL","VIDISPINE_REMEMBER_ME","handleOnGetToken","seconds","autoRefresh","getToken","message","submissionError","status","Auth","LoginComponent","LoginProps","AppComponent","AppProps","onGetToken","onSuccess","onError","cookieOptions","maxAge","path","useCookies","cookies","setCookie","removeCookie","rememberMe","onLogin","newToken","newUserName","newServerUrl","newRememberMe","onLogout","ErrorBoundaryComponent","info","height","maxHeight","maxWidth","backgroundColor","color","componentStack","ErrorBoundary","hasError","nextProps","nextState","nextInfo","onErrorError","setState","GetFieldGroup","metadataFieldGroupDocument","RolesContext","createContext","RolesProvider","intialState","knownUserName","setGroupListType","onGetUserRole","getUserRole","iAm","whoAmI","useRoles","useContext","hasRole","roleName","groupList","groupNames","ROLES","SUPER_ACCESS_USER","thisRole","HasRole","allow","deny","loading","checkedRole","isValidElement","ComposeProviders","providers","reduceRight","acc","Provider","ProviderComponent","provider","providerProps","withErrorBoundary","WrappedComponent","errorBoundaryProps","compose","funcs","arg","BinContext","defaultIsUniqueBinItem","bin","entityTimespan","start","end","entityExistsInBin","o","entity","entityTimespanExistsInBin","binEntitiesWithSameId","beStart","beEnd","beName","BinProvider","onChange","allowDuplicates","defaultAllowDuplicates","isUniqueBinItem","binState","setBinState","setAllowDuplicates","onDelete","binIdToDelete","binId","onEmptyBin","createBinObject","binObject","handleDrop","dragInfo","handleSort","dragId","hoverId","originalDragIndex","dragIndex","hoverIndex","newDragIndex","setBin","onDrop","onSort","onFind","SettingsDispatchContext","SettingsStateContext","UPDATE_ALL_SETTINGS","UPDATE_SETTING","UPDATE_USERNAME","REMOVE_SETTING","reducer","settings","setting","SettingsProvider","initialUsername","settingsKey","initialSettings","getSettingsApi","MetadataApi","getSimpleMetadataKey","updateSettingsApi","updateSimpleMetadataKey","currentSettingsFromServer","currentValue","useSettingsState","useSettingsDispatch","useSettingsActions","updateAllSettings","updateSetting","updateUsername","removeSetting","useSettings","actions","ERROR_CREDENTIALS","ERROR_OFFLINE","ERROR_TOKEN_EXPIRED","ERROR_SERVER_MISMATCH","getErrorMessage","NoAuthApi","getSelfTest","defaultOnGetToken","AuthContext","AuthProvider","propsServerUrl","propsUserName","propsToken","responseInterceptor","interceptors","eject","use","config","useAuthContext","context","setDrag","onDropProp","onDragEnterProp","onDragEnter","onDragOverProp","onDragOver","onDragLeaveProp","onDragLeave","style","dragCounter","setDragCounter","preventDefault","stopPropagation","handleAddEntity","rootParentId","handleRemoveEntity","removeCollectionEntity","handleMoveEntity","addToCollectionId","removeFromCollectionId","onAddEntity","onRemoveEntity","onMoved","onAdded","onRemoved","addPromise","removePromise","promises","allSettled","results","failedResults","r","allSucceeded","allFailed","oneFailed","fr","reason","failedRequest","failedToRemove","failedToAdd","rollbackPromise"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAGA,IAAMA,eAAe,GAAG,SAAlBA,eAAkB;AAAA,iFAOlB,EAPkB;AAAA,4BAEpBC,SAFoB;AAAA,MAEpBA,SAFoB,+BAER,KAFQ;AAAA,4BAGpBC,SAHoB;AAAA,MAGpBA,SAHoB,+BAGR,IAHQ;AAAA,0BAIpBC,OAJoB;AAAA,MAIpBA,OAJoB,6BAIV,KAJU;AAAA,2BAKpBC,QALoB;AAAA,MAKpBA,QALoB,8BAKTC,SALS;AAAA,uBAMpBC,IANoB;AAAA,MAMpBA,IANoB,0BAMbD,SANa;;AAAA,MAQtBE,WARsB;AAAA,SASlB;AACJL,IAAAA,SAAS,EAATA,SADI;AAEJD,IAAAA,SAAS,EAATA,SAFI;AAGJE,IAAAA,OAAO,EAAPA,OAHI;AAIJC,IAAAA,QAAQ,EAARA,QAJI;AAKJE,IAAAA,IAAI,EAAEC,WAAW,IAAIA,WAAW,CAACC,OAA3B,GAAqCD,WAAW,CAACC,OAAjD,GAA2DF;AAL7D,GATkB;AAAA,CAAxB;;AAiBA,IAAMG,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD,EAAQC,MAAR,EAAmB;AACpC,UAAQA,MAAM,CAACC,IAAf;AACE,SAAK,OAAL;AAAc;AACZ,iDACKF,KADL;AAEER,UAAAA,SAAS,EAAE,IAFb;AAGEC,UAAAA,OAAO,EAAE;AAHX;AAKD;;AACD,SAAK,SAAL;AAAgB;AAAA,YACNU,YADM,GACWF,MAAM,CAACP,QADlB,CACNS,YADM;AAEd,YAAMC,QAAQ,GAAG;AACfZ,UAAAA,SAAS,EAAE,KADI;AAEfC,UAAAA,OAAO,EAAE,KAFM;AAGfF,UAAAA,SAAS,EAAE,IAHI;AAIfG,UAAAA,QAAQ,EAAEO,MAAM,CAACP,QAJF;AAKfE,UAAAA,IAAI,EAAEK,MAAM,CAACP,QAAP,CAAgBE;AALP,SAAjB;AAOA,YAAIO,YAAJ,EAAkBC,QAAQ,CAACD,YAAD,CAAR,GAAyBF,MAAM,CAACP,QAAP,CAAgBS,YAAhB,CAAzB;AAClB,eAAOC,QAAP;AACD;;AACD,SAAK,OAAL;AAAc;AACZ,eAAO;AACLZ,UAAAA,SAAS,EAAE,KADN;AAELC,UAAAA,OAAO,EAAE,IAFJ;AAGLF,UAAAA,SAAS,EAAE,IAHN;AAILG,UAAAA,QAAQ,EAAEO,MAAM,CAACP,QAJZ;AAKLE,UAAAA,IAAI,EAAEK,MAAM,CAACP,QAAP,CAAgBE;AALjB,SAAP;AAOD;;AACD,SAAK,OAAL;AAAc;AACZ,kCACKK,MAAM,CAACI,YADZ;AAGD;;AACD;AAAS;AACP,eAAOL,KAAP;AACD;AApCH;AAsCD,CAvCD;;AAyCA,IAAMM,WAAW,GAAGC,KAAG,CAACC,WAAJ,CAAgBC,MAAhB,EAApB;AAEe,SAASC,MAAT,CAAgBC,UAAhB,EAA4BN,YAA5B,EAA0CR,WAA1C,EAAuD;AACpE,MAAMe,mBAAmB,GAAGtB,eAAe,CAACe,YAAD,EAAeR,WAAf,CAA3C;AACA,MAAMgB,eAAe,GAAGC,KAAK,CAACC,MAAN,CAAaH,mBAAb,CAAxB;;AAFoE,0BAG1CE,KAAK,CAACE,UAAN,CAAiBjB,UAAjB,EAA6Ba,mBAA7B,CAH0C;AAAA;AAAA,MAG7DZ,KAH6D;AAAA,MAGtDiB,QAHsD;;AAIpE,MAAMC,OAAO,GAAGJ,KAAK,CAACK,WAAN,CACd,UAACC,KAAD,EAAW;AACTH,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAE;AAAR,KAAD,CAAR;AACA,WAAO,IAAImB,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AACtCZ,MAAAA,UAAU;AAAGL,QAAAA,WAAW,EAAXA;AAAH,SAAmBc,KAAnB,EAAV,CACGI,IADH,CACQ,UAAC9B,QAAD,EAAc;AAClB4B,QAAAA,OAAO,CAAC5B,QAAD,CAAP;AACAuB,QAAAA,QAAQ,CAAC;AAAEf,UAAAA,IAAI,EAAE,SAAR;AAAmBR,UAAAA,QAAQ,EAARA;AAAnB,SAAD,CAAR,CAFkB;;AAIlB,YAAIG,WAAJ,EAAiBA,WAAW,CAACC,OAAZ,GAAsBJ,QAAQ,CAACE,IAA/B;AAClB,OANH,WAOS,UAACF,QAAD,EAAc;AACnB6B,QAAAA,MAAM,CAAC7B,QAAD,CAAN;AACAuB,QAAAA,QAAQ,CAAC;AAAEf,UAAAA,IAAI,EAAE,OAAR;AAAiBR,UAAAA,QAAQ,EAARA;AAAjB,SAAD,CAAR;AACD,OAVH;AAWD,KAZM,CAAP;AAaD,GAhBa,EAiBd,CAACiB,UAAD,EAAad,WAAb,CAjBc,CAAhB;AAmBA,MAAM4B,KAAK,GAAGX,KAAK,CAACK,WAAN,CACZ;AAAA,WAAMF,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAE,OAAR;AAAiBG,MAAAA,YAAY,EAAEQ,eAAe,CAACf;AAA/C,KAAD,CAAd;AAAA,GADY,EAEZ,EAFY,CAAd;AAIAgB,EAAAA,KAAK,CAACY,SAAN,CAAgB;AAAA,WAAMpB,WAAW,CAACqB,MAAlB;AAAA,GAAhB,EAA0C,EAA1C;AACA;AACET,IAAAA,OAAO,EAAPA,OADF;AAEEO,IAAAA,KAAK,EAALA;AAFF,KAGKzB,KAHL;AAKD;;AC9FD,IAAM4B,WAAW,GAAG,aAApB;AACA,IAAMC,WAAW,GAAG,aAApB;AACA,IAAMC,WAAW,GAAG,aAApB;AACA,IAAMC,iBAAiB,GAAG,mBAA1B;AACA,IAAMC,kBAAkB,GAAG,oBAA3B;AACA,IAAMC,uBAAuB,GAAG,yBAAhC;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,wBAAwB,GAAG,0BAAjC;AACA,IAAMC,wBAAwB,GAAG,0BAAjC;AACA,IAAMC,YAAY,GAAG,cAArB;AACA,IAAMC,yBAAyB,GAAG,2BAAlC;AACA,IAAMC,kBAAkB,GAAG,oBAA3B;AACA,IAAMC,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,iBAAiB,GAAG,mBAA1B;AAEA,IAAMC,WAAW,GAAG;AAClBd,EAAAA,WAAW,EAAXA,WADkB;AAElBC,EAAAA,WAAW,EAAXA,WAFkB;AAGlBC,EAAAA,WAAW,EAAXA,WAHkB;AAIlBC,EAAAA,iBAAiB,EAAjBA,iBAJkB;AAKlBC,EAAAA,kBAAkB,EAAlBA,kBALkB;AAMlBC,EAAAA,uBAAuB,EAAvBA,uBANkB;AAOlBC,EAAAA,mBAAmB,EAAnBA,mBAPkB;AAQlBC,EAAAA,wBAAwB,EAAxBA,wBARkB;AASlBC,EAAAA,wBAAwB,EAAxBA,wBATkB;AAUlBC,EAAAA,YAAY,EAAZA,YAVkB;AAWlBC,EAAAA,yBAAyB,EAAzBA,yBAXkB;AAYlBC,EAAAA,kBAAkB,EAAlBA,kBAZkB;AAalBC,EAAAA,mBAAmB,EAAnBA,mBAbkB;AAclBC,EAAAA,iBAAiB,EAAjBA;AAdkB,CAApB;;AAiBA,IAAME,sBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,iFAO3B,EAP2B;AAAA,8BAC7BC,WAD6B;AAAA,MAC7BA,WAD6B,iCACf,EADe;AAAA,+BAE7BC,YAF6B;AAAA,MAE7BA,YAF6B,kCAEd,EAFc;AAAA,mCAG7BC,kBAH6B;AAAA,MAG7BA,kBAH6B,sCAGR,EAHQ;AAAA,8BAI7BC,WAJ6B;AAAA,MAI7BA,WAJ6B,iCAIf,EAJe;AAAA,uBAK7BC,IAL6B;AAAA,MAK7BA,IAL6B,0BAKtB,CALsB;AAAA,MAM1BhD,KAN0B;;AAAA,2CAQ1BA,KAR0B;AAS7B4C,IAAAA,WAAW;AACTK,MAAAA,OAAO,EAAE,UADA;AAETC,MAAAA,QAAQ,EAAE;AAFD,OAGNN,WAHM,CATkB;AAc7BC,IAAAA,YAAY;AACVM,MAAAA,KAAK,EAAEH,IAAI,GAAGD,WAAP,GAAqB,CADlB;AAEVK,MAAAA,MAAM,EAAEL;AAFE,OAGPF,YAHO,CAdiB;AAmB7BC,IAAAA,kBAAkB;AAChBO,MAAAA,SAAS,EAAE,SADK;AAEhBC,MAAAA,MAAM,EAAE;AAFQ,OAGbR,kBAHa,CAnBW;AAwB7BC,IAAAA,WAAW,EAAXA,WAxB6B;AAyB7BC,IAAAA,IAAI,EAAJA;AAzB6B;AAAA,CAA/B;;AA4BA,IAAMO,aAAa,GAAG,SAAhBA,aAAgB,CAACvD,KAAD,EAAQC,MAAR,EAAmB;AACvC,UAAQA,MAAM,CAACC,IAAf;AACE,SAAKwC,WAAW,CAACJ,yBAAjB;AAA4C;AAC1C,iDACKtC,KADL;AAEE8C,UAAAA,kBAAkB,EAAE7C,MAAM,CAAC6C;AAF7B;AAID;;AACD,SAAKJ,WAAW,CAACH,kBAAjB;AAAqC;AACnC,iDACKvC,KADL;AAEE4C,UAAAA,WAAW,EAAE3C,MAAM,CAAC2C;AAFtB;AAID;;AACD,SAAKF,WAAW,CAACF,mBAAjB;AAAsC;AACpC,iDACKxC,KADL;AAEE6C,UAAAA,YAAY,EAAE5C,MAAM,CAAC4C;AAFvB;AAID;;AACD,SAAKH,WAAW,CAACd,WAAjB;AAA8B;AAC5B,iDACK5B,KADL;AAEEgD,UAAAA,IAAI,EAAE/C,MAAM,CAAC+C,IAFf;AAGEH,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAElD,MAAM,CAAC+C,IAAP,GAAchD,KAAK,CAAC+C,WAApB,GAAkC;AAF/B;AAHd;AAQD;;AACD,SAAKL,WAAW,CAACb,WAAjB;AAA8B;AAC5B,iDACK7B,KADL;AAEE+C,UAAAA,WAAW,EAAE9C,MAAM,CAAC8C,WAFtB;AAGEC,UAAAA,IAAI,EAAE,CAHR;AAIEH,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE,CAFG;AAGVC,YAAAA,MAAM,EAAEnD,MAAM,CAAC8C;AAHL;AAJd;AAUD;;AACD,SAAKL,WAAW,CAACZ,WAAjB;AAA8B;AAC5B,iDACK9B,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEQ,UAAAA,UAAU,EAAEvD,MAAM,CAACwD,KAHrB;AAIEC,UAAAA,IAAI,EAAEzD,MAAM,CAACwD,KAJf;AAKEX,UAAAA,kBAAkB,oCACb9C,KAAK,CAAC8C,kBADO;AAEhBY,YAAAA,IAAI,EAAEzD,MAAM,CAAC0D,KAAP,GACF,CACE;AACEA,cAAAA,KAAK,EAAE1D,MAAM,CAAC0D,KADhB;AAEEC,cAAAA,KAAK,EAAE3D,MAAM,CAAC2D,KAAP,IAAgB;AAFzB,aADF,CADE,GAOF;AATY,YALpB;AAgBEf,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAhBd;AAqBD;;AACD,SAAKT,WAAW,CAACX,iBAAjB;AAAoC;AAClC,iDACK/B,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEQ,UAAAA,UAAU,EAAEvD,MAAM,CAACwD,KAHrB;AAIEX,UAAAA,kBAAkB,EAAE7C,MAAM,CAACwD,KAAP,qCAEXzD,KAAK,CAAC8C,kBAFK;AAGde,YAAAA,IAAI,EAAE,CAAC;AAAEJ,cAAAA,KAAK,YAAKxD,MAAM,CAACwD,KAAZ;AAAP,aAAD;AAHQ,iDAMXzD,KAAK,CAAC8C,kBANK;AAOde,YAAAA,IAAI,EAAE;AAPQ,YAJtB;AAaEhB,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAbd;AAkBD;;AACD,SAAKT,WAAW,CAACV,kBAAjB;AAAqC;AACnC,iDACKhC,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEW,UAAAA,KAAK,EAAE1D,MAAM,CAAC0D,KAHhB;AAIEb,UAAAA,kBAAkB,EAAE7C,MAAM,CAAC0D,KAAP,qCAEX3D,KAAK,CAAC8C,kBAFK;AAGda,YAAAA,KAAK,EAAE1D,MAAM,CAAC0D;AAHA,iDAMX3D,KAAK,CAAC8C,kBANK;AAOda,YAAAA,KAAK,EAAE;AAPO,YAJtB;AAaEd,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAbd;AAkBD;;AACD,SAAKT,WAAW,CAACT,uBAAjB;AAA0C;AACxC,iDACKjC,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEW,UAAAA,KAAK,EAAE1D,MAAM,CAAC0D,KAHhB;AAIEG,UAAAA,KAAK,EAAE7D,MAAM,CAAC6D,KAJhB;AAKEhB,UAAAA,kBAAkB,EAAE7C,MAAM,CAAC0D,KAAP,qCAEX3D,KAAK,CAAC8C,kBAFK;AAGda,YAAAA,KAAK,EAAE1D,MAAM,CAAC0D,KAHA;AAIdG,YAAAA,KAAK,EAAE7D,MAAM,CAAC6D;AAJA,iDAOX9D,KAAK,CAAC8C,kBAPK;AAQda,YAAAA,KAAK,EAAE,EARO;AASdG,YAAAA,KAAK,EAAE;AATO,YALtB;AAgBEjB,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAhBd;AAqBD;;AACD,SAAKT,WAAW,CAACR,mBAAjB;AAAsC;AACpC,iDACKlC,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEM,UAAAA,MAAM,EAAErD,MAAM,CAACqD,MAHjB;AAIER,UAAAA,kBAAkB,EAAE7C,MAAM,CAACqD,MAAP,qCAEXtD,KAAK,CAAC8C,kBAFK;AAGdQ,YAAAA,MAAM,EAAErD,MAAM,CAACqD;AAHD,iDAMXtD,KAAK,CAAC8C,kBANK;AAOdQ,YAAAA,MAAM,EAAE;AAPM,YAJtB;AAaET,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAbd;AAkBD;;AACD,SAAKT,WAAW,CAACP,wBAAjB;AAA2C;AACzC,iDACKnC,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEM,UAAAA,MAAM,EAAErD,MAAM,CAACqD,MAHjB;AAIER,UAAAA,kBAAkB,EAAE7C,MAAM,CAACqD,MAAP,qCAEXtD,KAAK,CAAC8C,kBAFK;AAGdQ,YAAAA,MAAM,EAAErD,MAAM,CAACqD,MAHD;AAIdQ,YAAAA,KAAK,EAAE7D,MAAM,CAAC6D;AAJA,iDAOX9D,KAAK,CAAC8C,kBAPK;AAQdQ,YAAAA,MAAM,EAAE,EARM;AASdQ,YAAAA,KAAK,EAAE;AATO,YAJtB;AAeEjB,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAfd;AAoBD;;AACD,SAAKT,WAAW,CAACL,YAAjB;AAA+B;AAC7B,iDACKrC,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEc,UAAAA,KAAK,EAAE7D,MAAM,CAAC6D,KAHhB;AAIEhB,UAAAA,kBAAkB,EAAE7C,MAAM,CAAC6D,KAAP,qCAEX9D,KAAK,CAAC8C,kBAFK;AAGdgB,YAAAA,KAAK,EAAE7D,MAAM,CAAC6D;AAHA,iDAMX9D,KAAK,CAAC8C,kBANK;AAOdgB,YAAAA,KAAK,EAAE;AAPO,YAJtB;AAaEjB,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAbd;AAkBD;;AACD,SAAKT,WAAW,CAACN,wBAAjB;AAA2C;AACzC,iDACKpC,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEe,UAAAA,gBAAgB,EAAE9D,MAAM,CAACwD,KAH3B;AAIEX,UAAAA,kBAAkB,EAAE7C,MAAM,CAACwD,KAAP,qCAEXzD,KAAK,CAAC8C,kBAFK;AAGdkB,YAAAA,QAAQ,EAAE;AACRL,cAAAA,KAAK,EAAE,CACL;AAAEM,gBAAAA,IAAI,EAAE,qBAAR;AAA+BR,gBAAAA,KAAK,EAAE,CAAC;AAAEA,kBAAAA,KAAK,YAAKxD,MAAM,CAACwD,KAAZ;AAAP,iBAAD;AAAtC,eADK,EAEL;AAAEQ,gBAAAA,IAAI,EAAE,cAAR;AAAwBR,gBAAAA,KAAK,EAAE,CAAC;AAAEA,kBAAAA,KAAK,YAAKxD,MAAM,CAACwD,KAAZ;AAAP,iBAAD;AAA/B,eAFK,CADC;AAKRS,cAAAA,SAAS,EAAE;AALH;AAHI,iDAYXlE,KAAK,CAAC8C,kBAZK;AAadkB,YAAAA,QAAQ,EAAErE;AAbI,YAJtB;AAmBEkD,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG;AAnBd;AAwBD;;AACD,SAAKT,WAAW,CAACD,iBAAjB;AAAoC;AAClC,iDACKzC,KADL;AAEE8C,UAAAA,kBAAkB,oCACb9C,KAAK,CAAC8C,kBADO;AAEhBqB,YAAAA,UAAU,EAAElE,MAAM,CAACkE;AAFH;AAFpB;AAOD;;AACD;AAAS;AACP,eAAOnE,KAAP;AACD;AAlOH;AAoOD,CArOD;;AAuOA,AAAe,SAASoE,SAAT,CAAmB/D,YAAnB,EAAiC;AAC9C,MAAMO,mBAAmB,GAAG+B,sBAAsB,CAACtC,YAAD,CAAlD;;AAD8C,0BAEpBS,KAAK,CAACE,UAAN,CAAiBuC,aAAjB,EAAgC3C,mBAAhC,CAFoB;AAAA;AAAA,MAEvCZ,KAFuC;AAAA,MAEhCiB,QAFgC;;AAI9C,MAAMoD,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,oFAAkC,EAAlC;AAAA,QAAoBC,OAApB,SAAGC,MAAH,CAAad,KAAb;;AAAA,WAC1BxC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACb,WADX;AAEPkB,MAAAA,WAAW,EAAEuB;AAFN,KAAD,CADkB;AAAA,GAA5B;;AAMA,MAAME,YAAY,GAAG,SAAfA,YAAe;AAAA,QAASC,OAAT,SAAGzB,IAAH;AAAA,WACnB/B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACd,WADX;AAEPoB,MAAAA,IAAI,EAAEyB;AAFC,KAAD,CADW;AAAA,GAArB;;AAMA,MAAMC,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQhB,KAAR,EAAeC,KAAf;AAAA,WACnB3C,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACZ,WADX;AAEP6B,MAAAA,KAAK,EAALA,KAFO;AAGPC,MAAAA,KAAK,EAALA;AAHO,KAAD,CADW;AAAA,GAArB;;AAOA,MAAMgB,aAAa,GAAG9D,KAAK,CAACK,WAAN,CACpB,UAACsC,KAAD;AAAA,WACExC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACX,iBADX;AAEP0B,MAAAA,KAAK,EAALA;AAFO,KAAD,CADV;AAAA,GADoB,EAMpB,EANoB,CAAtB;AASA,MAAMoB,qBAAqB,GAAG/D,KAAK,CAACK,WAAN,CAC5B,UAAC2B,kBAAD;AAAA,WACE7B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACJ,yBADX;AAEPQ,MAAAA,kBAAkB,EAAlBA;AAFO,KAAD,CADV;AAAA,GAD4B,EAM5B,EAN4B,CAA9B;AASA,MAAMgC,cAAc,GAAGhE,KAAK,CAACK,WAAN,CACrB,UAACyB,WAAD;AAAA,WACE3B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACqC,sBADX;AAEPnC,MAAAA,WAAW,EAAXA;AAFO,KAAD,CADV;AAAA,GADqB,EAMrB,EANqB,CAAvB;AASA,MAAMoC,eAAe,GAAGlE,KAAK,CAACK,WAAN,CACtB,UAAC0B,YAAD;AAAA,WACE5B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACuC,uBADX;AAEPpC,MAAAA,YAAY,EAAZA;AAFO,KAAD,CADV;AAAA,GADsB,EAMtB,EANsB,CAAxB;AASA,MAAMqC,cAAc,GAAGpE,KAAK,CAACK,WAAN,CACrB,UAACwC,KAAD;AAAA,WACE1C,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACV,kBADX;AAEP2B,MAAAA,KAAK,EAALA;AAFO,KAAD,CADV;AAAA,GADqB,EAMrB,EANqB,CAAvB;AASA,MAAMwB,mBAAmB,GAAGrE,KAAK,CAACK,WAAN,CAAkB,UAACwC,KAAD,EAAW;AACvD,QAAMG,KAAK,GAAGH,KAAK,CAACyB,GAAN,CAAU;AAAA,UAAGnB,IAAH,SAAGA,IAAH;AAAA,aAAe;AAAEN,QAAAA,KAAK,EAAEM,IAAT;AAAeoB,QAAAA,KAAK,EAAE;AAAtB,OAAf;AAAA,KAAV,CAAd;AACApE,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEwC,WAAW,CAACT,uBAApB;AAA6C0B,MAAAA,KAAK,EAALA,KAA7C;AAAoDG,MAAAA,KAAK,EAALA;AAApD,KAAD,CAAR;AACD,GAH2B,EAGzB,EAHyB,CAA5B;AAKA,MAAMwB,eAAe,GAAGxE,KAAK,CAACK,WAAN,CACtB,UAACmC,MAAD;AAAA,WACErC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACR,mBADX;AAEPoB,MAAAA,MAAM,EAANA;AAFO,KAAD,CADV;AAAA,GADsB,EAMtB,EANsB,CAAxB;AASA,MAAMiC,oBAAoB,GAAGzE,KAAK,CAACK,WAAN,CAC3B,UAACmC,MAAD,EAAY;AACV,QAAMkC,SAAS,GAAGlC,MAAM,CAACmC,MAAP,CAAc,UAACC,CAAD;AAAA,8BAAM/B,KAAN;AAAA,UAAMA,KAAN,4BAAc,EAAd;AAAA,aAAuB+B,CAAC,CAACC,MAAF,CAAShC,KAAT,CAAvB;AAAA,KAAd,EAAsD,EAAtD,CAAlB;AACA,QAAMG,KAAK,GAAG0B,SAAS,CAACJ,GAAV,CAAc;AAAA,UAAGnB,IAAH,SAAGA,IAAH;AAAA,aAAe;AACzCA,QAAAA,IAAI,EAAJA,IADyC;AAEzCN,QAAAA,KAAK,EAAEM,IAFkC;AAGzCoB,QAAAA,KAAK,EAAE,IAHkC;AAIzCO,QAAAA,OAAO,EAAE,CAAC3B,IAAD;AAJgC,OAAf;AAAA,KAAd,CAAd;AAMAhD,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEwC,WAAW,CAACP,wBAApB;AAA8CmB,MAAAA,MAAM,EAANA,MAA9C;AAAsDQ,MAAAA,KAAK,EAALA;AAAtD,KAAD,CAAR;AACD,GAV0B,EAW3B,CAAC7C,QAAD,CAX2B,CAA7B;AAcA,MAAM4E,QAAQ,GAAG/E,KAAK,CAACK,WAAN,CACf,UAAC2C,KAAD,EAAW;AACT7C,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEwC,WAAW,CAACL,YAApB;AAAkCyB,MAAAA,KAAK,EAALA;AAAlC,KAAD,CAAR;AACD,GAHc,EAIf,CAAC7C,QAAD,CAJe,CAAjB;AAOA,MAAM6E,mBAAmB,GAAGhF,KAAK,CAACK,WAAN,CAC1B,UAACsC,KAAD;AAAA,WACExC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,WAAW,CAACN,wBADX;AAEPqB,MAAAA,KAAK,EAALA;AAFO,KAAD,CADV;AAAA,GAD0B,EAM1B,EAN0B,CAA5B;AASA,MAAMsC,aAAa,GAAGjF,KAAK,CAACK,WAAN,CAAkB,UAACgD,UAAD,EAAgB;AACtDlD,IAAAA,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEwC,WAAW,CAACD,iBAApB;AAAuC0B,MAAAA,UAAU,EAAVA;AAAvC,KAAD,CAAR;AACD,GAFqB,EAEnB,EAFmB,CAAtB;AAIA,SAAO;AACLnE,IAAAA,KAAK,EAALA,KADK;AAELqE,IAAAA,mBAAmB,EAAnBA,mBAFK;AAGLG,IAAAA,YAAY,EAAZA,YAHK;AAILE,IAAAA,YAAY,EAAZA,YAJK;AAKLE,IAAAA,aAAa,EAAbA,aALK;AAMLM,IAAAA,cAAc,EAAdA,cANK;AAOLC,IAAAA,mBAAmB,EAAnBA,mBAPK;AAQLG,IAAAA,eAAe,EAAfA,eARK;AASLC,IAAAA,oBAAoB,EAApBA,oBATK;AAULM,IAAAA,QAAQ,EAARA,QAVK;AAWLhB,IAAAA,qBAAqB,EAArBA,qBAXK;AAYLC,IAAAA,cAAc,EAAdA,cAZK;AAaLE,IAAAA,eAAe,EAAfA,eAbK;AAcLc,IAAAA,mBAAmB,EAAnBA,mBAdK;AAeLC,IAAAA,aAAa,EAAbA;AAfK,GAAP;AAiBD;;ACxac,SAASC,eAAT,CAAyBC,EAAzB,EAA6BC,MAA7B,EAAqC;AAClD,MAAMC,aAAa,GAAGrF,KAAK,CAACC,MAAN,CAAa,KAAb,CAAtB;AACAD,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAIyE,aAAa,CAACrG,OAAlB,EAA2B;AACzBmG,MAAAA,EAAE;AACH,KAFD,MAEO;AACLE,MAAAA,aAAa,CAACrG,OAAd,GAAwB,IAAxB;AACD,KALmB;;AAOrB,GAPD,EAOGoG,MAPH;AAQD;;ACPD,IAAMvD,wBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,iFAI3B,EAJ2B;AAAA,wBAC7BgB,KAD6B;AAAA,MAC7BA,KAD6B,2BACrBhE,SADqB;AAAA,uBAE7BkE,IAF6B;AAAA,MAE7BA,IAF6B,0BAEtB,EAFsB;AAAA,mCAG7BuC,kBAH6B;AAAA,MAG7BA,kBAH6B,sCAGR,EAHQ;;AAAA,SAInB;AACVzC,IAAAA,KAAK,EAALA,KADU;AAEVE,IAAAA,IAAI,EAAJA,IAFU;AAGVuC,IAAAA,kBAAkB,EAAlBA;AAHU,GAJmB;AAAA,CAA/B;;AAUA,AAAe,SAASC,eAAT,CAAyBhG,YAAzB,EAAuC;AACpD,MAAMO,mBAAmB,GAAG+B,wBAAsB,CAACtC,YAAD,CAAlD;;AADoD,wBAENS,KAAK,CAACwF,QAAN,CAAe1F,mBAAf,CAFM;AAAA;AAAA,MAE7C2F,eAF6C;AAAA,MAE5BC,kBAF4B;;AAIpD,MAAMC,oBAAoB,GAAG3F,KAAK,CAACK,WAAN,CAAkB,UAACwC,KAAD,EAAW;AACxD6C,IAAAA,kBAAkB,CAAC,UAACxG,KAAD;AAAA,+CAAiBA,KAAjB;AAAwB2D,QAAAA,KAAK,EAALA;AAAxB;AAAA,KAAD,CAAlB;AACD,GAF4B,EAE1B,EAF0B,CAA7B;AAIA,MAAM+C,mBAAmB,GAAG5F,KAAK,CAACK,WAAN,CAAkB,UAAC0C,IAAD,EAAU;AACtD2C,IAAAA,kBAAkB,CAAC,UAACxG,KAAD;AAAA,+CAAiBA,KAAjB;AAAwB6D,QAAAA,IAAI,EAAJA;AAAxB;AAAA,KAAD,CAAlB;AACD,GAF2B,EAEzB,EAFyB,CAA5B;AAIA,MAAM8C,6BAA6B,GAAG7F,KAAK,CAACK,WAAN,CAAkB,UAACiF,kBAAD,EAAwB;AAC9EI,IAAAA,kBAAkB,CAAC,UAACxG,KAAD;AAAA,+CAAiBA,KAAjB;AAAwBoG,QAAAA,kBAAkB,EAAlBA;AAAxB;AAAA,KAAD,CAAlB;AACD,GAFqC,EAEnC,EAFmC,CAAtC;;AAZoD,gBAgBiC1F,MAAM,CACzFkG,MAAS,CAACC,kBAD+E,CAhBvC;AAAA,MAgBnCA,kBAhBmC,WAgB5C3F,OAhB4C;AAAA,6BAgBftB,IAhBe;;AAAA,2CAgB0B,EAhB1B;AAAA,2CAgBPuE,UAhBO;AAAA,MAgBK2C,WAhBL,sCAgBmB,EAhBnB;AAoBpDd,EAAAA,eAAe,CAAC,YAAM;AACpBa,IAAAA,kBAAkB,CAAC;AAAEE,MAAAA,2BAA2B,EAAER;AAA/B,KAAD,CAAlB;AACD,GAFc,EAEZ,CAACA,eAAD,CAFY,CAAf;AAIA,SAAO;AACLO,IAAAA,WAAW,EAAXA,WADK;AAELL,IAAAA,oBAAoB,EAApBA,oBAFK;AAGLC,IAAAA,mBAAmB,EAAnBA,mBAHK;AAILC,IAAAA,6BAA6B,EAA7BA;AAJK,GAAP;AAMD;;AC3CD,mBAAe,YAAuC;AAAA,MAAtCK,OAAsC,uEAA5B,IAA4B;AAAA,MAAtB3G,YAAsB,uEAAP,EAAO;;AAAA,wBACpBS,KAAK,CAACwF,QAAN,CAAejG,YAAf,CADoB;AAAA;AAAA,MAC7C4G,QAD6C;AAAA,MACnCC,WADmC;;AAEpD,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACxC,KAAD,EAAQyC,OAAR,EAAiBhG,KAAjB,EAA2B;AAC1C,QAAMiG,SAAS,GAAGjG,KAAK,CAAC4F,OAAD,CAAvB;AACA,QAAMM,YAAY,GAAGL,QAAQ,CAACM,SAAT,CAAmB,UAACC,YAAD;AAAA,aAAkBA,YAAY,CAACR,OAAD,CAAZ,KAA0BK,SAA5C;AAAA,KAAnB,CAArB;;AACA,QAAIC,YAAY,KAAK,CAAC,CAAlB,IAAuBF,OAAO,KAAK,IAAvC,EAA6C;AAC3C,UAAIA,OAAO,KAAK,IAAhB,EAAsB;AACpBF,QAAAA,WAAW,8BAAKD,QAAL,IAAe7F,KAAf,GAAX;AACD;AACF,KAJD,MAIO,IAAIkG,YAAY,GAAG,CAAC,CAAhB,IAAqBF,OAAO,KAAK,KAArC,EAA4C;AACjD,UAAMK,WAAW,sBAAOR,QAAP,CAAjB;;AACAQ,MAAAA,WAAW,CAACC,MAAZ,CAAmBJ,YAAnB,EAAiC,CAAjC;AACAJ,MAAAA,WAAW,CAACO,WAAD,CAAX;AACD;AACF,GAZD;;AAaA,MAAME,UAAU,GAAG,SAAbA,UAAa,CAACvG,KAAD,EAAW;AAC5B,QAAMiG,SAAS,GAAGjG,KAAK,CAAC4F,OAAD,CAAvB;AACA,QAAMM,YAAY,GAAGL,QAAQ,CAACM,SAAT,CAAmB,UAACC,YAAD;AAAA,aAAkBA,YAAY,CAACR,OAAD,CAAZ,KAA0BK,SAA5C;AAAA,KAAnB,CAArB;AACA,WAAOC,YAAY,GAAG,CAAC,CAAvB;AACD,GAJD;;AAKA,MAAMM,OAAO,GAAG,SAAVA,OAAU;AAAA,WAAMV,WAAW,CAAC,EAAD,CAAjB;AAAA,GAAhB;;AACA,SAAO;AACLD,IAAAA,QAAQ,EAARA,QADK;AAELE,IAAAA,QAAQ,EAARA,QAFK;AAGLS,IAAAA,OAAO,EAAPA,OAHK;AAILD,IAAAA,UAAU,EAAVA;AAJK,GAAP;AAMD,CA3BD;;ACAA,cAAe,UAACE,UAAD,EAAgB;AAAA,wBACK/G,KAAK,CAACwF,QAAN,CAAeuB,UAAf,CADL;AAAA;AAAA,MACtBC,SADsB;AAAA,MACXC,YADW;;AAE7B,MAAMC,SAAS,GAAG,SAAZA,SAAY,CAACC,CAAD,EAAIC,QAAJ;AAAA,WAAiBH,YAAY,CAACG,QAAD,CAA7B;AAAA,GAAlB;;AACA,SAAO;AAAEJ,IAAAA,SAAS,EAATA,SAAF;AAAaE,IAAAA,SAAS,EAATA;AAAb,GAAP;AACD,CAJD;;ACAe,SAASG,WAAT,CAAqBC,QAArB,EAA+BC,KAA/B,EAAsC;AACnD,MAAMC,aAAa,GAAGxH,KAAK,CAACC,MAAN,EAAtB;AAEAD,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB4G,IAAAA,aAAa,CAACxI,OAAd,GAAwBsI,QAAxB;AACD,GAFD,EAEG,CAACA,QAAD,CAFH;AAIAtH,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAM6G,IAAI,GAAG,SAAPA,IAAO;AAAA,aAAMD,aAAa,CAACxI,OAAd,EAAN;AAAA,KAAb;;AACA,QAAM0I,EAAE,GAAGC,WAAW,CAACF,IAAD,EAAOF,KAAP,CAAtB;AACA,WAAO;AAAA,aAAMK,aAAa,CAACF,EAAD,CAAnB;AAAA,KAAP;AACD,GAJD,EAIG,CAACH,KAAD,CAJH;AAKD;;ACZc,SAASM,iBAAT,GAAyC;AAAA,MAAdC,OAAc,uEAAJ,EAAI;AACtD,MAAMC,aAAa,GAAG/H,KAAK,CAACC,MAAN,EAAtB;AACA,MAAM+H,aAAa,GAAGhI,KAAK,CAACiI,OAAN,CAAc;AAAA,WAAMC,IAAI,CAACC,KAAL,CAAWL,OAAO,CAACM,MAAR,GAAiB,CAA5B,CAAN;AAAA,GAAd,EAAoD,CAACN,OAAD,CAApD,CAAtB;;AAFsD,wBAG1B9H,KAAK,CAACwF,QAAN,EAH0B;AAAA;AAAA,MAG/C6C,MAH+C;AAAA,MAGvCC,SAHuC;;AAItD,MAAMC,SAAS,GAAGvI,KAAK,CAACC,MAAN,CAAaoI,MAAb,CAAlB;AACArI,EAAAA,KAAK,CAACY,SAAN,CAAgB;AAAA,WAAM;AAAA,aAAMmH,aAAa,CAAC/I,OAAd,IAAyB4I,aAAa,CAACG,aAAa,CAAC/I,OAAf,CAA5C;AAAA,KAAN;AAAA,GAAhB,EAA2F,EAA3F;AACA,MAAI8I,OAAO,CAACM,MAAR,KAAmB,CAAvB,EAA0B,OAAO;AAAEI,IAAAA,KAAK,EAAE;AAAT,GAAP;AAE1BD,EAAAA,SAAS,CAACvJ,OAAV,GAAoBqJ,MAApB;;AACA,MAAMI,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzB,QAAMlB,KAAK,GAAG,GAAd;;AACA,QAAME,IAAI,GAAG,SAAPA,IAAO,GAAM;AACjB,UAAIc,SAAS,CAACvJ,OAAV,KAAsBH,SAA1B,EAAqC;AACnCyJ,QAAAA,SAAS,CAAC,CAAD,CAAT;AACD,OAFD,MAEO,IAAIC,SAAS,CAACvJ,OAAV,KAAsB8I,OAAO,CAACM,MAAR,GAAiB,CAA3C,EAA8C;AACnDR,QAAAA,aAAa,CAACG,aAAa,CAAC/I,OAAf,CAAb;AACD,OAFM,MAEA;AACLsJ,QAAAA,SAAS,CAACC,SAAS,CAACvJ,OAAV,GAAoB,CAArB,CAAT;AACD;AACF,KARD;;AASA+I,IAAAA,aAAa,CAAC/I,OAAd,GAAwB2I,WAAW,CAACF,IAAD,EAAOF,KAAP,CAAnC;AACD,GAZD;;AAaA,MAAMmB,YAAY,GAAG,SAAfA,YAAe,GAAM;AACzBJ,IAAAA,SAAS;AACTV,IAAAA,aAAa,CAACG,aAAa,CAAC/I,OAAf,CAAb;AACD,GAHD;;AAIA,MAAM2J,QAAQ,GAAGb,OAAO,CAACO,MAAM,KAAKxJ,SAAX,GAAuBmJ,aAAvB,GAAuCK,MAAxC,CAAxB;AACA,MAAMG,KAAK,GAAGH,MAAM,KAAKxJ,SAAX,GAAuB,CAAvB,aAA8BqJ,IAAI,CAACC,KAAL,CAAYE,MAAM,IAAIP,OAAO,CAACM,MAAR,GAAiB,CAArB,CAAP,GAAkC,GAA7C,CAA9B,MAAd;AACA,SAAO;AACLO,IAAAA,QAAQ,EAARA,QADK;AAELF,IAAAA,YAAY,EAAZA,YAFK;AAGLC,IAAAA,YAAY,EAAZA,YAHK;AAILF,IAAAA,KAAK,EAALA;AAJK,GAAP;AAMD;;AClCD,IAAM1H,aAAW,GAAG,aAApB;AACA,IAAMC,aAAW,GAAG,aAApB;AACA,IAAMC,aAAW,GAAG,aAApB;AACA,IAAM4H,WAAW,GAAG,aAApB;AACA,IAAMC,YAAY,GAAG,cAArB;AACA,IAAMC,eAAe,GAAG,iBAAxB;AACA,IAAMC,gBAAgB,GAAG,kBAAzB;AACA,IAAMC,iBAAiB,GAAG,mBAA1B;AAEA,IAAMpH,aAAW,GAAG;AAClBd,EAAAA,WAAW,EAAXA,aADkB;AAElBC,EAAAA,WAAW,EAAXA,aAFkB;AAGlBC,EAAAA,WAAW,EAAXA,aAHkB;AAIlB4H,EAAAA,WAAW,EAAXA,WAJkB;AAKlBC,EAAAA,YAAY,EAAZA,YALkB;AAMlBC,EAAAA,eAAe,EAAfA,eANkB;AAOlBC,EAAAA,gBAAgB,EAAhBA,gBAPkB;AAQlBC,EAAAA,iBAAiB,EAAjBA;AARkB,CAApB;;AAWA,IAAMnH,wBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,iFAA2C,EAA3C;AAAA,8BAAGC,WAAH;AAAA,MAAGA,WAAH,iCAAiB,EAAjB;AAAA,+BAAqBC,YAArB;AAAA,MAAqBA,YAArB,kCAAoC,EAApC;;AAAA,SAAmD;AAChFD,IAAAA,WAAW,EAAXA,WADgF;AAEhFC,IAAAA,YAAY;AACVM,MAAAA,KAAK,EAAE,CADG;AAEVC,MAAAA,MAAM,EAAE;AAFE,OAGPP,YAHO,CAFoE;AAOhFE,IAAAA,WAAW,EAAE,EAPmE;AAQhFC,IAAAA,IAAI,EAAE,CAR0E;AAShF+G,IAAAA,WAAW,EAAE;AATmE,GAAnD;AAAA,CAA/B;;AAYA,IAAMxG,eAAa,GAAG,SAAhBA,aAAgB,CAACvD,KAAD,EAAQC,MAAR,EAAmB;AAAA,MAC/BC,IAD+B,GACbD,MADa,CAC/BC,IAD+B;AAAA,MACtB8J,IADsB,4BACb/J,MADa;;AAEvC,UAAQC,IAAR;AACE,SAAKwC,aAAW,CAACd,WAAjB;AAA8B;AAAA,2BACP3B,MADO,CACpB+C,IADoB;AAAA,YACpBA,IADoB,6BACb,CADa;AAAA,iCAEChD,KAFD,CAEpB+C,WAFoB;AAAA,YAEpBA,WAFoB,mCAEN,EAFM;AAG5B,iDACK/C,KADL;AAEEgD,UAAAA,IAAI,EAAJA,IAFF;AAGEH,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAEH,IAAI,GAAGD,WAAP,GAAqB;AAFlB;AAHd;AAQD;;AACD,SAAKL,aAAW,CAACb,WAAjB;AAA8B;AAAA,YACpBkB,YADoB,GACJ9C,MADI,CACpB8C,WADoB;AAE5B,iDACK/C,KADL;AAEE+C,UAAAA,WAAW,EAAXA,YAFF;AAGEC,UAAAA,IAAI,EAAE,CAHR;AAIEH,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE,CAFG;AAGVC,YAAAA,MAAM,EAAEL;AAHE;AAJd;AAUD;;AACD,SAAKL,aAAW,CAACZ,WAAjB;AAA8B;AAAA,YACpB6B,KADoB,GACM1D,MADN,CACpB0D,KADoB;AAAA,4BACM1D,MADN,CACb2D,KADa;AAAA,YACbA,KADa,8BACL,MADK;AAE5B,iDACK5D,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEH,UAAAA,YAAY,oCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE,CAFG;AAGVO,YAAAA,IAAI,YAAKC,KAAL,cAAcC,KAAd;AAHM;AAHd;AASD;;AACD,SAAKlB,aAAW,CAACgH,WAAjB;AACA,SAAKhH,aAAW,CAACiH,YAAjB;AACA,SAAKjH,aAAW,CAACkH,eAAjB;AAAkC;AAAA,YACxBjG,MADwB,GACFqG,IADE,CACxBrG,KADwB;AAAA,0BACFqG,IADE,CACjBvG,KADiB;AAAA,YACjBA,KADiB,4BACT,EADS;AAEhC,YAAIZ,YAAJ;;AACA,YAAI,CAACY,KAAL,EAAY;AAAA,oCAC2CzD,KAAK,CAAC6C,YADjD;AAAA,cACOoH,WADP,uBACDtG,MADC;AAAA,cACuBuG,eADvB,kDACDvG,MADC;;AAEVd,UAAAA,YAAY,qCAAQqH,eAAR;AAAyB/G,YAAAA,KAAK,EAAE;AAAhC,YAAZ;AACD,SAHD,MAGO;AACLN,UAAAA,YAAY,qCACP7C,KAAK,CAAC6C,YADC;AAEVM,YAAAA,KAAK,EAAE;AAFG,aAGTQ,MAHS,EAGDwG,KAAK,CAACC,OAAN,CAAc3G,KAAd,IAAuBA,KAAK,CAAC4G,IAAN,CAAW,GAAX,CAAvB,GAAyC5G,KAHxC,EAAZ;AAKD;;AACD,iDACKzD,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEH,UAAAA,YAAY,EAAZA;AAHF;AAKD;;AACD,SAAKH,aAAW,CAACmH,gBAAjB;AACA,SAAKnH,aAAW,CAACoH,iBAAjB;AAAoC;AAAA,YAC1BnG,OAD0B,GACJqG,IADI,CAC1BrG,KAD0B;AAAA,2BACJqG,IADI,CACnBvG,KADmB;AAAA,YACnBA,MADmB,6BACX,EADW;;AAElC,YAAIb,WAAJ;;AACA,YAAI,CAACa,MAAL,EAAY;AAAA,mCAC0CzD,KAAK,CAAC4C,WADhD;AAAA,cACOqH,YADP,sBACDtG,OADC;AAAA,cACuB2G,cADvB,iDACD3G,OADC;;AAEVf,UAAAA,WAAW,qCAAQ0H,cAAR;AAAwBnH,YAAAA,KAAK,EAAE;AAA/B,YAAX;AACD,SAHD,MAGO;AACLP,UAAAA,WAAW,qCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE;AAFE,aAGRQ,OAHQ,EAGAF,MAHA,EAAX;AAKD;;AACD,iDACKzD,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEJ,UAAAA,WAAW,EAAXA;AAHF;AAKD;;AACD,SAAKF,aAAW,CAAC6H,kBAAjB;AAAqC;AAAA,YAC3B5G,OAD2B,GACLqG,IADK,CAC3BrG,KAD2B;AAAA,2BACLqG,IADK,CACpBvG,KADoB;AAAA,YACpBA,OADoB,6BACZ,EADY;;AAEnC,YAAIb,YAAJ;;AACA,YAAI,CAACa,OAAK,CAACyF,MAAX,EAAmB;AAAA,oCACmClJ,KAAK,CAAC4C,WADzC;AAAA,cACAqH,aADA,uBACRtG,OADQ;AAAA,cACgB2G,eADhB,kDACR3G,OADQ;;AAEjBf,UAAAA,YAAW,qCAAQ0H,eAAR;AAAwBnH,YAAAA,KAAK,EAAE;AAA/B,YAAX;AACD,SAHD,MAGO;AACLP,UAAAA,YAAW,qCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE;AAFE,aAGRQ,OAHQ,EAGAF,OAHA,EAAX;AAKD;;AACD,iDACKzD,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEJ,UAAAA,WAAW,EAAXA,YAHF;AAIEmH,UAAAA,WAAW,EAAEtG;AAJf;AAMD;;AACD;AACE,aAAOzD,KAAP;AApGJ;AAsGD,CAxGD;;AA0GA,AAAe,SAASwK,YAAT,CAAsBnK,YAAtB,EAAoC;AACjD,MAAMO,mBAAmB,GAAG+B,wBAAsB,CAACtC,YAAD,CAAlD;;AADiD,0BAEvBS,KAAK,CAACE,UAAN,CAAiBuC,eAAjB,EAAgC3C,mBAAhC,CAFuB;AAAA;AAAA,MAE1CZ,KAF0C;AAAA,MAEnCiB,QAFmC;;AAGjD,MAAMoD,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,oFAAsC,EAAtC;AAAA,QAAoBtB,WAApB,SAAGwB,MAAH,CAAad,KAAb;;AAAA,WAC1BxC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACb,WADX;AAEPkB,MAAAA,WAAW,EAAXA;AAFO,KAAD,CADkB;AAAA,GAA5B;;AAKA,MAAMyB,YAAY,GAAG,SAAfA,YAAe;AAAA,QAAGxB,IAAH,SAAGA,IAAH;AAAA,WACnB/B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACd,WADX;AAEPoB,MAAAA,IAAI,EAAJA;AAFO,KAAD,CADW;AAAA,GAArB;;AAKA,MAAM0B,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQhB,KAAR,EAAeC,KAAf,EAAyB;AAC5C,QAAM6G,SAAS,GAAG,QAAO9G,KAAP,MAAiB,QAAjB,GAA4BA,KAAK,CAACF,KAAlC,GAA0CE,KAA5D;AACA1C,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACZ,WADX;AAEP6B,MAAAA,KAAK,EAAE8G,SAFA;AAGP7G,MAAAA,KAAK,EAALA;AAHO,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAM8G,YAAY,GAAG,SAAfA,YAAe,QAAoB;AAAA,4BAAjB/G,KAAiB;AAAA,QAAjBA,KAAiB,4BAAT,EAAS;;AAAA,iCACCA,KADD;AAAA;AAAA,iCAC9BM,IAD8B;AAAA,QAC9BA,IAD8B,8BACvB,MADuB;AAAA,kCACfR,KADe;AAAA,QACfA,KADe,+BACP,EADO;;AAEvCxC,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACgH,WADX;AAEP/F,MAAAA,KAAK,EAAEM,IAFA;AAGPR,MAAAA,KAAK,EAAEA,KAAK,CAACyF,MAAN,GAAezF,KAAK,CAAC,CAAD,CAAL,CAASA,KAAxB,GAAgC;AAHhC,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMkH,aAAa,GAAG,SAAhBA,aAAgB,QAAoB;AAAA,4BAAjBhH,KAAiB;AAAA,QAAjBA,KAAiB,4BAAT,EAAS;;AAAA,iCACCA,KADD;AAAA;AAAA,iCAC/BM,IAD+B;AAAA,QAC/BA,IAD+B,8BACxB,OADwB;AAAA,kCACfR,KADe;AAAA,QACfA,KADe,+BACP,EADO;;AAExCxC,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACiH,YADX;AAEPhG,MAAAA,KAAK,EAAEM,IAFA;AAGPR,MAAAA,KAAK,EAAEA,KAAK,CAACyF,MAAN,GAAezF,KAAK,CAAC,CAAD,CAAL,CAASA,KAAxB,GAAgC;AAHhC,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMmH,gBAAgB,GAAG,SAAnBA,gBAAmB,QAAoB;AAAA,4BAAjBjH,KAAiB;AAAA,QAAjBA,KAAiB,4BAAT,EAAS;;AAAA,iCACCA,KADD;AAAA;AAAA,iCAClCM,IADkC;AAAA,QAClCA,IADkC,8BAC3B,UAD2B;AAAA,kCACfR,KADe;AAAA,QACfA,KADe,+BACP,EADO;;AAE3CxC,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACkH,eADX;AAEPjG,MAAAA,KAAK,EAAEM,IAFA;AAGPR,MAAAA,KAAK,EAAEA,KAAK,CAACyF,MAAN,GAAezF,KAAK,CAAC,CAAD,CAAL,CAASA,KAAxB,GAAgC;AAHhC,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMoH,iBAAiB,GAAG,SAApBA,iBAAoB,QAAoB;AAAA,4BAAjBlH,KAAiB;AAAA,QAAjBA,KAAiB,4BAAT,EAAS;;AAAA,iCACMA,KADN;AAAA;AAAA,iCACnCM,IADmC;AAAA,QACnCA,IADmC,8BAC5B,gBAD4B;AAAA,kCACVR,KADU;AAAA,QACVA,KADU,+BACF,EADE;;AAE5CxC,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACmH,gBADX;AAEPlG,MAAAA,KAAK,EAAEM,IAFA;AAGPR,MAAAA,KAAK,EAAEA,KAAK,CAACyF,MAAN,GAAezF,KAAK,CAAC,CAAD,CAAL,CAASA,KAAxB,GAAgC;AAHhC,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMqH,kBAAkB,GAAG,SAArBA,kBAAqB,QAAoB;AAAA,4BAAjBnH,KAAiB;AAAA,QAAjBA,KAAiB,4BAAT,EAAS;;AAAA,iCACMA,KADN;AAAA;AAAA,iCACpCM,IADoC;AAAA,QACpCA,IADoC,8BAC7B,iBAD6B;AAAA,kCACVR,KADU;AAAA,QACVA,KADU,+BACF,EADE;;AAE7CxC,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACoH,iBADX;AAEPnG,MAAAA,KAAK,EAAEM,IAFA;AAGPR,MAAAA,KAAK,EAAEA,KAAK,CAACyF,MAAN,GAAezF,KAAK,CAAC,CAAD,CAAL,CAASA,KAAxB,GAAgC;AAHhC,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMsH,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACtH,KAAD,EAAW;AACrCxC,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAAC6H,kBADX;AAEP5G,MAAAA,KAAK,EAAE,aAFA;AAGPF,MAAAA,KAAK,EAALA;AAHO,KAAD,CAAR;AAKD,GAND;;AAOA,SAAO;AACLzD,IAAAA,KAAK,EAALA,KADK;AAELwE,IAAAA,YAAY,EAAZA,YAFK;AAGLE,IAAAA,YAAY,EAAZA,YAHK;AAILgG,IAAAA,YAAY,EAAZA,YAJK;AAKLC,IAAAA,aAAa,EAAbA,aALK;AAMLC,IAAAA,gBAAgB,EAAhBA,gBANK;AAOLC,IAAAA,iBAAiB,EAAjBA,iBAPK;AAQLC,IAAAA,kBAAkB,EAAlBA,kBARK;AASLzG,IAAAA,mBAAmB,EAAnBA,mBATK;AAUL0G,IAAAA,mBAAmB,EAAnBA;AAVK,GAAP;AAYD;;AC1ND,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAACC,eAAD,EAAkBC,YAAlB,EAAmC;AAAA,wBAC/BpK,KAAK,CAACwF,QAAN,CACxB6E,IAAI,CAACC,KAAL,CAAWC,MAAM,CAACC,YAAP,CAAoBC,OAApB,CAA4BN,eAA5B,KAAgDE,IAAI,CAACK,SAAL,CAAeN,YAAf,CAA3D,CADwB,CAD+B;AAAA;AAAA,MAClDzH,KADkD;AAAA,MAC3CgI,QAD2C;;AAKzD3K,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB2J,IAAAA,MAAM,CAACC,YAAP,CAAoBI,OAApB,CAA4BT,eAA5B,EAA6CE,IAAI,CAACK,SAAL,CAAe/H,KAAf,CAA7C;AACD,GAFD,EAEG,CAACwH,eAAD,EAAkBxH,KAAlB,CAFH;;AAIA,MAAMkI,QAAQ,GAAG,SAAXA,QAAW;AAAA,WAAMR,IAAI,CAACC,KAAL,CAAWC,MAAM,CAACC,YAAP,CAAoBC,OAApB,CAA4BN,eAA5B,CAAX,CAAN;AAAA,GAAjB;;AAEA,SAAO,CAACxH,KAAD,EAAQgI,QAAR,EAAkBE,QAAlB,CAAP;AACD,CAZD;;ACFA;AACA,AAAO,SAASC,MAAT,GAAkB;AACvB,SAAO,CAAC,CAAC,GAAD,IAAQ,CAAC,GAAT,GAAe,CAAC,GAAhB,GAAsB,CAAC,GAAvB,GAA6B,CAAC,IAA/B,EAAqCC,OAArC,CAA6C,QAA7C,EAAuD,UAACC,CAAD;AAAA;AAE1D,OAACA,CAAC,GAAGC,MAAM,CAACC,eAAP,CAAuB,IAAIC,UAAJ,CAAe,CAAf,CAAvB,EAA0C,CAA1C,IAA+C,MAAMH,CAAC,GAAG,CAA9D,EAAiEI,QAAjE,CAA0E,EAA1E;AAF0D;AAAA,GAAvD,CAAP;AAGD;AAED,AAAO,SAASC,gBAAT,CAA0BC,GAA1B,EAA+B;AACpC,SAAOC,IAAI,CACTC,kBAAkB,CAACF,GAAD,CAAlB,CAAwBP,OAAxB,CAAgC,iBAAhC,EAAmD,UAAC5D,CAAD,EAAIsE,EAAJ;AAAA,WAAWC,MAAM,CAACC,YAAP,aAAyBF,EAAzB,EAAX;AAAA,GAAnD,CADS,CAAX;AAGD;AACD,AAAO,SAASG,gBAAT,CAA0BN,GAA1B,EAA+B;AACpC,SAAOO,kBAAkB,CACvBC,IAAI,CAACR,GAAD,CAAJ,CACGS,KADH,CACS,EADT,EAEGzH,GAFH,CAEO,UAAC0G,CAAD;AAAA,sBAAW,YAAKA,CAAC,CAACgB,UAAF,CAAa,CAAb,EAAgBZ,QAAhB,CAAyB,EAAzB,CAAL,EAAoCa,KAApC,CAA0C,CAAC,CAA3C,CAAX;AAAA,GAFP,EAGG1C,IAHH,CAGQ,EAHR,CADuB,CAAzB;AAMD;;ACVD,IAAM2C,uBAAuB,GAAG,CAAC,YAAD,CAAhC;AACA,IAAMC,uBAAuB,GAAG,CAAC,OAAD,CAAhC;AACA,IAAMC,uBAAuB,GAAG,CAAC,OAAD,CAAhC;AACA,IAAMC,qBAAqB,GAAG,OAA9B;AACA,IAAMC,qBAAqB,GAAG,OAA9B;AACA,IAAMC,qBAAqB,GAAG,OAA9B;AACA,IAAMC,0BAA0B,GAAG,CAAC,iBAAD,CAAnC;AACA,IAAMC,0BAA0B,GAAG,EAAnC;AACA,IAAMC,0BAA0B,GAAG,EAAnC;;AAEA,IAAMC,mBAAmB,GAAG,SAAtBA,mBAAsB,CAACC,IAAD,EAAU;AACpC,MAAI,CAACA,IAAD,IAAS,CAACA,IAAI,CAACxN,IAAnB,EAAyB,OAAO,EAAP;AACzB,MAAMyN,QAAQ,GAAGD,IAAI,CAACxN,IAAL,CAAU0N,WAAV,EAAjB;AACA,MAAID,QAAQ,CAACE,UAAT,CAAoBV,qBAApB,KAA8CK,0BAA0B,CAACM,QAA3B,CAAoCH,QAApC,CAAlD,EACE,OAAOX,uBAAP;AACF,MAAIW,QAAQ,CAACE,UAAT,CAAoBT,qBAApB,KAA8CE,0BAA0B,CAACQ,QAA3B,CAAoCH,QAApC,CAAlD,EACE,OAAOV,uBAAP;AACF,MAAIU,QAAQ,CAACE,UAAT,CAAoBR,qBAApB,KAA8CE,0BAA0B,CAACO,QAA3B,CAAoCH,QAApC,CAAlD,EACE,OAAOT,uBAAP;AACF,SAAO,EAAP;AACD,CAVD;;AAYA,IAAMa,aAAa,GAAG,SAAhBA,aAAgB,CAACL,IAAD;AAAA,MAAOtM,KAAP,uEAAe,EAAf;AAAA,SACpB,IAAIC,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAC/B,QAAMyM,cAAc,GAAG,IAAIC,aAAJ,CAAkBP,IAAlB;AACrBQ,MAAAA,MAAM,EAAE,gBAACC,KAAD;AAAA,eAAW5M,MAAM,CAAC4M,KAAD,CAAjB;AAAA,OADa;AAErBC,MAAAA,UAAU,EAAE,oBAACC,IAAD;AAAA,eAAU/M,OAAO,CAAC+M,IAAD,CAAjB;AAAA;AAFS,OAGlBjN,KAHkB,EAAvB;AAKA4M,IAAAA,cAAc,CAACM,MAAf;AACD,GAPD,CADoB;AAAA,CAAtB;;AAUA,IAAMC,YAAY,GAAG,SAAfA,YAAe;AAAA,MACnBb,IADmB,QACnBA,IADmB;AAAA,MAEnBc,YAFmB,QAEnBA,YAFmB;AAAA,MAGnBC,UAHmB,QAGnBA,UAHmB;AAAA,2BAInBC,QAJmB;AAAA,MAITC,aAJS,8BAIO,EAJP;AAAA,mCAKnBC,iBALmB;AAAA,MAKnBA,iBALmB,sCAKC,EALD;AAAA,+BAMnBC,YANmB;AAAA,MAMnBA,YANmB,kCAMJ,EANI;AAAA,mCAOnBC,kBAPmB;AAAA,MAOnBA,kBAPmB,sCAOE,EAPF;AAAA,mCAQnBC,kBARmB;AAAA,MAQnBA,kBARmB,sCAQEnD,MARF;AAAA,+BASnBoD,YATmB;AAAA,MASnBA,YATmB,kCASJvB,mBATI;AAAA,SAWnB,IAAIpM,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV,EAAqB;AAC/B,QAAI;AACF,UAAI0N,MAAJ;AACAR,MAAAA,UAAU,CAAC,EAAD,CAAV;AACA,UAAMS,SAAS,GAAGF,YAAY,CAACtB,IAAD,CAA9B;AACA,UAAMyB,QAAQ,GAAGzB,IAAI,CAACzJ,IAAtB;AACA,UAAM0J,QAAQ,GAAGD,IAAI,CAACxN,IAAtB;;AALE,4BAMkByN,QAAQ,CAACd,KAAT,CAAe,GAAf,CANlB;AAAA;AAAA,UAMKuC,SANL;;AAOF,UAAMV,QAAQ;AACZW,QAAAA,gBAAgB,EAAEF,QADN;AAEZxB,QAAAA,QAAQ,EAARA,QAFY;AAGZyB,QAAAA,SAAS,EAATA;AAHY,SAITT,aAJS,CAAd;;AAMA,UAAMW,gBAAgB,GAAGC,kBAAkB,CAACb,QAAD,CAA3C;AACAc,MAAAA,QAAS,CAACC,uBAAV,CAAkC;AAChCH,QAAAA,gBAAgB,EAAhBA,gBADgC;AAEhC1M,QAAAA,WAAW;AACT8M,UAAAA,SAAS,EAAE;AADF,WAENd,iBAFM;AAFqB,OAAlC,EAOGpN,IAPH,CAOQ,iBAA4B;AAAA,YAAnBmO,YAAmB,SAAzB/P,IAAyB;AAChCqP,QAAAA,MAAM,GAAGU,YAAY,CAACnH,EAAtB;AACA,YAAI,CAACgG,YAAL,EAAmB,OAAOnN,OAAO,CAACC,OAAR,EAAP;AACnB,YAAMsO,aAAa,GAAGzF,KAAK,CAACC,OAAN,CAAcoE,YAAd,IAA8BA,YAA9B,GAA6C,CAACA,YAAD,CAAnE;AACA,eAAOnN,OAAO,CAACwO,GAAR,CACLD,aAAa,CAACxK,GAAd,CAAkB,UAACoD,EAAD;AAAA,iBAChBsH,UAAa,CAACC,mBAAd,CAAkC;AAChCvB,YAAAA,YAAY,EAAEhG,EADkB;AAEhCwH,YAAAA,QAAQ,EAAEf;AAFsB,WAAlC,CADgB;AAAA,SAAlB,CADK,CAAP;AAQD,OAnBH,EAoBGzN,IApBH,CAoBQ,YAAM;AACV,YAAMyO,UAAU,GAAGlB,kBAAkB,EAArC;;AACA,YAAMnM,WAAW;AACfuM,UAAAA,QAAQ,EAARA,QADe;AAEfc,UAAAA,UAAU,EAAVA,UAFe;AAGfC,UAAAA,GAAG,EAAEhB;AAHU,WAIZL,YAJY,CAAjB;;AAMA,eAAOd,aAAa,CAACL,IAAD;AAClBnN,UAAAA,GAAG,EAAE;AACH4P,YAAAA,MAAM,EAAEX,QAAS,CAACY,wBADf;AAEHhP,YAAAA,KAAK,EAAE;AACL6N,cAAAA,MAAM,EAANA,MADK;AAELoB,cAAAA,SAAS,EAAE,WAFN;AAGLzN,cAAAA,WAAW,EAAXA;AAHK;AAFJ,WADa;AASlB6L,UAAAA,UAAU,EAAVA;AATkB,WAUfK,kBAVe,EAApB;AAYD,OAxCH,EAyCGtN,IAzCH,CAyCQ,UAAC9B,QAAD,EAAc;AAClB4B,QAAAA,OAAO,mCAAM5B,QAAN;AAAgBuP,UAAAA,MAAM,EAANA,MAAhB;AAAwBT,UAAAA,YAAY,EAAZA;AAAxB,WAAP;AACD,OA3CH,WA4CS,UAACL,KAAD;AAAA,eAAW5M,MAAM,CAAC4M,KAAD,CAAjB;AAAA,OA5CT;AA6CD,KA3DD,CA2DE,OAAOmC,GAAP,EAAY;AACZ;AACAC,MAAAA,OAAO,CAACpC,KAAR,CAAcmC,GAAd;AACA/O,MAAAA,MAAM,CAAC+O,GAAD,CAAN;AACD;AACF,GAjED,CAXmB;AAAA,CAArB;;AA8EA,SAASE,cAAT,QAIG;AAAA,iCAHDjC,YAGC;AAAA,MAHakC,gBAGb,mCAHgClC,YAGhC;AAAA,oCAFDmC,eAEC;AAAA,MAFDA,eAEC,sCAFiB,EAEjB;AAAA,MADEtP,KACF;;AAAA,wBACyBN,KAAK,CAACwF,QAAN,CAAe,EAAf,CADzB;AAAA;AAAA,MACMqK,KADN;AAAA,MACaC,QADb;;AAED9P,EAAAA,KAAK,CAACY,SAAN,CACE;AAAA,WAAM,YAAM;AACV;AACAiP,MAAAA,KAAK,CAACE,OAAN,CAAc,UAACnD,IAAD;AAAA,eAAUoD,GAAG,CAACC,eAAJ,CAAoBrD,IAAI,CAACsD,OAAzB,CAAV;AAAA,OAAd;AACD,KAHD;AAAA,GADF,EAKE,CAACL,KAAD,CALF;AAOA,MAAMM,UAAU,GAAGnQ,KAAK,CAACK,WAAN,CACjB,YAAmB;AAAA,QAAlB+P,QAAkB,uEAAP,EAAO;AACjB,QAAMC,WAAW,GAAGD,QAAQ,CAAC9L,GAAT,CAAa,UAACsI,IAAD;AAAA,aAAW;AAC1CA,QAAAA,IAAI,EAAJA,IAD0C;AAE1CgB,QAAAA,QAAQ;AAAI0C,UAAAA,KAAK,EAAE1D,IAAI,CAACzJ;AAAhB,WAAyByM,eAAzB;AAFkC,OAAX;AAAA,KAAb,CAApB;AAIAE,IAAAA,QAAQ,CAAC,UAACS,YAAD;AAAA,aAAkBF,WAAW,CAACxL,MAAZ,CAAmB0L,YAAnB,CAAlB;AAAA,KAAD,CAAR;AACD,GAPgB,EAQjB,CAACX,eAAD,CARiB,CAAnB;AAUA,MAAMY,YAAY,GAAGxQ,KAAK,CAACK,WAAN,CACnB,UAACoQ,GAAD,EAA0B;AAAA,QAApBC,UAAoB,uEAAP,EAAO;AACxBZ,IAAAA,QAAQ,CAAC,UAACa,gBAAD,EAAsB;AAC7B,UAAMC,WAAW,GAAGD,gBAAgB,CAACF,GAAD,CAApC;AAD6B,UAEXI,WAFW,GAE4BH,UAF5B,CAErB9C,QAFqB;AAAA,UAEYkD,WAFZ,GAE4BJ,UAF5B,CAEEK,QAFF;AAAA,kCAG8CH,WAH9C,CAGrBhD,QAHqB;AAAA,UAGXoD,eAHW,sCAGO,EAHP;AAAA,kCAG8CJ,WAH9C,CAGWG,QAHX;AAAA,UAGqBE,eAHrB,sCAGuC,EAHvC;;AAI7B,UAAMC,YAAY,sBAAOP,gBAAP,CAAlB;;AACA,UAAMQ,OAAO,sBAAQP,WAAR,CAAb;;AACA,UAAIC,WAAJ,EAAiBM,OAAO,CAACvD,QAAR,qCAAwBoD,eAAxB,GAA4CH,WAA5C;AACjB,UAAIC,WAAJ,EAAiBK,OAAO,CAACJ,QAAR,qCAAwBE,eAAxB,GAA4CH,WAA5C;AACjBI,MAAAA,YAAY,CAACT,GAAD,CAAZ,GAAoBU,OAApB;AACA,aAAOD,YAAP;AACD,KAVO,CAAR;AAWD,GAbkB,EAcnB,CAACpB,QAAD,CAdmB,CAArB;AAgBA,MAAMsB,gBAAgB,GAAGpR,KAAK,CAACK,WAAN,CACvB,UAACoQ,GAAD;AAAA,WAAS,YAAsB;AAAA,UAArBK,WAAqB,uEAAP,EAAO;AAC7BN,MAAAA,YAAY,CAACC,GAAD,EAAM;AAAEM,QAAAA,QAAQ,EAAED;AAAZ,OAAN,CAAZ;AACD,KAFD;AAAA,GADuB,EAIvB,CAACN,YAAD,CAJuB,CAAzB;AAMA,MAAMa,gBAAgB,GAAGrR,KAAK,CAACK,WAAN,CACvB,UAACoQ,GAAD;AAAA,WAAS,YAAsB;AAAA,UAArBI,WAAqB,uEAAP,EAAO;AAC7BL,MAAAA,YAAY,CAACC,GAAD,EAAM;AAAE7C,QAAAA,QAAQ,EAAEiD;AAAZ,OAAN,CAAZ;AACD,KAFD;AAAA,GADuB,EAIvB,CAACL,YAAD,CAJuB,CAAzB;AAMA,MAAMc,QAAQ,GAAGtR,KAAK,CAACK,WAAN,CACf,UAACkR,WAAD;AAAA,WACE1B,KAAK,CAAClL,MAAN,CACE,UAAC6M,eAAD,EAAkBC,QAAlB,EAA4BhB,GAA5B;AAAA,aACEe,eAAe,CAAC9Q,IAAhB,CAAqB,UAACgR,GAAD,EAAS;AAC5B,YAAID,QAAQ,CAACV,QAAb,EAAuB;AACrB,iBAAOS,eAAP;AACD;;AACD,eAAO7B,gBAAgB;AACrB/C,UAAAA,IAAI,EAAE6E,QAAQ,CAAC7E,IADM;AAErBe,UAAAA,UAAU,EAAEyD,gBAAgB,CAACX,GAAD,CAFP;AAGrB7C,UAAAA,QAAQ,EAAE6D,QAAQ,CAAC7D;AAHE,WAIlB2D,WAJkB,GAKlBjR,KALkB,EAAhB,CAMJI,IANI,CAMC,UAACiR,aAAD;AAAA,8CAAuBD,GAAvB,IAA4BC,aAA5B;AAAA,SAND,CAAP;AAOD,OAXD,CADF;AAAA,KADF,EAcEpR,OAAO,CAACC,OAAR,CAAgB,EAAhB,CAdF,CADF;AAAA,GADe,EAkBf,CAACqP,KAAD,EAAQF,gBAAR,EAA0ByB,gBAA1B,EAA4C9Q,KAA5C,CAlBe,CAAjB;AAqBA,MAAMsR,YAAY,GAAG5R,KAAK,CAACK,WAAN,CACnB,UAACoQ,GAAD;AAAA,WAAS,YAAM;AACbX,MAAAA,QAAQ,CAAC,mBAAID,KAAJ,EAAWrN,MAAX,CAAkB,UAAC2E,CAAD,EAAI0K,CAAJ;AAAA,eAAUA,CAAC,KAAKpB,GAAhB;AAAA,OAAlB,CAAD,CAAR;AACD,KAFD;AAAA,GADmB,EAInB,CAACX,QAAD,EAAWD,KAAX,CAJmB,CAArB;AAOA,MAAMiC,aAAa,GAAG9R,KAAK,CAACK,WAAN,CACpB,UAAC0R,IAAD;AAAA,WAAU,YAAM;AACdjC,MAAAA,QAAQ,CAAC,mBAAID,KAAJ,EAAWrN,MAAX,CAAkB,UAAC2E,CAAD,EAAI0K,CAAJ;AAAA,eAAU,CAACE,IAAI,CAAC/E,QAAL,CAAc6E,CAAd,CAAX;AAAA,OAAlB,CAAD,CAAR;AACD,KAFD;AAAA,GADoB,EAIpB,CAAC/B,QAAD,EAAWD,KAAX,CAJoB,CAAtB;AAOA,SAAO;AACLM,IAAAA,UAAU,EAAVA,UADK;AAELK,IAAAA,YAAY,EAAZA,YAFK;AAGLa,IAAAA,gBAAgB,EAAhBA,gBAHK;AAILC,IAAAA,QAAQ,EAARA,QAJK;AAKLM,IAAAA,YAAY,EAAZA,YALK;AAMLE,IAAAA,aAAa,EAAbA,aANK;AAOLjC,IAAAA,KAAK,EAALA,KAPK;AAQLC,IAAAA,QAAQ,EAARA;AARK,GAAP;AAUD;;ACpNc,SAASkC,oBAAT,OAIZ;AAAA,MAHDC,OAGC,QAHDA,OAGC;AAAA,4BAFDC,SAEC;AAAA,MAFDA,SAEC,+BAFW,GAEX;AAAA,+BADDC,YACC;AAAA,MADDA,YACC,kCADctT,SACd;AACD,MAAMuT,eAAe,GAAGpS,KAAK,CAACC,MAAN,CAAakS,YAAb,CAAxB;AACA,MAAME,UAAU,GAAGrS,KAAK,CAACiI,OAAN,CAAc,YAAM;AACrC,QAAMqK,YAAY,GAAG,IAAIC,eAAJ,CAAoBN,OAAO,CAACO,QAAR,CAAiBC,MAArC,CAArB;AACA,QAAMC,YAAY,GAAGJ,YAAY,CAACK,GAAb,CAAiBT,SAAjB,CAArB;;AACA,QAAI,CAACQ,YAAL,EAAmB;AACjB,aAAON,eAAe,CAACpT,OAAvB;AACD;;AACD,QAAI;AACF,UAAM4T,YAAY,GAAGhH,gBAAgB,CAAC8G,YAAD,CAArC;AACA,aAAOrI,IAAI,CAACC,KAAL,CAAWsI,YAAX,CAAP;AACD,KAHD,CAGE,OAAOvF,KAAP,EAAc;AACd;AACA;AACAoC,MAAAA,OAAO,CAACpC,KAAR,CAAcA,KAAd;AACA4E,MAAAA,OAAO,CAAClH,OAAR,CAAgB;AAAE8H,QAAAA,QAAQ,EAAEZ,OAAO,CAACO,QAAR,CAAiBK,QAA7B;AAAuCJ,QAAAA,MAAM,EAAE;AAA/C,OAAhB;AACD;;AACD,WAAO5T,SAAP;AACD,GAhBkB,EAgBhB,CAACuT,eAAD,EAAkBH,OAAlB,EAA2BC,SAA3B,CAhBgB,CAAnB;AAkBA,SAAO;AAAEY,IAAAA,iBAAiB,EAAET;AAArB,GAAP;AACD;;ACxBc,SAASU,mBAAT,OAAkE;AAAA,MAAnCd,OAAmC,QAAnCA,OAAmC;AAAA,MAA1B/S,KAA0B,QAA1BA,KAA0B;AAAA,4BAAnBgT,SAAmB;AAAA,MAAnBA,SAAmB,+BAAP,GAAO;AAC/E,MAAMc,mBAAmB,GAAGhT,KAAK,CAACK,WAAN,CAAkB,YAAM;AAClD,QAAMqS,YAAY,GAAGrH,gBAAgB,CAAChB,IAAI,CAACK,SAAL,CAAexL,KAAf,CAAD,CAArC;AACA+S,IAAAA,OAAO,CAAClH,OAAR,CAAgB;AACd8H,MAAAA,QAAQ,EAAEZ,OAAO,CAACO,QAAR,CAAiBK,QADb;AAEdJ,MAAAA,MAAM,aAAMP,SAAN,cAAmBQ,YAAnB;AAFQ,KAAhB;AAID,GAN2B,EAMzB,CAACT,OAAD,EAAUC,SAAV,EAAqBhT,KAArB,CANyB,CAA5B,CAD+E;;AAU/EgG,EAAAA,eAAe,CAAC,YAAM;AACpB8N,IAAAA,mBAAmB,CAAC9T,KAAD,CAAnB;AACD,GAFc,EAEZ,CAAC8T,mBAAD,EAAsB9T,KAAtB,CAFY,CAAf;AAGD;;ACbD,IAAM+T,eAAe,GAAG,SAAlBA,eAAkB,OAA8B;AAAA,MAA3B/D,QAA2B,QAA3BA,QAA2B;AAAA,MAAjBgE,UAAiB,QAAjBA,UAAiB;;AAAA,gBAC2BtT,MAAM,CACnFuT,MAAS,CAACC,gBADyE,CADjC;AAAA,MACnCA,gBADmC,WAC5ChT,OAD4C;AAAA,6BACjBtB,IADiB;AAAA,MACXuU,iBADW,6BACS,EADT;AAAA,MACa3U,SADb,WACaA,SADb;;AAIpD,MAAM4U,MAAM,GAAGjT,WAAW,CACxB;AAAA,QAACC,KAAD,uEAAS,EAAT;AAAA,WACE8S,gBAAgB;AACdlE,MAAAA,QAAQ,EAARA,QADc;AAEdgE,MAAAA,UAAU,EAAVA;AAFc,OAGX5S,KAHW,EADlB;AAAA,GADwB;AAQxB,GAAC4O,QAAD,EAAWgE,UAAX,CARwB,CAA1B;AAUA,MAAMK,QAAQ,GAAGlT,WAAW,CAC1B;AAAA,QAAGmT,QAAH,SAAGA,QAAH;AAAA,QAAgBlT,KAAhB;;AAAA,WACE6S,MAAS,CAACM,kBAAV;AACED,MAAAA,QAAQ,EAARA,QADF;AAEEtE,MAAAA,QAAQ,EAARA,QAFF;AAGEgE,MAAAA,UAAU,EAAVA;AAHF,OAIK5S,KAJL,EADF;AAAA,GAD0B,EAQ1B,CAAC4O,QAAD,EAAWgE,UAAX,CAR0B,CAA5B;AAUA,MAAMQ,KAAK,GAAGrT,WAAW,CACvB;AAAA,QAAGsT,qBAAH,SAAGA,qBAAH;AAAA,QAA6BrT,KAA7B;;AAAA,WACE6S,MAAS,CAACS,kBAAV;AACEV,MAAAA,UAAU,EAAVA,UADF;AAEEhE,MAAAA,QAAQ,EAARA,QAFF;AAGEyE,MAAAA,qBAAqB,EAArBA;AAHF,OAIKrT,KAJL,EADF;AAAA,GADuB,EAQvB,CAAC4O,QAAD,EAAWgE,UAAX,CARuB,CAAzB;AAUA,SAAO;AACLG,IAAAA,iBAAiB,EAAjBA,iBADK;AAEL3U,IAAAA,SAAS,EAATA,SAFK;AAGL4U,IAAAA,MAAM,EAANA,MAHK;AAILC,IAAAA,QAAQ,EAARA,QAJK;AAKLG,IAAAA,KAAK,EAALA;AALK,GAAP;AAOD,CAzCD;;ACAA,IAAMG,gBAAgB,GAAG,SAAnBA,gBAAmB,GAA6B;AAAA,iFAAZ,EAAY;AAAA,uBAA1B/U,IAA0B;AAAA,MAA1BA,IAA0B,0BAAnB,EAAmB;;AAAA,MAARgV,GAAQ;AACpD,MAAI,CAACA,GAAL,EAAU,OAAOjV,SAAP;;AAD0C,cAElCC,IAAI,CAACiV,IAAL,CAAU,UAACC,CAAD;AAAA,WAAOA,CAAC,CAACF,GAAF,KAAUA,GAAjB;AAAA,GAAV,KAAmC,EAFD;AAAA,MAE5CnR,KAF4C,SAE5CA,KAF4C;;AAGpD,SAAOA,KAAP;AACD,CAJD;;AAMA,IAAMsR,wBAAwB,GAAG,SAA3BA,wBAA2B,CAACC,YAAD,EAAeC,IAAf,EAAwB;AACvD,SAAOC,MAAM,CAACC,MAAP,OAAAD,MAAM,GACX,EADW,4BAERD,IAAI,CAAC7P,GAAL,CAAS,UAACwP,GAAD,EAAS;AACnB,+BACGA,GADH,EACSD,gBAAgB,CAACK,YAAD,EAAeJ,GAAf,CADzB;AAGD,GAJE,CAFQ,GAAb;AAQD,CATD;;AAWA,IAAMQ,UAAU,GAAG,SAAbA,UAAa,GAAqC;AAAA,kFAAP,EAAO;AAAA,2BAAlCC,MAAkC;;AAAA,2CAAd,EAAc;AAAA,MAAxB1R,KAAwB,gBAAxBA,KAAwB;AACtD,SAAOA,KAAK,GAAGA,KAAK,CAACyB,GAAN,CAAU,UAACkQ,CAAD;AAAA,WAAQ;AAAE7R,MAAAA,KAAK,EAAE6R,CAAC,CAAC7R,KAAX;AAAkB8R,MAAAA,KAAK,EAAED,CAAC,CAACV,GAAF,IAASU,CAAC,CAAC7R;AAApC,KAAR;AAAA,GAAV,CAAH,GAAqE9D,SAAjF;AACD,CAFD;;AAIA,IAAM6V,sBAAsB,GAAG,SAAzBA,sBAAyB,CAACC,SAAD,EAAe;AAC5C,MAAMC,GAAG,GAAG,IAAIC,SAAJ,GAAgBC,eAAhB,CAAgCH,SAAhC,EAA2C,iBAA3C,CAAZ;AACA,MAAMI,MAAM,GAAGH,GAAG,CAACI,oBAAJ,CAAyB,OAAzB,CAAf;;AACA,MAAI,CAACD,MAAM,CAAC3M,MAAZ,EAAoB;AAClB,WAAOvJ,SAAP;AACD;;AACD,MAAMoW,IAAI,GAAG;AAAEpS,IAAAA,KAAK,EAAE;AAAT,GAAb;;AACA,OAAK,IAAIgP,CAAC,GAAG,CAAb,EAAgBA,CAAC,GAAGkD,MAAM,CAAC3M,MAA3B,EAAmCyJ,CAAC,IAAI,CAAxC,EAA2C;AAAA;;AAAA,8CACZkD,MAAM,CAAClD,CAAD,CAAN,CAAUqD,UADE;AAAA,QAClCC,OADkC;AAAA,QACzBC,SADyB;;AAEzCH,IAAAA,IAAI,CAACpS,KAAL,CAAWwS,IAAX,2DACGF,OAAO,CAACG,QADX,EACsBH,OAAO,CAACI,UAAR,CAAmBC,SADzC,qCAEGJ,SAAS,CAACE,QAFb,EAEwBF,SAAS,CAACG,UAAV,CAAqBC,SAF7C;AAID;;AACD,SAAOP,IAAP;AACD,CAfD;;AAiBA,IAAMQ,6BAA6B,GAAG,SAAhCA,6BAAgC,QAQhC;AAAA,MAPJV,MAOI,SAPJA,MAOI;AAAA,MANJW,MAMI,SANJA,MAMI;AAAA,oCALJC,iBAKI;AAAA,MALJA,iBAKI,sCALgB1B,wBAKhB;AAAA,oCAJJ2B,kBAII;AAAA,MAJJA,kBAII,sCAJiB,4BAIjB;AAAA,oCAHJC,kBAGI;AAAA,MAHJA,kBAGI,sCAHiB,aAGjB;AAAA,oCAFJC,gBAEI;AAAA,MAFJA,gBAEI,sCAFe,EAEf;AAAA,oCADJC,gBACI;AAAA,MADJA,gBACI,sCADe,EACf;;AAAA,wBAC8B/V,KAAK,CAACwF,QAAN,CAAe,KAAf,CAD9B;AAAA;AAAA,MACG9G,SADH;AAAA,MACcsX,YADd;;AAAA,yBAEoDhW,KAAK,CAACwF,QAAN,CAAeuP,MAAf,CAFpD;AAAA;AAAA,MAEGkB,oBAFH;AAAA,MAEyBC,uBAFzB;;AAAA,yBAGoDlW,KAAK,CAACwF,QAAN,CAAekQ,MAAf,CAHpD;AAAA;AAAA,MAGGS,oBAHH;AAAA,MAGyBC,uBAHzB;;AAKJC,EAAAA,oBAAoB,CAAC,YAAM;AACzB,QAAMC,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,UAACC,WAAD,uEAAe,EAAf;AAAA,UAAmBC,gBAAnB,uEAAsC,EAAtC;AAAA,aACzBD,WAAW,CAACjS,GAAZ,CAAgB,iBAA4B;AAAA,YAAzBnB,IAAyB,SAAzBA,IAAyB;AAAA,YAAhBsT,SAAgB;;AAC1C,YAAMC,eAAe,GAAGF,gBAAgB,CAACrT,IAAD,CAAhB,IAA0B,EAAlD;;AAD0C,iCAELwS,iBAAiB,CACpDe,eADoD,EAEpDd,kBAAkB,CAAC7J,KAAnB,CAAyB,GAAzB,CAFoD,CAFZ;AAAA,YAElC0I,KAFkC,sBAElCA,KAFkC;AAAA,YAExBkC,cAFwB;;AAM1C;AACExT,UAAAA,IAAI,EAAJA,IADF;AAEEsR,UAAAA,KAAK,EAAEA,KAAK,IAAItR,IAFlB;AAGE/D,UAAAA,IAAI,EAAEsX,eAAe,CAACtX,IAHxB;AAIEwX,UAAAA,OAAO,EAAEtC,UAAU,CAACoC,eAAD;AAJrB,WAKKC,cALL,GAMKF,SANL;AAQD,OAdD,CADyB;AAAA,KAA3B;;AAiBA,QAAMI,kBAAkB,GAAG,SAArBA,kBAAqB;AAAA,UAACC,WAAD,uEAAe,EAAf;AAAA,UAAmBC,gBAAnB,uEAAsC,EAAtC;AAAA,UAA0CP,gBAA1C,uEAA6D,EAA7D;AAAA,aACzBM,WAAW,CAACxS,GAAZ,CAAgB,iBAA0C;AAAA,YAAvCnB,IAAuC,SAAvCA,IAAuC;AAAA,YAAjCN,KAAiC,SAAjCA,KAAiC;AAAA,YAA1BmU,KAA0B,SAA1BA,KAA0B;AAAA,YAAhBP,SAAgB;;AACxD,YAAMQ,eAAe,GAAGF,gBAAgB,CAAC5T,IAAD,CAAhB,IAA0B,EAAlD;AACA,YAAM+T,WAAW,GAAGrU,KAAK,IAAKoU,eAAe,IAAIA,eAAe,CAACpU,KAAjE;AACA,YAAMsU,WAAW,GAAGH,KAAK,IAAKC,eAAe,IAAIA,eAAe,CAACD,KAAjE;;AAHwD,kCAInBrB,iBAAiB,CACpDsB,eADoD,EAEpDpB,kBAAkB,CAAC9J,KAAnB,CAAyB,GAAzB,CAFoD,CAJE;AAAA,YAIhD0I,KAJgD,uBAIhDA,KAJgD;AAAA,YAItCkC,cAJsC;;AAQxD;AACExT,UAAAA,IAAI,EAAJA,IADF;AAEEsR,UAAAA,KAAK,EAAEA,KAAK,IAAItR,IAFlB;AAGEL,UAAAA,KAAK,EAAE+Q,gBAAgB,CAACoD,eAAD,EAAkB,OAAlB,CAHzB;AAIElC,UAAAA,MAAM,EAAEuB,kBAAkB,CAACY,WAAD,EAAcV,gBAAd,CAJ5B;AAKEd,UAAAA,MAAM,EAAEmB,kBAAkB,CAACM,WAAD,EAAcJ,gBAAd,EAAgCP,gBAAhC;AAL5B,WAMKG,cANL,GAOKF,SAPL;AASD,OAjBD,CADyB;AAAA,KAA3B;;AAmBA,QAAIW,SAAS,GAAG,KAAhB;;AArCyB,aAsCVC,oBAtCU;AAAA;AAAA;;AAAA;AAAA,sFAsCzB;AAAA;;AAAA;AAAA;AAAA;AAAA;AACErB,gBAAAA,YAAY,CAAC,IAAD,CAAZ;AACMQ,gBAAAA,gBAFR,GAE2B,EAF3B;AAGQO,gBAAAA,gBAHR,GAG2B,EAH3B;AAIMO,gBAAAA,aAJN,GAIsB,EAJtB;;AAKE,oBAAIvC,MAAJ,EAAY;AACJjT,kBAAAA,WADI,qCACegU,gBADf;AACiChX,oBAAAA,IAAI,EAAE8W;AADvC;AAEV0B,kBAAAA,aAAa,GAAGvC,MAAM,CAACzQ,GAAP;AAAA,wFAAW;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAeqF,8BAAAA,SAAf,SAASxG,IAAT;AAAA;AAAA;AAAA,qCAEAoU,aAAgB,CAACC,gBAAjB,CAAkC;AACvD7N,gCAAAA,SAAS,EAATA,SADuD;AAEvD7H,gCAAAA,WAAW,EAAXA;AAFuD,+BAAlC,CAFA;;AAAA;AAAA;AAEfhD,8BAAAA,IAFe,yBAEfA,IAFe;AAMvB0X,8BAAAA,gBAAgB,CAAC7M,SAAD,CAAhB,GAA8B7K,IAA9B;AANuB;AAAA;;AAAA;AAAA;AAAA;AAQvB;AACA2Q,8BAAAA,OAAO,CAACgI,IAAR,6CAAkD9N,SAAlD;;AATuB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAX;;AAAA;AAAA;AAAA;AAAA,sBAAhB;AAYD;;AACG+N,gBAAAA,aApBN,GAoBsB,EApBtB;;AAqBE,oBAAIhC,MAAJ,EAAY;AACJiC,kBAAAA,aADI,sBACgBjC,MADhB;AAEJ5T,kBAAAA,YAFI,qCAEeiU,gBAFf;AAEiCjX,oBAAAA,IAAI,EAAE+W;AAFvC;AAGV6B,kBAAAA,aAAa,GAAGC,aAAa,CAACrT,GAAd;AAAA,yFAAkB;AAAA;;AAAA;AAAA;AAAA;AAAA;AAAesT,8BAAAA,SAAf,UAASzU,IAAT;AAAA;AAAA;AAAA,qCAEP0U,UAAa,CAACC,aAAd,CAA4B;AACjDF,gCAAAA,SAAS,EAATA,SADiD;AAEjD9V,gCAAAA,WAAW,EAAXA;AAFiD,+BAA5B,CAFO;;AAAA;AAAA;AAEtBhD,8BAAAA,IAFsB,yBAEtBA,IAFsB;AAAA,4CAMKA,IANL,CAMtB+D,KANsB,EAMtBA,KANsB,4BAMd,EANc,8BAMK/D,IANL,CAMVkY,KANU,EAMVA,KANU,4BAMF,EANE;AAO9BnU,8BAAAA,KAAK,CAACkN,OAAN,CAAc,UAACyE,CAAD,EAAO;AACnB,oCAAMuD,UAAU,GAAGvD,CAAC,CAAC1V,IAAF,IAAU0V,CAAC,CAAC1V,IAAF,CAAOiV,IAAP,CAAY,UAACiE,CAAD;AAAA,yCAAOA,CAAC,CAAClE,GAAF,KAAU,UAAjB;AAAA,iCAAZ,CAA7B;;AACA,oCAAIiE,UAAJ,EAAgB;AACd,sCAAME,UAAU,GAAGvD,sBAAsB,CAACqD,UAAU,CAACpV,KAAZ,CAAzC;AACA6T,kCAAAA,gBAAgB,CAAChC,CAAC,CAACrR,IAAH,CAAhB,qCAAgCqR,CAAhC;AAAmCD,oCAAAA,MAAM,EAAE0D;AAA3C;AACD;AACF,+BAND;AAOAjB,8BAAAA,KAAK,CAACjH,OAAN,CAAc,UAACmI,CAAD,EAAO;AACnBP,gCAAAA,aAAa,CAACtC,IAAd,CAAmB6C,CAAnB;AACD,+BAFD;AAGAnB,8BAAAA,gBAAgB,CAACa,SAAD,CAAhB,GAA8B9Y,IAA9B;AAjB8B;AAAA;;AAAA;AAAA;AAAA;AAmB9B;AACA2Q,8BAAAA,OAAO,CAACgI,IAAR,6CAAkDG,SAAlD;;AApB8B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAlB;;AAAA;AAAA;AAAA;AAAA,sBAAhB;AAuBD;;AA/CH;AAAA,uBAgDQrX,OAAO,CAACwO,GAAR,8BAAgBuI,aAAhB,sBAAkCI,aAAlC,GAhDR;;AAAA;AAiDE,oBAAI,CAACN,SAAL,EAAgB;AACd,sBAAIhD,MAAM,CAACG,MAAP,CAAciC,gBAAd,EAAgC2B,IAAhC,CAAqC,UAACC,CAAD;AAAA,2BAAOA,CAAP;AAAA,mBAArC,CAAJ,EAAoD;AAClDlC,oBAAAA,uBAAuB,CAAC;AAAA,6BAAMI,kBAAkB,CAACvB,MAAD,EAASyB,gBAAT,CAAxB;AAAA,qBAAD,CAAvB;AACD;;AACD,sBAAIpC,MAAM,CAACG,MAAP,CAAcwC,gBAAd,EAAgCoB,IAAhC,CAAqC,UAACC,CAAD;AAAA,2BAAOA,CAAP;AAAA,mBAArC,CAAJ,EAAoD;AAClDhC,oBAAAA,uBAAuB,CAAC,YAAM;AAC5B,0BAAMiC,uBAAuB,GAAGxB,kBAAkB,CAChDnB,MADgD,EAEhDqB,gBAFgD,EAGhDP,gBAHgD,CAAlD;AAKA6B,sBAAAA,uBAAuB,CAACtI,OAAxB,CAAgC,UAACiH,KAAD,EAAW;AAAA,4BACjClU,KADiC,GACvBkU,KADuB,CACjClU,KADiC;;AAEzC,4BAAIA,KAAJ,EAAW;AACTkU,0BAAAA,KAAK,CAACjC,MAAN,CAAanS,IAAb,CAAkB,UAACgC,CAAD,EAAI0T,CAAJ;AAAA,mCAAUxV,KAAK,CAACyV,OAAN,CAAc3T,CAAC,CAACzB,IAAhB,IAAwBL,KAAK,CAACyV,OAAN,CAAcD,CAAC,CAACnV,IAAhB,CAAlC;AAAA,2BAAlB;AACD;AACF,uBALD;AAMA,6BAAOkV,uBAAP;AACD,qBAbsB,CAAvB;AAcD;;AACDrC,kBAAAA,YAAY,CAAC,KAAD,CAAZ;AACD;;AAtEH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,OAtCyB;AAAA;AAAA;;AA8GzBqB,IAAAA,oBAAoB;AACpB,WAAO,YAAM;AACXD,MAAAA,SAAS,GAAG,IAAZ;AACD,KAFD;AAGD,GAlHmB,EAkHjB,CAACrC,MAAD,EAASW,MAAT,EAAiBE,kBAAjB,EAAqCC,kBAArC,EAAyDC,gBAAzD,EAA2EC,gBAA3E,CAlHiB,CAApB;AAoHA,SAAO;AAAEE,IAAAA,oBAAoB,EAApBA,oBAAF;AAAwBE,IAAAA,oBAAoB,EAApBA,oBAAxB;AAA8CzX,IAAAA,SAAS,EAATA;AAA9C,GAAP;AACD,CAlID;;AChCA,IAAM8Z,gBAAgB,GAAG,IAAzB;;AAGA,IAAMC,WAAW,GAAG,WAApB;;AAEA,SAASC,UAAT,OAAgF;AAAA,MAA1D9K,QAA0D,QAA1DA,QAA0D;AAAA,MAAhD+K,WAAgD,QAAhDA,WAAgD;AAAA,MAAnCC,WAAmC,QAAnCA,WAAmC;AAAA,MAAtB5W,kBAAsB,QAAtBA,kBAAsB;AAC9E,SAAO6W,IAAO,CAACC,UAAR,CAAmB;AACxBhX,IAAAA,WAAW,EAAE;AACXiX,MAAAA,MAAM,EAAE,SADG;AAEXC,MAAAA,UAAU,EAAEP,WAFD;AAGXQ,MAAAA,eAAe,EAAET;AAHN,KADW;AAMxBxW,IAAAA,kBAAkB,EAAlBA;AANwB,GAAnB,EAOJtB,IAPI,CAOC;AAAA,QAAWwY,OAAX,SAAGpa,IAAH,CAAWoa,OAAX;AAAA,WACNlK,UAAa,CAACmK,gBAAd,CAA+B;AAC7BC,MAAAA,kBAAkB,EAAE;AAClBxL,QAAAA,QAAQ,EAAE+K,WAAW,GACjBlK,kBAAkB,oCACfkK,WADe,EACDC,WAAW,IAAIM,OADd,GAEbtL,QAFa,EADD,GAKjBA,QANc;AAOlBzL,QAAAA,OAAO,EAAE,CACP;AACEuF,UAAAA,EAAE,EAAEwR,OADN;AAEE9Z,UAAAA,IAAI,EAAE;AAFR,SADO;AAPS;AADS,KAA/B,CADM;AAAA,GAPD,CAAP;AAyBD;;AAED,IAAMia,wBAAwB,GAAG,SAA3BA,wBAA2B;AAAA,MAAG3L,YAAH,SAAGA,YAAH;AAAA,SAC/B,IAAInN,OAAJ,CAAY,UAACC,OAAD,EAAUC,MAAV;AAAA,WACVuO,UAAa,CAACsK,aAAd,CAA4B;AAAE5L,MAAAA,YAAY,EAAZA,YAAF;AAAgB5L,MAAAA,WAAW,EAAE;AAAEyX,QAAAA,QAAQ,EAAE;AAAZ;AAA7B,KAA5B,EAAoF7Y,IAApF,CACE,iBAA8B;AAAA,UAArB8Y,cAAqB,SAA3B1a,IAA2B;AAAA,kCACH0a,cADG,CACpBrX,OADoB;AAAA,UACpBA,OADoB,sCACV,EADU;;AAAA,oCAENA,OAFM;AAAA,UAErBsX,WAFqB;;AAG5B,UAAI,CAACA,WAAL,EAAkBhZ,MAAM,CAAC,IAAIiZ,KAAJ,CAAU,cAAV,CAAD,CAAN;AAClBlZ,MAAAA,OAAO,CAACiZ,WAAD,CAAP;AACD,KANH,CADU;AAAA,GAAZ,CAD+B;AAAA,CAAjC;;AAYA,IAAME,YAAY,GAAG,SAAfA,YAAe;AAAA,MAAGjM,YAAH,SAAGA,YAAH;AAAA,SACnB2L,wBAAwB,CAAC;AAAE3L,IAAAA,YAAY,EAAZA;AAAF,GAAD,CAAxB,CAA2ChN,IAA3C,CAAgD;AAAA,QAAOkZ,SAAP,SAAGlS,EAAH;AAAA,WAC9CnH,OAAO,CAACwO,GAAR,CAAY,CACV8K,OAAU,CAACC,aAAX,CAAyB;AAAEF,MAAAA,SAAS,EAATA;AAAF,KAAzB,CADU,EAEV5K,UAAa,CAAC+K,gBAAd,CAA+B;AAAErM,MAAAA,YAAY,EAAZA;AAAF,KAA/B,CAFU,CAAZ,CAD8C;AAAA,GAAhD,CADmB;AAAA,CAArB;;AAQA,SAASsM,kBAAT,QAA2C;AAAA,MAAbJ,SAAa,SAAbA,SAAa;AACzC,SAAO,IAAIrZ,OAAJ,CAAY,UAACC,OAAD;AAAA,WACjBqZ,OAAU,CAACG,kBAAX,CAA8B;AAAEJ,MAAAA,SAAS,EAATA;AAAF,KAA9B,EAA6ClZ,IAA7C,CAAkD,iBAAyB;AAAA,UAAduZ,KAAc,SAAtBnb,IAAsB,CAAdmb,KAAc;AACzEzZ,MAAAA,OAAO,CAACyZ,KAAD,CAAP;AACD,KAFD,CADiB;AAAA,GAAZ,CAAP;AAKD;;AAED,IAAMC,sBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,MAAGxM,YAAH,SAAGA,YAAH;AAAA,SAC7B,IAAInN,OAAJ,CAAY,UAACC,OAAD;AAAA,WACV6Y,wBAAwB,CAAC;AAAE3L,MAAAA,YAAY,EAAZA;AAAF,KAAD,CAAxB,CACGhN,IADH,CACQ;AAAA,UAAOkZ,SAAP,UAAGlS,EAAH;AAAA,aAAuBsS,kBAAkB,CAAC;AAAEJ,QAAAA,SAAS,EAATA;AAAF,OAAD,CAAzC;AAAA,KADR,EAEGlZ,IAFH,CAEQF,OAFR,CADU;AAAA,GAAZ,CAD6B;AAAA,CAA/B;;AAOA,AAAe,SAAS2Z,cAAT,SAQZ;AAAA,MAPDxB,WAOC,UAPDA,WAOC;AAAA,MANDC,WAMC,UANDA,WAMC;AAAA,MALDwB,kBAKC,UALDA,kBAKC;AAAA,mCAJDC,YAIC;AAAA,MAJDA,YAIC,oCAJc3B,UAId;AAAA,qCAHD4B,cAGC;AAAA,MAHDA,cAGC,sCAHgBX,YAGhB;AAAA,qCAFDY,sBAEC;AAAA,MAFDA,sBAEC,sCAFwBvL,UAAa,CAACwL,wBAEtC;AAAA,qCADDC,wBACC;AAAA,MADDA,wBACC,sCAD0BP,sBAC1B;AACD,MAAMQ,oBAAoB,GAAG1a,KAAK,CAACK,WAAN,CAC3B;AAAA,QAAGuN,QAAH,UAAGA,QAAH;AAAA,QAAa5L,kBAAb,UAAaA,kBAAb;AAAA,WACEqY,YAAY,CAAC;AACXzM,MAAAA,QAAQ,EAARA,QADW;AAEX+K,MAAAA,WAAW,EAAXA,WAFW;AAGXC,MAAAA,WAAW,EAAXA,WAHW;AAIX5W,MAAAA,kBAAkB,EAAlBA;AAJW,KAAD,CADd;AAAA,GAD2B,EAQ3B,CAAC2W,WAAD,EAAcC,WAAd,EAA2ByB,YAA3B,CAR2B,CAA7B;;AAWA,MAAMM,gBAAgB,GAAG,SAAnBA,gBAAmB;AAAA,QAAC3Y,kBAAD,uEAAsB,EAAtB;AAAA,6CACpBA,kBADoB;AAEvBkB,MAAAA,QAAQ,EAAE;AACRL,QAAAA,KAAK,EAAE,CACL;AACEM,UAAAA,IAAI,EAAEwV,WADR;AAEEhW,UAAAA,KAAK,EAAE,CAAC;AAAEA,YAAAA,KAAK,EAAEiW,WAAW,IAAI;AAAxB,WAAD;AAFT,SADK,CADC;AAOR1V,QAAAA,QAAQ,EAAElB,kBAAkB,CAACkB,QAAnB,GAA8B,CAAClB,kBAAkB,CAACkB,QAApB,CAA9B,GAA8D,EAPhE;AAQRE,QAAAA,SAAS,EAAE;AARH;AAFa;AAAA,GAAzB;;AAcA,MAAMwX,WAAW,GAAGtX,SAAS,mCACxB8W,kBADwB;AAE3BpY,IAAAA,kBAAkB,EAAE2Y,gBAAgB;AAFT,KAA7B;;AA1BC,MA+BO5W,sBA/BP,GA+B2C6W,WA/B3C,CA+BO7W,qBA/BP;AAAA,MA+BiCzD,KA/BjC,4BA+B2Csa,WA/B3C;;AAiCD,SAAO;AACLP,IAAAA,YAAY,EAAEK,oBADT;AAELJ,IAAAA,cAAc,EAAdA,cAFK;AAGLC,IAAAA,sBAAsB,EAAtBA,sBAHK;AAILE,IAAAA,wBAAwB,EAAxBA,wBAJK;AAKLG,IAAAA,WAAW;AACT7W,MAAAA,qBAAqB,EAAE,+BAAC/B,kBAAD;AAAA,eACrB+B,sBAAqB,CAAC4W,gBAAgB,CAAC3Y,kBAAD,CAAjB,CADA;AAAA;AADd,OAGN1B,KAHM;AALN,GAAP;AAWD;;AC7Hc,SAASua,aAAT,OAA0E;AAAA,MAAjD7Y,kBAAiD,QAAjDA,kBAAiD;AAAA,MAA7BF,WAA6B,QAA7BA,WAA6B;AAAA,MAAhBC,YAAgB,QAAhBA,YAAgB;;AAAA,gBACtBnC,MAAM,CAACiZ,IAAO,CAACC,UAAT,CADgB;AAAA,MAC/E1Y,OAD+E,WAC/EA,OAD+E;AAAA,6BACtEtB,IADsE;AAAA,MAChEgc,YADgE,6BACjD,EADiD;AAAA,MAC7Cpc,SAD6C,WAC7CA,SAD6C;AAAA,MAClCC,OADkC,WAClCA,OADkC;;AAEvF,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAE4B,MAAAA,kBAAkB,EAAlBA,kBAAF;AAAsBF,MAAAA,WAAW,EAAXA,WAAtB;AAAmCC,MAAAA,YAAY,EAAZA;AAAnC,KAAD,CAAb;AAAA,GAAlB;;AACAsU,EAAAA,oBAAoB,CAAC,YAAM;AACzB0E,IAAAA,SAAS;AACV,GAFmB,EAEjB,CAAC/Y,kBAAD,EAAqBF,WAArB,EAAkCC,YAAlC,CAFiB,CAApB;AAGA,SAAO;AACL+Y,IAAAA,YAAY,EAAZA,YADK;AAELpc,IAAAA,SAAS,EAATA,SAFK;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILoc,IAAAA,SAAS,EAATA;AAJK,GAAP;AAMD;;ACfM,IAAMC,oBAAoB,GAAG,SAAvBA,oBAAuB,GAAM;AAAA,wBACRhb,KAAK,CAACwF,QAAN,CAAe;AAAEyV,IAAAA,CAAC,EAAE,CAAL;AAAQC,IAAAA,CAAC,EAAE;AAAX,GAAf,CADQ;AAAA;AAAA,MACjCC,QADiC;AAAA,MACvBC,WADuB;;AAGxCpb,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAMya,YAAY,GAAG,SAAfA,YAAe,CAACrD,CAAD;AAAA,aAAOoD,WAAW,CAAC;AAAEH,QAAAA,CAAC,EAAEjD,CAAC,CAACsD,OAAP;AAAgBJ,QAAAA,CAAC,EAAElD,CAAC,CAACuD;AAArB,OAAD,CAAlB;AAAA,KAArB;;AACAhR,IAAAA,MAAM,CAACiR,gBAAP,CAAwB,WAAxB,EAAqCH,YAArC;AAEA,WAAO,YAAM;AACX9Q,MAAAA,MAAM,CAACkR,mBAAP,CAA2B,WAA3B,EAAwCJ,YAAxC;AACD,KAFD;AAGD,GAPD,EAOG,EAPH;AASA,SAAOF,QAAP;AACD,CAbM;;ACGQ,SAASO,gBAAT,OAIZ;AAAA,MAHDhO,YAGC,QAHDA,YAGC;AAAA,8BAFD5L,WAEC;AAAA,MAFDA,WAEC,iCAFa,EAEb;AAAA,iCADD6Z,cACC;AAAA,MADDA,cACC,oCADgB,IAChB;;AAAA,gBACkE/b,MAAM,CACvEoP,UAAa,CAACsK,aADyD,CADxE;AAAA,MACOlZ,OADP,WACOA,OADP;AAAA,6BACgBtB,IADhB;AAAA,MACsB0a,cADtB,6BACuC,EADvC;AAAA,MAC2C9a,SAD3C,WAC2CA,SAD3C;AAAA,MACsDC,OADtD,WACsDA,OADtD;;AAID,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAEsN,MAAAA,YAAY,EAAZA,YAAF;AAAgB5L,MAAAA,WAAW,EAAXA;AAAhB,KAAD,CAAb;AAAA,GAAlB;;AACAuU,EAAAA,oBAAoB,CAAC,YAAM;AACzB,QAAIsF,cAAJ,EAAoBZ,SAAS;AAC9B,GAFmB,EAEjB,CAACrN,YAAD,EAAe5L,WAAf,CAFiB,CAApB;AAGA,SAAO;AACL0X,IAAAA,cAAc,EAAdA,cADK;AAEL9a,IAAAA,SAAS,EAATA,SAFK;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILoc,IAAAA,SAAS,EAATA;AAJK,GAAP;AAMD;;AClBc,SAASW,kBAAT,OAIZ;AAAA,MAHDhO,YAGC,QAHDA,YAGC;AAAA,8BAFD5L,WAEC;AAAA,MAFDA,WAEC,iCAFa,EAEb;AAAA,iCADD6Z,cACC;AAAA,MADDA,cACC,oCADgB,IAChB;;AAAA,gBAC4C/b,MAAM,CAACoP,UAAa,CAAC4M,iBAAf,CADlD;AAAA,MACOxb,OADP,WACOA,OADP;AAAA,6BACgBtB,IADhB;AAAA,MACsBgc,YADtB,6BACqC,EADrC;;AAED,MAAMC,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAEsN,MAAAA,YAAY,EAAZA,YAAF;AAAgB5L,MAAAA,WAAW,EAAXA;AAAhB,KAAD,CAAb;AAAA,GAAlB;;AACAuU,EAAAA,oBAAoB,CAAC,YAAM;AACzB,QAAIsF,cAAJ,EAAoBZ,SAAS;AAC9B,GAFmB,EAEjB,CAACrN,YAAD,EAAe5L,WAAf,CAFiB,CAApB;AAGA,SAAO;AACLgZ,IAAAA,YAAY,EAAZA,YADK;AAELC,IAAAA,SAAS,EAATA;AAFK,GAAP;AAID;;ACVD,IAAMc,YAAY,GAAG,SAAfA,YAAe,OAA8B;AAAA;;AAAA,MAA3B3M,QAA2B,QAA3BA,QAA2B;AAAA,MAAjBgE,UAAiB,QAAjBA,UAAiB;AACjD,MAAI4I,QAAJ;AACA,MAAIC,SAAJ;AACA,MAAIC,YAAJ;;AACA,UAAQ9I,UAAR;AACE,SAAK,YAAL;AACE4I,MAAAA,QAAQ,GAAG,gBAAX;AACAE,MAAAA,YAAY,GAAG,cAAf;AACAD,MAAAA,SAAS,GAAG/M,UAAa,CAACsK,aAA1B;AACA;;AACF,SAAK,SAAL;AACEwC,MAAAA,QAAQ,GAAG,aAAX;AACAE,MAAAA,YAAY,GAAG,WAAf;AACAD,MAAAA,SAAS,GAAGlC,OAAU,CAACoC,UAAvB;AACA;;AACF,SAAK,MAAL;AACEH,MAAAA,QAAQ,GAAG,UAAX;AACAE,MAAAA,YAAY,GAAG,QAAf;AACAD,MAAAA,SAAS,GAAGlD,IAAO,CAACpO,OAApB;AACA;;AACF;AACE,YAAM,IAAIiP,KAAJ,uBAAN;AAjBJ;;AAJiD,gBAuBV9Z,MAAM,CAACmc,SAAD,CAvBI;AAAA,MAuBzC3b,OAvByC,WAuBzCA,OAvByC;AAAA,MAuBhCtB,IAvBgC,WAuBhCA,IAvBgC;AAAA,MAuBvBod,QAvBuB;;AAwBjD,MAAMC,WAAW,GAAGnc,KAAK,CAACK,WAAN,CAClB,UAACC,KAAD;AAAA,WAAWF,OAAO,oCAAI4b,YAAJ,EAAmB9M,QAAnB,GAAgC5O,KAAhC,EAAlB;AAAA,GADkB,EAElB,CAAC4O,QAAD,EAAW8M,YAAX,EAAyB5b,OAAzB,CAFkB,CAApB;AAIA,8EACG0b,QADH,EACchd,IADd,mCAEGkd,YAFH,EAEkB9M,QAFlB,kDAGEiN,WAHF,oBAIKD,QAJL;AAMD,CAlCD;;ACLe,SAASE,OAAT,CAAiB7c,YAAjB,EAA+B;AAAA,gBACRK,MAAM,CAACyc,IAAO,CAACC,OAAT,EAAkB;AAAExd,IAAAA,IAAI,EAAES;AAAR,GAAlB,CADE;AAAA,MAC9Bgd,QAD8B,WACpCzd,IADoC;AAAA,MACpBsB,OADoB,WACpBA,OADoB;;AAAA,aAEvBmc,QAAQ,IAAI,EAFW;AAAA,MAEpCC,QAFoC,QAEpCA,QAFoC;;AAG5C,MAAMF,OAAO,GAAGtc,KAAK,CAACK,WAAN,CAAkB;AAAA,WAAMD,OAAO,CAAC;AAAEoc,MAAAA,QAAQ,EAARA;AAAF,KAAD,CAAb;AAAA,GAAlB,EAA+C,CAACpc,OAAD,EAAUoc,QAAV,CAA/C,CAAhB;AACAxc,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAI4b,QAAJ,EAAcF,OAAO;AACtB,GAFD,EAEG,CAACA,OAAD,EAAUE,QAAV,CAFH;AAIA,MAAMC,UAAU,GAAGzc,KAAK,CAACK,WAAN,CACjB;AAAA,QAAGqc,YAAH,SAAGA,YAAH;AAAA,WACEL,IAAO,CAACI,UAAR,CAAmB;AACjBD,MAAAA,QAAQ,EAARA,QADiB;AAEjBE,MAAAA,YAAY,EAAZA;AAFiB,KAAnB,EAGGhc,IAHH,CAGQ;AAAA,aAAMN,OAAO,CAAC;AAAEoc,QAAAA,QAAQ,EAAEE,YAAY,CAACF;AAAzB,OAAD,CAAb;AAAA,KAHR,CADF;AAAA,GADiB,EAMjB,CAACpc,OAAD,EAAUoc,QAAV,CANiB,CAAnB;AASA,MAAMG,gBAAgB,GAAG3c,KAAK,CAACK,WAAN,CACvB;AAAA,6BAAGqV,MAAH;AAAA,QAAGA,MAAH,6BAAY,EAAZ;AAAA,WACE2G,IAAO,CAACO,eAAR,CAAwB;AACtBJ,MAAAA,QAAQ,EAARA,QADsB;AAEtBK,MAAAA,iBAAiB,EAAE;AACjB7F,QAAAA,KAAK,EAAEtB,MAAM,CAACpR,GAAP,CAAW,UAAC4T,CAAD;AAAA,iBAAQ;AAAEN,YAAAA,SAAS,EAAEM;AAAb,WAAR;AAAA,SAAX;AADU;AAFG,KAAxB,EAKGxX,IALH,CAKQ4b,OALR,CADF;AAAA,GADuB,EAQvB,CAACA,OAAD,EAAUE,QAAV,CARuB,CAAzB;AAWA,MAAMM,mBAAmB,GAAG9c,KAAK,CAACK,WAAN,CAC1B,UAACuX,SAAD;AAAA,WACEmF,KAAQ,CAACC,eAAT,CAAyB;AACvBpF,MAAAA,SAAS,EAATA,SADuB;AAEvB4E,MAAAA,QAAQ,EAARA;AAFuB,KAAzB,EAGG9b,IAHH,CAGQ4b,OAHR,CADF;AAAA,GAD0B,EAM1B,CAACA,OAAD,EAAUE,QAAV,CAN0B,CAA5B;AASA,MAAMS,cAAc,GAAGjd,KAAK,CAACK,WAAN,CACrB,UAAC6c,QAAD;AAAA,WACEb,IAAO,CAACI,UAAR,CAAmB;AACjBD,MAAAA,QAAQ,EAARA,QADiB;AAEjBE,MAAAA,YAAY,EAAE;AACZQ,QAAAA,QAAQ,EAARA;AADY,OAFG;AAKjBpb,MAAAA,WAAW,EAAE;AACXqb,QAAAA,YAAY,EAAE;AADH;AALI,KAAnB,CADF;AAAA,GADqB,EAWrB,CAACX,QAAD,CAXqB,CAAvB;;AAaA,MAAMY,UAAU,GAAG,SAAbA,UAAa;AAAA,oFAAwB,EAAxB;AAAA,kCAAGtb,WAAH;AAAA,QAAGA,WAAH,kCAAiB,EAAjB;;AAAA,WACjBua,IAAO,CAACgB,WAAR,CAAoB;AAAEb,MAAAA,QAAQ,EAARA,QAAF;AAAY1a,MAAAA,WAAW;AAAIwb,QAAAA,IAAI,EAAE;AAAV,SAAmBxb,WAAnB;AAAvB,KAApB,CADiB;AAAA,GAAnB;;AAEA,MAAMub,WAAW,GAAG,SAAdA,WAAc,CAACE,IAAD;AAAA,WAAUlB,IAAO,CAACgB,WAAR;AAAsBb,MAAAA,QAAQ,EAARA;AAAtB,OAAmCe,IAAnC,GAA2C7c,IAA3C,CAAgD4b,OAAhD,CAAV;AAAA,GAApB;;AACA,MAAMkB,UAAU,GAAG,SAAbA,UAAa,CAACD,IAAD;AAAA,WAAUlB,IAAO,CAACmB,UAAR;AAAqBhB,MAAAA,QAAQ,EAARA;AAArB,OAAkCe,IAAlC,GAA0C7c,IAA1C,CAA+C4b,OAA/C,CAAV;AAAA,GAAnB;;AAEA,SAAO;AACLC,IAAAA,QAAQ,EAARA,QADK;AAELD,IAAAA,OAAO,EAAPA,OAFK;AAGLG,IAAAA,UAAU,EAAVA,UAHK;AAILE,IAAAA,gBAAgB,EAAhBA,gBAJK;AAKLG,IAAAA,mBAAmB,EAAnBA,mBALK;AAMLO,IAAAA,WAAW,EAAXA,WANK;AAOLG,IAAAA,UAAU,EAAVA,UAPK;AAQLJ,IAAAA,UAAU,EAAVA,UARK;AASLH,IAAAA,cAAc,EAAdA;AATK,GAAP;AAWD;;AClED,IAAMnc,aAAW,GAAG,aAApB;AACA,IAAMC,aAAW,GAAG,aAApB;AACA,IAAMC,aAAW,GAAG,aAApB;AACA,IAAMyc,YAAY,GAAG,cAArB;AAEA,IAAM7b,aAAW,GAAG;AAClBd,EAAAA,WAAW,EAAXA,aADkB;AAElBC,EAAAA,WAAW,EAAXA,aAFkB;AAGlBC,EAAAA,WAAW,EAAXA,aAHkB;AAIlByc,EAAAA,YAAY,EAAZA;AAJkB,CAApB;;AAOA,IAAM5b,wBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,iFAAoD,EAApD;AAAA,8BAAGC,WAAH;AAAA,MAAGA,WAAH,iCAAiB,EAAjB;AAAA,8BAAqBG,WAArB;AAAA,MAAqBA,WAArB,iCAAmC,EAAnC;AAAA,uBAAuCC,IAAvC;AAAA,MAAuCA,IAAvC,0BAA8C,CAA9C;;AAAA,SAA4D;AACzFJ,IAAAA,WAAW;AACTO,MAAAA,KAAK,EAAEH,IAAI,GAAGD,WAAP,GAAqB,CADnB;AAETK,MAAAA,MAAM,EAAEL;AAFC,OAGNH,WAHM,CAD8E;AAMzFG,IAAAA,WAAW,EAAXA,WANyF;AAOzFC,IAAAA,IAAI,EAAJA,IAPyF;AAQzFwb,IAAAA,kBAAkB,EAAE;AAClB9a,MAAAA,IAAI,EAAE,CACJ;AACEC,QAAAA,KAAK,EAAE,UADT;AAEEC,QAAAA,KAAK,EAAE;AAFT,OADI;AADY;AARqE,GAA5D;AAAA,CAA/B;;AAkBA,IAAML,eAAa,GAAG,SAAhBA,aAAgB,CAACvD,KAAD,EAAQC,MAAR,EAAmB;AAAA,MAC/BC,IAD+B,GACtBD,MADsB,CAC/BC,IAD+B;;AAEvC,UAAQA,IAAR;AACE,SAAKwC,aAAW,CAACd,WAAjB;AAA8B;AAAA,YACpBoB,IADoB,GACX/C,MADW,CACpB+C,IADoB;AAG5B,iDACKhD,KADL;AAEEgD,UAAAA,IAAI,EAAJA,IAFF;AAGEJ,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAEH,IAAI,GAAGhD,KAAK,CAAC+C,WAAb,GAA2B;AAFzB;AAHb;AAQD;;AACD,SAAKL,aAAW,CAACb,WAAjB;AAA8B;AAAA,YACpBkB,WADoB,GACJ9C,MADI,CACpB8C,WADoB;AAE5B,iDACK/C,KADL;AAEE+C,UAAAA,WAAW,EAAXA,WAFF;AAGEC,UAAAA,IAAI,EAAE,CAHR;AAIEJ,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE,CAFE;AAGTC,YAAAA,MAAM,EAAEL;AAHC;AAJb;AAUD;;AAED,SAAKL,aAAW,CAAC6b,YAAjB;AAA+B;AAC7B,iDACKve,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEwb,UAAAA,kBAAkB,oCACbxe,KAAK,CAACwe,kBADO;AAEhB7a,YAAAA,KAAK,EAAE,CACL;AACEM,cAAAA,IAAI,EAAEhE,MAAM,CAAC0D,KAAP,IAAgB,UADxB;AAEEF,cAAAA,KAAK,EAAExD,MAAM,CAAC8a,KAAP,IAAgB;AAFzB,aADK;AAFS,YAHpB;AAYEnY,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE;AAFE;AAZb;AAiBD;;AACD;AACE,aAAOnD,KAAP;AA/CJ;AAiDD,CAnDD;;AAqDA,AAAe,SAASye,aAAT,CAAuBpe,YAAvB,EAAqC;AAClD,MAAMO,mBAAmB,GAAG+B,wBAAsB,CAACtC,YAAD,CAAlD;;AADkD,0BAExBS,KAAK,CAACE,UAAN,CAAiBuC,eAAjB,EAAgC3C,mBAAhC,CAFwB;AAAA;AAAA,MAE3CZ,KAF2C;AAAA,MAEpCiB,QAFoC;;AAAA,gBAG0BP,MAAM,CAChFyc,IAAO,CAACuB,UADwE,CAHhC;AAAA,MAGpCC,gBAHoC,WAG1C/e,IAH0C;AAAA,MAGT8e,UAHS,WAGlBxd,OAHkB;AAAA,MAGG3B,SAHH,WAGGA,SAHH;AAAA,MAGcE,OAHd,WAGcA,OAHd;;AAOlD,MAAMmf,YAAY,GAAG,SAAfA,YAAe;AAAA,WACnBF,UAAU,CAAC;AACTF,MAAAA,kBAAkB,EAAExe,KAAK,CAACwe,kBADjB;AAET5b,MAAAA,WAAW,EAAE5C,KAAK,CAAC4C;AAFV,KAAD,CADS;AAAA,GAArB;;AAMA9B,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpBkd,IAAAA,YAAY,GADQ;AAGrB,GAHD,EAGG,CAAC5e,KAAK,CAAC4C,WAAP,EAAoB5C,KAAK,CAACwe,kBAA1B,CAHH;;AAKA,MAAMna,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,oFAAsC,EAAtC;AAAA,QAAoBtB,WAApB,SAAGwB,MAAH,CAAad,KAAb;;AAAA,WAC1BxC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACb,WADX;AAEPkB,MAAAA,WAAW,EAAXA;AAFO,KAAD,CADkB;AAAA,GAA5B;;AAKA,MAAMyB,YAAY,GAAG,SAAfA,YAAe;AAAA,QAAGxB,IAAH,SAAGA,IAAH;AAAA,WACnB/B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACd,WADX;AAEPoB,MAAAA,IAAI,EAAJA;AAFO,KAAD,CADW;AAAA,GAArB;;AAKA,MAAM0B,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQhB,KAAR,EAAeC,KAAf,EAAyB;AAC5C,QAAM6G,SAAS,GAAG,QAAO9G,KAAP,MAAiB,QAAjB,GAA4BA,KAAK,CAACF,KAAlC,GAA0CE,KAA5D;AACA1C,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACZ,WADX;AAEP6B,MAAAA,KAAK,EAAE8G,SAFA;AAGP7G,MAAAA,KAAK,EAALA;AAHO,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMib,aAAa,GAAG,SAAhBA,aAAgB,CAAClb,KAAD,EAAQoX,KAAR,EAAkB;AACtC9Z,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAAC6b,YADX;AAEP5a,MAAAA,KAAK,EAALA,KAFO;AAGPoX,MAAAA,KAAK,EAALA;AAHO,KAAD,CAAR;AAKD,GAND;;AAOA,2CACK/a,KADL;AAEET,IAAAA,SAAS,EAATA,SAFF;AAGEE,IAAAA,OAAO,EAAPA,OAHF;AAIEkf,IAAAA,gBAAgB,EAAhBA,gBAJF;AAKEC,IAAAA,YAAY,EAAZA,YALF;AAMEpa,IAAAA,YAAY,EAAZA,YANF;AAOEE,IAAAA,YAAY,EAAZA,YAPF;AAQEL,IAAAA,mBAAmB,EAAnBA,mBARF;AASEwa,IAAAA,aAAa,EAAbA;AATF;AAWD;;ACzID,IAAMC,YAAY,GAAG,SAAfA,YAAe,CAACT,IAAD,EAAU;AAAA,gBAC4B3d,MAAM,CAACmd,KAAQ,CAACkB,SAAV,CADlC;AAAA,MACrB7d,OADqB,WACrBA,OADqB;AAAA,6BACZtB,IADY;AAAA,MACNof,aADM,6BACU,EADV;AAAA,MACcxf,SADd,WACcA,SADd;;AAE7B,MAAMqc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAACmd,IAAD,CAAb;AAAA,GAAlB;;AACAvd,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpBma,IAAAA,SAAS,GADW;AAGrB,GAHD,EAGG,CAACwC,IAAD,CAHH;AAIA,SAAO;AACLxC,IAAAA,SAAS,EAATA,SADK;AAELmD,IAAAA,aAAa,EAAbA,aAFK;AAGLxf,IAAAA,SAAS,EAATA;AAHK,GAAP;AAKD,CAZD;;ACAA,IAAMyf,WAAW,GAAG,SAAdA,WAAc,CAACZ,IAAD,EAAU;AAAA,gBAC4B3d,MAAM,CAACyc,IAAO,CAAC+B,QAAT,CADlC;AAAA,MACpBhe,OADoB,WACpBA,OADoB;AAAA,6BACXtB,IADW;AAAA,MACLuf,YADK,6BACU,EADV;AAAA,MACc3f,SADd,WACcA,SADd;;AAE5B,MAAMqc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAACmd,IAAD,CAAb;AAAA,GAAlB;;AACAvd,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpBma,IAAAA,SAAS,GADW;AAGrB,GAHD,EAGG,CAACwC,IAAD,CAHH;AAIA,SAAO;AACLxC,IAAAA,SAAS,EAATA,SADK;AAELsD,IAAAA,YAAY,EAAZA,YAFK;AAGL3f,IAAAA,SAAS,EAATA;AAHK,GAAP;AAKD,CAZD;;ACAA,IAAMoC,aAAW,GAAG,aAApB;AACA,IAAMC,aAAW,GAAG,aAApB;AACA,IAAMC,aAAW,GAAG,aAApB;AACA,IAAMyc,cAAY,GAAG,cAArB;AACA,IAAMa,UAAU,GAAG,YAAnB;AAEA,IAAM1c,aAAW,GAAG;AAClBd,EAAAA,WAAW,EAAXA,aADkB;AAElBC,EAAAA,WAAW,EAAXA,aAFkB;AAGlBC,EAAAA,WAAW,EAAXA,aAHkB;AAIlByc,EAAAA,YAAY,EAAZA,cAJkB;AAKlBa,EAAAA,UAAU,EAAVA;AALkB,CAApB;;AAQA,IAAMzc,wBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,iFAAoD,EAApD;AAAA,8BAAGC,WAAH;AAAA,MAAGA,WAAH,iCAAiB,EAAjB;AAAA,8BAAqBG,WAArB;AAAA,MAAqBA,WAArB,iCAAmC,EAAnC;AAAA,uBAAuCC,IAAvC;AAAA,MAAuCA,IAAvC,0BAA8C,CAA9C;;AAAA,SAA4D;AACzFJ,IAAAA,WAAW;AACTO,MAAAA,KAAK,EAAEH,IAAI,GAAGD,WAAP,GAAqB,CADnB;AAETK,MAAAA,MAAM,EAAEL;AAFC,OAGNH,WAHM,CAD8E;AAMzFG,IAAAA,WAAW,EAAXA,WANyF;AAOzFC,IAAAA,IAAI,EAAJA,IAPyF;AAQzFqc,IAAAA,mBAAmB,EAAE;AARoE,GAA5D;AAAA,CAA/B;;AAWA,IAAM9b,eAAa,GAAG,SAAhBA,aAAgB,CAACvD,KAAD,EAAQC,MAAR,EAAmB;AAAA,MAC/BC,IAD+B,GACtBD,MADsB,CAC/BC,IAD+B;;AAEvC,UAAQA,IAAR;AACE,SAAKwC,aAAW,CAACd,WAAjB;AAA8B;AAAA,YACpBoB,IADoB,GACX/C,MADW,CACpB+C,IADoB;AAG5B,iDACKhD,KADL;AAEEgD,UAAAA,IAAI,EAAJA,IAFF;AAGEJ,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAEH,IAAI,GAAGhD,KAAK,CAAC+C,WAAb,GAA2B;AAFzB;AAHb;AAQD;;AACD,SAAKL,aAAW,CAACb,WAAjB;AAA8B;AAAA,YACpBkB,WADoB,GACJ9C,MADI,CACpB8C,WADoB;AAE5B,iDACK/C,KADL;AAEE+C,UAAAA,WAAW,EAAXA,WAFF;AAGEC,UAAAA,IAAI,EAAE,CAHR;AAIEJ,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE,CAFE;AAGTC,YAAAA,MAAM,EAAEL;AAHC;AAJb;AAUD;;AACD,SAAKL,aAAW,CAAC0c,UAAjB;AAA6B;AAAA,YACnBE,SADmB,GACLrf,MADK,CACnBqf,SADmB;AAE3B,YAAMC,IAAI,GAAGD,SAAS,KAAK,IAAd,GAAqB,KAArB,GAA6B3f,SAA1C;AACA,iDACKK,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEJ,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE,CAFE;AAGToc,YAAAA,IAAI,EAAJA;AAHS;AAHb;AASD;;AAED,SAAK7c,aAAW,CAAC6b,YAAjB;AAA+B;AAC7B,iDACKve,KADL;AAEEgD,UAAAA,IAAI,EAAE,CAFR;AAGEqc,UAAAA,mBAAmB,oCACdrf,KAAK,CAACqf,mBADQ;AAEjB1b,YAAAA,KAAK,EAAE,CACL;AACEM,cAAAA,IAAI,EAAEhE,MAAM,CAAC0D,KAAP,IAAgB,WADxB;AAEEF,cAAAA,KAAK,EAAExD,MAAM,CAAC8a,KAAP,IAAgB;AAFzB,aADK;AAFU,YAHrB;AAYEnY,UAAAA,WAAW,oCACN5C,KAAK,CAAC4C,WADA;AAETO,YAAAA,KAAK,EAAE;AAFE;AAZb;AAiBD;;AACD;AACE,aAAOnD,KAAP;AA5DJ;AA8DD,CAhED;;AAkEA,AAAe,SAASwf,cAAT,CAAwBnf,YAAxB,EAAsC;AACnD,MAAMO,mBAAmB,GAAG+B,wBAAsB,CAACtC,YAAD,CAAlD;;AADmD,0BAEzBS,KAAK,CAACE,UAAN,CAAiBuC,eAAjB,EAAgC3C,mBAAhC,CAFyB;AAAA;AAAA,MAE5CZ,KAF4C;AAAA,MAErCiB,QAFqC;;AAAA,gBAG2BP,MAAM,CAClFmd,KAAQ,CAAC4B,WADyE,CAHjC;AAAA,MAGrC9B,iBAHqC,WAG3C/d,IAH2C;AAAA,MAGT6f,WAHS,WAGlBve,OAHkB;AAAA,MAGI3B,SAHJ,WAGIA,SAHJ;AAAA,MAGeE,OAHf,WAGeA,OAHf;;AAOnD,MAAMigB,aAAa,GAAG,SAAhBA,aAAgB;AAAA,WACpBD,WAAW,CAAC;AACVJ,MAAAA,mBAAmB,EAAErf,KAAK,CAACqf,mBADjB;AAEVzc,MAAAA,WAAW,EAAE5C,KAAK,CAAC4C;AAFT,KAAD,CADS;AAAA,GAAtB;;AAMA9B,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpBge,IAAAA,aAAa,GADO;AAGrB,GAHD,EAGG,CAAC1f,KAAK,CAAC4C,WAAP,EAAoB5C,KAAK,CAACqf,mBAA1B,CAHH;;AAKA,MAAMhb,mBAAmB,GAAG,SAAtBA,mBAAsB;AAAA,oFAAsC,EAAtC;AAAA,QAAoBtB,WAApB,SAAGwB,MAAH,CAAad,KAAb;;AAAA,WAC1BxC,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACb,WADX;AAEPkB,MAAAA,WAAW,EAAXA;AAFO,KAAD,CADkB;AAAA,GAA5B;;AAKA,MAAMyB,YAAY,GAAG,SAAfA,YAAe;AAAA,QAAGxB,IAAH,SAAGA,IAAH;AAAA,WACnB/B,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACd,WADX;AAEPoB,MAAAA,IAAI,EAAJA;AAFO,KAAD,CADW;AAAA,GAArB;;AAKA,MAAM2c,WAAW,GAAG,SAAdA,WAAc;AAAA,QAAGL,SAAH,SAAGA,SAAH;AAAA,WAClBre,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAAC0c,UADX;AAEPE,MAAAA,SAAS,EAATA;AAFO,KAAD,CADU;AAAA,GAApB;;AAKA,MAAM5a,YAAY,GAAG,SAAfA,YAAe,CAACC,KAAD,EAAQhB,KAAR,EAAeC,KAAf,EAAyB;AAC5C,QAAM6G,SAAS,GAAG,QAAO9G,KAAP,MAAiB,QAAjB,GAA4BA,KAAK,CAACF,KAAlC,GAA0CE,KAA5D;AACA1C,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAACZ,WADX;AAEP6B,MAAAA,KAAK,EAAE8G,SAFA;AAGP7G,MAAAA,KAAK,EAALA;AAHO,KAAD,CAAR;AAKD,GAPD;;AAQA,MAAMib,aAAa,GAAG,SAAhBA,aAAgB,CAAClb,KAAD,EAAQoX,KAAR,EAAkB;AACtC9Z,IAAAA,QAAQ,CAAC;AACPf,MAAAA,IAAI,EAAEwC,aAAW,CAAC6b,YADX;AAEP5a,MAAAA,KAAK,EAALA,KAFO;AAGPoX,MAAAA,KAAK,EAALA;AAHO,KAAD,CAAR;AAKD,GAND;;AAOA,2CACK/a,KADL;AAEET,IAAAA,SAAS,EAATA,SAFF;AAGEE,IAAAA,OAAO,EAAPA,OAHF;AAIEke,IAAAA,iBAAiB,EAAjBA,iBAJF;AAKE+B,IAAAA,aAAa,EAAbA,aALF;AAMElb,IAAAA,YAAY,EAAZA,YANF;AAOEE,IAAAA,YAAY,EAAZA,YAPF;AAQEL,IAAAA,mBAAmB,EAAnBA,mBARF;AASEwa,IAAAA,aAAa,EAAbA,aATF;AAUEc,IAAAA,WAAW,EAAXA;AAVF;AAYD;;ACvJc,SAASC,QAAT,CAAkBvf,YAAlB,EAAgC;AAAA,gBACRK,MAAM,CAACmd,KAAQ,CAACgC,QAAV,EAAoB;AAAEjgB,IAAAA,IAAI,EAAES;AAAR,GAApB,CADE;AAAA,MAC/Byf,SAD+B,WACrClgB,IADqC;AAAA,MACpBsB,OADoB,WACpBA,OADoB;;AAAA,aAEvB4e,SAAS,IAAI,EAFU;AAAA,MAErCpH,SAFqC,QAErCA,SAFqC;;AAI7C,MAAMmH,QAAQ,GAAG/e,KAAK,CAACK,WAAN,CAAkB;AAAA,WAAMD,OAAO,CAAC;AAAEwX,MAAAA,SAAS,EAATA;AAAF,KAAD,CAAb;AAAA,GAAlB,EAAgD,CAACxX,OAAD,EAAUwX,SAAV,CAAhD,CAAjB;AAEA5X,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAIgX,SAAJ,EAAemH,QAAQ;AACxB,GAFD,EAEG,CAACA,QAAD,EAAWnH,SAAX,CAFH;AAIA,MAAMqH,WAAW,GAAGjf,KAAK,CAACK,WAAN,CAClB;AAAA,QAAG6e,aAAH,SAAGA,aAAH;AAAA,WACEnC,KAAQ,CAACkC,WAAT,CAAqB;AACnBrH,MAAAA,SAAS,EAATA,SADmB;AAEnBsH,MAAAA,aAAa,EAAbA;AAFmB,KAArB,EAGGxe,IAHH,CAGQqe,QAHR,CADF;AAAA,GADkB,EAMlB,CAACA,QAAD,EAAWnH,SAAX,CANkB,CAApB;AASA,MAAMuH,cAAc,GAAGnf,KAAK,CAACK,WAAN,CACrB;AAAA,QAAGqV,MAAH,SAAGA,MAAH;AAAA,WACEqH,KAAQ,CAACkC,WAAT,CAAqB;AACnBrH,MAAAA,SAAS,EAATA,SADmB;AAEnBsH,MAAAA,aAAa,EAAE;AACbE,QAAAA,cAAc,EAAE;AACdpI,UAAAA,KAAK,EAAEtB,MAAM,CAACpR,GAAP,CAAW,UAAC4T,CAAD;AAAA,mBAAQ;AAAEN,cAAAA,SAAS,EAAEM;AAAb,aAAR;AAAA,WAAX;AADO;AADH;AAFI,KAArB,EAOGxX,IAPH,CAOQqe,QAPR,CADF;AAAA,GADqB,EAUrB,CAACA,QAAD,EAAWnH,SAAX,CAVqB,CAAvB;AAaA,MAAMyH,eAAe,GAAGrf,KAAK,CAACK,WAAN,CACtB;AAAA,QAAGqV,MAAH,SAAGA,MAAH;AAAA,WACEqH,KAAQ,CAACkC,WAAT,CAAqB;AACnBrH,MAAAA,SAAS,EAATA,SADmB;AAEnBsH,MAAAA,aAAa,EAAE;AACbI,QAAAA,eAAe,EAAE;AACftI,UAAAA,KAAK,EAAEtB,MAAM,CAACpR,GAAP,CAAW,UAAC4T,CAAD;AAAA,mBAAQ;AAAEN,cAAAA,SAAS,EAAEM;AAAb,aAAR;AAAA,WAAX;AADQ;AADJ;AAFI,KAArB,EAOGxX,IAPH,CAOQqe,QAPR,CADF;AAAA,GADsB,EAUtB,CAACA,QAAD,EAAWnH,SAAX,CAVsB,CAAxB;AAaA,MAAM2H,eAAe,GAAGvf,KAAK,CAACK,WAAN,CACtB;AAAA,QAAGmf,KAAH,SAAGA,KAAH;AAAA,WACEzC,KAAQ,CAACkC,WAAT,CAAqB;AACnBrH,MAAAA,SAAS,EAATA,SADmB;AAEnBsH,MAAAA,aAAa,EAAE;AACbO,QAAAA,QAAQ,EAAE;AACRC,UAAAA,IAAI,EAAEF,KAAK,CAAClb,GAAN,CAAU,UAACqb,CAAD;AAAA,mBAAQ;AAAEnD,cAAAA,QAAQ,EAAEmD;AAAZ,aAAR;AAAA,WAAV;AADE;AADG;AAFI,KAArB,EAOGjf,IAPH,CAOQqe,QAPR,CADF;AAAA,GADsB,EAUtB,CAACA,QAAD,EAAWnH,SAAX,CAVsB,CAAxB;AAaA,MAAMkF,mBAAmB,GAAG9c,KAAK,CAACK,WAAN,CAC1B,UAACmc,QAAD;AAAA,WACEO,KAAQ,CAACC,eAAT,CAAyB;AACvBpF,MAAAA,SAAS,EAATA,SADuB;AAEvB4E,MAAAA,QAAQ,EAARA;AAFuB,KAAzB,EAGG9b,IAHH,CAGQqe,QAHR,CADF;AAAA,GAD0B,EAM1B,CAACA,QAAD,EAAWnH,SAAX,CAN0B,CAA5B;AASA,MAAMgI,gBAAgB,GAAG5f,KAAK,CAACK,WAAN,CACvB,UAACwf,cAAD;AAAA,WACE9C,KAAQ,CAAC+C,mBAAT,CAA6B;AAC3BlI,MAAAA,SAAS,EAATA,SAD2B;AAE3BiI,MAAAA,cAAc,EAAdA;AAF2B,KAA7B,EAGGnf,IAHH,CAGQqe,QAHR,CADF;AAAA,GADuB,EAMvB,CAACA,QAAD,EAAWnH,SAAX,CANuB,CAAzB;AASA,MAAMmI,qBAAqB,GAAG/f,KAAK,CAACK,WAAN,CAC5B,UAAC2f,eAAD;AAAA,WACEjD,KAAQ,CAAC+C,mBAAT,CAA6B;AAC3BlI,MAAAA,SAAS,EAAEoI,eADgB;AAE3BH,MAAAA,cAAc,EAAEjI;AAFW,KAA7B,EAGGlX,IAHH,CAGQqe,QAHR,CADF;AAAA,GAD4B,EAM5B,CAACA,QAAD,EAAWnH,SAAX,CAN4B,CAA9B;AASA,MAAMqI,WAAW,GAAGjgB,KAAK,CAACK,WAAN,CAAkB;AAAA,WAAM0c,KAAQ,CAACkD,WAAT,CAAqB;AAAErI,MAAAA,SAAS,EAATA;AAAF,KAArB,CAAN;AAAA,GAAlB,EAA6D,CAACA,SAAD,CAA7D,CAApB;AAEA,SAAO;AACLoH,IAAAA,SAAS,EAATA,SADK;AAELD,IAAAA,QAAQ,EAARA,QAFK;AAGLE,IAAAA,WAAW,EAAXA,WAHK;AAILgB,IAAAA,WAAW,EAAXA,WAJK;AAKLd,IAAAA,cAAc,EAAdA,cALK;AAMLE,IAAAA,eAAe,EAAfA,eANK;AAOLE,IAAAA,eAAe,EAAfA,eAPK;AAQLzC,IAAAA,mBAAmB,EAAnBA,mBARK;AASL8C,IAAAA,gBAAgB,EAAhBA,gBATK;AAULG,IAAAA,qBAAqB,EAArBA;AAVK,GAAP;AAYD;;AClGc,SAASG,UAAT,OAAyE;AAAA,MAAnD/R,MAAmD,QAAnDA,MAAmD;AAAA,8BAA3CrM,WAA2C;AAAA,MAA3CA,WAA2C,iCAA7B,EAA6B;AAAA,iCAAzB6Z,cAAyB;AAAA,MAAzBA,cAAyB,oCAAR,IAAQ;;AAAA,gBACzB/b,MAAM,CAACiZ,IAAO,CAACpO,OAAT,CADmB;AAAA,MAC9ErK,OAD8E,WAC9EA,OAD8E;AAAA,6BACrEtB,IADqE;AAAA,MAC/DqhB,QAD+D,6BACpD,EADoD;AAAA,MAChDzhB,SADgD,WAChDA,SADgD;AAAA,MACrCC,OADqC,WACrCA,OADqC;;AAEtF,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAE+N,MAAAA,MAAM,EAANA,MAAF;AAAUrM,MAAAA,WAAW,EAAXA;AAAV,KAAD,CAAb;AAAA,GAAlB;;AACAuU,EAAAA,oBAAoB,CAAC,YAAM;AACzB,QAAIsF,cAAJ,EAAoBZ,SAAS;AAC9B,GAFmB,EAEjB,CAAC5M,MAAD,EAASrM,WAAT,CAFiB,CAApB;AAGA,SAAO;AACLqe,IAAAA,QAAQ,EAARA,QADK;AAELzhB,IAAAA,SAAS,EAATA,SAFK;AAGLC,IAAAA,OAAO,EAAPA,OAHK;AAILoc,IAAAA,SAAS,EAATA;AAJK,GAAP;AAMD;;ACdD,IAAMqF,qBAAqB,GAAG,SAAxBA,qBAAwB,OAA6C;AAAA,MAA1C1S,YAA0C,QAA1CA,YAA0C;AAAA,iCAA5B2S,cAA4B;AAAA,MAA5BA,cAA4B,oCAAX,IAAW;;AAAA,wBACnCrgB,KAAK,CAACwF,QAAN,EADmC;AAAA;AAAA,MAClE8a,WADkE;AAAA,MACrDC,cADqD;;AAAA,yBAEvBvgB,KAAK,CAACwF,QAAN,CAAe6a,cAAf,CAFuB;AAAA;AAAA,MAElEG,iBAFkE;AAAA,MAE/CC,oBAF+C;;AAGzE,MAAMC,cAAc,GAAG,SAAjBA,cAAiB,CAACtZ,QAAD;AAAA,WACrBqZ,oBAAoB,CAAC,UAACE,SAAD;AAAA,aAAgBvZ,QAAQ,KAAKvI,SAAb,GAAyBuI,QAAzB,GAAoC,CAACuZ,SAArD;AAAA,KAAD,CADC;AAAA,GAAvB;;AAEA,MAAMC,WAAW,GAAG5gB,KAAK,CAACC,MAAN,EAApB;AACA,MAAM4gB,aAAa,GAAG7gB,KAAK,CAACC,MAAN,EAAtB;AACA,MAAM6gB,OAAO,GAAG9gB,KAAK,CAACC,MAAN,EAAhB;AACA,MAAM8gB,MAAM,GAAG/gB,KAAK,CAACK,WAAN,CACb,iBAAgB;AAAA,QAAb8N,MAAa,SAAbA,MAAa;AACd,QAAIqS,iBAAiB,KAAK,KAA1B,EAAiC;AACjC,QAAMQ,cAAc,GAAG;AACrBne,MAAAA,KAAK,EAAE,CACL;AACEM,QAAAA,IAAI,EAAE,WADR;AAEER,QAAAA,KAAK,EAAE,CAAC;AAAEA,UAAAA,KAAK,EAAE;AAAT,SAAD,EAAqB;AAAEA,UAAAA,KAAK,EAAE;AAAT,SAArB;AAFT,OADK;AADc,KAAvB;;AAQA,QAAMse,aAAa,GAAG,SAAhBA,aAAgB,GAA4B;AAAA,sFAAP,EAAO;AAAA,UAAzB5e,KAAyB,SAAzBA,KAAyB;AAAA,UAAlBC,MAAkB,SAAlBA,MAAkB;;AAAA,UAC/B4e,QAD+B,GAClBN,WADkB,CACxC5hB,OADwC;AAAA,UAE/BmiB,UAF+B,GAEhBN,aAFgB,CAExC7hB,OAFwC;;AAGhD,UAAI,CAACqK,KAAK,CAACC,OAAN,CAAc4X,QAAd,CAAL,EAA8B;AAC5B3gB,QAAAA,OAAO,CAACwO,GAAR,CAAY,CACVC,UAAa,CAACsK,aAAd,CAA4B;AAC1B5L,UAAAA,YAAY,EAAZA,YAD0B;AAE1B5L,UAAAA,WAAW,EAAE;AAAEyX,YAAAA,QAAQ,EAAE;AAAZ;AAFa,SAA5B,CADU,EAKVvK,UAAa,CAACoS,oBAAd,CAAmC;AACjC1T,UAAAA,YAAY,EAAZA,YADiC;AAEjCsT,UAAAA,cAAc,EAAdA,cAFiC;AAGjClf,UAAAA,WAAW,EAAE;AAAEO,YAAAA,KAAK,EAALA,KAAF;AAASC,YAAAA,MAAM,EAANA;AAAT;AAHoB,SAAnC,CALU,CAAZ,EAUG5B,IAVH,CAUQ,iBAAwD;AAAA;AAAA,cAA9C8Y,cAA8C,YAApD1a,IAAoD;AAAA,cAApBgc,YAAoB,YAA1Bhc,IAA0B;;AAAA,cACtDuiB,IADsD,GACxBvG,YADwB,CACtDuG,IADsD;AAAA,mCACxBvG,YADwB,CAChDwG,IADgD;AAAA,cAC1CC,QAD0C,mCAC/B,EAD+B;AAE9DX,UAAAA,WAAW,CAAC5hB,OAAZ,GAAsBuiB,QAAQ,CAACjd,GAAT,CAAa;AAAA,gBAAGoD,EAAH,SAAGA,EAAH;AAAA,mBAAYA,EAAZ;AAAA,WAAb,CAAtB;AACAoZ,UAAAA,OAAO,CAAC9hB,OAAR,GAAkBqiB,IAAlB;AAH8D,cAI7CG,WAJ6C,GAI7BhI,cAJ6B,CAItDrX,OAJsD;AAK9D0e,UAAAA,aAAa,CAAC7hB,OAAd,GAAwBwiB,WAAxB;AACAP,UAAAA,aAAa,CAAC;AAAE5e,YAAAA,KAAK,EAAE,CAAT;AAAYC,YAAAA,MAAM,EAAE;AAApB,WAAD,CAAb;AACD,SAjBD;AAkBA;AACD;;AAvB+C,UAwB/B+e,IAxB+B,GAwBtBP,OAxBsB,CAwBxC9hB,OAxBwC;AAyBhD,UAAMyiB,cAAc,GAAGN,UAAU,CAAC1a,SAAX,CAAqB;AAAA,YAAOib,MAAP,SAAGha,EAAH;AAAA,eAAoBga,MAAM,KAAKvT,MAA/B;AAAA,OAArB,CAAvB;;AACA,UAAIsT,cAAc,GAAG,CAAjB,KAAuBN,UAAU,CAAC/Y,MAAtC,EAA8C;AAC5C;AACAmY,QAAAA,cAAc;AACd;AACD;;AACD,UAAIkB,cAAc,KAAK,CAAC,CAApB,IAAyBJ,IAAI,GAAGH,QAAQ,CAAC9Y,MAA7C,EAAqD;AACnD;AACA4G,QAAAA,UAAa,CAACoS,oBAAd,CAAmC;AACjC1T,UAAAA,YAAY,EAAZA,YADiC;AAEjCsT,UAAAA,cAAc,EAAdA,cAFiC;AAGjClf,UAAAA,WAAW,EAAE;AAAEO,YAAAA,KAAK,EAAEA,KAAK,GAAGC,MAAjB;AAAyBA,YAAAA,MAAM,EAANA;AAAzB;AAHoB,SAAnC,EAIG5B,IAJH,CAIQ,iBAA4B;AAAA;;AAAA,cAAnBoa,YAAmB,SAAzBhc,IAAyB;AAAA,oCACFgc,YADE,CAC1BwG,IAD0B;AAAA,cACpBC,QADoB,oCACT,EADS;;AAElC,kCAAAX,WAAW,CAAC5hB,OAAZ,EAAoBqW,IAApB,gDAA4BkM,QAAQ,CAACjd,GAAT,CAAa;AAAA,gBAAGoD,EAAH,SAAGA,EAAH;AAAA,mBAAYA,EAAZ;AAAA,WAAb,CAA5B;;AACAuZ,UAAAA,aAAa,CAAC;AAAE5e,YAAAA,KAAK,EAAEA,KAAK,GAAGC,MAAjB;AAAyBA,YAAAA,MAAM,EAANA;AAAzB,WAAD,CAAb;AACD,SARD;AASA;AACD;;AACD,UAAMqf,cAAc,GAAGR,UAAU,CAAClV,KAAX,CAAiBwV,cAAc,GAAG,CAAlC,CAAvB;AACA,UAAMG,QAAQ,GAAGD,cAAc,CAAC5N,IAAf,CAAoB;AAAA,YAAO2N,MAAP,UAAGha,EAAH;AAAA,eAAoBwZ,QAAQ,CAAClU,QAAT,CAAkB0U,MAAlB,CAApB;AAAA,OAApB,CAAjB;AACAnB,MAAAA,cAAc,CAACqB,QAAD,CAAd;AACD,KA/CD;;AAgDAX,IAAAA,aAAa;AACd,GA5DY,EA6Db,CAACvT,YAAD,EAAe8S,iBAAf,CA7Da,CAAf;AA+DA,SAAO;AACLA,IAAAA,iBAAiB,EAAjBA,iBADK;AAELE,IAAAA,cAAc,EAAdA,cAFK;AAGLH,IAAAA,cAAc,EAAdA,cAHK;AAILD,IAAAA,WAAW,EAAXA,WAJK;AAKLS,IAAAA,MAAM,EAANA;AALK,GAAP;AAOD,CA9ED;;ACAe,SAASc,YAAT,OAOZ;AAAA,MAND1B,QAMC,QANDA,QAMC;AAAA,MALD3G,cAKC,QALDA,cAKC;AAAA,4BAJDsI,SAIC;AAAA,MAJDA,SAIC,+BAJW,GAIX;AAAA,uBAHDC,IAGC;AAAA,MAHDA,IAGC,0BAHM,IAGN;AAAA,MAFDxI,QAEC,QAFDA,QAEC;AAAA,MADEjZ,KACF;;AACD,MAAM4S,UAAU,GAAGiN,QAAQ,IAAI3G,cAAZ,IAA8B,EAAjD;AADC,MAEiBwI,YAFjB,GAEkC9O,UAFlC,CAEOtF,QAFP;AAGD,MAAMA,QAAQ,GAAG5N,KAAK,CAACiI,OAAN,CAAc;AAAA,WAAMga,iBAAiB,CAACD,YAAD,EAAe;AAAEF,MAAAA,SAAS,EAATA,SAAF;AAAaC,MAAAA,IAAI,EAAJA;AAAb,KAAf,CAAvB;AAAA,GAAd,EAA0E,CACzFA,IADyF,EAEzFD,SAFyF,EAGzFE,YAHyF,CAA1E,CAAjB;;AAKA,MAAME,UAAU,oDACX5hB,KADW,GAEXsN,QAFW;AAGduS,IAAAA,QAAQ,EAARA;AAHc,IAAhB;;AAKA,MAAMgC,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;ACzBD;AACA,AAMe,SAASI,gBAAT,OAOZ;AAAA,MANDvgB,kBAMC,QANDA,kBAMC;AAAA,MALDF,WAKC,QALDA,WAKC;AAAA,MAJDC,YAIC,QAJDA,YAIC;AAAA,MAHDhD,WAGC,QAHDA,WAGC;AAAA,MAFDQ,YAEC,QAFDA,YAEC;AAAA,MADDga,QACC,QADDA,QACC;;AAAA,gBACsE3Z,MAAM,CAC3EoP,UAAa,CAACwT,gBAD6D,EAE3EjjB,YAF2E,EAG3ER,WAH2E,CAD5E;AAAA,MACOqB,OADP,WACOA,OADP;AAAA,6BACgBtB,IADhB;AAAA,MACsB2jB,kBADtB,6BAC2C,EAD3C;AAAA,MAC+C/jB,SAD/C,WAC+CA,SAD/C;AAAA,MAC0DC,OAD1D,WAC0DA,OAD1D;;AAMD,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAE4B,MAAAA,kBAAkB,EAAlBA,kBAAF;AAAsBF,MAAAA,WAAW,EAAXA,WAAtB;AAAmCC,MAAAA,YAAY,EAAZA;AAAnC,KAAD,CAAb;AAAA,GAAlB;;AACAsU,EAAAA,oBAAoB,CAAC,YAAM;AACzB0E,IAAAA,SAAS;AACV,GAFmB,EAEjB,CAAC/Y,kBAAD,EAAqBF,WAArB,EAAkCC,YAAlC,CAFiB,CAApB;AAGA,MAAMmgB,UAAU,GAAG;AACjBlgB,IAAAA,kBAAkB,EAAlBA,kBADiB;AAEjBD,IAAAA,YAAY,EAAZA,YAFiB;AAGjBD,IAAAA,WAAW,EAAXA,WAHiB;AAIjB2gB,IAAAA,kBAAkB,EAAlBA,kBAJiB;AAKjB1H,IAAAA,SAAS,EAATA,SALiB;AAMjBrc,IAAAA,SAAS,EAATA,SANiB;AAOjBC,IAAAA,OAAO,EAAPA;AAPiB,GAAnB;;AASA,MAAMwjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;AChCc,SAASO,UAAT,OAAiF;AAAA,MAA3D1gB,kBAA2D,QAA3DA,kBAA2D;AAAA,MAAvCF,WAAuC,QAAvCA,WAAuC;AAAA,MAA1BC,YAA0B,QAA1BA,YAA0B;AAAA,MAAZwX,QAAY,QAAZA,QAAY;;AAAA,uBACtCsB,aAAa,CAAC;AACpE7Y,IAAAA,kBAAkB,EAAlBA,kBADoE;AAEpEF,IAAAA,WAAW,EAAXA,WAFoE;AAGpEC,IAAAA,YAAY,EAAZA;AAHoE,GAAD,CADyB;AAAA,MACtF+Y,YADsF,kBACtFA,YADsF;AAAA,MACxEC,SADwE,kBACxEA,SADwE;AAAA,MAC7Drc,SAD6D,kBAC7DA,SAD6D;AAAA,MAClDC,OADkD,kBAClDA,OADkD;;AAM9F,MAAMujB,UAAU,GAAG;AACjBlgB,IAAAA,kBAAkB,EAAlBA,kBADiB;AAEjBD,IAAAA,YAAY,EAAZA,YAFiB;AAGjBD,IAAAA,WAAW,EAAXA,WAHiB;AAIjBgZ,IAAAA,YAAY,EAAZA,YAJiB;AAKjBC,IAAAA,SAAS,EAATA,SALiB;AAMjBrc,IAAAA,SAAS,EAATA,SANiB;AAOjBC,IAAAA,OAAO,EAAPA;AAPiB,GAAnB;;AASA,MAAMwjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;ACpBD;AACA,AAMe,SAASQ,oBAAT,OAKZ;AAAA,MAJD3gB,kBAIC,QAJDA,kBAIC;AAAA,MAHDF,WAGC,QAHDA,WAGC;AAAA,MAFDC,YAEC,QAFDA,YAEC;AAAA,MADDwX,QACC,QADDA,QACC;;AAAA,gBACoE3Z,MAAM,CACzEkG,MAAS,CAAC8c,oBAD+D,CAD1E;AAAA,MACOxiB,OADP,WACOA,OADP;AAAA,6BACgBtB,IADhB;AAAA,MACsB+jB,gBADtB,6BACyC,EADzC;AAAA,MAC6CnkB,SAD7C,WAC6CA,SAD7C;AAAA,MACwDC,OADxD,WACwDA,OADxD;;AAID,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAE4B,MAAAA,kBAAkB,EAAlBA,kBAAF;AAAsBF,MAAAA,WAAW,EAAXA,WAAtB;AAAmCC,MAAAA,YAAY,EAAZA;AAAnC,KAAD,CAAb;AAAA,GAAlB;;AACAsU,EAAAA,oBAAoB,CAAC,YAAM;AACzB0E,IAAAA,SAAS;AACV,GAFmB,EAEjB,CAAC/Y,kBAAD,EAAqBF,WAArB,EAAkCC,YAAlC,CAFiB,CAApB;AAGA,MAAMmgB,UAAU,GAAG;AACjBlgB,IAAAA,kBAAkB,EAAlBA,kBADiB;AAEjBD,IAAAA,YAAY,EAAZA,YAFiB;AAGjBD,IAAAA,WAAW,EAAXA,WAHiB;AAIjB+gB,IAAAA,gBAAgB,EAAhBA,gBAJiB;AAKjB9H,IAAAA,SAAS,EAATA,SALiB;AAMjBrc,IAAAA,SAAS,EAATA,SANiB;AAOjBC,IAAAA,OAAO,EAAPA;AAPiB,GAAnB;;AASA,MAAMwjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;AC5Bc,SAASW,OAAT,OAAoE;AAAA,MAAjD3U,MAAiD,QAAjDA,MAAiD;AAAA,MAAzCrM,WAAyC,QAAzCA,WAAyC;AAAA,MAA5B6Z,cAA4B,QAA5BA,cAA4B;AAAA,MAAZpC,QAAY,QAAZA,QAAY;;AAAA,oBAC7B2G,UAAU,CAAC;AAC7D/R,IAAAA,MAAM,EAANA,MAD6D;AAE7DrM,IAAAA,WAAW,EAAXA,WAF6D;AAG7D6Z,IAAAA,cAAc,EAAdA;AAH6D,GAAD,CADmB;AAAA,MACzEwE,QADyE,eACzEA,QADyE;AAAA,MAC/DpF,SAD+D,eAC/DA,SAD+D;AAAA,MACpDrc,SADoD,eACpDA,SADoD;AAAA,MACzCC,OADyC,eACzCA,OADyC;;AAMjF,MAAMujB,UAAU,GAAG;AACjB/T,IAAAA,MAAM,EAANA,MADiB;AAEjBrM,IAAAA,WAAW,EAAXA,WAFiB;AAGjBqe,IAAAA,QAAQ,EAARA,QAHiB;AAIjBpF,IAAAA,SAAS,EAATA,SAJiB;AAKjBrc,IAAAA,SAAS,EAATA,SALiB;AAMjBC,IAAAA,OAAO,EAAPA;AANiB,GAAnB;;AAQA,MAAMwjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;AChBc,SAASY,oBAAT,OAKZ;AAAA,MAJDrV,YAIC,QAJDA,YAIC;AAAA,MAHD5L,WAGC,QAHDA,WAGC;AAAA,MAFD6Z,cAEC,QAFDA,cAEC;AAAA,MADDpC,QACC,QADDA,QACC;;AAAA,0BACyDmC,gBAAgB,CAAC;AACzEhO,IAAAA,YAAY,EAAZA,YADyE;AAEzE5L,IAAAA,WAAW,EAAXA,WAFyE;AAGzE6Z,IAAAA,cAAc,EAAdA;AAHyE,GAAD,CADzE;AAAA,MACOnC,cADP,qBACOA,cADP;AAAA,MACuBuB,SADvB,qBACuBA,SADvB;AAAA,MACkCrc,SADlC,qBACkCA,SADlC;AAAA,MAC6CC,OAD7C,qBAC6CA,OAD7C;;AAMD,MAAMujB,UAAU,GAAG;AACjBxU,IAAAA,YAAY,EAAZA,YADiB;AAEjB5L,IAAAA,WAAW,EAAXA,WAFiB;AAGjB0X,IAAAA,cAAc,EAAdA,cAHiB;AAIjBuB,IAAAA,SAAS,EAATA,SAJiB;AAKjBrc,IAAAA,SAAS,EAATA,SALiB;AAMjBC,IAAAA,OAAO,EAAPA;AANiB,GAAnB;;AAQA,MAAMwjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;ACxBD;AACA,AAMe,SAASa,OAAT,OAA0D;AAAA,MAAvCjhB,YAAuC,QAAvCA,YAAuC;AAAA,MAAzBD,WAAyB,QAAzBA,WAAyB;AAAA,MAAZyX,QAAY,QAAZA,QAAY;;AAAA,gBACd3Z,MAAM,CAACqjB,GAAM,CAACC,OAAR,CADQ;AAAA,MAC/D9iB,OAD+D,WAC/DA,OAD+D;AAAA,6BACtDtB,IADsD;AAAA,MAChDqkB,IADgD,6BACzC,EADyC;AAAA,MACrCzkB,SADqC,WACrCA,SADqC;AAAA,MAC1BC,OAD0B,WAC1BA,OAD0B;;AAEvE,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAE2B,MAAAA,YAAY,EAAZA,YAAF;AAAgBD,MAAAA,WAAW,EAAXA;AAAhB,KAAD,CAAb;AAAA,GAAlB;;AACAuU,EAAAA,oBAAoB,CAAC,YAAM;AACzB0E,IAAAA,SAAS;AACV,GAFmB,EAEjB,CAAChZ,YAAD,EAAeD,WAAf,CAFiB,CAApB;AAGA,MAAMogB,UAAU,GAAG;AACjBngB,IAAAA,YAAY,EAAZA,YADiB;AAEjBD,IAAAA,WAAW,EAAXA,WAFiB;AAGjBiZ,IAAAA,SAAS,EAATA,SAHiB;AAIjBrc,IAAAA,SAAS,EAATA,SAJiB;AAKjBC,IAAAA,OAAO,EAAPA,OALiB;AAMjBwkB,IAAAA,IAAI,EAAJA;AANiB,GAAnB;;AAQA,MAAMhB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;ACnBc,SAASiB,gBAAT,OAA2E;AAAA,MAA/ClU,QAA+C,QAA/CA,QAA+C;AAAA,MAArCgE,UAAqC,QAArCA,UAAqC;AAAA,MAAzBpR,WAAyB,QAAzBA,WAAyB;AAAA,MAAZyX,QAAY,QAAZA,QAAY;;AAAA,gBAC3B3Z,MAAM,CAACuT,MAAS,CAACC,gBAAX,CADqB;AAAA,MAChFhT,OADgF,WAChFA,OADgF;AAAA,6BACvEtB,IADuE;AAAA,MACjEuU,iBADiE,6BAC7C,EAD6C;AAAA,MACzC3U,SADyC,WACzCA,SADyC;;AAExF,MAAMqc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAE8O,MAAAA,QAAQ,EAARA,QAAF;AAAYgE,MAAAA,UAAU,EAAVA,UAAZ;AAAwBpR,MAAAA,WAAW,EAAXA;AAAxB,KAAD,CAAb;AAAA,GAAlB;;AACA9B,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpBma,IAAAA,SAAS,GADW;AAGrB,GAHD,EAGG,CAAC7L,QAAD,EAAWgE,UAAX,EAAuBpR,WAAvB,CAHH;AAIA,MAAMogB,UAAU,GAAG;AACjBhT,IAAAA,QAAQ,EAARA,QADiB;AAEjBgE,IAAAA,UAAU,EAAVA,UAFiB;AAGjBpR,IAAAA,WAAW,EAAXA,WAHiB;AAIjBuR,IAAAA,iBAAiB,EAAjBA,iBAJiB;AAKjB0H,IAAAA,SAAS,EAATA,SALiB;AAMjBrc,IAAAA,SAAS,EAATA;AANiB,GAAnB;;AAQA,MAAMyjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;IClBoBkB;;;;;AACnB,wBAAY/iB,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;AADiB,QAETgjB,SAFS,GAEuChjB,KAFvC,CAETgjB,SAFS;AAAA,QAEEC,KAFF,GAEuCjjB,KAFvC,CAEEijB,KAFF;AAAA,QAESC,QAFT,GAEuCljB,KAFvC,CAESkjB,QAFT;AAAA,QAEmBtG,QAFnB,GAEuC5c,KAFvC,CAEmB4c,QAFnB;AAAA,QAE6BuG,KAF7B,GAEuCnjB,KAFvC,CAE6BmjB,KAF7B;;AAGjB,QAAIH,SAAJ,EAAe;AACb7jB,MAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BC,OAA3B,GAAqCN,SAArC;AACD;;AACD,QAAIC,KAAJ,EAAW;AACT9jB,MAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BE,OAA3B,CAAmCC,aAAnC,mBAA4DP,KAA5D;AACD,KAFD,MAEO;AACL9jB,MAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BI,IAA3B,GAAkC;AAAEP,QAAAA,QAAQ,EAARA,QAAF;AAAYtG,QAAAA,QAAQ,EAARA;AAAZ,OAAlC;AACD;;AACD,QAAIuG,KAAJ,EAAW;AACThkB,MAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BE,OAA3B,CAAmCG,KAAnC,GAA2CP,KAA3C;AACD;;AAbgB;AAclB;;;;uCAEkBQ,WAAW;AAAA,wBAC4B,KAAK3jB,KADjC;AAAA,UACpBgjB,SADoB,eACpBA,SADoB;AAAA,UACTC,KADS,eACTA,KADS;AAAA,UACFC,QADE,eACFA,QADE;AAAA,UACQtG,QADR,eACQA,QADR;AAAA,UACkBuG,KADlB,eACkBA,KADlB;;AAE5B,UAAIQ,SAAS,CAACX,SAAV,KAAwBA,SAA5B,EAAuC;AACrC,YAAIA,SAAJ,EAAe;AACb7jB,UAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BC,OAA3B,GAAqCN,SAArC;AACD,SAFD,MAEO;AACL,iBAAO7jB,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BC,OAAlC;AACD;AACF;;AACD,UAAIK,SAAS,CAACV,KAAV,KAAoBA,KAAxB,EAA+B;AAC7B,YAAIA,KAAJ,EAAW;AACT9jB,UAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BE,OAA3B,CAAmCC,aAAnC,mBAA4DP,KAA5D;AACD,SAFD,MAEO;AACL,iBAAO9jB,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BE,OAA3B,CAAmCC,aAA1C;AACD;AACF;;AACD,UAAI,CAACP,KAAD,KAAWU,SAAS,CAACT,QAAV,KAAuBA,QAAvB,IAAmCS,SAAS,CAAC/G,QAAV,KAAuBA,QAArE,CAAJ,EAAoF;AAClFzd,QAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BI,IAA3B,GAAkC;AAAEP,UAAAA,QAAQ,EAARA,QAAF;AAAYtG,UAAAA,QAAQ,EAARA;AAAZ,SAAlC;AACD;;AACD,UAAI+G,SAAS,CAACR,KAAV,KAAoBA,KAAxB,EAA+B;AAC7B,YAAIA,KAAJ,EAAW;AACThkB,UAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BE,OAA3B,CAAmCG,KAAnC,GAA2CP,KAA3C;AACD,SAFD,MAEO;AACL,iBAAOhkB,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BE,OAA3B,CAAmCG,KAA1C;AACD;AACF;AACF;;;6BAEQ;AAAA,yBACmC,KAAK1jB,KADxC;AAAA,UACCiZ,QADD,gBACCA,QADD;AAAA,UACWiK,QADX,gBACWA,QADX;AAAA,UACqBF,SADrB,gBACqBA,SADrB;AAEP,UAAMpB,UAAU,GAAG;AAAEsB,QAAAA,QAAQ,EAARA,QAAF;AAAYF,QAAAA,SAAS,EAATA;AAAZ,OAAnB;;AACA,UAAMnB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,4BAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,OAAnB;;AACA,aAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;;;EAlDuCniB,KAAK,CAACkkB;;ACGhD,IAAMC,eAAe,GAAG,iBAAxB;AACA,IAAMC,kBAAkB,GAAG,oBAA3B;AACA,IAAMC,oBAAoB,GAAG,sBAA7B;AACA,IAAMC,qBAAqB,GAAG,uBAA9B;;AAEA,IAAMC,gBAAgB,GAAG,SAAnBA,gBAAmB,OAAuC;AAAA,MAApC/H,QAAoC,QAApCA,QAAoC;AAAA,MAA1BU,QAA0B,QAA1BA,QAA0B;AAAA,MAAhBoG,SAAgB,QAAhBA,SAAgB;;AAC9D,MAAIA,SAAJ,EAAe;AACb7jB,IAAAA,KAAG,CAACikB,aAAJ,CAAkBC,QAAlB,CAA2BC,OAA3B,GAAqCN,SAArC;AACD;;AACD,MAAMxhB,WAAW,GAAG;AAAE0iB,IAAAA,OAAO,EAAE,OAAX;AAAoBC,IAAAA,WAAW,EAAE;AAAjC,GAApB;AACA,MAAMZ,OAAO,GAAG;AAAE3G,IAAAA,QAAQ,EAARA,QAAF;AAAYsG,IAAAA,QAAQ,EAAEhH;AAAtB,GAAhB;;AACA,MAAI;AACFH,IAAAA,IAAO,CAACqI,QAAR,CAAiB;AAAE5iB,MAAAA,WAAW,EAAXA,WAAF;AAAe+hB,MAAAA,OAAO,EAAPA;AAAf,KAAjB,EACGnjB,IADH,CACQ;AAAA,UAAS6iB,KAAT,SAAGzkB,IAAH;AAAA,aAAqBykB,KAArB;AAAA,KADR,WAES,iBAAmD;AAAA,iCAAhD3kB,QAAgD;AAAA,UAAhDA,QAAgD,+BAArC,EAAqC;AAAA,gCAAjC+lB,OAAiC;AAAA,UAAjCA,OAAiC,8BAAvB,gBAAuB;AACxD,UAAIC,eAAe,GAAGD,OAAtB;;AACA,UAAI/lB,QAAQ,CAACimB,MAAT,KAAoB,GAAxB,EAA6B;AAC3BD,QAAAA,eAAe,GAAG,6BAAlB;AACD;;AACD,YAAMA,eAAN;AACD,KARH;AASD,GAVD,CAUE,OAAOvX,KAAP,EAAc;AACd,QAAMuX,eAAe,GAAG,6BAAxB;AACA,UAAMA,eAAN;AACD;AACF,CApBD;;AAsBA,AAAe,SAASE,IAAT,QAaZ;AAAA,MAZDC,cAYC,SAZDA,cAYC;AAAA,+BAXDC,UAWC;AAAA,MAXDA,UAWC,iCAXY,EAWZ;AAAA,MAVDC,YAUC,SAVDA,YAUC;AAAA,6BATDC,QASC;AAAA,MATDA,QASC,+BATU,EASV;AAAA,+BARDC,UAQC;AAAA,MARDA,UAQC,iCARYZ,gBAQZ;AAAA,MAPDa,SAOC,SAPDA,SAOC;AAAA,MANDC,OAMC,SANDA,OAMC;AAAA,kCALDC,aAKC;AAAA,MALDA,aAKC,oCALe;AACdC,IAAAA,MAAM,EAAE,MADM;AAEdC,IAAAA,IAAI,EAAE;AAFQ,GAKf;AAAA,MADEllB,KACF;;AAAA,oBAC0CmlB,UAAU,CAAC,CACpDtB,eADoD,EAEpDC,kBAFoD,EAGpDC,oBAHoD,EAIpDC,qBAJoD,CAAD,CADpD;AAAA;AAAA,MACMoB,OADN;AAAA,MACeC,SADf;AAAA,MAC0BC,YAD1B;;AAAA,MAQoBrC,KARpB,GAWGmC,OAXH,CAQEvB,eARF;AAAA,MASuB3H,QATvB,GAWGkJ,OAXH,CASEtB,kBATF;AAAA,MAUyBd,SAVzB,GAWGoC,OAXH,CAUErB,oBAVF;AAYD,MAAMwB,UAAU,GAAGH,OAAO,CAACpB,qBAAD,CAAP,KAAmC,MAAtD;;AACA,MAAMwB,OAAO,GAAG,SAAVA,OAAU,CAACvR,MAAD,EAAY;AAC1B,QAAIqQ,eAAJ;;AACA,QAAI;AACFO,MAAAA,UAAU,CAAC5Q,MAAD,CAAV,CACG7T,IADH,CACQ,UAACqlB,QAAD,EAAc;AAAA,YAENC,WAFM,GAKdzR,MALc,CAEhBiI,QAFgB;AAAA,YAGLyJ,YAHK,GAKd1R,MALc,CAGhB+O,SAHgB;AAAA,YAIJ4C,aAJI,GAKd3R,MALc,CAIhBsR,UAJgB;AAMlB,YAAIG,WAAJ,EAAiBL,SAAS,CAACvB,kBAAD,EAAqB4B,WAArB,EAAkCV,aAAlC,CAAT;AACjB,YAAIW,YAAJ,EAAkBN,SAAS,CAACtB,oBAAD,EAAuB4B,YAAvB,EAAqCX,aAArC,CAAT;AAClB,YAAIY,aAAJ,EAAmBP,SAAS,CAACrB,qBAAD,EAAwB4B,aAAxB,EAAuCZ,aAAvC,CAAT;AACnB,YAAIS,QAAJ,EAAcJ,SAAS,CAACxB,eAAD,EAAkB4B,QAAlB,EAA4BT,aAA5B,CAAT;AACd,YAAIF,SAAJ,EAAeA,SAAS,CAAC7Q,MAAD,CAAT;AAChB,OAZH,WAaS,UAAClH,KAAD,EAAW;AAChBuX,QAAAA,eAAe,GAAGvX,KAAlB;AACA,YAAIgY,OAAJ,EAAa,OAAOA,OAAO,CAACT,eAAD,CAAd;AACb,cAAMA,eAAN;AACD,OAjBH;AAkBD,KAnBD,CAmBE,OAAOvX,KAAP,EAAc;AACduX,MAAAA,eAAe,GAAGvX,KAAlB;AACA,UAAIgY,OAAJ,EAAa,OAAOA,OAAO,CAACT,eAAD,CAAd;AACd;;AACD,WAAOA,eAAP;AACD,GA1BD;;AA2BA,MAAMuB,QAAQ,GAAG,SAAXA,QAAW,GAAM;AACrBP,IAAAA,YAAY,CAACzB,eAAD,EAAkBmB,aAAlB,CAAZ;;AACA,QAAI,CAACO,UAAL,EAAiB;AACfD,MAAAA,YAAY,CAACxB,kBAAD,EAAqBkB,aAArB,CAAZ;AACAM,MAAAA,YAAY,CAACvB,oBAAD,EAAuBiB,aAAvB,CAAZ;AACAM,MAAAA,YAAY,CAACtB,qBAAD,EAAwBgB,aAAxB,CAAZ;AACD;AACF,GAPD;;AAQA,sBACE,0CACG/B,KAAK,gBACJ,oBAAC,YAAD;AAAc,IAAA,KAAK,EAAEA,KAArB;AAA4B,IAAA,QAAQ,EAAE/G,QAAtC;AAAgD,IAAA,SAAS,EAAE8G;AAA3D,kBACE,oBAAC,YAAD;AAAc,IAAA,QAAQ,EAAE6C;AAAxB,KAAsC7lB,KAAtC,EAAiD4kB,QAAjD,EADF,CADI,gBAKJ,oBAAC,cAAD;AACE,IAAA,OAAO,EAAEY,OADX;AAEE,IAAA,QAAQ,EAAEtJ,QAFZ;AAGE,IAAA,SAAS,EAAE8G,SAHb;AAIE,IAAA,UAAU,EAAEuC;AAJd,KAKMvlB,KALN,EAMM0kB,UANN,EANJ,CADF;AAkBD;;AC9GD,IAAMoB,sBAAsB,GAAG,SAAzBA,sBAAyB;AAAA,MAAG/Y,KAAH,QAAGA,KAAH;AAAA,MAAUgZ,IAAV,QAAUA,IAAV;AAAA,sBAC7B;AACE,IAAA,KAAK,EAAE;AACLC,MAAAA,MAAM,EAAE,MADH;AAELC,MAAAA,SAAS,EAAE,OAFN;AAGL/d,MAAAA,KAAK,EAAE,MAHF;AAILge,MAAAA,QAAQ,EAAE,OAJL;AAKLC,MAAAA,eAAe,EAAE,KALZ;AAMLC,MAAAA,KAAK,EAAE;AANF;AADT,KAUGrZ,KAAK,iBAAI,iCAAMA,KAAK,CAACjC,QAAN,EAAN,CAVZ,EAWGib,IAAI,iBAAI,iCAAMA,IAAI,CAACM,cAAX,CAXX,CAD6B;AAAA,CAA/B;;IAgBqBC;;;;;AACnB,yBAAYtmB,KAAZ,EAAmB;AAAA;;AAAA;;AACjB,8BAAMA,KAAN;AACA,UAAKpB,KAAL,GAAa;AAAE2nB,MAAAA,QAAQ,EAAE;AAAZ,KAAb;AAFiB;AAGlB;;;;0CAMqBC,WAAWC,WAAW;AAAA,wBACf,KAAK7nB,KADU;AAAA,UAClC2nB,QADkC,eAClCA,QADkC;AAAA,UACxBR,IADwB,eACxBA,IADwB;AAAA,UAE5BW,QAF4B,GAEfD,SAFe,CAElCV,IAFkC;AAG1C,UAAIA,IAAI,KAAKW,QAAT,IAAqBH,QAAQ,KAAK,IAAtC,EAA4C,OAAO,KAAP;AAC5C,aAAO,IAAP;AACD;;;sCAEiBxZ,OAAOgZ,MAAM;AAAA,UACrBhB,OADqB,GACT,KAAK/kB,KADI,CACrB+kB,OADqB;;AAE7B,UAAI,OAAOA,OAAP,KAAmB,UAAvB,EAAmC;AACjC,YAAI;AACFA,UAAAA,OAAO,CAAChY,KAAD,EAAQgZ,IAAR,CAAP;AACD,SAFD,CAEE,OAAOY,YAAP,EAAqB;AACrB;AACD;AACF;;AACD,WAAKC,QAAL,CAAc;AAAEb,QAAAA,IAAI,EAAJA;AAAF,OAAd;AACD;;;6BAEQ;AAAA,UACC9M,QADD,GACc,KAAKjZ,KADnB,CACCiZ,QADD;AAAA,yBAE2B,KAAKra,KAFhC;AAAA,UAEC2nB,QAFD,gBAECA,QAFD;AAAA,UAEWxZ,KAFX,gBAEWA,KAFX;AAAA,UAEkBgZ,IAFlB,gBAEkBA,IAFlB;;AAGP,UAAIQ,QAAJ,EAAc;AACZ,4BAAO,oBAAC,sBAAD;AAAwB,UAAA,IAAI,EAAER,IAA9B;AAAoC,UAAA,KAAK,EAAEhZ;AAA3C,UAAP;AACD;;AACD,aAAOkM,QAAP;AACD;;;6CA9B+BlM,OAAO;AACrC,aAAO;AAAEA,QAAAA,KAAK,EAALA,KAAF;AAASwZ,QAAAA,QAAQ,EAAE;AAAnB,OAAP;AACD;;;;EARwC7mB,KAAK,CAACkkB;;AClBjD;AACA,AAKe,SAASiD,aAAT,OAA6D;AAAA,MAApCvP,SAAoC,QAApCA,SAAoC;AAAA,MAAzB9V,WAAyB,QAAzBA,WAAyB;AAAA,MAAZyX,QAAY,QAAZA,QAAY;;AAAA,gBACA3Z,MAAM,CAC9EiY,UAAa,CAACC,aADgE,CADN;AAAA,MAClE1X,OADkE,WAClEA,OADkE;AAAA,MACnDgnB,0BADmD,WACzDtoB,IADyD;AAAA,MACvBJ,SADuB,WACvBA,SADuB;AAAA,MACZC,OADY,WACZA,OADY;;AAI1E,MAAMoc,SAAS,GAAG,SAAZA,SAAY;AAAA,WAAM3a,OAAO,CAAC;AAAEwX,MAAAA,SAAS,EAATA,SAAF;AAAa9V,MAAAA,WAAW,EAAXA;AAAb,KAAD,CAAb;AAAA,GAAlB;;AACA9B,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpBma,IAAAA,SAAS,GADW;AAGrB,GAHD,EAGG,CAACnD,SAAD,EAAY9V,WAAZ,CAHH;AAIA,MAAMogB,UAAU,GAAG;AACjBtK,IAAAA,SAAS,EAATA,SADiB;AAEjB9V,IAAAA,WAAW,EAAXA,WAFiB;AAGjBslB,IAAAA,0BAA0B,EAA1BA,0BAHiB;AAIjBrM,IAAAA,SAAS,EAATA,SAJiB;AAKjBrc,IAAAA,SAAS,EAATA,SALiB;AAMjBC,IAAAA,OAAO,EAAPA;AANiB,GAAnB;;AAQA,MAAMwjB,UAAU,GAAG,SAAbA,UAAa,CAACC,KAAD;AAAA,wBAAWpiB,KAAK,CAACqiB,YAAN,CAAmBD,KAAnB,EAA0BF,UAA1B,CAAX;AAAA,GAAnB;;AACA,SAAOliB,KAAK,CAACsiB,QAAN,CAAehe,GAAf,CAAmBiV,QAAnB,EAA6B4I,UAA7B,CAAP;AACD;;ACrBD,IAAMkF,YAAY,gBAAGrnB,KAAK,CAACsnB,aAAN,EAArB;;AAEA,SAASC,aAAT,OAA2F;AAAA,8BAAlEC,WAAkE;AAAA,MAAlEA,WAAkE,iCAApD,EAAoD;AAAA,MAAhDzM,SAAgD,QAAhDA,SAAgD;AAAA,MAA3B0M,aAA2B,QAArCjL,QAAqC;AAAA,MAAZjD,QAAY,QAAZA,QAAY;;AAAA,wBAC/CvZ,KAAK,CAACwF,QAAN,CAAegiB,WAAf,CAD+C;AAAA;AAAA,MAClFtJ,aADkF;AAAA,MACnEwJ,gBADmE;;AAEzF,MAAMC,aAAa,GAAG,SAAhBA,aAAgB,GAAM;AAC1B,QAAIF,aAAJ,EAAmB;AACjBpL,MAAAA,IAAO,CAACuL,WAAR,CAAoB;AAAEpL,QAAAA,QAAQ,EAAEiL;AAAZ,OAApB,EAAiD/mB,IAAjD,CAAsD,iBAAc;AAAA,YAAX5B,IAAW,SAAXA,IAAW;AAClE4oB,QAAAA,gBAAgB,CAAC5oB,IAAD,CAAhB;AACA,YAAIic,SAAJ,EAAeA,SAAS,CAACjc,IAAD,CAAT;AAChB,OAHD;AAID,KALD,MAKO;AACL,UAAI+oB,GAAJ;AACAxL,MAAAA,IAAO,CAACyL,MAAR,GACGpnB,IADH,CACQ,iBAAwB;AAAA,YAAf8b,QAAe,SAArB1d,IAAqB;AAC5B+oB,QAAAA,GAAG,GAAGrL,QAAN;AACA,eAAOH,IAAO,CAACuL,WAAR,CAAoB;AAAEpL,UAAAA,QAAQ,EAARA;AAAF,SAApB,CAAP;AACD,OAJH,EAKG9b,IALH,CAKQ,iBAAc;AAAA,YAAX5B,IAAW,SAAXA,IAAW;AAClB4oB,QAAAA,gBAAgB,CAAC5oB,IAAD,CAAhB;AACA,YAAIic,SAAJ,EAAeA,SAAS,CAACjc,IAAD,EAAO+oB,GAAP,CAAT;AAChB,OARH;AASD;AACF,GAlBD,CAFyF;;;AAsBzF7nB,EAAAA,KAAK,CAACY,SAAN,CAAgB+mB,aAAhB,EAA+B,CAACF,aAAD,CAA/B;AACA,sBAAO,oBAAC,YAAD,CAAc,QAAd;AAAuB,IAAA,KAAK,EAAEvJ;AAA9B,KAA8C3E,QAA9C,CAAP;AACD;;AAED,SAASwO,QAAT,GAAoB;AAClB,MAAM7J,aAAa,GAAGle,KAAK,CAACgoB,UAAN,CAAiBX,YAAjB,CAAtB;;AACA,MAAInJ,aAAa,KAAKrf,SAAtB,EAAiC;AAC/B,UAAM,IAAI6a,KAAJ,CAAU,2CAAV,CAAN;AACD;;AACD,MAAMuO,OAAO,GAAG,SAAVA,OAAU,CAACC,QAAD,EAAc;AAC5B,QAAIA,QAAQ,KAAKrpB,SAAjB,EAA4B,MAAM,IAAI6a,KAAJ,CAAU,uBAAV,CAAN;AADA,QAEbyO,SAFa,GAECjK,aAFD,CAEpBlH,KAFoB;AAG5B,QAAI,CAAC3N,KAAK,CAACC,OAAN,CAAc6e,SAAd,CAAL,EAA+B,OAAO,IAAP;AAC/B,QAAMC,UAAU,GAAGD,SAAS,CAAC7jB,GAAV,CAAc;AAAA,UAAGsT,SAAH,SAAGA,SAAH;AAAA,aAAmBA,SAAnB;AAAA,KAAd,CAAnB;AACA,QAAIwQ,UAAU,CAACpb,QAAX,CAAoBqb,KAAK,CAACC,iBAA1B,CAAJ,EAAkD,OAAO,IAAP;;AAClD,QAAIjf,KAAK,CAACC,OAAN,CAAc4e,QAAd,CAAJ,EAA6B;AAC3B,aAAOA,QAAQ,CAACzhB,SAAT,CAAmB,UAAC8hB,QAAD;AAAA,eAAcH,UAAU,CAACpb,QAAX,CAAoBub,QAApB,CAAd;AAAA,OAAnB,IAAkE,CAAC,CAA1E;AACD;;AACD,WAAOH,UAAU,CAACpb,QAAX,CAAoBkb,QAApB,CAAP;AACD,GAVD;;AAWA,SAAO;AAAED,IAAAA,OAAO,EAAPA,OAAF;AAAW/J,IAAAA,aAAa,EAAbA;AAAX,GAAP;AACD;;AC9Cc,SAASsK,OAAT,OAAqD;AAAA,MAAlCN,QAAkC,QAAlCA,QAAkC;AAAA,MAAxBO,KAAwB,QAAxBA,KAAwB;AAAA,MAAjBC,IAAiB,QAAjBA,IAAiB;AAAA,MAAXC,OAAW,QAAXA,OAAW;AAClE,MAAIT,QAAQ,KAAKrpB,SAAjB,EAA4B,MAAM,IAAI6a,KAAJ,CAAU,uBAAV,CAAN;;AADsC,kBAE9CqO,QAAQ,EAFsC;AAAA,MAE1DE,OAF0D,aAE1DA,OAF0D;;AAGlE,MAAMW,WAAW,GAAGX,OAAO,CAACC,QAAD,CAA3B;;AACA,oBAAIloB,KAAK,CAAC6oB,cAAN,CAAqBJ,KAArB,KAA+BG,WAAW,KAAK,IAAnD,EAAyD;AACvD,WAAOH,KAAP;AACD;;AACD,oBAAIzoB,KAAK,CAAC6oB,cAAN,CAAqBH,IAArB,KAA8BE,WAAW,KAAK,KAAlD,EAAyD;AACvD,WAAOF,IAAP;AACD;;AACD,oBAAI1oB,KAAK,CAAC6oB,cAAN,CAAqBF,OAArB,KAAiCC,WAAW,KAAK,IAArD,EAA2D;AACzD,WAAOD,OAAP;AACD;;AACD,SAAO,IAAP;AACD;;ACfc,SAASG,gBAAT,OAAkE;AAAA,4BAAtCC,SAAsC;AAAA,MAAtCA,SAAsC,+BAA1B,EAA0B;AAAA,MAAtBxP,QAAsB,QAAtBA,QAAsB;AAAA,MAATjZ,KAAS;;AAC/E,SAAOyoB,SAAS,CAACC,WAAV,CAAsB,UAACC,GAAD,EAAMC,QAAN,EAAmB;AAC9C,QAAI,OAAOA,QAAP,KAAoB,UAAxB,EAAoC;AAClC,0BACE,oBAAC,QAAD;AAAA,QAEM5oB,KAFN,EAIG2oB,GAJH,CADF;AAQD;;AAV6C,QAW5BE,iBAX4B,GAWYD,QAXZ,CAWtCE,QAXsC;AAAA,QAWNC,aAXM,4BAWYH,QAXZ;;AAY9C,wBACE,oBAAC,iBAAD;AAAA,mBAEM5oB,KAFN,EAIM+oB,aAJN,GAMGJ,GANH,CADF;AAUD,GAtBM,EAsBJ1P,QAtBI,CAAP;AAuBD;;AC1BD;AACA;AAIA,IAAM+P,iBAAiB,GAAG,SAApBA,iBAAoB,CAACC,gBAAD;AAAA,MAAmBC,kBAAnB,uEAAwC,EAAxC;AAAA,SAA+C,UAAClpB,KAAD;AAAA,wBACvE,oBAAC,aAAD,EAAmBkpB,kBAAnB,eACE,oBAAC,gBAAD,EAAsBlpB,KAAtB,CADF,CADuE;AAAA,GAA/C;AAAA,CAA1B;;ACLO,IAAMmpB,OAAO,GAAG,SAAVA,OAAU;AAAA,oCAAIC,KAAJ;AAAIA,IAAAA,KAAJ;AAAA;;AAAA,SACrBA,KAAK,CAAC/kB,MAAN,CACE,UAACC,CAAD,EAAI0T,CAAJ;AAAA,WAAU;AAAA,aAAa1T,CAAC,CAAC0T,CAAC,MAAD,mBAAD,CAAd;AAAA,KAAV;AAAA,GADF,EAEE,UAACqR,GAAD;AAAA,WAASA,GAAT;AAAA,GAFF,CADqB;AAAA,CAAhB;;ICGMC,UAAU,gBAAG5pB,KAAK,CAACsnB,aAAN,EAAnB;;AAEP,IAAMuC,sBAAsB,GAAG,SAAzBA,sBAAyB,CAC7BC,GAD6B,QAG1B;AAAA,MADD5a,QACC,QADDA,QACC;AAAA,MADSgE,UACT,QADSA,UACT;AAAA,iCADqB6W,cACrB;AAAA,yDADmF,EACnF;AAAA,MADuCC,KACvC,uBADuCA,KACvC;AAAA,MAD8CC,GAC9C,uBAD8CA,GAC9C;AAAA,kDADmDpnB,KACnD;AAAA,6DAD4E,EAC5E;;AAAA;AAAA;;AAAA,+DADsE,EACtE;AAAA,MAD6DM,IAC7D,0BAD6DA,IAC7D;AACH,MAAM+mB,iBAAiB,GAAGJ,GAAG,CAAC3R,IAAJ,CACxB,UAACgS,CAAD;AAAA,WAAOA,CAAC,CAACC,MAAF,CAAS1iB,EAAT,KAAgBwH,QAAhB,IAA4Bib,CAAC,CAACjX,UAAF,KAAiBA,UAApD;AAAA,GADwB,CAA1B;AAGA,MAAImX,yBAAyB,GAAG,KAAhC;;AACA,MAAIH,iBAAJ,EAAuB;AACrB,QAAMI,qBAAqB,GAAGR,GAAG,CAACtnB,MAAJ,CAC5B,UAAC2nB,CAAD;AAAA,aAAOA,CAAC,CAACC,MAAF,CAAS1iB,EAAT,KAAgBwH,QAAhB,IAA4Bib,CAAC,CAACjX,UAAF,KAAiBA,UAApD;AAAA,KAD4B,CAA9B;AAGAoX,IAAAA,qBAAqB,CAACva,OAAtB,CACE,iBAEM;AAAA,uCADJga,cACI;AAAA,+DADkF,EAClF;AAAA,UADqBQ,OACrB,wBADcP,KACd;AAAA,UADmCQ,KACnC,wBAD8BP,GAC9B;AAAA,uDAD0CpnB,KAC1C;AAAA,iEAD2E,EAC3E;;AAAA;AAAA;;AAAA,mEADqE,EACrE;AAAA,UAD0D4nB,MAC1D,0BADoDtnB,IACpD;;AACJ,UAAI6mB,KAAK,KAAKO,OAAV,IAAqBN,GAAG,KAAKO,KAA7B,IAAsCrnB,IAAI,KAAKsnB,MAAnD,EAA2D;AACzDJ,QAAAA,yBAAyB,GAAG,IAA5B;AACD;AACF,KAPH;AASD;;AACD,SAAO,CAACH,iBAAD,IAAsB,CAACG,yBAA9B;AACD,CAvBD;;AAwBA,AAAO,SAASK,WAAT,QAMJ;AAAA,MALDC,QAKC,SALDA,QAKC;AAAA,MAJDpR,QAIC,SAJDA,QAIC;AAAA,iCAHDha,YAGC;AAAA,MAHDA,YAGC,mCAHc,EAGd;AAAA,oCAFDqrB,eAEC;AAAA,MAFgBC,sBAEhB,sCAFyC,KAEzC;AAAA,oCADDC,eACC;AAAA,MADDA,eACC,sCADiBjB,sBACjB;;AAAA,wBAC+B7pB,KAAK,CAACwF,QAAN,CAAejG,YAAf,CAD/B;AAAA;AAAA,MACMwrB,QADN;AAAA,MACgBC,WADhB;;AAAA,yBAE6ChrB,KAAK,CAACwF,QAAN,CAAeqlB,sBAAf,CAF7C;AAAA;AAAA,MAEMD,eAFN;AAAA,MAEuBK,kBAFvB;;AAID,MAAMC,QAAQ,GAAG,SAAXA,QAAW,CAACC,aAAD,EAAmB;AAClC,QAAI,CAACA,aAAD,IAAkB,CAAC,CAAC,QAAD,EAAW,QAAX,EAAqBne,QAArB,SAAqCme,aAArC,EAAvB,EAA4E;AAC1E;AACA1b,MAAAA,OAAO,CAACpC,KAAR,CAAc,qEAAd;AACA;AACD;;AACD2d,IAAAA,WAAW,CAAC,UAAC9rB,KAAD,EAAW;AACrB,UAAMI,QAAQ,GAAGJ,KAAK,CAACsD,MAAN,CAAa,UAAC2nB,CAAD;AAAA,eAAOA,CAAC,CAACiB,KAAF,KAAYD,aAAnB;AAAA,OAAb,CAAjB;AACA,UAAIR,QAAJ,EAAcA,QAAQ,CAACrrB,QAAD,CAAR;AACd,aAAOA,QAAP;AACD,KAJU,CAAX;AAKD,GAXD;;AAaA,MAAM+rB,UAAU,GAAG,SAAbA,UAAa,GAAM;AACvB,QAAM/rB,QAAQ,GAAG,EAAjB;AACA0rB,IAAAA,WAAW,CAAC1rB,QAAD,CAAX;AACA,QAAIqrB,QAAJ,EAAcA,QAAQ,CAACrrB,QAAD,CAAR;AACf,GAJD;;AAMA,MAAMgsB,eAAe,GAAG,SAAlBA,eAAkB,CAACC,SAAD,EAAe;AAAA,wBACrBzgB,MAAM,GAAGiB,KAAT,CAAe,GAAf,CADqB;AAAA;AAAA,QAC9Bqf,KAD8B;;AAErC;AAASA,MAAAA,KAAK,EAALA;AAAT,OAAmBG,SAAnB;AACD,GAHD;;AAKA,MAAMC,UAAU,GAAG,SAAbA,UAAa,GAA4B;AAAA,oFAAP,EAAO;AAAA,+BAAzBC,QAAyB;AAAA,QAAzBA,QAAyB,+BAAd,EAAc;;AAAA,QACrCvc,QADqC,GACJuc,QADI,CACrCvc,QADqC;AAAA,QAC3BgE,UAD2B,GACJuY,QADI,CAC3BvY,UAD2B;AAAA,QACfkX,MADe,GACJqB,QADI,CACfrB,MADe;;AAE7C,QAAI,CAAClb,QAAD,IAAa,CAACgE,UAAd,IAA4B,CAACkX,MAAjC,EAAyC;AACvC,YAAM,IAAI1Q,KAAJ,CAAU,qEAAV,CAAN;AACD;;AACDsR,IAAAA,WAAW,CAAC,YAAgB;AAAA,UAAf9rB,KAAe,uEAAP,EAAO;;AAC1B,UAAI4rB,eAAe,CAAC5rB,KAAD,EAAQusB,QAAR,CAAf,IAAoCb,eAAxC,EAAyD;AACvD,YAAMtrB,QAAQ,gCAAOJ,KAAP,IAAcosB,eAAe,CAACG,QAAD,CAA7B,EAAd;AACA,YAAId,QAAJ,EAAcA,QAAQ,CAACrrB,QAAD,CAAR;AACd,eAAOA,QAAP;AACD;;AACD,aAAOJ,KAAP;AACD,KAPU,CAAX;AAQD,GAbD;;AAeA,MAAMwsB,UAAU,GAAG,SAAbA,UAAa,QAA4C;AAAA,QAAzCC,MAAyC,SAAzCA,MAAyC;AAAA,QAAjCC,OAAiC,SAAjCA,OAAiC;AAAA,QAAxBC,iBAAwB,SAAxBA,iBAAwB;AAC7D,QAAIF,MAAM,KAAK9sB,SAAX,IAAyB+sB,OAAO,KAAK/sB,SAAZ,IAAyBgtB,iBAAiB,KAAKhtB,SAA5E,EAAwF;AACxFmsB,IAAAA,WAAW,CAAC,UAAC9rB,KAAD,EAAW;AACrB,UAAMI,QAAQ,sBAAOJ,KAAP,CAAd;;AACA,UAAM4sB,SAAS,GAAGf,QAAQ,CAACtkB,SAAT,CAAmB,UAAC0jB,CAAD;AAAA,eAAOA,CAAC,CAACiB,KAAF,KAAYO,MAAnB;AAAA,OAAnB,CAAlB;AACA,UAAMI,UAAU,GAAGhB,QAAQ,CAACtkB,SAAT,CAAmB,UAAC0jB,CAAD;AAAA,eAAOA,CAAC,CAACiB,KAAF,KAAYQ,OAAnB;AAAA,OAAnB,CAAnB;AACA,UAAMI,YAAY,GAAGD,UAAU,GAAG,CAAC,CAAd,GAAkBA,UAAlB,GAA+BF,iBAApD;AAJqB,kBAK2B,CAACvsB,QAAQ,CAACwsB,SAAD,CAAT,EAAsBxsB,QAAQ,CAAC0sB,YAAD,CAA9B,CAL3B;AAKpB1sB,MAAAA,QAAQ,CAAC0sB,YAAD,CALY;AAKI1sB,MAAAA,QAAQ,CAACwsB,SAAD,CALZ;AAMrB,UAAInB,QAAJ,EAAcA,QAAQ,CAACrrB,QAAD,CAAR;AACd,aAAOA,QAAP;AACD,KARU,CAAX;AASD,GAXD;;AAaA,sBACE,oBAAC,UAAD,CAAY,QAAZ;AACE,IAAA,KAAK,EAAE;AACL2sB,MAAAA,MAAM,EAAEjB,WADH;AAELlB,MAAAA,GAAG,EAAEiB,QAFA;AAGLH,MAAAA,eAAe,EAAfA,eAHK;AAILK,MAAAA,kBAAkB,EAAlBA,kBAJK;AAKLiB,MAAAA,MAAM,EAAEV,UALH;AAMLW,MAAAA,MAAM,EAAET,UANH;AAOLU,MAAAA,MAAM,EAAE;AAAA,eAAM,IAAN;AAAA,OAPH;AAQLf,MAAAA,UAAU,EAAVA,UARK;AASLH,MAAAA,QAAQ,EAARA;AATK;AADT,KAaG3R,QAbH,CADF;AAiBD;;ACzGD,IAAM8S,uBAAuB,gBAAGrsB,KAAK,CAACsnB,aAAN,EAAhC;AACA,IAAMgF,oBAAoB,gBAAGtsB,KAAK,CAACsnB,aAAN,EAA7B;AAEA,IAAMiF,mBAAmB,GAAG,qBAA5B;AACA,IAAMC,cAAc,GAAG,gBAAvB;AACA,IAAMC,eAAe,GAAG,iBAAxB;AACA,IAAMC,cAAc,GAAG,gBAAvB;;AAEA,IAAMC,OAAO,GAAG,SAAVA,OAAU,CAACztB,KAAD,EAAQC,MAAR,EAAmB;AACjC,UAAQA,MAAM,CAACC,IAAf;AACE,SAAKqtB,eAAL;AAAsB;AACpB,iDAAYvtB,KAAZ;AAAmBsd,UAAAA,QAAQ,EAAErd,MAAM,CAACqd;AAApC;AACD;;AACD,SAAK+P,mBAAL;AAA0B;AACxB,iDAAYrtB,KAAZ;AAAmB0tB,UAAAA,QAAQ,EAAEztB,MAAM,CAACytB;AAApC;AACD;;AACD,SAAKJ,cAAL;AAAqB;AACnB,YAAMI,QAAQ,qCAAQ1tB,KAAK,CAAC0tB,QAAd,GAA2BztB,MAAM,CAAC0tB,OAAlC,CAAd;;AACA,iDAAY3tB,KAAZ;AAAmB0tB,UAAAA,QAAQ,EAARA;AAAnB;AACD;;AACD,SAAKF,cAAL;AAAqB;AACnB,YAAME,SAAQ,sBAAQ1tB,KAAK,CAAC0tB,QAAd,CAAd;;AACA,eAAOA,SAAQ,CAACztB,MAAM,CAAC2U,GAAR,CAAf;AACA,iDAAY5U,KAAZ;AAAmB0tB,UAAAA,QAAQ,EAARA;AAAnB;AACD;;AACD;AACE,aAAO1tB,KAAP;AAjBJ;AAmBD,CApBD;;AAsBA,IAAM4tB,gBAAgB,GAAG,SAAnBA,gBAAmB,OAQnB;AAAA,MAPMC,eAON,QAPJvQ,QAOI;AAAA,MANJwQ,WAMI,QANJA,WAMI;AAAA,MALJzT,QAKI,QALJA,QAKI;AAAA,kCAJJ0T,eAII;AAAA,MAJJA,eAII,qCAJc,EAId;AAAA,MAHJtC,QAGI,QAHJA,QAGI;AAAA,iCAFJuC,cAEI;AAAA,MAFJA,cAEI,oCAFaC,QAAW,CAACC,oBAEzB;AAAA,mCADJC,iBACI;AAAA,MADJA,iBACI,sCADgBF,QAAW,CAACG,uBAC5B;;AAAA,0BACsBttB,KAAK,CAACE,UAAN,CAAiBysB,OAAjB,EAA0B;AAClDC,IAAAA,QAAQ,EAAEK,eADwC;AAElDzQ,IAAAA,QAAQ,EAAEuQ;AAFwC,GAA1B,CADtB;AAAA;AAAA,MACG7tB,KADH;AAAA,MACUiB,QADV;;AAKJ,MAAMotB,yBAAyB,GAAGvtB,KAAK,CAACC,MAAN,EAAlC;AAEAD,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AAAA,QACZ4b,QADY,GACCtd,KADD,CACZsd,QADY;AAEpB,QAAI,CAAC0Q,cAAD,IAAmB,CAAC1Q,QAAxB,EAAkC;AAClC0Q,IAAAA,cAAc,CAAC;AACbha,MAAAA,UAAU,EAAE,MADC;AAEbhE,MAAAA,QAAQ,EAAEsN,QAFG;AAGb1I,MAAAA,GAAG,EAAEkZ;AAHQ,KAAD,CAAd,CAKGtsB,IALH,CAKQ,iBAAwB;AAAA,UAAfksB,QAAe,SAArB9tB,IAAqB;AAC5BqB,MAAAA,QAAQ,CAAC;AACPf,QAAAA,IAAI,EAAEmtB,mBADC;AAEPK,QAAAA,QAAQ,EAARA,QAFO;AAGPpQ,QAAAA,QAAQ,EAARA,QAHO;AAIPwQ,QAAAA,WAAW,EAAXA;AAJO,OAAD,CAAR;AAMAO,MAAAA,yBAAyB,CAACvuB,OAA1B,GAAoCqL,IAAI,CAACK,SAAL,CAAekiB,QAAf,CAApC;AACD,KAbH,WAcS,UAACvf,KAAD,EAAW;AAAA,UACRzO,QADQ,GACKyO,KADL,CACRzO,QADQ;;AAEhB,UAAIA,QAAQ,CAACimB,MAAT,KAAoB,GAAxB,EAA6B;AAC3B,cAAM,IAAInL,KAAJ,CAAUrM,KAAV,CAAN;AACD;AACF,KAnBH,EAHoB;AAwBrB,GAxBD,EAwBG,CAACnO,KAAK,CAACsd,QAAP,CAxBH;AA0BAxc,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAI+pB,QAAJ,EAAcA,QAAQ,CAACzrB,KAAK,CAAC0tB,QAAP,CAAR;AADM,QAEZpQ,QAFY,GAECtd,KAFD,CAEZsd,QAFY;AAGpB,QAAI,CAAC6Q,iBAAD,IAAsB,CAAC7Q,QAA3B,EAAqC;AACrC,QAAMpV,QAAQ,GAAGiD,IAAI,CAACK,SAAL,CAAexL,KAAK,CAAC0tB,QAArB,CAAjB;AACA,QAAMY,YAAY,GAAGD,yBAAyB,CAACvuB,OAA/C;AACA,QAAI,CAACwuB,YAAD,IAAiBpmB,QAAQ,KAAKomB,YAAlC,EAAgD;AAChDH,IAAAA,iBAAiB,CAAC;AAChBna,MAAAA,UAAU,EAAE,MADI;AAEhBhE,MAAAA,QAAQ,EAAEsN,QAFM;AAGhB1I,MAAAA,GAAG,EAAEkZ,WAHW;AAIhBrqB,MAAAA,KAAK,EAAEyE;AAJS,KAAD,CAAjB;AAMAmmB,IAAAA,yBAAyB,CAACvuB,OAA1B,GAAoCoI,QAApC,CAboB;AAerB,GAfD,EAeG,CAAClI,KAAK,CAAC0tB,QAAP,CAfH;AAiBA,sBACE,oBAAC,oBAAD,CAAsB,QAAtB;AAA+B,IAAA,KAAK,EAAE1tB;AAAtC,kBACE,oBAAC,uBAAD,CAAyB,QAAzB;AAAkC,IAAA,KAAK,EAAEiB;AAAzC,KACGoZ,QADH,CADF,CADF;AAOD,CAjED;;AAmEA,IAAMkU,gBAAgB,GAAG,SAAnBA,gBAAmB,GAAM;AAC7B,MAAMvuB,KAAK,GAAGc,KAAK,CAACgoB,UAAN,CAAiBsE,oBAAjB,CAAd;AACA,MAAI,CAACptB,KAAL,EAAY,MAAM,IAAIwa,KAAJ,CAAU,2DAAV,CAAN;AACZ,SAAOxa,KAAP;AACD,CAJD;;AAMA,IAAMwuB,mBAAmB,GAAG,SAAtBA,mBAAsB,GAAM;AAChC,MAAMvtB,QAAQ,GAAGH,KAAK,CAACgoB,UAAN,CAAiBqE,uBAAjB,CAAjB;AACA,MAAI,CAAClsB,QAAL,EAAe,MAAM,IAAIuZ,KAAJ,CAAU,iEAAV,CAAN;AACf,SAAOvZ,QAAP;AACD,CAJD;;AAMA,IAAMwtB,kBAAkB,GAAG,SAArBA,kBAAqB,GAAM;AAC/B,MAAMxtB,QAAQ,GAAGutB,mBAAmB,EAApC;AACA,MAAME,iBAAiB,GAAG5tB,KAAK,CAACK,WAAN,CACxB,UAACusB,QAAD;AAAA,WAAczsB,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEmtB,mBAAR;AAA6BK,MAAAA,QAAQ,EAARA;AAA7B,KAAD,CAAtB;AAAA,GADwB;AAGxB,IAHwB,CAA1B;AAKA,MAAMiB,aAAa,GAAG7tB,KAAK,CAACK,WAAN,CACpB,UAACwsB,OAAD;AAAA,WAAa1sB,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEotB,cAAR;AAAwBK,MAAAA,OAAO,EAAPA;AAAxB,KAAD,CAArB;AAAA,GADoB;AAGpB,IAHoB,CAAtB;AAKA,MAAMiB,cAAc,GAAG9tB,KAAK,CAACK,WAAN,CACrB,UAACmc,QAAD;AAAA,WAAcrc,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEqtB,eAAR;AAAyBjQ,MAAAA,QAAQ,EAARA;AAAzB,KAAD,CAAtB;AAAA,GADqB;AAGrB,IAHqB,CAAvB,CAZ+B;;AAkB/B,MAAMuR,aAAa,GAAG/tB,KAAK,CAACK,WAAN,CAAkB,UAACyT,GAAD;AAAA,WAAS3T,QAAQ,CAAC;AAAEf,MAAAA,IAAI,EAAEstB,cAAR;AAAwB5Y,MAAAA,GAAG,EAAHA;AAAxB,KAAD,CAAjB;AAAA,GAAlB,EAAoE,EAApE,CAAtB;AACA,SAAO;AACL8Z,IAAAA,iBAAiB,EAAjBA,iBADK;AAELC,IAAAA,aAAa,EAAbA,aAFK;AAGLC,IAAAA,cAAc,EAAdA,cAHK;AAILC,IAAAA,aAAa,EAAbA;AAJK,GAAP;AAMD,CAzBD;;AA2BA,IAAMC,WAAW,GAAG,SAAdA,WAAc,GAAM;AAAA,0BACEP,gBAAgB,EADlB;AAAA,gDAChBb,QADgB;AAAA,MAChBA,QADgB,sCACL,EADK;;AAExB,MAAMqB,OAAO,GAAGN,kBAAkB,EAAlC;AACA,2CACKM,OADL;AAEErB,IAAAA,QAAQ,EAARA;AAFF;AAID,CAPD;;ACpIA,IAAMzI,iBAAe,GAAG,iBAAxB;AACA,IAAMC,oBAAkB,GAAG,oBAA3B;AACA,IAAMC,sBAAoB,GAAG,sBAA7B;AACA,IAAMC,uBAAqB,GAAG,uBAA9B;AACA,IAAM4J,iBAAiB,GAAG,gCAA1B;AACA,IAAMC,aAAa,GAAG,gCAAtB;AACA,IAAMC,mBAAmB,GAAG,iBAA5B;AACA,IAAMC,qBAAqB,GAAG,wBAA9B;;AAEA,IAAMC,eAAe,GAAG,SAAlBA,eAAkB,CAAChL,SAAD,EAAe;AACrC,MAAI;AACF;AACA,WAAOiL,MAAS,CAACC,WAAV,CAAsB;AAAE5K,MAAAA,OAAO,EAAEN;AAAX,KAAtB,EACJ5iB,IADI,CACC;AAAA,aAAMwtB,iBAAN;AAAA,KADD,WAEE;AAAA,aAAMC,aAAN;AAAA,KAFF,CAAP;AAGD,GALD,CAKE,OAAOhnB,CAAP,EAAU;AACV,WAAO5G,OAAO,CAACC,OAAR,CAAgB2tB,aAAhB,CAAP;AACD;AACF,CATD;;AAWA,IAAMM,iBAAiB,GAAG,SAApBA,iBAAoB,OAA6D;AAAA,yBAA1DlJ,MAA0D;AAAA,MAAlDf,OAAkD,4BAAxC,EAAwC;AAAA,MAApChI,QAAoC,QAApCA,QAAoC;AAAA,MAA1BU,QAA0B,QAA1BA,QAA0B;AAAA,MAAhBoG,SAAgB,QAAhBA,SAAgB;;AACrF,MAAI;AACF,WAAOjH,IAAO,CAACqI,QAAR,CAAiB;AACtB5iB,MAAAA,WAAW,EAAE;AAAE0iB,QAAAA,OAAO,EAAPA,OAAF;AAAWC,QAAAA,WAAW,EAAE;AAAxB,OADS;AAEtBZ,MAAAA,OAAO,EAAE;AAAE3G,QAAAA,QAAQ,EAARA,QAAF;AAAYsG,QAAAA,QAAQ,EAAEhH;AAAtB,OAFa;AAGtBoH,MAAAA,OAAO,EAAEN;AAHa,KAAjB,EAKJ5iB,IALI,CAKC,iBAAqB;AAAA,UAAZ6iB,KAAY,SAAlBzkB,IAAkB;AACzB,aAAOykB,KAAP;AACD,KAPI,WAQE,YAAM;AACX,aAAO+K,eAAe,CAAChL,SAAD,CAAf,CAA2B5iB,IAA3B,CAAgC,UAAC2M,KAAD,EAAW;AAChD,cAAMqM,KAAK,CAACrM,KAAD,CAAX;AACD,OAFM,CAAP;AAGD,KAZI,CAAP;AAaD,GAdD,CAcE,OAAOlG,CAAP,EAAU;AACV,WAAOmnB,eAAe,CAAChL,SAAD,CAAf,CAA2B5iB,IAA3B,CAAgC,UAAC2M,KAAD,EAAW;AAChD,YAAMqM,KAAK,CAACrM,KAAD,CAAX;AACD,KAFM,CAAP;AAGD;AACF,CApBD;;AAsBA,IAAaqhB,WAAW,gBAAG1uB,KAAK,CAACsnB,aAAN,CAAoB;AAC7ChE,EAAAA,SAAS,EAAE,IADkC;AAE7CC,EAAAA,KAAK,EAAE,IAFsC;AAG7C7D,EAAAA,IAAI,EAAE,IAHuC;AAI7ClD,EAAAA,QAAQ,EAAE,IAJmC;AAK7CsJ,EAAAA,OAAO,EAAE;AAAA,WAAM,IAAN;AAAA,GALoC;AAM7CK,EAAAA,QAAQ,EAAE;AAAA,WAAM,IAAN;AAAA;AANmC,CAApB,CAApB;AASP,IAAawI,YAAY,GAAG,SAAfA,YAAe,QActB;AAAA,kCAbJrJ,aAaI;AAAA,MAbJA,aAaI,oCAbY;AACdC,IAAAA,MAAM,EAAE,MADM;AAEdC,IAAAA,IAAI,EAAE;AAFQ,GAaZ;AAAA,MATJT,cASI,SATJA,cASI;AAAA,+BARJC,UAQI;AAAA,MARJA,UAQI,iCARS,EAQT;AAAA,+BAPJG,UAOI;AAAA,MAPJA,UAOI,iCAPSsJ,iBAOT;AAAA,MANJrJ,SAMI,SANJA,SAMI;AAAA,MALJC,OAKI,SALJA,OAKI;AAAA,MAJOuJ,cAIP,SAJJtL,SAII;AAAA,MAHMuL,aAGN,SAHJrS,QAGI;AAAA,MAFGsS,UAEH,SAFJvL,KAEI;AAAA,MADJhK,QACI,SADJA,QACI;;AAAA,gBACyC3Z,MAAM,CAACyc,IAAO,CAACC,OAAT,CAD/C;AAAA,MACUC,QADV,WACIzd,IADJ;AAAA,MAC6Bwd,OAD7B,WACoBlc,OADpB;;AAAA,oBAGuCqlB,UAAU,CAAC,CACpDtB,iBADoD,EAEpDC,oBAFoD,EAGpDC,sBAHoD,EAIpDC,uBAJoD,CAAD,CAHjD;AAAA;AAAA,MAGGoB,OAHH;AAAA,MAGYC,SAHZ;AAAA,MAGuBC,YAHvB;;AAAA,8BAaAF,OAbA,CAUDvB,iBAVC;AAAA,MAUiBZ,KAVjB,sCAUyBuL,UAVzB;AAAA,8BAaApJ,OAbA,CAWDtB,oBAXC;AAAA,MAWoB5H,QAXpB,sCAW+BqS,aAX/B;AAAA,8BAaAnJ,OAbA,CAYDrB,sBAZC;AAAA,MAYsBf,SAZtB,sCAYkCsL,cAZlC;AAcJ,MAAM/I,UAAU,GAAGH,OAAO,CAACpB,uBAAD,CAAP,KAAmC,MAAtD;AAdI,MAeIiB,MAfJ,GAeeD,aAff,CAeIC,MAfJ;;AAgBJ,MAAMO,OAAO,GAAG,SAAVA,OAAU,CAACvR,MAAD,EAAY;AAC1B,QAAIqQ,eAAJ;;AACA,QAAI;AACF,aAAOO,UAAU;AAAGI,QAAAA,MAAM,EAANA;AAAH,SAAchR,MAAd,EAAV,CACJ7T,IADI,CACC,UAACqlB,QAAD,EAAc;AAAA,YAENC,WAFM,GAKdzR,MALc,CAEhBiI,QAFgB;AAAA,YAGLyJ,YAHK,GAKd1R,MALc,CAGhB+O,SAHgB;AAAA,YAIJ4C,aAJI,GAKd3R,MALc,CAIhBsR,UAJgB;AAMlB,YAAIG,WAAJ,EAAiBL,SAAS,CAACvB,oBAAD,EAAqB4B,WAArB,EAAkCV,aAAlC,CAAT;AACjB,YAAIW,YAAJ,EAAkBN,SAAS,CAACtB,sBAAD,EAAuB4B,YAAvB,EAAqCX,aAArC,CAAT;AAClB,YAAIY,aAAJ,EAAmBP,SAAS,CAACrB,uBAAD,EAAwB4B,aAAxB,EAAuCZ,aAAvC,CAAT;AACnB,YAAIS,QAAJ,EAAcJ,SAAS,CAACxB,iBAAD,EAAkB4B,QAAlB,EAA4BT,aAA5B,CAAT;AACd,YAAIF,SAAJ,EAAeA,SAAS,CAAC7Q,MAAD,CAAT;AAChB,OAZI,WAaE,UAAClH,KAAD,EAAW;AAChBuX,QAAAA,eAAe,GAAGvX,KAAlB;AACA,YAAIgY,OAAJ,EAAaA,OAAO,CAACT,eAAD,CAAP;AACd,OAhBI,CAAP;AAiBD,KAlBD,CAkBE,OAAOvX,KAAP,EAAc;AACduX,MAAAA,eAAe,GAAGvX,KAAlB;AACA,UAAIgY,OAAJ,EAAaA,OAAO,CAACT,eAAD,CAAP;AACd;;AACD,WAAOA,eAAP;AACD,GAzBD;;AA0BA,MAAMuB,QAAQ,GAAGnmB,KAAK,CAACK,WAAN,CAAkB,YAAM;AACvCulB,IAAAA,YAAY,CAACzB,iBAAD,EAAkBmB,aAAlB,CAAZ;;AACA,QAAI,CAACO,UAAL,EAAiB;AACfD,MAAAA,YAAY,CAACxB,oBAAD,EAAqBkB,aAArB,CAAZ;AACAM,MAAAA,YAAY,CAACvB,sBAAD,EAAuBiB,aAAvB,CAAZ;AACAM,MAAAA,YAAY,CAACtB,uBAAD,EAAwBgB,aAAxB,CAAZ;AACD;AACF,GAPgB,EAOd,CAACA,aAAD,EAAgBO,UAAhB,EAA4BD,YAA5B,CAPc,CAAjB;AASA,MAAMmJ,mBAAmB,GAAG/uB,KAAK,CAACC,MAAN,EAA5B;AACAD,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAI2iB,KAAJ,EAAW;AACT,UAAIwL,mBAAmB,CAAC/vB,OAAxB,EACES,KAAG,CAACikB,aAAJ,CAAkBsL,YAAlB,CAA+BpwB,QAA/B,CAAwCqwB,KAAxC,CAA8CF,mBAAmB,CAAC/vB,OAAlE;AACF+vB,MAAAA,mBAAmB,CAAC/vB,OAApB,GAA8BS,KAAG,CAACikB,aAAJ,CAAkBsL,YAAlB,CAA+BpwB,QAA/B,CAAwCswB,GAAxC,CAC5B,UAACtwB,QAAD;AAAA,eAAcA,QAAd;AAAA,OAD4B,EAE5B,UAACyO,KAAD,EAAW;AACT,YAAIA,KAAK,CAACzO,QAAV,EAAoB;AAClB,cAAIyO,KAAK,CAACzO,QAAN,CAAeimB,MAAf,KAA0B,GAA9B,EAAmC;AACjCsB,YAAAA,QAAQ;AACR,gBAAId,OAAJ,EAAaA,OAAO,CAAC3L,KAAK,CAAC0U,mBAAD,CAAN,CAAP;AACd;AACF,SALD,MAKO;AAAA,8BACgC/gB,KADhC,CACG8hB,MADH;AAAA,qDACyB,EADzB;AAAA,cACavL,OADb,iBACaA,OADb;AAEL2K,UAAAA,MAAS,CAACC,WAAV,CAAsB;AAAE5K,YAAAA,OAAO,EAAPA;AAAF,WAAtB,EACGljB,IADH,CACQ,YAAM;AACVylB,YAAAA,QAAQ;AACR,gBAAId,OAAJ,EAAaA,OAAO,CAAC3L,KAAK,CAAC0U,mBAAD,CAAN,CAAP;AACd,WAJH,WAKS;AAAA,mBAAM,IAAN;AAAA,WALT,EAFK;AAQN;;AACD,eAAO7tB,OAAO,CAACE,MAAR,CAAe4M,KAAf,CAAP;AACD,OAlB2B,CAA9B;AAoBD;;AACD,WAAO,YAAM;AACX,UAAI0hB,mBAAmB,CAAC/vB,OAAxB,EACES,KAAG,CAACikB,aAAJ,CAAkBsL,YAAlB,CAA+BpwB,QAA/B,CAAwCqwB,KAAxC,CAA8CF,mBAAmB,CAAC/vB,OAAlE;AACH,KAHD;AAID,GA7BD,EA6BG,CAACmnB,QAAD,EAAWd,OAAX,EAAoB9B,KAApB,CA7BH;AA+BAvjB,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAI2iB,KAAK,IAAI/G,QAAQ,KAAK3d,SAA1B,EAAqC;AACnCwd,MAAAA,IAAO,CAACyL,MAAR,GAAiBpnB,IAAjB,CAAsB;AAAA,YAASslB,WAAT,SAAGlnB,IAAH;AAAA,eACpB6mB,SAAS,CAACvB,oBAAD,EAAqB4B,WAArB,EAAkCV,aAAlC,CADW;AAAA,OAAtB;AAGD,KALmB;;AAOrB,GAPD,EAOG,CAAC9I,QAAD,EAAW+G,KAAX,CAPH;AASAvjB,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAI2iB,KAAK,IAAI/G,QAAT,IAAqBD,QAAQ,KAAK1d,SAAtC,EAAiDyd,OAAO,CAAC;AAAEE,MAAAA,QAAQ,EAARA;AAAF,KAAD,CAAP;AAClD,GAFD,EAEG,CAACA,QAAD,EAAW+G,KAAX,EAAkBhH,QAAlB,EAA4BD,OAA5B,EAAqC6J,QAArC,CAFH;AAGAnmB,EAAAA,KAAK,CAACY,SAAN,CAAgB,YAAM;AACpB,QAAI2iB,KAAK,IAAID,SAAT,IAAsBsL,cAAtB,IAAwCtL,SAAS,KAAKsL,cAA1D,EAA0E;AACxEzI,MAAAA,QAAQ;AACR,UAAId,OAAJ,EAAaA,OAAO,CAAC3L,KAAK,CAAC2U,qBAAD,CAAN,CAAP;AACd;AACF,GALD,EAKG,CAAC9K,KAAD,EAAQD,SAAR,EAAmBsL,cAAnB,EAAmCzI,QAAnC,EAA6Cd,OAA7C,CALH;AAOA,sBACE,0CACG9B,KAAK,gBACJ,oBAAC,YAAD;AAAc,IAAA,KAAK,EAAEA,KAArB;AAA4B,IAAA,QAAQ,EAAE/G,QAAtC;AAAgD,IAAA,SAAS,EAAE8G;AAA3D,kBACE,oBAAC,WAAD,CAAa,QAAb;AACE,IAAA,KAAK,EAAE;AACLA,MAAAA,SAAS,EAATA,SADK;AAELC,MAAAA,KAAK,EAALA,KAFK;AAGLhH,MAAAA,QAAQ,EAARA,QAHK;AAILC,MAAAA,QAAQ,EAARA,QAJK;AAKLsJ,MAAAA,OAAO,EAAPA,OALK;AAMLK,MAAAA,QAAQ,EAARA;AANK;AADT,KAUG5M,QAVH,CADF,CADI,gBAgBJ,oBAAC,cAAD;AACE,IAAA,OAAO,EAAEuM,OADX;AAEE,IAAA,QAAQ,EAAEtJ,QAFZ;AAGE,IAAA,SAAS,EAAE8G,SAHb;AAIE,IAAA,UAAU,EAAEuC,UAJd;;AAAA,KAMMb,UANN,EAjBJ,CADF;AA6BD,CAjJM;AAmJP,IAAaoK,cAAc,GAAG,SAAjBA,cAAiB,GAAM;AAClC,MAAMC,OAAO,GAAGrvB,KAAK,CAACgoB,UAAN,CAAiB0G,WAAjB,CAAhB;;AACA,MAAIW,OAAO,KAAKxwB,SAAhB,EAA2B;AACzB,UAAM,IAAI6a,KAAJ,CAAU,4CAAV,CAAN;AACD;;AAED,SAAO2V,OAAP;AACD,CAPM;;AC3MP,gBAAe,gBAQT;AAAA,MAPJ9V,QAOI,QAPJA,QAOI;AAAA,MANJ+V,OAMI,QANJA,OAMI;AAAA,MALIC,UAKJ,QALJrD,MAKI;AAAA,MAJSsD,eAIT,QAJJC,WAII;AAAA,MAHQC,cAGR,QAHJC,UAGI;AAAA,MAFSC,eAET,QAFJC,WAEI;AAAA,MADJC,KACI,QADJA,KACI;;AAAA,wBACkC9vB,KAAK,CAACwF,QAAN,CAAe,CAAf,CADlC;AAAA;AAAA,MACGuqB,WADH;AAAA,MACgBC,cADhB;;AAGJ,MAAM9D,OAAM,GAAG,SAATA,MAAS,CAAClU,CAAD,EAAO;AACpBA,IAAAA,CAAC,CAACiY,cAAF;AACAjY,IAAAA,CAAC,CAACkY,eAAF;AACAZ,IAAAA,OAAO,CAAC,KAAD,CAAP;AACA,QAAIC,UAAJ,EAAgBA,UAAU,CAACvX,CAAD,CAAV;AACjB,GALD;;AAOA,MAAMyX,YAAW,GAAG,SAAdA,WAAc,CAACzX,CAAD,EAAO;AACzBA,IAAAA,CAAC,CAACiY,cAAF;AACAjY,IAAAA,CAAC,CAACkY,eAAF;AACAF,IAAAA,cAAc,CAACD,WAAW,GAAG,CAAf,CAAd;AACA,QAAIA,WAAW,KAAK,CAApB,EAAuBT,OAAO,CAAC,IAAD,CAAP;AACvB,QAAIE,eAAJ,EAAqBA,eAAe,CAACxX,CAAD,CAAf;AACtB,GAND;;AAQA,MAAM2X,WAAU,GAAG,SAAbA,UAAa,CAAC3X,CAAD,EAAO;AACxBA,IAAAA,CAAC,CAACiY,cAAF;AACAjY,IAAAA,CAAC,CAACkY,eAAF;AACA,QAAIR,cAAJ,EAAoBA,cAAc,CAAC1X,CAAD,CAAd;AACrB,GAJD;;AAMA,MAAM6X,YAAW,GAAG,SAAdA,WAAc,CAAC7X,CAAD,EAAO;AACzBA,IAAAA,CAAC,CAACiY,cAAF;AACAjY,IAAAA,CAAC,CAACkY,eAAF;AACAF,IAAAA,cAAc,CAACD,WAAW,GAAG,CAAf,CAAd;AACA,QAAIA,WAAW,KAAK,CAApB,EAAuBT,OAAO,CAAC,KAAD,CAAP;AACvB,QAAIM,eAAJ,EAAqBA,eAAe,CAAC5X,CAAD,CAAf;AACtB,GAND;;AAQA,sBACE;AACE,IAAA,WAAW,EAAE,qBAACA,CAAD;AAAA,aAAOyX,YAAW,CAACzX,CAAD,CAAlB;AAAA,KADf;AAEE,IAAA,UAAU,EAAE,oBAACA,CAAD;AAAA,aAAO2X,WAAU,CAAC3X,CAAD,CAAjB;AAAA,KAFd;AAGE,IAAA,MAAM,EAAE,gBAACA,CAAD;AAAA,aAAOkU,OAAM,CAAClU,CAAD,CAAb;AAAA,KAHV;AAIE,IAAA,WAAW,EAAE,qBAACA,CAAD;AAAA,aAAO6X,YAAW,CAAC7X,CAAD,CAAlB;AAAA,KAJf;AAKE,IAAA,KAAK,EAAE8X;AALT,KAOGvW,QAPH,CADF;AAWD,CAnDD;;ICAa4W,eAAe,GAAG,SAAlBA,eAAkB,OAAmE;AAAA,MAAhEjhB,QAAgE,QAAhEA,QAAgE;AAAA,MAAtDgE,UAAsD,QAAtDA,UAAsD;AAAA,MAA1CxF,YAA0C,QAA1CA,YAA0C;AAAA,MAA5B0iB,YAA4B,QAA5BA,YAA4B;AAAA,MAAd/K,OAAc,QAAdA,OAAc;;AAChG,MAAI3X,YAAY,IAAIA,YAAY,KAAK0iB,YAArC,EAAmD;AACjD,QAAI;AACF,aAAOphB,UAAa,CAACC,mBAAd,CAAkC;AACvCvB,QAAAA,YAAY,EAAZA,YADuC;AAEvCwB,QAAAA,QAAQ,EAARA,QAFuC;AAGvCpN,QAAAA,WAAW,EAAE;AACX1C,UAAAA,IAAI,EAAE8T,UAAU,CAACpG,WAAX;AADK;AAH0B,OAAlC,CAAP;AAOD,KARD,CAQE,OAAOO,KAAP,EAAc;AACdgY,MAAAA,OAAO,CAAC;AACNV,QAAAA,OAAO,0BAAmBzV,QAAnB,4BAA6CxB,YAA7C,CADD;AAENL,QAAAA,KAAK,EAALA;AAFM,OAAD,CAAP;AAID;AACF;;AACD,SAAOxO,SAAP;AACD,CAlBM;AAmBP,IAAawxB,kBAAkB,GAAG,SAArBA,kBAAqB,QAM5B;AAAA,MALJnhB,QAKI,SALJA,QAKI;AAAA,MAJJgE,UAII,SAJJA,UAII;AAAA,MAHJxF,YAGI,SAHJA,YAGI;AAAA,MAFJ0iB,YAEI,SAFJA,YAEI;AAAA,MADJ/K,OACI,SADJA,OACI;;AACJ,MAAI3X,YAAY,IAAIA,YAAY,KAAK0iB,YAArC,EAAmD;AACjD,QAAI;AACF,aAAOphB,UAAa,CAACshB,sBAAd,CAAqC;AAC1C5iB,QAAAA,YAAY,EAAZA,YAD0C;AAE1CwB,QAAAA,QAAQ,EAARA,QAF0C;AAG1CpN,QAAAA,WAAW,EAAE;AACX1C,UAAAA,IAAI,EAAE8T,UAAU,CAACpG,WAAX;AADK;AAH6B,OAArC,CAAP;AAOD,KARD,CAQE,OAAOO,KAAP,EAAc;AACdgY,MAAAA,OAAO,CAAC;AACNV,QAAAA,OAAO,6BAAsBzV,QAAtB,8BAAkDxB,YAAlD,CADD;AAENL,QAAAA,KAAK,EAALA;AAFM,OAAD,CAAP;AAID;AACF;;AACD,SAAOxO,SAAP;AACD,CAxBM;AA0BP,IAAa0xB,gBAAgB,GAAG,SAAnBA,gBAAmB,QAa1B;AAAA,MAZJrhB,QAYI,SAZJA,QAYI;AAAA,MAXJgE,UAWI,SAXJA,UAWI;AAAA,MAVJsd,iBAUI,SAVJA,iBAUI;AAAA,MATJC,sBASI,SATJA,sBASI;AAAA,MARJL,YAQI,SARJA,YAQI;AAAA,gCAPJM,WAOI;AAAA,MAPJA,WAOI,kCAPUP,eAOV;AAAA,mCANJQ,cAMI;AAAA,MANJA,cAMI,qCANaN,kBAMb;AAAA,4BALJO,OAKI;AAAA,MALJA,OAKI,8BALM;AAAA,WAAM,IAAN;AAAA,GAKN;AAAA,4BAJJC,OAII;AAAA,MAJJA,OAII,8BAJM;AAAA,WAAM,IAAN;AAAA,GAIN;AAAA,8BAHJC,SAGI;AAAA,MAHJA,SAGI,gCAHQ;AAAA,WAAM,IAAN;AAAA,GAGR;AAAA,4BADJzL,OACI;AAAA,MADJA,OACI,8BADM;AAAA,QAAGV,OAAH,SAAGA,OAAH;AAAA,QAAYtX,KAAZ,SAAYA,KAAZ;AAAA,WAAwBoC,OAAO,CAACpC,KAAR,WAAiBsX,OAAjB,eAA6BtX,KAA7B,EAAxB;AAAA,GACN;;AACJ,MAAI,CAACmjB,iBAAL,EAAwB;AACtBnL,IAAAA,OAAO,CAAC;AAAEV,MAAAA,OAAO,EAAE,4CAAX;AAAyDtX,MAAAA,KAAK,EAAE;AAAhE,KAAD,CAAP;AACA;AACD;;AACD,MAAI,CAACojB,sBAAL,EAA6B;AAC3BpL,IAAAA,OAAO,CAAC;AAAEV,MAAAA,OAAO,EAAE,iDAAX;AAA8DtX,MAAAA,KAAK,EAAE;AAArE,KAAD,CAAP;AACA;AACD;;AACD,MAAI;AACF,QAAM0jB,UAAU,GAAGL,WAAW,CAAC;AAC7BxhB,MAAAA,QAAQ,EAARA,QAD6B;AAE7BgE,MAAAA,UAAU,EAAVA,UAF6B;AAG7Bkd,MAAAA,YAAY,EAAZA,YAH6B;AAI7B1iB,MAAAA,YAAY,EAAE8iB,iBAJe;AAK7BnL,MAAAA,OAAO,EAAPA;AAL6B,KAAD,CAA9B;AAOA,QAAM2L,aAAa,GAAGL,cAAc,CAAC;AACnCzhB,MAAAA,QAAQ,EAARA,QADmC;AAEnCgE,MAAAA,UAAU,EAAVA,UAFmC;AAGnCkd,MAAAA,YAAY,EAAZA,YAHmC;AAInC1iB,MAAAA,YAAY,EAAE+iB,sBAJqB;AAKnCpL,MAAAA,OAAO,EAAPA;AALmC,KAAD,CAApC;AAOA,QAAM4L,QAAQ,GAAG,CAACF,UAAD,EAAaC,aAAb,EAA4BxuB,MAA5B,CAAmC,UAACwV,CAAD;AAAA,aAAOA,CAAC,KAAKnZ,SAAb;AAAA,KAAnC,CAAjB;AACA0B,IAAAA,OAAO,CAAC2wB,UAAR,CAAmBD,QAAnB,EACGvwB,IADH,CACQ,UAACywB,OAAD,EAAa;AACjB,UAAMC,aAAa,GAAGD,OAAO,CAAC3uB,MAAR,CAAe,UAAC6uB,CAAD;AAAA,eAAOA,CAAC,CAACxM,MAAF,KAAa,WAApB;AAAA,OAAf,CAAtB;AACA,UAAMyM,YAAY,GAAGF,aAAa,CAAChpB,MAAd,KAAyB,CAA9C;AACA,UAAMmpB,SAAS,GAAGH,aAAa,CAAChpB,MAAd,KAAyB6oB,QAAQ,CAAC7oB,MAApD;AACA,UAAMopB,SAAS,GAAGJ,aAAa,CAAChpB,MAAd,KAAyB,CAA3C;;AACA,UAAIkpB,YAAJ,EAAkB;AAChBV,QAAAA,OAAO;AACPC,QAAAA,OAAO;AACPC,QAAAA,SAAS;AACV,OAJD,MAIO,IAAIS,SAAJ,EAAe;AACpBlM,QAAAA,OAAO,CAAC;AACNV,UAAAA,OAAO,EACL,yBAAkBzV,QAAlB,wBACGuhB,sBADH,iBACgCD,iBADhC,CAFI;AAINnjB,UAAAA,KAAK,EAAE+jB,aAAa,CAAC9sB,GAAd,CAAkB,UAACmtB,EAAD;AAAA,mBAAQA,EAAE,CAACC,MAAX;AAAA,WAAlB,EAAqCnoB,IAArC,CAA0C,IAA1C;AAJD,SAAD,CAAP;AAMD,OAPM,MAOA,IAAIioB,SAAJ,EAAe;AACpB,YAAMG,aAAa,GAAGP,aAAa,CAAC,CAAD,CAAb,CAAiBM,MAAjB,CAAwBvC,MAAxB,CAA+B9f,MAArD;AACA,YAAMuiB,cAAc,GAAGD,aAAa,KAAK,QAAzC;AACA,YAAME,WAAW,GAAGF,aAAa,KAAK,KAAtC;AACAtM,QAAAA,OAAO,CAAC;AACNV,UAAAA,OAAO,EAAEiN,cAAc,8BACC1iB,QADD,8BAC6BuhB,sBAD7B,4BAEFvhB,QAFE,4BAEwBshB,iBAFxB,CADjB;AAINnjB,UAAAA,KAAK,EAAE+jB,aAAa,CAAC,CAAD,CAAb,CAAiBM;AAJlB,SAAD,CAAP;AAMA,YAAII,eAAJ;;AACA,YAAIF,cAAJ,EAAoB;AAClBE,UAAAA,eAAe,GAAGnB,cAAc,CAAC;AAC/BzhB,YAAAA,QAAQ,EAARA,QAD+B;AAE/BgE,YAAAA,UAAU,EAAVA,UAF+B;AAG/BxF,YAAAA,YAAY,EAAE8iB,iBAHiB;AAI/BnL,YAAAA,OAAO,EAAPA;AAJ+B,WAAD,CAAhC;AAMD,SAPD,MAOO,IAAIwM,WAAJ,EAAiB;AACtBC,UAAAA,eAAe,GAAGpB,WAAW,CAAC;AAC5BxhB,YAAAA,QAAQ,EAARA,QAD4B;AAE5BgE,YAAAA,UAAU,EAAVA,UAF4B;AAG5BxF,YAAAA,YAAY,EAAE+iB,sBAHc;AAI5BpL,YAAAA,OAAO,EAAPA;AAJ4B,WAAD,CAA7B;AAMD;;AACD,YAAIyM,eAAJ,EAAqB;AACnBA,UAAAA,eAAe,CACZpxB,IADH,CACQ,YAAM;AACV;AACA+O,YAAAA,OAAO,CAAC4W,IAAR,CACE,4BAAqBnX,QAArB,wBACKuhB,sBADL,iBACkCD,iBADlC,CADF;AAID,WAPH,WAQS,UAACnjB,KAAD,EAAW;AAChBgY,YAAAA,OAAO,CAAC;AAAEV,cAAAA,OAAO,EAAE,wCAAX;AAAqDtX,cAAAA,KAAK,EAALA;AAArD,aAAD,CAAP;AACD,WAVH;AAWD;AACF;AACF,KAzDH,WA0DS,UAACA,KAAD,EAAW;AAChBgY,MAAAA,OAAO,CAAC;AACNV,QAAAA,OAAO,0BAAmBzV,QAAnB,4BAA6CshB,iBAA7C,CADD;AAENnjB,QAAAA,KAAK,EAALA;AAFM,OAAD,CAAP;AAID,KA/DH;AAgED,GAhFD,CAgFE,OAAOA,KAAP,EAAc;AACdgY,IAAAA,OAAO,CAAC;AACNV,MAAAA,OAAO,2BAAoBzV,QAApB,mBAAqCuhB,sBAArC,4BAA6ED,iBAA7E,CADD;AAENnjB,MAAAA,KAAK,EAALA;AAFM,KAAD,CAAP;AAID;AACF,CA5GM;;;;"}
1
+ {"version":3,"file":"index.es.js","sources":["../src/hooks/useApi.js","../src/hooks/useSearch.js","../src/hooks/useUpdateEffect.js","../src/hooks/useAutocomplete.js","../src/hooks/useSelected.js","../src/hooks/useTab.js","../src/hooks/useInterval.js","../src/hooks/useThumbnailScrub.js","../src/hooks/useJobSearch.js","../src/hooks/useLocalStorage.js","../src/utils.js","../src/hooks/useUploadFiles.js","../src/hooks/useQueryInitialState.js","../src/hooks/useUpdateQueryState.js","../src/hooks/useEntityAccess.js","../src/hooks/useAddMetadataFieldAttributes.js","../src/hooks/useSavedSearch.js","../src/hooks/useSearchItem.js","../src/hooks/useMouseDownPosition.js","../src/hooks/useGetCollection.js","../src/hooks/useGetCollectionItem.js","../src/hooks/useGetEntity.js","../src/hooks/useUser.js","../src/hooks/useSearchUser.js","../src/hooks/useListGroup.js","../src/hooks/useListUser.js","../src/hooks/useSearchGroup.js","../src/hooks/useGroup.js","../src/hooks/useGetItem.js","../src/hooks/useCollectionAutoPlay.js","../src/hooks/useHoverScrub.js","../src/hooks/useDocSearchAutocomplete.js","../src/hooks/useGetFieldMetadataDataset.js","../src/hooks/useGetSavedSearchFolders.js","../src/hooks/useRepresentativeItems.js","../src/hooks/useCsvDownload.js","../src/wrappers/MetadataType.js","../src/wrappers/SearchCollection.js","../src/wrappers/SearchItem.js","../src/wrappers/SearchItemCollection.js","../src/wrappers/GetItem.js","../src/wrappers/GetCollection.js","../src/wrappers/GetJobs.js","../src/wrappers/ListEntityAccess.js","../src/wrappers/VidispineApi.js","../src/wrappers/Auth.js","../src/wrappers/ErrorBoundary.js","../src/wrappers/GetFieldGroup.js","../src/context/RolesContext.js","../src/wrappers/HasRole.js","../src/wrappers/ComposeProviders.js","../src/hoc/withErrorBoundary.js","../src/hoc/compose.js","../src/context/BinContext.js","../src/context/SettingsContext.js","../src/context/AuthContext.js","../src/DropArea.js","../src/moveEntity.js"],"sourcesContent":["import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nconst setDefaultState = (\n {\n hasLoaded = false,\n isLoading = true,\n isError = false,\n response = undefined,\n data = undefined,\n } = {},\n responseRef,\n) => ({\n isLoading,\n hasLoaded,\n isError,\n response,\n data: responseRef && responseRef.current ? responseRef.current : data,\n});\n\nconst apiReducer = (state, action) => {\n switch (action.type) {\n case 'START': {\n return {\n ...state,\n isLoading: true,\n isError: false,\n };\n }\n case 'SUCCESS': {\n const { responseType } = action.response;\n const newState = {\n isLoading: false,\n isError: false,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n if (responseType) newState[responseType] = action.response[responseType];\n return newState;\n }\n case 'ERROR': {\n return {\n isLoading: false,\n isError: true,\n hasLoaded: true,\n response: action.response,\n data: action.response.data,\n };\n }\n case 'RESET': {\n return {\n ...action.initialState,\n };\n }\n default: {\n return state;\n }\n }\n};\n\nconst canceltoken = api.CancelToken.source();\n\nexport default function useApi(apiHandler, initialState, responseRef) {\n const initialDefaultState = setDefaultState(initialState, responseRef);\n const initialStateRef = React.useRef(initialDefaultState);\n const [state, dispatch] = React.useReducer(apiReducer, initialDefaultState);\n const request = React.useCallback(\n (props) => {\n dispatch({ type: 'START' });\n return new Promise((resolve, reject) => {\n apiHandler({ canceltoken, ...props })\n .then((response) => {\n resolve(response);\n dispatch({ type: 'SUCCESS', response });\n // eslint-disable-next-line no-param-reassign\n if (responseRef) responseRef.current = response.data;\n })\n .catch((response) => {\n reject(response);\n dispatch({ type: 'ERROR', response });\n });\n });\n },\n [apiHandler, responseRef],\n );\n const reset = React.useCallback(\n () => dispatch({ type: 'RESET', initialState: initialStateRef.current }),\n [],\n );\n React.useEffect(() => canceltoken.cancel, []);\n return {\n request,\n reset,\n ...state,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_SEARCHTEXT = 'CHANGE_SEARCHTEXT';\nconst CHANGE_SEARCHFIELD = 'CHANGE_SEARCHFIELD';\nconst CHANGE_SEARCHFIELDFACET = 'CHANGE_SEARCHFIELDFACET';\nconst CHANGE_SEARCHFILTER = 'CHANGE_SEARCHFILTER';\nconst CHANGE_SEARCHFILTERFACET = 'CHANGE_SEARCHFILTERFACET';\nconst CHANGE_PARENT_COLLECTION = 'CHANGE_PARENT_COLLECTION';\nconst CHANGE_FACET = 'CHANGE_FACET';\nconst CHANGE_ITEMSEARCHDOCUMENT = 'CHANGE_ITEMSEARCHDOCUMENT';\nconst CHANGE_QUERYPARAMS = 'CHANGE_QUERYPARAMS';\nconst CHANGE_MATRIXPARAMS = 'CHANGE_MATRIXPARAMS';\nconst CHANGE_SUGGESTION = 'CHANGE_SUGGESTION';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_SEARCHTEXT,\n CHANGE_SEARCHFIELD,\n CHANGE_SEARCHFIELDFACET,\n CHANGE_SEARCHFILTER,\n CHANGE_SEARCHFILTERFACET,\n CHANGE_PARENT_COLLECTION,\n CHANGE_FACET,\n CHANGE_ITEMSEARCHDOCUMENT,\n CHANGE_QUERYPARAMS,\n CHANGE_MATRIXPARAMS,\n CHANGE_SUGGESTION,\n};\n\nconst setInitialDefaultState = ({\n queryParams = {},\n matrixParams = {},\n itemSearchDocument = {},\n rowsPerPage = 10,\n page = 0,\n ...state\n} = {}) => ({\n ...state,\n queryParams: {\n content: 'metadata',\n interval: 'generic',\n ...queryParams,\n },\n matrixParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...matrixParams,\n },\n itemSearchDocument: {\n intervals: 'generic',\n filter: [],\n ...itemSearchDocument,\n },\n rowsPerPage,\n page,\n});\n\nconst searchReducer = (state, action) => {\n switch (action.type) {\n case ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT: {\n return {\n ...state,\n itemSearchDocument: action.itemSearchDocument,\n };\n }\n case ACTION_TYPE.CHANGE_QUERYPARAMS: {\n return {\n ...state,\n queryParams: action.queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_MATRIXPARAMS: {\n return {\n ...state,\n matrixParams: action.matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_PAGE: {\n return {\n ...state,\n page: action.page,\n matrixParams: {\n ...state.matrixParams,\n first: action.page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n return {\n ...state,\n rowsPerPage: action.rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: action.rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n sort: action.value,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n sort: action.field\n ? [\n {\n field: action.field,\n order: action.order || 'descending',\n },\n ]\n : [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHTEXT: {\n return {\n ...state,\n page: 0,\n searchText: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n text: [{ value: `${action.value}` }],\n }\n : {\n ...state.itemSearchDocument,\n text: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELD: {\n return {\n ...state,\n page: 0,\n field: action.field,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFIELDFACET: {\n return {\n ...state,\n page: 0,\n field: action.field,\n facet: action.facet,\n itemSearchDocument: action.field\n ? {\n ...state.itemSearchDocument,\n field: action.field,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n field: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTER: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SEARCHFILTERFACET: {\n return {\n ...state,\n page: 0,\n filter: action.filter,\n itemSearchDocument: action.filter\n ? {\n ...state.itemSearchDocument,\n filter: action.filter,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n filter: [],\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_FACET: {\n return {\n ...state,\n page: 0,\n facet: action.facet,\n itemSearchDocument: action.facet\n ? {\n ...state.itemSearchDocument,\n facet: action.facet,\n }\n : {\n ...state.itemSearchDocument,\n facet: [],\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_PARENT_COLLECTION: {\n return {\n ...state,\n page: 0,\n parentCollection: action.value,\n itemSearchDocument: action.value\n ? {\n ...state.itemSearchDocument,\n operator: {\n field: [\n { name: '__parent_collection', value: [{ value: `${action.value}` }] },\n { name: '__collection', value: [{ value: `${action.value}` }] },\n ],\n operation: 'OR',\n },\n }\n : {\n ...state.itemSearchDocument,\n operator: undefined,\n },\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SUGGESTION: {\n return {\n ...state,\n itemSearchDocument: {\n ...state.itemSearchDocument,\n suggestion: action.suggestion,\n },\n };\n }\n default: {\n return state;\n }\n }\n};\n\nexport default function useSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n\n const onChangeRowsPerPage = ({ target: { value: newRows } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage: newRows,\n });\n\n const onChangePage = ({ page: newPage }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page: newPage,\n });\n\n const onChangeSort = (event, field, order) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field,\n order,\n });\n\n const setSearchText = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHTEXT,\n value,\n }),\n [],\n );\n\n const setItemSearchDocument = React.useCallback(\n (itemSearchDocument) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMSEARCHDOCUMENT,\n itemSearchDocument,\n }),\n [],\n );\n\n const setQueryParams = React.useCallback(\n (queryParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMQUERYPARAMS,\n queryParams,\n }),\n [],\n );\n\n const setMatrixParams = React.useCallback(\n (matrixParams) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ITEMMATRIXPARAMS,\n matrixParams,\n }),\n [],\n );\n\n const setSearchField = React.useCallback(\n (field) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFIELD,\n field,\n }),\n [],\n );\n\n const setSearchFieldFacet = React.useCallback((field) => {\n const facet = field.map(({ name }) => ({ field: name, count: true }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFIELDFACET, field, facet });\n }, []);\n\n const setSearchFilter = React.useCallback(\n (filter) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_SEARCHFILTER,\n filter,\n }),\n [],\n );\n\n const setSearchFilterFacet = React.useCallback(\n (filter) => {\n const fieldList = filter.reduce((a, { field = [] }) => a.concat(field), []);\n const facet = fieldList.map(({ name }) => ({\n name,\n field: name,\n count: true,\n exclude: [name],\n }));\n dispatch({ type: ACTION_TYPE.CHANGE_SEARCHFILTERFACET, filter, facet });\n },\n [dispatch],\n );\n\n const setFacet = React.useCallback(\n (facet) => {\n dispatch({ type: ACTION_TYPE.CHANGE_FACET, facet });\n },\n [dispatch],\n );\n\n const setParentCollection = React.useCallback(\n (value) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PARENT_COLLECTION,\n value,\n }),\n [],\n );\n\n const setSuggestion = React.useCallback((suggestion) => {\n dispatch({ type: ACTION_TYPE.CHANGE_SUGGESTION, suggestion });\n }, []);\n\n return {\n state,\n onChangeRowsPerPage,\n onChangePage,\n onChangeSort,\n setSearchText,\n setSearchField,\n setSearchFieldFacet,\n setSearchFilter,\n setSearchFilterFacet,\n setFacet,\n setItemSearchDocument,\n setQueryParams,\n setMatrixParams,\n setParentCollection,\n setSuggestion,\n };\n}\n","import React from 'react';\n\nexport default function useUpdateEffect(fn, inputs) {\n const hasMountedRef = React.useRef(false);\n React.useEffect(() => {\n if (hasMountedRef.current) {\n fn();\n } else {\n hasMountedRef.current = true;\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, inputs);\n}\n","import React from 'react';\nimport { search as SearchApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\nimport useUpdateEffect from './useUpdateEffect';\n\nconst setInitialDefaultState = ({\n field = undefined,\n text = '',\n maximumSuggestions = 10,\n} = {}) => ({\n field,\n text,\n maximumSuggestions,\n});\n\nexport default function useAutocomplete(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [autocompleteDoc, setAutocompleteDoc] = React.useState(initialDefaultState);\n\n const setAutocompleteField = React.useCallback((field, text = '') => {\n setAutocompleteDoc((state) => ({ ...state, field, text }));\n }, []);\n\n const setAutocompleteText = React.useCallback((text) => {\n setAutocompleteDoc((state) => ({ ...state, text }));\n }, []);\n\n const setAutocompleteMaxSuggestions = React.useCallback((maximumSuggestions) => {\n setAutocompleteDoc((state) => ({ ...state, maximumSuggestions }));\n }, []);\n\n const { request: searchAutoComplete, data: { suggestion: suggestions = [] } = {} } = useApi(\n SearchApi.searchAutoComplete,\n );\n\n useUpdateEffect(() => {\n searchAutoComplete({ autocompleteRequestDocument: autocompleteDoc });\n }, [autocompleteDoc]);\n\n return {\n suggestions,\n setAutocompleteField,\n setAutocompleteText,\n setAutocompleteMaxSuggestions,\n };\n}\n","import React from 'react';\n\nexport default (propKey = 'id', initialState = []) => {\n const [selected, setSelected] = React.useState(initialState);\n const onSelect = (event, checked, props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n if (currentIndex === -1 && checked === true) {\n if (checked === true) {\n setSelected([...selected, props]);\n }\n } else if (currentIndex > -1 && checked === false) {\n const newSelected = [...selected];\n newSelected.splice(currentIndex, 1);\n setSelected(newSelected);\n }\n };\n const isSelected = (props) => {\n const propValue = props[propKey];\n const currentIndex = selected.findIndex((thisSelected) => thisSelected[propKey] === propValue);\n return currentIndex > -1;\n };\n const onClear = () => setSelected([]);\n return {\n selected,\n onSelect,\n onClear,\n isSelected,\n };\n};\n","import React from 'react';\n\nexport default (initialTab) => {\n const [activeTab, setActiveTab] = React.useState(initialTab);\n const changeTab = (_, newValue) => setActiveTab(newValue);\n return { activeTab, changeTab };\n};\n","import React from 'react';\n\nexport default function useInterval(callback, delay) {\n const savedCallback = React.useRef();\n\n React.useEffect(() => {\n savedCallback.current = callback;\n }, [callback]);\n\n React.useEffect(() => {\n const tick = () => savedCallback.current();\n const id = setInterval(tick, delay);\n return () => clearInterval(id);\n }, [delay]);\n}\n","import React from 'react';\n\nexport default function useThumbnailScrub(srcList = []) {\n const savedInterval = React.useRef();\n const initialImgIdx = React.useMemo(() => Math.floor(srcList.length / 2), [srcList]);\n const [imgIdx, setImgIdx] = React.useState();\n const imgIdxRef = React.useRef(imgIdx);\n React.useEffect(() => () => savedInterval.current && clearInterval(savedInterval.current), []);\n if (srcList.length === 0) return { width: 0 };\n\n imgIdxRef.current = imgIdx;\n const onMouseEnter = () => {\n const delay = 500;\n const tick = () => {\n if (imgIdxRef.current === undefined) {\n setImgIdx(0);\n } else if (imgIdxRef.current === srcList.length - 1) {\n clearInterval(savedInterval.current);\n } else {\n setImgIdx(imgIdxRef.current + 1);\n }\n };\n savedInterval.current = setInterval(tick, delay);\n };\n const onMouseLeave = () => {\n setImgIdx();\n clearInterval(savedInterval.current);\n };\n const imageSrc = srcList[imgIdx === undefined ? initialImgIdx : imgIdx];\n const width = imgIdx === undefined ? 0 : `${Math.floor((imgIdx / (srcList.length - 1)) * 100)}%`;\n return {\n imageSrc,\n onMouseEnter,\n onMouseLeave,\n width,\n };\n}\n","import React from 'react';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_TYPE = 'CHANGE_TYPE';\nconst CHANGE_STATE = 'CHANGE_STATE';\nconst CHANGE_PRIORITY = 'CHANGE_PRIORITY';\nconst CHANGE_STARTTIME = 'CHANGE_STARTTIME';\nconst CHANGE_FINISHTIME = 'CHANGE_FINISHTIME';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_TYPE,\n CHANGE_STATE,\n CHANGE_PRIORITY,\n CHANGE_STARTTIME,\n CHANGE_FINISHTIME,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, matrixParams = {} } = {}) => ({\n queryParams,\n matrixParams: {\n first: 1,\n number: 10,\n ...matrixParams,\n },\n rowsPerPage: 10,\n page: 0,\n jobMetadata: [],\n});\n\nconst searchReducer = (state, action) => {\n const { type, ...rest } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page = 0 } = action;\n const { rowsPerPage = 10 } = state;\n return {\n ...state,\n page,\n matrixParams: {\n ...state.matrixParams,\n first: page * rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.CHANGE_SORT: {\n const { field, order = 'desc' } = action;\n return {\n ...state,\n page: 0,\n matrixParams: {\n ...state.matrixParams,\n first: 1,\n sort: `${field} ${order}`,\n },\n };\n }\n case ACTION_TYPE.CHANGE_TYPE:\n case ACTION_TYPE.CHANGE_STATE:\n case ACTION_TYPE.CHANGE_PRIORITY: {\n const { field, value = [] } = rest;\n let matrixParams;\n if (!value) {\n const { [field]: deleteField, ...newMatrixParams } = state.matrixParams;\n matrixParams = { ...newMatrixParams, first: 1 };\n } else {\n matrixParams = {\n ...state.matrixParams,\n first: 1,\n [field]: Array.isArray(value) ? value.join(',') : value,\n };\n }\n return {\n ...state,\n page: 0,\n matrixParams,\n };\n }\n case ACTION_TYPE.CHANGE_STARTTIME:\n case ACTION_TYPE.CHANGE_FINISHTIME: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n };\n }\n case ACTION_TYPE.CHANGE_JOBMETADATA: {\n const { field, value = [] } = rest;\n let queryParams;\n if (!value.length) {\n const { [field]: deleteField, ...newQueryParams } = state.queryParams;\n queryParams = { ...newQueryParams, first: 1 };\n } else {\n queryParams = {\n ...state.queryParams,\n first: 1,\n [field]: value,\n };\n }\n return {\n ...state,\n page: 0,\n queryParams,\n jobMetadata: value,\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useJobSearch(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeType = ({ field = [] }) => {\n const [{ name = 'type', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_TYPE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeState = ({ field = [] }) => {\n const [{ name = 'state', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STATE,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangePriority = ({ field = [] }) => {\n const [{ name = 'priority', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_PRIORITY,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeStarttime = ({ field = [] }) => {\n const [{ name = 'starttime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_STARTTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeFinishtime = ({ field = [] }) => {\n const [{ name = 'finishtime-from', value = [] }] = field;\n dispatch({\n type: ACTION_TYPE.CHANGE_FINISHTIME,\n field: name,\n value: value.length ? value[0].value : null,\n });\n };\n const onChangeJobmetadata = (value) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_JOBMETADATA,\n field: 'jobmetadata',\n value,\n });\n };\n return {\n state,\n onChangePage,\n onChangeSort,\n onChangeType,\n onChangeState,\n onChangePriority,\n onChangeStarttime,\n onChangeFinishtime,\n onChangeRowsPerPage,\n onChangeJobmetadata,\n };\n}\n","import React from 'react';\n\nconst useLocalStorage = (localStorageKey, defaultValue) => {\n const [value, setValue] = React.useState(\n JSON.parse(window.localStorage.getItem(localStorageKey) || JSON.stringify(defaultValue)),\n );\n\n React.useEffect(() => {\n window.localStorage.setItem(localStorageKey, JSON.stringify(value));\n }, [localStorageKey, value]);\n\n const getValue = () => JSON.parse(window.localStorage.getItem(localStorageKey));\n\n return [value, setValue, getValue];\n};\n\nexport default useLocalStorage;\n","import { compressToEncodedURIComponent, decompressFromEncodedURIComponent } from 'lz-string';\n\n// eslint-disable-next-line import/prefer-default-export\nexport function uuidv4() {\n return ([1e7] + -1e3 + -4e3 + -8e3 + -1e11).replace(/[018]/g, (c) =>\n // eslint-disable-next-line\n (c ^ (crypto.getRandomValues(new Uint8Array(1))[0] & (15 >> (c / 4)))).toString(16));\n}\n\nexport function b64EncodeUnicode(str) {\n return compressToEncodedURIComponent(str);\n}\n\nexport function b64DecodeUnicode(str) {\n // fallback for old base64 encoded links\n return str.slice(-1) === '='\n ? decodeURIComponent(\n atob(str)\n .split('')\n .map((c) => `%${`00${c.charCodeAt(0).toString(16)}`.slice(-2)}`)\n .join(''),\n )\n : decompressFromEncodedURIComponent(str);\n}\n","import React from 'react';\nimport {\n vsimport as ImportApi,\n ChunkedUpload,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport { uuidv4 } from '../utils';\n\nconst DEFAULT_AUDIO_SHAPETAGS = ['__mp3_160k'];\nconst DEFAULT_VIDEO_SHAPETAGS = ['__mp4'];\nconst DEFAULT_IMAGE_SHAPETAGS = ['__png'];\nconst AUDIO_MIMETYPE_PREFIX = 'audio';\nconst VIDEO_MIMETYPE_PREFIX = 'video';\nconst IMAGE_MIMETYPE_PREFIX = 'image';\nconst ADDITIONAL_VIDEO_MIMETYPES = ['application/mxf'];\nconst ADDITIONAL_IMAGE_MIMETYPES = [];\nconst ADDITIONAL_AUDIO_MIMETYPES = [];\n\nconst getDefaultShapeTags = (file) => {\n if (!file || !file.type) return [];\n const mimeType = file.type.toLowerCase();\n if (mimeType.startsWith(AUDIO_MIMETYPE_PREFIX) || ADDITIONAL_AUDIO_MIMETYPES.includes(mimeType))\n return DEFAULT_AUDIO_SHAPETAGS;\n if (mimeType.startsWith(VIDEO_MIMETYPE_PREFIX) || ADDITIONAL_VIDEO_MIMETYPES.includes(mimeType))\n return DEFAULT_VIDEO_SHAPETAGS;\n if (mimeType.startsWith(IMAGE_MIMETYPE_PREFIX) || ADDITIONAL_IMAGE_MIMETYPES.includes(mimeType))\n return DEFAULT_IMAGE_SHAPETAGS;\n return [];\n};\n\nconst chunkedUpload = (file, props = {}) =>\n new Promise((resolve, reject) => {\n const uploadInstance = new ChunkedUpload(file, {\n onFail: (error) => reject(error),\n onComplete: (resp) => resolve(resp),\n ...props,\n });\n uploadInstance.upload();\n });\n\nconst onUploadFile = ({\n file,\n collectionId,\n onProgress,\n metadata: propsMetadata = {},\n placeholderParams = {},\n importParams = {},\n chunkedUploadProps = {},\n generateTransferId = uuidv4,\n getShapeTags = getDefaultShapeTags,\n}) =>\n new Promise((resolve, reject) => {\n try {\n let itemId;\n onProgress({});\n const shapeTags = getShapeTags(file);\n const filename = file.name;\n const mimeType = file.type;\n const [mediaType] = mimeType.split('/');\n const metadata = {\n originalFilename: filename,\n mimeType,\n mediaType,\n ...propsMetadata,\n };\n const metadataDocument = createMetadataType(metadata);\n ImportApi.createImportPlaceholder({\n metadataDocument,\n queryParams: {\n container: 1,\n ...placeholderParams,\n },\n })\n .then(({ data: itemDocument }) => {\n itemId = itemDocument.id;\n if (!collectionId) return Promise.resolve();\n const collectionIds = Array.isArray(collectionId) ? collectionId : [collectionId];\n return Promise.all(\n collectionIds.map((id) =>\n CollectionApi.addCollectionEntity({\n collectionId: id,\n entityId: itemId,\n }),\n ),\n );\n })\n .then(() => {\n const transferId = generateTransferId();\n const queryParams = {\n filename,\n transferId,\n tag: shapeTags,\n ...importParams,\n };\n return chunkedUpload(file, {\n api: {\n method: ImportApi.createImportComponentRaw,\n props: {\n itemId,\n component: 'container',\n queryParams,\n },\n },\n onProgress,\n ...chunkedUploadProps,\n });\n })\n .then((response) => {\n resolve({ ...response, itemId, collectionId });\n })\n .catch((error) => reject(error));\n } catch (err) {\n /* eslint-disable-next-line no-console */\n console.error(err);\n reject(err);\n }\n });\n\nfunction useUploadFiles({\n onUploadFile: handleUploadFile = onUploadFile,\n initialMetadata = {},\n ...props\n}) {\n const [files, setFiles] = React.useState([]);\n React.useEffect(\n () => () => {\n // Make sure to revoke the data uris to avoid memory leaks\n files.forEach((file) => URL.revokeObjectURL(file.preview));\n },\n [files],\n );\n const onAddFiles = React.useCallback(\n (newFiles = []) => {\n const newFilesObj = newFiles.map((file) => ({\n file,\n metadata: { title: file.name, ...initialMetadata },\n }));\n setFiles((currentFiles) => newFilesObj.concat(currentFiles));\n },\n [initialMetadata],\n );\n const onChangeFile = React.useCallback(\n (idx, changeFile = {}) => {\n setFiles((currentFilesList) => {\n const currentFile = currentFilesList[idx];\n const { metadata: newMetadata, progress: newProgress } = changeFile;\n const { metadata: currentMetadata = {}, progress: currentProgress = {} } = currentFile;\n const newFilesList = [...currentFilesList];\n const newFile = { ...currentFile };\n if (newMetadata) newFile.metadata = { ...currentMetadata, ...newMetadata };\n if (newProgress) newFile.progress = { ...currentProgress, ...newProgress };\n newFilesList[idx] = newFile;\n return newFilesList;\n });\n },\n [setFiles],\n );\n const onChangeProgress = React.useCallback(\n (idx) => (newProgress = {}) => {\n onChangeFile(idx, { progress: newProgress });\n },\n [onChangeFile],\n );\n const onChangeMetadata = React.useCallback(\n (idx) => (newMetadata = {}) => {\n onChangeFile(idx, { metadata: newMetadata });\n },\n [onChangeFile],\n );\n const onUpload = React.useCallback(\n (uploadProps) =>\n files.reduce(\n (previousPromise, thisFile, idx) =>\n previousPromise.then((res) => {\n if (thisFile.progress) {\n return previousPromise;\n }\n return handleUploadFile({\n file: thisFile.file,\n onProgress: onChangeProgress(idx),\n metadata: thisFile.metadata,\n ...uploadProps,\n ...props,\n }).then((currentResult) => [...res, currentResult]);\n }),\n Promise.resolve([]),\n ),\n [files, handleUploadFile, onChangeProgress, props],\n );\n\n const onRemoveFile = React.useCallback(\n (idx) => () => {\n setFiles([...files].filter((_, i) => i !== idx));\n },\n [setFiles, files],\n );\n\n const onRemoveFiles = React.useCallback(\n (idxs) => () => {\n setFiles([...files].filter((_, i) => !idxs.includes(i)));\n },\n [setFiles, files],\n );\n\n return {\n onAddFiles,\n onChangeFile,\n onChangeMetadata,\n onUpload,\n onRemoveFile,\n onRemoveFiles,\n files,\n setFiles,\n };\n}\n\nexport default useUploadFiles;\n","import React from 'react';\nimport { b64DecodeUnicode } from '../utils';\n\nexport default function useQueryInitialState({\n history,\n queryName = 'q',\n defaultState = undefined,\n}) {\n const defaultStateRef = React.useRef(defaultState);\n const queryState = React.useMemo(() => {\n const searchParams = new URLSearchParams(history.location.search);\n const encodedQuery = searchParams.get(queryName);\n if (!encodedQuery) {\n return defaultStateRef.current;\n }\n try {\n const decodedQuery = b64DecodeUnicode(encodedQuery);\n return JSON.parse(decodedQuery);\n } catch (error) {\n // TODO: Show error snackbar: \"Could not parse search query\"\n // eslint-disable-next-line no-console\n console.error(error);\n history.replace({ pathName: history.location.pathName, search: '' });\n }\n return undefined;\n }, [defaultStateRef, history, queryName]);\n\n return { queryInitialState: queryState };\n}\n","import React from 'react';\nimport { b64EncodeUnicode } from '../utils';\nimport useUpdateEffect from './useUpdateEffect';\n\nexport default function useUpdateQueryState({ history, state, queryName = 'q' }) {\n const onSearchStateChange = React.useCallback(() => {\n const encodedQuery = b64EncodeUnicode(JSON.stringify(state));\n history.replace({\n pathName: history.location.pathName,\n search: `?${queryName}=${encodedQuery}`,\n });\n }, [history, queryName, state]);\n\n // Don't need to set query on mount\n useUpdateEffect(() => {\n onSearchStateChange(state);\n }, [onSearchStateChange, state]);\n}\n","import { useCallback } from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst useEntityAccess = ({ entityId, entityType }) => {\n const { request: listEntityAccess, data: accessControlList = {}, isLoading } = useApi(\n AccessApi.listEntityAccess,\n );\n const onList = useCallback(\n (props = {}) =>\n listEntityAccess({\n entityId,\n entityType,\n ...props,\n }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [entityId, entityType],\n );\n const onRemove = useCallback(\n ({ accessId, ...props }) =>\n AccessApi.removeEntityAccess({\n accessId,\n entityId,\n entityType,\n ...props,\n }),\n [entityId, entityType],\n );\n const onAdd = useCallback(\n ({ accessControlDocument, ...props }) =>\n AccessApi.createEntityAccess({\n entityType,\n entityId,\n accessControlDocument,\n ...props,\n }),\n [entityId, entityType],\n );\n return {\n accessControlList,\n isLoading,\n onList,\n onRemove,\n onAdd,\n };\n};\n\nexport default useEntityAccess;\n","import React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { metadatafield as MetadataFieldApi, fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nconst getValueFromData = ({ data = [] } = {}, key) => {\n if (!key) return undefined;\n const { value } = data.find((d) => d.key === key) || {};\n return value;\n};\n\nconst defaultGetDataAttributes = (fieldOrGroup, keys) => {\n return Object.assign(\n {},\n ...keys.map((key) => {\n return {\n [key]: getValueFromData(fieldOrGroup, key),\n };\n }),\n );\n};\n\nconst getOptions = ({ values: { field } = {} } = {}) => {\n return field ? field.map((f) => ({ value: f.value, label: f.key || f.value })) : undefined;\n};\n\nconst convertValuesXmlToJson = (xmlString) => {\n const doc = new DOMParser().parseFromString(xmlString, 'application/xml');\n const fields = doc.getElementsByTagName('field');\n if (!fields.length) {\n return undefined;\n }\n const json = { field: [] };\n for (let i = 0; i < fields.length; i += 1) {\n const [keyNode, valueNode] = fields[i].childNodes;\n json.field.push({\n [keyNode.nodeName]: keyNode.firstChild.nodeValue,\n [valueNode.nodeName]: valueNode.firstChild.nodeValue,\n });\n }\n return json;\n};\n\nconst useAddMetadataFieldAttributes = ({\n fields,\n groups,\n getDataAttributes = defaultGetDataAttributes,\n fieldDataToInclude = 'label,displayType,required',\n groupDataToInclude = 'label,order',\n fieldQueryParams = {},\n groupQueryParams = {},\n}) => {\n const [isLoading, setIsLoading] = React.useState(false);\n const [fieldsWithAttributes, setFieldsWithAttributes] = React.useState(fields);\n const [groupsWithAttributes, setGroupsWithAttributes] = React.useState(groups);\n\n useDeepCompareEffect(() => {\n const addFieldAttributes = (fieldsArray = [], fieldsAttributes = {}) =>\n fieldsArray.map(({ name, ...overrides }) => {\n const fieldAttributes = fieldsAttributes[name] || {};\n const { label, ...dataAttributes } = getDataAttributes(\n fieldAttributes,\n fieldDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n type: fieldAttributes.type,\n constraint: fieldAttributes.constraint,\n options: getOptions(fieldAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n\n const addGroupAttributes = (groupsArray = [], groupsAttributes = {}, fieldsAttributes = {}) =>\n groupsArray.map(({ name, field, group, ...overrides }) => {\n const groupAttributes = groupsAttributes[name] || {};\n const childFields = field || (groupAttributes && groupAttributes.field);\n const childGroups = group || (groupAttributes && groupAttributes.group);\n const { label, ...dataAttributes } = getDataAttributes(\n groupAttributes,\n groupDataToInclude.split(','),\n );\n return {\n name,\n label: label || name,\n order: getValueFromData(groupAttributes, 'order'),\n fields: addFieldAttributes(childFields, fieldsAttributes),\n groups: addGroupAttributes(childGroups, groupsAttributes, fieldsAttributes),\n ...dataAttributes,\n ...overrides,\n };\n });\n let didCancel = false;\n async function fetchAttributesAsync() {\n setIsLoading(true);\n const fieldsAttributes = {};\n const groupsAttributes = {};\n let fieldPromises = [];\n if (fields) {\n const queryParams = { ...fieldQueryParams, data: fieldDataToInclude };\n fieldPromises = fields.map(async ({ name: fieldName }) => {\n try {\n const { data } = await MetadataFieldApi.getMetadataField({\n fieldName,\n queryParams,\n });\n fieldsAttributes[fieldName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${fieldName}`);\n }\n });\n }\n let groupPromises = [];\n if (groups) {\n const groupsToFetch = [...groups];\n const queryParams = { ...groupQueryParams, data: groupDataToInclude };\n groupPromises = groupsToFetch.map(async ({ name: groupName }) => {\n try {\n const { data } = await FieldGroupApi.getFieldGroup({\n groupName,\n queryParams,\n });\n const { field = [], group = [] } = data;\n field.forEach((f) => {\n const dataValues = f.data && f.data.find((e) => e.key === '__values');\n if (dataValues) {\n const jsonValues = convertValuesXmlToJson(dataValues.value);\n fieldsAttributes[f.name] = { ...f, values: jsonValues };\n }\n });\n group.forEach((g) => {\n groupsToFetch.push(g);\n });\n groupsAttributes[groupName] = data;\n } catch (error) {\n // eslint-disable-next-line no-console\n console.warn(`Could not retrieve attributes for ${groupName}`);\n }\n });\n }\n await Promise.all([...fieldPromises, ...groupPromises]);\n if (!didCancel) {\n if (Object.values(fieldsAttributes).some((v) => v)) {\n setFieldsWithAttributes(() => addFieldAttributes(fields, fieldsAttributes));\n }\n if (Object.values(groupsAttributes).some((v) => v)) {\n setGroupsWithAttributes(() => {\n const newGroupsWithAttributes = addGroupAttributes(\n groups,\n groupsAttributes,\n fieldsAttributes,\n );\n newGroupsWithAttributes.forEach((group) => {\n const { order } = group;\n if (order) {\n group.fields.sort((a, b) => order.indexOf(a.name) - order.indexOf(b.name));\n }\n });\n return newGroupsWithAttributes;\n });\n }\n setIsLoading(false);\n }\n }\n fetchAttributesAsync();\n return () => {\n didCancel = true;\n };\n }, [fields, groups, fieldDataToInclude, groupDataToInclude, fieldQueryParams, groupQueryParams]);\n\n return { fieldsWithAttributes, groupsWithAttributes, isLoading };\n};\n\nexport default useAddMetadataFieldAttributes;\n","import React from 'react';\nimport {\n library as LibraryApi,\n item as ItemApi,\n collection as CollectionApi,\n} from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\nimport useSearch from './useSearch';\n\n// Has to be set so that the library isn't auto-deleted\nconst UPDATE_FREQUENCY = 1000;\n\n// Prevents access controls set on the library (i.e. saved search) from cascading down to items\nconst UPDATE_MODE = 'TRANSIENT';\n\nfunction saveSearch({ metadata, markerField, markerValue, itemSearchDocument }) {\n return ItemApi.searchItem({\n queryParams: {\n result: 'library',\n updateMode: UPDATE_MODE,\n updateFrequency: UPDATE_FREQUENCY,\n },\n itemSearchDocument,\n }).then(({ data: { library } }) =>\n CollectionApi.createCollection({\n collectionDocument: {\n metadata: markerField\n ? createMetadataType({\n [markerField]: markerValue || library,\n ...metadata,\n })\n : metadata,\n content: [\n {\n id: library,\n type: 'library',\n },\n ],\n },\n }),\n );\n}\n\nconst getLibraryFromCollection = ({ collectionId }) =>\n new Promise((resolve, reject) =>\n CollectionApi.getCollection({ collectionId, queryParams: { children: 'library' } }).then(\n ({ data: collectionType }) => {\n const { content = [] } = collectionType;\n const [libraryType] = content;\n if (!libraryType) reject(new Error('No Libraries'));\n resolve(libraryType);\n },\n ),\n );\n\nconst deleteSearch = ({ collectionId }) =>\n getLibraryFromCollection({ collectionId }).then(({ id: libraryId }) =>\n Promise.all([\n LibraryApi.removeLibrary({ libraryId }),\n CollectionApi.removeCollection({ collectionId }),\n ]),\n );\n\nfunction getLibrarySettings({ libraryId }) {\n return new Promise((resolve) =>\n LibraryApi.getLibrarySettings({ libraryId }).then(({ data: { query } }) => {\n resolve(query);\n }),\n );\n}\n\nconst getSavedSearchSettings = ({ collectionId }) =>\n new Promise((resolve) =>\n getLibraryFromCollection({ collectionId })\n .then(({ id: libraryId }) => getLibrarySettings({ libraryId }))\n .then(resolve),\n );\n\nexport default function useSavedSearch({\n markerField,\n markerValue,\n initialSearchState,\n onSaveSearch = saveSearch,\n onDeleteSearch = deleteSearch,\n onUpdateSearchMetadata = CollectionApi.updateCollectionMetadata,\n onGetSavedSearchSettings = getSavedSearchSettings,\n}) {\n const saveSearchWithMarker = React.useCallback(\n ({ metadata, itemSearchDocument }) =>\n onSaveSearch({\n metadata,\n markerField,\n markerValue,\n itemSearchDocument,\n }),\n [markerField, markerValue, onSaveSearch],\n );\n\n const mergeMarkerField = (itemSearchDocument = {}) => ({\n ...itemSearchDocument,\n operator: {\n field: [\n {\n name: markerField,\n value: [{ value: markerValue || '*' }],\n },\n ],\n operator: itemSearchDocument.operator ? [itemSearchDocument.operator] : [],\n operation: 'AND',\n },\n });\n\n const searchProps = useSearch({\n ...initialSearchState,\n itemSearchDocument: mergeMarkerField(),\n });\n\n const { setItemSearchDocument, ...props } = searchProps;\n\n return {\n onSaveSearch: saveSearchWithMarker,\n onDeleteSearch,\n onUpdateSearchMetadata,\n onGetSavedSearchSettings,\n searchProps: {\n setItemSearchDocument: (itemSearchDocument) =>\n setItemSearchDocument(mergeMarkerField(itemSearchDocument)),\n ...props,\n },\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useSearchItem({ itemSearchDocument, queryParams, matrixParams }) {\n const { request, data: itemListType = {}, isLoading, isError } = useApi(ItemApi.searchItem);\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n return {\n itemListType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\n\nexport const useMouseDownPosition = () => {\n const [position, setPosition] = React.useState({ x: 0, y: 0 });\n\n React.useEffect(() => {\n const setFromEvent = (e) => setPosition({ x: e.clientX, y: e.clientY });\n window.addEventListener('mousedown', setFromEvent);\n\n return () => {\n window.removeEventListener('mousedown', setFromEvent);\n };\n }, []);\n\n return position;\n};\n\nexport default useMouseDownPosition;\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: collectionType = {}, isLoading, isError } = useApi(\n CollectionApi.getCollection,\n );\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n collectionType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetCollection({\n collectionId,\n queryParams = {},\n refreshOnMount = true,\n}) {\n const { request, data: itemListType = {} } = useApi(CollectionApi.getCollectionItem);\n const onRefresh = () => request({ collectionId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [collectionId, queryParams]);\n return {\n itemListType,\n onRefresh,\n };\n}\n","import React from 'react';\nimport {\n item as ItemApi,\n collection as CollectionApi,\n library as LibraryApi,\n} from '@vidispine/vdt-api';\n\nimport useApi from './useApi';\n\nconst useGetEntity = ({ entityId, entityType }) => {\n let dataType;\n let entityApi;\n let entityTypeId;\n switch (entityType) {\n case 'collection':\n dataType = 'collectionType';\n entityTypeId = 'collectionId';\n entityApi = CollectionApi.getCollection;\n break;\n case 'library':\n dataType = 'libraryType';\n entityTypeId = 'libraryId';\n entityApi = LibraryApi.getLibrary;\n break;\n case 'item':\n dataType = 'itemType';\n entityTypeId = 'itemId';\n entityApi = ItemApi.getItem;\n break;\n default:\n throw new Error(`unknown entityType}`);\n }\n const { request, data, ...apiProps } = useApi(entityApi);\n const onGetEntity = React.useCallback(\n (props) => request({ [entityTypeId]: entityId, ...props }),\n [entityId, entityTypeId, request],\n );\n return {\n [dataType]: data,\n [entityTypeId]: entityId,\n onGetEntity,\n ...apiProps,\n };\n};\n\nexport default useGetEntity;\n","import React from 'react';\nimport { user as UserApi, group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useUser(initialState) {\n const { data: userType, request } = useApi(UserApi.getUser, { data: initialState });\n const { userName } = userType || {};\n const getUser = React.useCallback(() => request({ userName }), [request, userName]);\n React.useEffect(() => {\n if (userName) getUser();\n }, [getUser, userName]);\n\n const updateUser = React.useCallback(\n ({ userDocument }) =>\n UserApi.updateUser({\n userName,\n userDocument,\n }).then(() => request({ userName: userDocument.userName })),\n [request, userName],\n );\n\n const updateUserGroups = React.useCallback(\n ({ groups = [] }) =>\n UserApi.updateUserGroup({\n userName,\n groupListDocument: {\n group: groups.map((g) => ({ groupName: g })),\n },\n }).then(getUser),\n [getUser, userName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (groupName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getUser),\n [getUser, userName],\n );\n\n const changePassword = React.useCallback(\n (password) =>\n UserApi.updateUser({\n userName,\n userDocument: {\n password,\n },\n queryParams: {\n passwordType: 'raw',\n },\n }),\n [userName],\n );\n const deleteUser = ({ queryParams = {} } = {}) =>\n UserApi.disableUser({ userName, queryParams: { hard: true, ...queryParams } });\n const disableUser = (args) => UserApi.disableUser({ userName, ...args }).then(getUser);\n const enableUser = (args) => UserApi.enableUser({ userName, ...args }).then(getUser);\n\n return {\n userType,\n getUser,\n updateUser,\n updateUserGroups,\n removeUserFromGroup,\n disableUser,\n enableUser,\n deleteUser,\n changePassword,\n };\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n userSearchDocument: {\n sort: [\n {\n field: 'username',\n order: 'ascending',\n },\n ],\n },\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n userSearchDocument: {\n ...state.userSearchDocument,\n field: [\n {\n name: action.field || 'username',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchUser(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: userListDocument, request: searchUser, hasLoaded, isError } = useApi(\n UserApi.searchUser,\n );\n\n const onSearchUser = () =>\n searchUser({\n userSearchDocument: state.userSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchUser();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.userSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n userListDocument,\n onSearchUser,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n };\n}\n","import { group as GroupApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListGroup = (args) => {\n const { request, data: groupListType = {}, isLoading } = useApi(GroupApi.listGroup);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n groupListType,\n isLoading,\n };\n};\n\nexport default useListGroup;\n","import { user as UserApi } from '@vidispine/vdt-api';\nimport React from 'react';\nimport useApi from './useApi';\n\nconst useListUser = (args) => {\n const { request, data: userListType = {}, isLoading } = useApi(UserApi.listUser);\n const onRefresh = () => request(args);\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [args]);\n return {\n onRefresh,\n userListType,\n isLoading,\n };\n};\n\nexport default useListUser;\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nconst CHANGE_PAGE = 'CHANGE_PAGE';\nconst CHANGE_ROWS = 'CHANGE_ROWS';\nconst CHANGE_SORT = 'CHANGE_SORT';\nconst CHANGE_QUERY = 'CHANGE_QUERY';\nconst HIDE_ROLES = 'HIDE_ROLES';\n\nconst ACTION_TYPE = {\n CHANGE_PAGE,\n CHANGE_ROWS,\n CHANGE_SORT,\n CHANGE_QUERY,\n HIDE_ROLES,\n};\n\nconst setInitialDefaultState = ({ queryParams = {}, rowsPerPage = 10, page = 0 } = {}) => ({\n queryParams: {\n first: page * rowsPerPage + 1,\n number: rowsPerPage,\n ...queryParams,\n },\n rowsPerPage,\n page,\n groupSearchDocument: {},\n});\n\nconst searchReducer = (state, action) => {\n const { type } = action;\n switch (type) {\n case ACTION_TYPE.CHANGE_PAGE: {\n const { page } = action;\n\n return {\n ...state,\n page,\n queryParams: {\n ...state.queryParams,\n first: page * state.rowsPerPage + 1,\n },\n };\n }\n case ACTION_TYPE.CHANGE_ROWS: {\n const { rowsPerPage } = action;\n return {\n ...state,\n rowsPerPage,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n number: rowsPerPage,\n },\n };\n }\n case ACTION_TYPE.HIDE_ROLES: {\n const { hideRoles } = action;\n const role = hideRoles === true ? false : undefined;\n return {\n ...state,\n page: 0,\n queryParams: {\n ...state.queryParams,\n first: 1,\n role,\n },\n };\n }\n\n case ACTION_TYPE.CHANGE_QUERY: {\n return {\n ...state,\n page: 0,\n groupSearchDocument: {\n ...state.groupSearchDocument,\n field: [\n {\n name: action.field || 'groupname',\n value: action.query || '',\n },\n ],\n },\n queryParams: {\n ...state.queryParams,\n first: 1,\n },\n };\n }\n default:\n return state;\n }\n};\n\nexport default function useSearchGroup(initialState) {\n const initialDefaultState = setInitialDefaultState(initialState);\n const [state, dispatch] = React.useReducer(searchReducer, initialDefaultState);\n const { data: groupListDocument, request: searchGroup, hasLoaded, isError } = useApi(\n GroupApi.searchGroup,\n );\n\n const onSearchGroup = () =>\n searchGroup({\n groupSearchDocument: state.groupSearchDocument,\n queryParams: state.queryParams,\n });\n\n React.useEffect(() => {\n onSearchGroup();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.queryParams, state.groupSearchDocument]);\n\n const onChangeRowsPerPage = ({ target: { value: rowsPerPage } } = {}) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_ROWS,\n rowsPerPage,\n });\n const onChangePage = ({ page }) =>\n dispatch({\n type: ACTION_TYPE.CHANGE_PAGE,\n page,\n });\n const onHideRoles = ({ hideRoles }) =>\n dispatch({\n type: ACTION_TYPE.HIDE_ROLES,\n hideRoles,\n });\n const onChangeSort = (event, field, order) => {\n const fieldName = typeof field === 'object' ? field.value : field;\n dispatch({\n type: ACTION_TYPE.CHANGE_SORT,\n field: fieldName,\n order,\n });\n };\n const onChangeQuery = (field, query) => {\n dispatch({\n type: ACTION_TYPE.CHANGE_QUERY,\n field,\n query,\n });\n };\n return {\n ...state,\n hasLoaded,\n isError,\n groupListDocument,\n onSearchGroup,\n onChangePage,\n onChangeSort,\n onChangeRowsPerPage,\n onChangeQuery,\n onHideRoles,\n };\n}\n","import React from 'react';\nimport { group as GroupApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useGroup(initialState) {\n const { data: groupType, request } = useApi(GroupApi.getGroup, { data: initialState });\n const { groupName } = groupType || {};\n\n const getGroup = React.useCallback(() => request({ groupName }), [request, groupName]);\n\n React.useEffect(() => {\n if (groupName) getGroup();\n }, [getGroup, groupName]);\n\n const updateGroup = React.useCallback(\n ({ groupDocument }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addChildGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n childGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addParentGroups = React.useCallback(\n ({ groups }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n parentGroupList: {\n group: groups.map((g) => ({ groupName: g })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const addUsersToGroup = React.useCallback(\n ({ users }) =>\n GroupApi.updateGroup({\n groupName,\n groupDocument: {\n userList: {\n user: users.map((u) => ({ userName: u })),\n },\n },\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeUserFromGroup = React.useCallback(\n (userName) =>\n GroupApi.removeGroupUser({\n groupName,\n userName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeChildGroup = React.useCallback(\n (childGroupName) =>\n GroupApi.removeGroupChildren({\n groupName,\n childGroupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeFromParentGroup = React.useCallback(\n (parentGroupName) =>\n GroupApi.removeGroupChildren({\n groupName: parentGroupName,\n childGroupName: groupName,\n }).then(getGroup),\n [getGroup, groupName],\n );\n\n const removeGroup = React.useCallback(() => GroupApi.removeGroup({ groupName }), [groupName]);\n\n return {\n groupType,\n getGroup,\n updateGroup,\n removeGroup,\n addChildGroups,\n addParentGroups,\n addUsersToGroup,\n removeUserFromGroup,\n removeChildGroup,\n removeFromParentGroup,\n };\n}\n","import { item as ItemApi } from '@vidispine/vdt-api';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nimport useApi from './useApi';\n\nexport default function useGetItem({ itemId, queryParams = {}, refreshOnMount = true }) {\n const { request, data: itemType = {}, isLoading, isError } = useApi(ItemApi.getItem);\n const onRefresh = () => request({ itemId, queryParams });\n useDeepCompareEffect(() => {\n if (refreshOnMount) onRefresh();\n }, [itemId, queryParams]);\n return {\n itemType,\n isLoading,\n isError,\n onRefresh,\n };\n}\n","import React from 'react';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nconst useCollectionAutoPlay = ({ collectionId, defaultEnabled = true }) => {\n const [nextPlaying, setNextPlaying] = React.useState();\n const [isAutoPlayEnabled, setIsAutoPlayEnabled] = React.useState(defaultEnabled);\n const toggleAutoPlay = (newValue) =>\n setIsAutoPlayEnabled((prevValue) => (newValue !== undefined ? newValue : !prevValue));\n const allItemsRef = React.useRef();\n const orderItemsRef = React.useRef();\n const hitsRef = React.useRef();\n const onNext = React.useCallback(\n ({ itemId }) => {\n if (isAutoPlayEnabled === false) return;\n const searchDocument = {\n field: [\n {\n name: 'mediaType',\n value: [{ value: 'video' }, { value: 'audio' }],\n },\n ],\n };\n const searchForNext = ({ first, number } = {}) => {\n const { current: allItems } = allItemsRef;\n const { current: orderItems } = orderItemsRef;\n if (!Array.isArray(allItems)) {\n Promise.all([\n CollectionApi.getCollection({\n collectionId,\n queryParams: { children: 'item' },\n }),\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first, number },\n }),\n ]).then(([{ data: collectionType }, { data: itemListType }]) => {\n const { hits, item: itemList = [] } = itemListType;\n allItemsRef.current = itemList.map(({ id }) => id);\n hitsRef.current = hits;\n const { content: contentList } = collectionType;\n orderItemsRef.current = contentList;\n searchForNext({ first: 1, number: 100 });\n });\n return;\n }\n const { current: hits } = hitsRef;\n const currentItemIdx = orderItems.findIndex(({ id: thisId }) => thisId === itemId);\n if (currentItemIdx + 1 === orderItems.length) {\n // last item in the list\n setNextPlaying();\n return;\n }\n if (currentItemIdx === -1 && hits > allItems.length) {\n // request more items to find the currentItem\n CollectionApi.searchCollectionItem({\n collectionId,\n searchDocument,\n queryParams: { first: first + number, number },\n }).then(({ data: itemListType }) => {\n const { item: itemList = [] } = itemListType;\n allItemsRef.current.push(...itemList.map(({ id }) => id));\n searchForNext({ first: first + number, number });\n });\n return;\n }\n const remainingItems = orderItems.slice(currentItemIdx + 1);\n const nextItem = remainingItems.find(({ id: thisId }) => allItems.includes(thisId));\n setNextPlaying(nextItem);\n };\n searchForNext();\n },\n [collectionId, isAutoPlayEnabled],\n );\n return {\n isAutoPlayEnabled,\n toggleAutoPlay,\n setNextPlaying,\n nextPlaying,\n onNext,\n };\n};\n\nexport default useCollectionAutoPlay;\n","import React, { useCallback } from 'react';\nimport { formatTimeCodeText, formatSeconds } from '@vidispine/vdt-js';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\n\nexport default function useHoverScrub(srcList = [], customOffset = 0, durationSeconds) {\n const [scrubPosition, setScrubPosition] = React.useState(0);\n const [thumbnailIndex, setThumbnailIndex] = React.useState(0);\n const [showScrub, setShowScrub] = React.useState(false);\n const [thumbnailTimeCodeArray, setThumbnailTimeCodeArray] = React.useState([]);\n const [thumbnailTimeCode, setThumbnailTimeCode] = React.useState();\n const [thumbnailWidth, setThumbnailWidth] = React.useState(0);\n\n const getInnerLeft = useCallback(\n (e) => {\n const left = e.clientX - e.currentTarget.offsetLeft - customOffset;\n if (left < 0) {\n return 0;\n }\n if (left > e.currentTarget.offsetWidth) {\n return e.currentTarget.offsetWidth;\n }\n return left;\n },\n [customOffset],\n );\n\n const onMouseMove = (e) => {\n if (durationSeconds) {\n const innerLeft = getInnerLeft(e);\n setScrubPosition(innerLeft - 1);\n setThumbnailWidth(e.currentTarget.offsetWidth);\n\n const pxToSec = e.currentTarget.offsetWidth / +durationSeconds;\n const pxAsTimeCode = innerLeft / pxToSec;\n setThumbnailTimeCode(formatSeconds(pxAsTimeCode));\n\n for (let index = 0; index < thumbnailTimeCodeArray.length; index += 1) {\n const timeCode = thumbnailTimeCodeArray[index];\n const nextTimeCode =\n thumbnailTimeCodeArray[index + 1] ||\n thumbnailTimeCodeArray[thumbnailTimeCodeArray.length - 1];\n if (\n timeCode &&\n nextTimeCode &&\n timeCode.toSeconds().toFixed(0) <= pxAsTimeCode &&\n nextTimeCode.toSeconds().toFixed(0) >= pxAsTimeCode\n ) {\n setThumbnailIndex(index);\n }\n }\n }\n };\n\n useDeepCompareEffect(() => {\n const timeCodes = [];\n for (let index = 0; index < srcList.length; index += 1) {\n const uri = srcList[index];\n if (uri && typeof uri === 'string') {\n try {\n const timeCodeFromURI = uri.split('version')[1].split('/')[1].split('?')[0];\n const timecodeText = formatTimeCodeText(timeCodeFromURI);\n timeCodes.push(timecodeText);\n } catch (error) {\n return;\n }\n }\n }\n setThumbnailTimeCodeArray(timeCodes);\n }, [srcList]);\n\n const handleShowScrub = (value) => () => {\n if (durationSeconds > 0) {\n setShowScrub(value);\n }\n };\n\n return {\n thumbnailIndex,\n thumbnailTimeCode,\n thumbnailWidth,\n showScrub,\n scrubPosition,\n handleShowScrub,\n onMouseMove,\n };\n}\n","import React from 'react';\nimport { item as ItemApi } from '@vidispine/vdt-api';\nimport debounce from 'lodash.debounce';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport useApi from './useApi';\n\nexport default function useDocSearchAutocomplete({\n searchDoc,\n queryParams,\n debounceTime,\n suggestionSettings = { maximumSuggestions: 10, accuracy: 1 },\n triggerLength = 1,\n apiCall = ItemApi.searchItem,\n}) {\n const [textValue, setTextValue] = React.useState('');\n const handleAutocompleteChange = React.useRef(debounce(setTextValue, debounceTime)).current;\n\n const { data: { autocomplete = [] } = {}, request } = useApi(apiCall);\n const { suggestion = [] } = autocomplete[0] || {};\n\n useDeepCompareEffect(() => {\n if (searchDoc && textValue && textValue.length >= triggerLength) {\n request({\n body: {\n ...searchDoc,\n suggestion: suggestionSettings,\n autocomplete: [\n {\n text: textValue,\n },\n ],\n text: [{ value: textValue }],\n },\n queryParams: { count: false, number: 0, ...queryParams },\n });\n }\n }, [request, textValue, queryParams, triggerLength]);\n\n return {\n suggestion,\n handleAutocompleteChange,\n };\n}\n","import { metadatafield as MetadatafieldApi } from '@vidispine/vdt-api';\nimport useApi from './useApi';\n\nexport default function useGetFieldMetadataDataset() {\n const { request, data: { value: constraintValueListType = [] } = {}, isLoading } = useApi(\n MetadatafieldApi.getMetadataFieldAllowedValues,\n );\n\n const getMetadataDataset = (datasetField, parentValue, parentField) => {\n const metadataFieldValueConstraintListDocument = {\n constraint: parentValue ? [{ field: parentField, value: parentValue }] : [],\n };\n if (datasetField) {\n request({\n fieldName: datasetField,\n metadataFieldValueConstraintListDocument,\n });\n }\n };\n\n return {\n getMetadataDataset,\n dataset: constraintValueListType,\n isLoading,\n };\n}\n","import React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { collection as CollectionApi, item as ItemApi } from '@vidispine/vdt-api';\nimport { createMetadataType } from '@vidispine/vdt-js';\n\n// Has to be set so that the library isn't auto-deleted\nconst UPDATE_FREQUENCY = 1000;\n\n// Prevents access controls set on the library (i.e. saved search) from cascading down to items\nconst UPDATE_MODE = 'TRANSIENT';\n\nconst getCollectionTitle = (fields) =>\n fields.find((field) => field.name === 'title').value[0].value;\n\nexport default function useGetSavedSearchFolders({\n childFolders = [],\n queryParams = { content: ['metadata'] },\n markerProps = {\n markerValue: 'savedSearch',\n markerField: 'eidr_referentType',\n },\n expand,\n}) {\n const [currentFolders, setCurrentFolders] = React.useState(childFolders);\n const [subFolders, setSubFolders] = React.useState([]);\n const [errors, setErrors] = React.useState();\n\n const getSubFolders = React.useCallback(() => {\n Promise.all(\n currentFolders.map(async (id) => {\n const {\n data: { content, metadata = {} },\n } = await CollectionApi.getCollection({\n collectionId: id,\n queryParams,\n });\n\n const { field } = metadata.timespan[0];\n if (content && content[0].type === 'library') {\n return {\n id,\n libraryId: content[0].id,\n title: getCollectionTitle(field),\n type: 'query',\n metadata,\n };\n }\n return {\n id,\n title: getCollectionTitle(field),\n subFolders: content && content.map((c) => c.id),\n type: 'folder',\n metadata,\n };\n }),\n )\n .then((newFolders) => {\n setSubFolders((prevState) => [...newFolders, ...prevState]);\n })\n .catch((error) => {\n setErrors(error);\n });\n }, [currentFolders, queryParams]);\n\n const createFolder = (parentId, type, title, callback) => {\n CollectionApi.createCollection({\n collectionDocument: {\n metadata: createMetadataType({\n saved_search_folder: type,\n title,\n }),\n },\n })\n .then(({ data: { id } }) => {\n if (parentId) {\n return CollectionApi.updateCollection({\n collectionId: parentId,\n collectionDocument: {\n content: [\n {\n id,\n mode: 'add',\n type: 'collection',\n },\n ],\n },\n })\n .then(({ data: { content } }) => {\n if (content) {\n setCurrentFolders(\n content\n .filter((collection) => collection.id === id)\n .map((collection) => collection.id),\n );\n if (callback) callback();\n }\n })\n .catch((error) => {\n setErrors(error);\n });\n }\n return null;\n })\n .catch((error) => {\n setErrors(error);\n });\n };\n\n const saveSearch = (folderId, title, itemSearchDocument, callback) => {\n try {\n ItemApi.searchItem({\n queryParams: {\n result: 'library',\n updateMode: UPDATE_MODE,\n updateFrequency: UPDATE_FREQUENCY,\n },\n itemSearchDocument,\n })\n .then(({ data: { library } }) => {\n return CollectionApi.createCollection({\n collectionDocument: {\n metadata: createMetadataType({\n [markerProps.markerField]: markerProps.markerValue,\n title,\n }),\n content: [\n {\n id: library,\n type: 'library',\n },\n ],\n },\n });\n })\n .then(({ data: { id } }) => {\n return CollectionApi.updateCollection({\n collectionId: folderId,\n collectionDocument: {\n content: [\n {\n id,\n mode: 'add',\n type: 'collection',\n },\n ],\n },\n })\n .then(({ data: { content } }) => {\n if (content) {\n setCurrentFolders(\n content\n .filter((collection) => collection.id === id)\n .map((collection) => collection.id),\n );\n if (callback) callback();\n }\n })\n .catch((error) => {\n setErrors(error);\n });\n })\n .catch((error) => {\n setErrors(error);\n });\n } catch (error) {\n setErrors(error);\n }\n };\n\n const deleteFolder = (collectionId) =>\n CollectionApi.removeCollection({ collectionId }).catch((error) => {\n setErrors(error);\n });\n\n const removeItem = (id) => {\n setSubFolders((prevState) => prevState.filter((folder) => folder.id !== id));\n };\n\n useDeepCompareEffect(() => {\n if (currentFolders.length > 0 && expand) {\n getSubFolders();\n }\n }, [currentFolders, expand]);\n\n React.useEffect(() => {\n if (!expand && typeof expand === 'boolean') {\n setCurrentFolders(() => {\n return subFolders.map((folder) => folder.id);\n });\n setSubFolders([]);\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [expand]);\n\n return {\n createFolder,\n saveSearch,\n getSubFolders,\n deleteFolder,\n removeItem,\n subFolders,\n setSubFolders,\n setCurrentFolders,\n errors,\n };\n}\n","import React from 'react';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\nimport { createMetadataType, parseMetadataType } from '@vidispine/vdt-js';\n\nconst useRepresentativeItems = ({ collectionId, onError }) => {\n const [representativeItems, setRepresentativeItems] = React.useState([]);\n\n const asyncGetRepresentativeItems = async () => {\n try {\n if (!collectionId) {\n throw Error('Missing collectionId');\n }\n const { data: metadata = {} } = await CollectionApi.getCollectionMetadata({\n collectionId,\n queryParams: {\n content: 'metadata',\n field: 'representativeItems',\n },\n }).catch((error) => {\n if (onError) onError(error);\n });\n const { representativeItems: newRepresentativeItems = [] } = parseMetadataType(metadata, {\n flat: true,\n includeValueAttributes: true,\n });\n setRepresentativeItems(() => newRepresentativeItems);\n } catch (error) {\n if (onError) onError(error);\n }\n };\n\n const onRefresh = asyncGetRepresentativeItems;\n\n const updateAsRepresentativeItem = async (values) => {\n try {\n const metadataDocument = createMetadataType({\n representativeItems: Array.isArray(values) ? values : [values],\n });\n const response = await CollectionApi.updateCollectionMetadata({\n collectionId,\n metadataDocument,\n });\n onRefresh();\n return response;\n } catch (error) {\n if (onError) onError(error);\n return undefined;\n }\n };\n\n const onAdd = (entityId) => updateAsRepresentativeItem({ value: entityId, mode: 'add' });\n\n const onRemove = (entityId) => {\n try {\n // Get all (if it has been added multiple times)\n const entityIdValueUuids = representativeItems\n .filter((i) => i.value === entityId)\n .map((i) => i.uuid);\n if (!entityIdValueUuids.length) return undefined;\n return updateAsRepresentativeItem(\n entityIdValueUuids.map((uuid) => ({ uuid, mode: 'remove' })),\n );\n } catch (error) {\n if (onError) onError(error);\n return undefined;\n }\n };\n\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [collectionId]);\n\n return {\n representativeItems,\n onRefresh,\n onAdd,\n onRemove,\n };\n};\n\nexport default useRepresentativeItems;\n","/* eslint-disable no-console */\nimport {\n library as LibraryApi,\n file as FileApi,\n job as JobApi,\n storage as StorageApi,\n} from '@vidispine/vdt-api';\n\nfunction defaultOnGetStorage() {\n const storageData = StorageApi.listStorage().then((response) => {\n const storage = {\n id: response.data.storage[0].id,\n uri: response.data.storage[0].method[0].uri,\n };\n return storage;\n });\n return storageData;\n}\n\nfunction defaultOnCreate(list) {\n return LibraryApi.createLibrary({\n itemListDocument: {\n item: [\n ...list.item.map(({ id }) => ({\n id,\n })),\n ],\n },\n });\n}\n\nfunction defaultOnList(response, storageInfo, queryParams) {\n const { fileName = 'output', outputFormat = 'csv' } = queryParams;\n const { uri } = storageInfo;\n const { data: { uri: [libraryId] = [] } = {} } = response;\n const createNewUri = () => {\n if (uri.includes('s3')) {\n const [uriBeforeRegion, uriAfterRegion] = uri.split('?region');\n return `${uriBeforeRegion}${fileName}.${outputFormat}?region${uriAfterRegion}`;\n }\n return `${uri}${fileName}.${outputFormat}`;\n };\n const newUri = encodeURIComponent(createNewUri());\n return LibraryApi.getLibraryBatch({\n libraryId,\n queryParams: { destinationUri: newUri, ...queryParams },\n });\n}\n\nconst SUCCESSFUL_STATES = ['FINISHED', 'FINISHED_WARNING'];\nconst INACTIVE_STATES = ['FINISHED', 'FINISHED_WARNING', 'FAILED_TOTAL', 'ABORTED'];\n\nfunction defaultOnGetFile(response, storageInfo, params, onError) {\n const { data: { jobId } = {} } = response;\n const { id } = storageInfo;\n const { fileName = 'output', outputFormat = 'csv' } = params;\n const filePath = `${fileName}.${outputFormat}`;\n JobApi.getJob({ jobId }).then(({ data: { status } = {} } = {}) => {\n if (SUCCESSFUL_STATES.includes(status)) {\n try {\n FileApi.listFileStorage({\n storageId: id,\n queryParams: {\n path: filePath,\n methodMetadata: [\n { key: 'format', value: 'SIGNED-AUTO' },\n { key: 'contentDisposition', value: `attachment;+filename=${filePath}` },\n ],\n 'noauth-url': true,\n },\n }).then((r) => window.open(r.data.file[0].uri[0]));\n } catch (error) {\n console.error(`${'Download error:'}\\n${error}`);\n onError({ message: 'Download failed' });\n }\n } else if (!INACTIVE_STATES.includes(status)) {\n setTimeout(() => {\n defaultOnGetFile(response, storageInfo, params);\n }, 1000);\n } else {\n onError({ message: 'Download failed' });\n }\n });\n}\n\n// Note: Not needed as a react-hook since doesn't use react,\n// but this is usually where we put logic functions right now\nconst useCsvDownload = ({\n itemListType,\n queryParams,\n onSuccess,\n onError = ({ message, error }) => console.error(`${message}\\n${error}`),\n onGetFile = defaultOnGetFile,\n onCreateList = defaultOnCreate,\n onList = defaultOnList,\n onGetStorage = defaultOnGetStorage,\n}) => {\n const onDownload = () =>\n onGetStorage().then((storageInfo) =>\n Promise.all([\n onCreateList(itemListType)\n .then((response) => onList(response, storageInfo, queryParams))\n .then(onSuccess())\n .then((response) => onGetFile(response, storageInfo, queryParams, onError)),\n ]),\n );\n return { onDownload };\n};\n\nexport default useCsvDownload;\n","import React from 'react';\nimport { parseMetadataType } from '@vidispine/vdt-js';\n\nexport default function MetadataType({\n itemType,\n collectionType,\n joinValue = ',',\n flat = true,\n children,\n ...props\n}) {\n const entityType = itemType || collectionType || {};\n const { metadata: metadataType } = entityType;\n const metadata = React.useMemo(() => parseMetadataType(metadataType, { joinValue, flat }), [\n flat,\n joinValue,\n metadataType,\n ]);\n const cloneProps = {\n ...props,\n ...metadata,\n itemType,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { collection as CollectionApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n responseRef,\n initialState,\n children,\n}) {\n const { request, data: collectionListType = {}, isLoading, isError } = useApi(\n CollectionApi.searchCollection,\n initialState,\n responseRef,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n collectionListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useSearchItem from '../hooks/useSearchItem';\n\nexport default function SearchItem({ itemSearchDocument, queryParams, matrixParams, children }) {\n const { itemListType, onRefresh, isLoading, isError } = useSearchItem({\n itemSearchDocument,\n queryParams,\n matrixParams,\n });\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n itemListType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { search as SearchApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function SearchItemCollection({\n itemSearchDocument,\n queryParams,\n matrixParams,\n children,\n}) {\n const { request, data: searchResultType = {}, isLoading, isError } = useApi(\n SearchApi.searchItemCollection,\n );\n const onRefresh = () => request({ itemSearchDocument, queryParams, matrixParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [itemSearchDocument, queryParams, matrixParams]);\n const cloneProps = {\n itemSearchDocument,\n matrixParams,\n queryParams,\n searchResultType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetItem from '../hooks/useGetItem';\n\nexport default function GetItem({ itemId, queryParams, refreshOnMount, children }) {\n const { itemType, onRefresh, isLoading, isError } = useGetItem({\n itemId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n itemId,\n queryParams,\n itemType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport useGetCollection from '../hooks/useGetCollection';\n\nexport default function GetCollectionContent({\n collectionId,\n queryParams,\n refreshOnMount,\n children,\n}) {\n const { collectionType, onRefresh, isLoading, isError } = useGetCollection({\n collectionId,\n queryParams,\n refreshOnMount,\n });\n const cloneProps = {\n collectionId,\n queryParams,\n collectionType,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport useDeepCompareEffect from 'use-deep-compare-effect';\nimport { job as JobApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetJobs({ matrixParams, queryParams, children }) {\n const { request, data: jobs = {}, isLoading, isError } = useApi(JobApi.listJob);\n const onRefresh = () => request({ matrixParams, queryParams });\n useDeepCompareEffect(() => {\n onRefresh();\n }, [matrixParams, queryParams]);\n const cloneProps = {\n matrixParams,\n queryParams,\n onRefresh,\n isLoading,\n isError,\n jobs,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { access as AccessApi } from '@vidispine/vdt-api';\nimport useApi from '../hooks/useApi';\n\nexport default function ListEntityAccess({ entityId, entityType, queryParams, children }) {\n const { request, data: accessControlList = {}, isLoading } = useApi(AccessApi.listEntityAccess);\n const onRefresh = () => request({ entityId, entityType, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [entityId, entityType, queryParams]);\n const cloneProps = {\n entityId,\n entityType,\n queryParams,\n accessControlList,\n onRefresh,\n isLoading,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { utils as api } from '@vidispine/vdt-api';\n\nexport default class VidispineApi extends React.Component {\n constructor(props) {\n super(props);\n const { serverUrl, token, username, password, runAs } = props;\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n }\n }\n\n componentDidUpdate(prevProps) {\n const { serverUrl, token, username, password, runAs } = this.props;\n if (prevProps.serverUrl !== serverUrl) {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n } else {\n delete api.defaultClient.defaults.baseURL;\n }\n }\n if (prevProps.token !== token) {\n if (token) {\n api.defaultClient.defaults.headers.Authorization = `token ${token}`;\n } else {\n delete api.defaultClient.defaults.headers.Authorization;\n }\n }\n if (!token && (prevProps.username !== username || prevProps.password !== password)) {\n api.defaultClient.defaults.auth = { username, password };\n }\n if (prevProps.runAs !== runAs) {\n if (runAs) {\n api.defaultClient.defaults.headers.RunAs = runAs;\n } else {\n delete api.defaultClient.defaults.headers.RunAs;\n }\n }\n }\n\n render() {\n const { children, username, serverUrl } = this.props;\n const cloneProps = { username, serverUrl };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n }\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { utils as api, user as UserApi } from '@vidispine/vdt-api';\nimport VidispineApi from './VidispineApi';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\n\nconst handleOnGetToken = ({ userName, password, serverUrl }) => {\n if (serverUrl) {\n api.defaultClient.defaults.baseURL = serverUrl;\n }\n const queryParams = { seconds: 2592000, autoRefresh: 'true' };\n const headers = { password, username: userName };\n try {\n UserApi.getToken({ queryParams, headers })\n .then(({ data: token }) => token)\n .catch(({ response = {}, message = 'Unknown error.' }) => {\n let submissionError = message;\n if (response.status === 401) {\n submissionError = 'Incorrect Username/Password';\n }\n throw submissionError;\n });\n } catch (error) {\n const submissionError = 'Incorrect Username/Password';\n throw submissionError;\n }\n};\n\nexport default function Auth({\n LoginComponent,\n LoginProps = {},\n AppComponent,\n AppProps = {},\n onGetToken = handleOnGetToken,\n onSuccess,\n onError,\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n ...props\n}) {\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token,\n [VIDISPINE_USERNAME]: userName,\n [VIDISPINE_SERVER_URL]: serverUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const onLogin = (values) => {\n let submissionError;\n try {\n onGetToken(values)\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) return onError(submissionError);\n throw submissionError;\n });\n } catch (error) {\n submissionError = error;\n if (onError) return onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = () => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n };\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AppComponent onLogout={onLogout} {...props} {...AppProps} />\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n {...props}\n {...LoginProps}\n />\n )}\n </>\n );\n}\n","import React from 'react';\n\nconst ErrorBoundaryComponent = ({ error, info }) => (\n <div\n style={{\n height: '100%',\n maxHeight: '100vh',\n width: '100%',\n maxWidth: '100vw',\n backgroundColor: 'red',\n color: 'white',\n }}\n >\n {error && <div>{error.toString()}</div>}\n {info && <div>{info.componentStack}</div>}\n </div>\n);\n\nexport default class ErrorBoundary extends React.Component {\n constructor(props) {\n super(props);\n this.state = { hasError: false };\n }\n\n static getDerivedStateFromError(error) {\n return { error, hasError: true };\n }\n\n shouldComponentUpdate(nextProps, nextState) {\n const { hasError, info } = this.state;\n const { info: nextInfo } = nextState;\n if (info === nextInfo && hasError === true) return false;\n return true;\n }\n\n componentDidCatch(error, info) {\n const { onError } = this.props;\n if (typeof onError === 'function') {\n try {\n onError(error, info);\n } catch (onErrorError) {\n return;\n }\n }\n this.setState({ info });\n }\n\n render() {\n const { children } = this.props;\n const { hasError, error, info } = this.state;\n if (hasError) {\n return <ErrorBoundaryComponent info={info} error={error} />;\n }\n return children;\n }\n}\n","/* eslint react/prop-types: \"off\" */\nimport React from 'react';\nimport { fieldgroup as FieldGroupApi } from '@vidispine/vdt-api';\n\nimport useApi from '../hooks/useApi';\n\nexport default function GetFieldGroup({ groupName, queryParams, children }) {\n const { request, data: metadataFieldGroupDocument, isLoading, isError } = useApi(\n FieldGroupApi.getFieldGroup,\n );\n const onRefresh = () => request({ groupName, queryParams });\n React.useEffect(() => {\n onRefresh();\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [groupName, queryParams]);\n const cloneProps = {\n groupName,\n queryParams,\n metadataFieldGroupDocument,\n onRefresh,\n isLoading,\n isError,\n };\n const cloneChild = (child) => React.cloneElement(child, cloneProps);\n return React.Children.map(children, cloneChild);\n}\n","import React from 'react';\nimport { user as UserApi } from '@vidispine/vdt-api';\nimport { roles as ROLES } from '@vidispine/vdt-js';\n\nconst RolesContext = React.createContext();\n\nfunction RolesProvider({ intialState = {}, onRefresh, userName: knownUserName, children }) {\n const [groupListType, setGroupListType] = React.useState(intialState);\n const onGetUserRole = () => {\n if (knownUserName) {\n UserApi.getUserRole({ userName: knownUserName }).then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data);\n });\n } else {\n let iAm;\n UserApi.whoAmI()\n .then(({ data: userName }) => {\n iAm = userName;\n return UserApi.getUserRole({ userName });\n })\n .then(({ data }) => {\n setGroupListType(data);\n if (onRefresh) onRefresh(data, iAm);\n });\n }\n };\n // eslint-disable-next-line react-hooks/exhaustive-deps\n React.useEffect(onGetUserRole, [knownUserName]);\n return <RolesContext.Provider value={groupListType}>{children}</RolesContext.Provider>;\n}\n\nfunction useRoles() {\n const groupListType = React.useContext(RolesContext);\n if (groupListType === undefined) {\n throw new Error('useRoles must be used within RolesContext');\n }\n const hasRole = (roleName) => {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { group: groupList } = groupListType;\n if (!Array.isArray(groupList)) return null;\n const groupNames = groupList.map(({ groupName }) => groupName);\n if (groupNames.includes(ROLES.SUPER_ACCESS_USER)) return true;\n if (Array.isArray(roleName)) {\n return roleName.findIndex((thisRole) => groupNames.includes(thisRole)) > -1;\n }\n return groupNames.includes(roleName);\n };\n return { hasRole, groupListType };\n}\n\nexport { RolesProvider, useRoles };\n","import React from 'react';\nimport { useRoles } from '../context/RolesContext';\n\nexport default function HasRole({ roleName, allow, deny, loading }) {\n if (roleName === undefined) throw new Error('roleName is undefined');\n const { hasRole } = useRoles();\n const checkedRole = hasRole(roleName);\n if (React.isValidElement(allow) && checkedRole === true) {\n return allow;\n }\n if (React.isValidElement(deny) && checkedRole === false) {\n return deny;\n }\n if (React.isValidElement(loading) && checkedRole === null) {\n return loading;\n }\n return null;\n}\n","import React from 'react';\n\nexport default function ComposeProviders({ providers = [], children, ...props }) {\n return providers.reduceRight((acc, Provider) => {\n if (typeof Provider === 'function') {\n return (\n <Provider\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n >\n {acc}\n </Provider>\n );\n }\n const { provider: ProviderComponent, ...providerProps } = Provider;\n return (\n <ProviderComponent\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...props}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...providerProps}\n >\n {acc}\n </ProviderComponent>\n );\n }, children);\n}\n","/* eslint-disable react/jsx-props-no-spreading */\nimport React from 'react';\n\nimport ErrorBoundary from '../wrappers/ErrorBoundary';\n\nconst withErrorBoundary = (WrappedComponent, errorBoundaryProps = {}) => (props) => (\n <ErrorBoundary {...errorBoundaryProps}>\n <WrappedComponent {...props} />\n </ErrorBoundary>\n);\n\nexport default withErrorBoundary;\n","export const compose = (...funcs) =>\n funcs.reduce(\n (a, b) => (...args) => a(b(...args)),\n (arg) => arg,\n );\n\nexport default compose;\n","import React from 'react';\nimport { uuidv4 } from '../utils';\n\nexport const BinContext = React.createContext();\n\nconst defaultIsUniqueBinItem = (\n bin,\n { entityId, entityType, entityTimespan: { start, end, field: [{ name } = {}] = [] } = {} },\n) => {\n const entityExistsInBin = bin.some(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n let entityTimespanExistsInBin = false;\n if (entityExistsInBin) {\n const binEntitiesWithSameId = bin.filter(\n (o) => o.entity.id === entityId && o.entityType === entityType,\n );\n binEntitiesWithSameId.forEach(\n ({\n entityTimespan: { start: beStart, end: beEnd, field: [{ name: beName } = {}] = [] } = {},\n }) => {\n if (start === beStart && end === beEnd && name === beName) {\n entityTimespanExistsInBin = true;\n }\n },\n );\n }\n return !entityExistsInBin || !entityTimespanExistsInBin;\n};\nexport function BinProvider({\n onChange,\n children,\n initialState = [],\n allowDuplicates: defaultAllowDuplicates = false,\n isUniqueBinItem = defaultIsUniqueBinItem,\n}) {\n const [binState, setBinState] = React.useState(initialState);\n const [allowDuplicates, setAllowDuplicates] = React.useState(defaultAllowDuplicates);\n\n const onDelete = (binIdToDelete) => {\n if (!binIdToDelete || !['string', 'number'].includes(typeof binIdToDelete)) {\n // eslint-disable-next-line no-console\n console.error('BinProvider onDelete called without a binId of the entity to delete');\n return;\n }\n setBinState((state) => {\n const newState = state.filter((o) => o.binId !== binIdToDelete);\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n const onEmptyBin = () => {\n const newState = [];\n setBinState(newState);\n if (onChange) onChange(newState);\n };\n\n const createBinObject = (binObject) => {\n const [binId] = uuidv4().split('-');\n return { binId, ...binObject };\n };\n\n const handleDrop = ({ dragInfo = {} } = {}) => {\n const { entityId, entityType, entity } = dragInfo;\n if (!entityId || !entityType || !entity) {\n throw new Error('Dragged element needs to have entityId, entityType and entity props');\n }\n setBinState((state = []) => {\n if (isUniqueBinItem(state, dragInfo) || allowDuplicates) {\n const newState = [...state, createBinObject(dragInfo)];\n if (onChange) onChange(newState);\n return newState;\n }\n return state;\n });\n };\n\n const handleSort = ({ dragId, hoverId, originalDragIndex }) => {\n if (dragId === undefined || (hoverId === undefined && originalDragIndex === undefined)) return;\n setBinState((state) => {\n const newState = [...state];\n const dragIndex = binState.findIndex((o) => o.binId === dragId);\n const hoverIndex = binState.findIndex((o) => o.binId === hoverId);\n const newDragIndex = hoverIndex > -1 ? hoverIndex : originalDragIndex;\n [newState[newDragIndex], newState[dragIndex]] = [newState[dragIndex], newState[newDragIndex]];\n if (onChange) onChange(newState);\n return newState;\n });\n };\n\n return (\n <BinContext.Provider\n value={{\n setBin: setBinState,\n bin: binState,\n allowDuplicates,\n setAllowDuplicates,\n onDrop: handleDrop,\n onSort: handleSort,\n onFind: () => null,\n onEmptyBin,\n onDelete,\n }}\n >\n {children}\n </BinContext.Provider>\n );\n}\n","import React from 'react';\nimport { metadata as MetadataApi } from '@vidispine/vdt-api';\n\nconst SettingsDispatchContext = React.createContext();\nconst SettingsStateContext = React.createContext();\n\nconst UPDATE_ALL_SETTINGS = 'UPDATE_ALL_SETTINGS';\nconst UPDATE_SETTING = 'UPDATE_SETTING';\nconst UPDATE_USERNAME = 'UPDATE_USERNAME';\nconst REMOVE_SETTING = 'REMOVE_SETTING';\n\nconst reducer = (state, action) => {\n switch (action.type) {\n case UPDATE_USERNAME: {\n return { ...state, userName: action.userName };\n }\n case UPDATE_ALL_SETTINGS: {\n return { ...state, settings: action.settings };\n }\n case UPDATE_SETTING: {\n const settings = { ...state.settings, ...action.setting };\n return { ...state, settings };\n }\n case REMOVE_SETTING: {\n const settings = { ...state.settings };\n delete settings[action.key];\n return { ...state, settings };\n }\n default:\n return state;\n }\n};\n\nconst SettingsProvider = ({\n userName: initialUsername,\n settingsKey,\n children,\n initialSettings = {},\n onChange,\n getSettingsApi = MetadataApi.getSimpleMetadataKey,\n updateSettingsApi = MetadataApi.updateSimpleMetadataKey,\n}) => {\n const [state, dispatch] = React.useReducer(reducer, {\n settings: initialSettings,\n userName: initialUsername,\n });\n const currentSettingsFromServer = React.useRef();\n\n React.useEffect(() => {\n const { userName } = state;\n if (!getSettingsApi || !userName) return;\n getSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n })\n .then(({ data: settings }) => {\n dispatch({\n type: UPDATE_ALL_SETTINGS,\n settings,\n userName,\n settingsKey,\n });\n currentSettingsFromServer.current = JSON.stringify(settings);\n })\n .catch((error) => {\n const { response } = error;\n if (response.status !== 404) {\n throw new Error(error);\n }\n });\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.userName]);\n\n React.useEffect(() => {\n if (onChange) onChange(state.settings);\n const { userName } = state;\n if (!updateSettingsApi || !userName) return;\n const newValue = JSON.stringify(state.settings);\n const currentValue = currentSettingsFromServer.current;\n if (!currentValue || newValue === currentValue) return;\n updateSettingsApi({\n entityType: 'user',\n entityId: userName,\n key: settingsKey,\n value: newValue,\n });\n currentSettingsFromServer.current = newValue;\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [state.settings]);\n\n return (\n <SettingsStateContext.Provider value={state}>\n <SettingsDispatchContext.Provider value={dispatch}>\n {children}\n </SettingsDispatchContext.Provider>\n </SettingsStateContext.Provider>\n );\n};\n\nconst useSettingsState = () => {\n const state = React.useContext(SettingsStateContext);\n if (!state) throw new Error('useSettingsState must be used within SettingsStateContext');\n return state;\n};\n\nconst useSettingsDispatch = () => {\n const dispatch = React.useContext(SettingsDispatchContext);\n if (!dispatch) throw new Error('useSettingsDispatch must be used within SettingsDispatchContext');\n return dispatch;\n};\n\nconst useSettingsActions = () => {\n const dispatch = useSettingsDispatch();\n const updateAllSettings = React.useCallback(\n (settings) => dispatch({ type: UPDATE_ALL_SETTINGS, settings }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateSetting = React.useCallback(\n (setting) => dispatch({ type: UPDATE_SETTING, setting }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n const updateUsername = React.useCallback(\n (userName) => dispatch({ type: UPDATE_USERNAME, userName }),\n // eslint-disable-next-line react-hooks/exhaustive-deps\n [],\n );\n // eslint-disable-next-line react-hooks/exhaustive-deps\n const removeSetting = React.useCallback((key) => dispatch({ type: REMOVE_SETTING, key }), []);\n return {\n updateAllSettings,\n updateSetting,\n updateUsername,\n removeSetting,\n };\n};\n\nconst useSettings = () => {\n const { settings = {} } = useSettingsState();\n const actions = useSettingsActions();\n return {\n ...actions,\n settings,\n };\n};\n\nexport { SettingsProvider, useSettingsActions, useSettings };\n","import React from 'react';\nimport { useCookies } from 'react-cookie';\nimport { user as UserApi, noauth as NoAuthApi, utils as api } from '@vidispine/vdt-api';\n\nimport { VidispineApi } from '../wrappers';\nimport { useApi } from '../hooks';\n\nconst VIDISPINE_TOKEN = 'VIDISPINE-TOKEN';\nconst VIDISPINE_USERNAME = 'VIDISPINE-USERNAME';\nconst VIDISPINE_SERVER_URL = 'VIDISPINE-SERVER-URL';\nconst VIDISPINE_REMEMBER_ME = 'VIDISPINE-REMEMBER-ME';\nconst ERROR_CREDENTIALS = 'Incorrect username or password';\nconst ERROR_OFFLINE = 'Offline or CORS not configured';\nconst ERROR_TOKEN_EXPIRED = 'Session expired';\nconst ERROR_SERVER_MISMATCH = 'VIDISPINE_URL mismatch';\n\nconst getErrorMessage = (serverUrl) => {\n try {\n // NoAuthApi.isOnline throws cors error after multiple requests\n return NoAuthApi.getSelfTest({ baseURL: serverUrl })\n .then(() => ERROR_CREDENTIALS)\n .catch(() => ERROR_OFFLINE);\n } catch (_) {\n return Promise.resolve(ERROR_OFFLINE);\n }\n};\n\nconst defaultOnGetToken = ({ maxAge: seconds = 60, userName, password, serverUrl }) => {\n try {\n return UserApi.getToken({\n queryParams: { seconds, autoRefresh: 'true' },\n headers: { password, username: userName },\n baseURL: serverUrl,\n })\n .then(({ data: token }) => {\n return token;\n })\n .catch(() => {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n });\n } catch (_) {\n return getErrorMessage(serverUrl).then((error) => {\n throw Error(error);\n });\n }\n};\n\nexport const AuthContext = React.createContext({\n serverUrl: null,\n token: null,\n user: null,\n userName: null,\n onLogin: () => null,\n onLogout: () => null,\n});\n\nexport const AuthProvider = ({\n cookieOptions = {\n maxAge: 604800,\n path: '/',\n },\n LoginComponent,\n LoginProps = {},\n onGetToken = defaultOnGetToken,\n onSuccess,\n onError,\n serverUrl: propsServerUrl,\n userName: propsUserName,\n token: propsToken,\n children,\n}) => {\n const { data: userType, request: getUser } = useApi(UserApi.getUser);\n\n const [cookies, setCookie, removeCookie] = useCookies([\n VIDISPINE_TOKEN,\n VIDISPINE_USERNAME,\n VIDISPINE_SERVER_URL,\n VIDISPINE_REMEMBER_ME,\n ]);\n const {\n [VIDISPINE_TOKEN]: token = propsToken,\n [VIDISPINE_USERNAME]: userName = propsUserName,\n [VIDISPINE_SERVER_URL]: serverUrl = propsServerUrl,\n } = cookies;\n const rememberMe = cookies[VIDISPINE_REMEMBER_ME] === 'true';\n const { maxAge } = cookieOptions;\n const onLogin = (values) => {\n let submissionError;\n try {\n return onGetToken({ maxAge, ...values })\n .then((newToken) => {\n const {\n userName: newUserName,\n serverUrl: newServerUrl,\n rememberMe: newRememberMe,\n } = values;\n if (newUserName) setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions);\n if (newServerUrl) setCookie(VIDISPINE_SERVER_URL, newServerUrl, cookieOptions);\n if (newRememberMe) setCookie(VIDISPINE_REMEMBER_ME, newRememberMe, cookieOptions);\n if (newToken) setCookie(VIDISPINE_TOKEN, newToken, cookieOptions);\n if (onSuccess) onSuccess(values);\n })\n .catch((error) => {\n submissionError = error;\n if (onError) onError(submissionError);\n });\n } catch (error) {\n submissionError = error;\n if (onError) onError(submissionError);\n }\n return submissionError;\n };\n const onLogout = React.useCallback(() => {\n removeCookie(VIDISPINE_TOKEN, cookieOptions);\n if (!rememberMe) {\n removeCookie(VIDISPINE_USERNAME, cookieOptions);\n removeCookie(VIDISPINE_SERVER_URL, cookieOptions);\n removeCookie(VIDISPINE_REMEMBER_ME, cookieOptions);\n }\n }, [cookieOptions, rememberMe, removeCookie]);\n\n const responseInterceptor = React.useRef();\n React.useEffect(() => {\n if (token) {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n responseInterceptor.current = api.defaultClient.interceptors.response.use(\n (response) => response,\n (error) => {\n if (error.response) {\n if (error.response.status === 401) {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n }\n } else {\n const { config: { baseURL } = {} } = error;\n NoAuthApi.getSelfTest({ baseURL })\n .then(() => {\n onLogout();\n if (onError) onError(Error(ERROR_TOKEN_EXPIRED));\n })\n .catch(() => null); // Will throw if offline or CORS error\n }\n return Promise.reject(error);\n },\n );\n }\n return () => {\n if (responseInterceptor.current)\n api.defaultClient.interceptors.response.eject(responseInterceptor.current);\n };\n }, [onLogout, onError, token]);\n\n React.useEffect(() => {\n if (token && userName === undefined) {\n UserApi.whoAmI().then(({ data: newUserName }) =>\n setCookie(VIDISPINE_USERNAME, newUserName, cookieOptions),\n );\n }\n // eslint-disable-next-line react-hooks/exhaustive-deps\n }, [userName, token]);\n\n React.useEffect(() => {\n if (token && userName && userType === undefined) getUser({ userName });\n }, [userName, token, userType, getUser, onLogout]);\n React.useEffect(() => {\n if (token && serverUrl && propsServerUrl && serverUrl !== propsServerUrl) {\n onLogout();\n if (onError) onError(Error(ERROR_SERVER_MISMATCH));\n }\n }, [token, serverUrl, propsServerUrl, onLogout, onError]);\n\n return (\n <>\n {token ? (\n <VidispineApi token={token} username={userName} serverUrl={serverUrl}>\n <AuthContext.Provider\n value={{\n serverUrl,\n token,\n userType,\n userName,\n onLogin,\n onLogout,\n }}\n >\n {children}\n </AuthContext.Provider>\n </VidispineApi>\n ) : (\n <LoginComponent\n onLogin={onLogin}\n userName={userName}\n serverUrl={serverUrl}\n rememberMe={rememberMe}\n // eslint-disable-next-line react/jsx-props-no-spreading\n {...LoginProps}\n />\n )}\n </>\n );\n};\n\nexport const useAuthContext = () => {\n const context = React.useContext(AuthContext);\n if (context === undefined) {\n throw new Error('useAuth must be used within an AuthContext');\n }\n\n return context;\n};\n","import React from 'react';\n\nexport default ({\n children,\n setDrag,\n onDrop: onDropProp,\n onDragEnter: onDragEnterProp,\n onDragOver: onDragOverProp,\n onDragLeave: onDragLeaveProp,\n style,\n}) => {\n const [dragCounter, setDragCounter] = React.useState(0);\n\n const onDrop = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDrag(false);\n if (onDropProp) onDropProp(e);\n };\n\n const onDragEnter = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter + 1);\n if (dragCounter === 0) setDrag(true);\n if (onDragEnterProp) onDragEnterProp(e);\n };\n\n const onDragOver = (e) => {\n e.preventDefault();\n e.stopPropagation();\n if (onDragOverProp) onDragOverProp(e);\n };\n\n const onDragLeave = (e) => {\n e.preventDefault();\n e.stopPropagation();\n setDragCounter(dragCounter - 1);\n if (dragCounter === 1) setDrag(false);\n if (onDragLeaveProp) onDragLeaveProp(e);\n };\n\n return (\n <div\n onDragEnter={(e) => onDragEnter(e)}\n onDragOver={(e) => onDragOver(e)}\n onDrop={(e) => onDrop(e)}\n onDragLeave={(e) => onDragLeave(e)}\n style={style}\n >\n {children}\n </div>\n );\n};\n","import { collection as CollectionApi } from '@vidispine/vdt-api';\n\nexport const handleAddEntity = ({ entityId, entityType, collectionId, rootParentId, onError }) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.addCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not add ${entityId} to collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\nexport const handleRemoveEntity = ({\n entityId,\n entityType,\n collectionId,\n rootParentId,\n onError,\n}) => {\n if (collectionId && collectionId !== rootParentId) {\n try {\n return CollectionApi.removeCollectionEntity({\n collectionId,\n entityId,\n queryParams: {\n type: entityType.toLowerCase(),\n },\n });\n } catch (error) {\n onError({\n message: `Could not remove ${entityId} from collection ${collectionId}`,\n error,\n });\n }\n }\n return undefined;\n};\n\nexport const handleMoveEntity = ({\n entityId,\n entityType,\n addToCollectionId,\n removeFromCollectionId,\n rootParentId,\n onAddEntity = handleAddEntity,\n onRemoveEntity = handleRemoveEntity,\n onMoved = () => null,\n onAdded = () => null,\n onRemoved = () => null,\n // eslint-disable-next-line no-console\n onError = ({ message, error }) => console.error(`${message}\\n${error}`),\n}) => {\n if (!addToCollectionId) {\n onError({ message: 'Missing the collection id to add entity to', error: '' });\n return;\n }\n if (!removeFromCollectionId) {\n onError({ message: 'Missing the collection id to remove entity from', error: '' });\n return;\n }\n try {\n const addPromise = onAddEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: addToCollectionId,\n onError,\n });\n const removePromise = onRemoveEntity({\n entityId,\n entityType,\n rootParentId,\n collectionId: removeFromCollectionId,\n onError,\n });\n const promises = [addPromise, removePromise].filter((e) => e !== undefined);\n Promise.allSettled(promises)\n .then((results) => {\n const failedResults = results.filter((r) => r.status !== 'fulfilled');\n const allSucceeded = failedResults.length === 0;\n const allFailed = failedResults.length === promises.length;\n const oneFailed = failedResults.length === 1;\n if (allSucceeded) {\n onMoved();\n onAdded();\n onRemoved();\n } else if (allFailed) {\n onError({\n message:\n `Could not move ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n error: failedResults.map((fr) => fr.reason).join('\\n'),\n });\n } else if (oneFailed) {\n const failedRequest = failedResults[0].reason.config.method;\n const failedToRemove = failedRequest === 'delete';\n const failedToAdd = failedRequest === 'put';\n onError({\n message: failedToRemove\n ? `Could not remove ${entityId} from collection ${removeFromCollectionId}`\n : `Could not add ${entityId} to collection ${addToCollectionId}`,\n error: failedResults[0].reason,\n });\n let rollbackPromise;\n if (failedToRemove) {\n rollbackPromise = onRemoveEntity({\n entityId,\n entityType,\n collectionId: addToCollectionId,\n onError,\n });\n } else if (failedToAdd) {\n rollbackPromise = onAddEntity({\n entityId,\n entityType,\n collectionId: removeFromCollectionId,\n onError,\n });\n }\n if (rollbackPromise) {\n rollbackPromise\n .then(() => {\n // eslint-disable-next-line no-console\n console.info(\n `Rollbacked moving ${entityId} from ` +\n `${removeFromCollectionId} to ${addToCollectionId}`,\n );\n })\n .catch((error) => {\n onError({ message: 'Could not rollback after moving entity', error });\n });\n }\n }\n })\n .catch((error) => {\n onError({\n message: `Could not add ${entityId} to collection ${addToCollectionId}`,\n error,\n });\n });\n } catch (error) {\n onError({\n message: `Could not move ${entityId} from ${removeFromCollectionId} to collection ${addToCollectionId}`,\n error,\n });\n }\n};\n\nexport default { handleMoveEntity, handleAddEntity, handleRemoveEntity };\n"],"names":["setDefaultState","hasLoaded","isLoading","isError","response","undefined","data","responseRef","current","apiReducer","state","action","type","responseType","newState","initialState","canceltoken","api","CancelToken","source","useApi","apiHandler","initialDefaultState","initialStateRef","React","useRef","useReducer","dispatch","request","useCallback","props","Promise","resolve","reject","then","reset","useEffect","cancel","CHANGE_PAGE","CHANGE_ROWS","CHANGE_SORT","CHANGE_SEARCHTEXT","CHANGE_SEARCHFIELD","CHANGE_SEARCHFIELDFACET","CHANGE_SEARCHFILTER","CHANGE_SEARCHFILTERFACET","CHANGE_PARENT_COLLECTION","CHANGE_FACET","CHANGE_ITEMSEARCHDOCUMENT","CHANGE_QUERYPARAMS","CHANGE_MATRIXPARAMS","CHANGE_SUGGESTION","ACTION_TYPE","setInitialDefaultState","queryParams","matrixParams","itemSearchDocument","rowsPerPage","page","content","interval","first","number","intervals","filter","searchReducer","searchText","value","sort","field","order","text","facet","parentCollection","operator","name","operation","suggestion","useSearch","onChangeRowsPerPage","newRows","target","onChangePage","newPage","onChangeSort","event","setSearchText","setItemSearchDocument","setQueryParams","CHANGE_ITEMQUERYPARAMS","setMatrixParams","CHANGE_ITEMMATRIXPARAMS","setSearchField","setSearchFieldFacet","map","count","setSearchFilter","setSearchFilterFacet","fieldList","reduce","a","concat","exclude","setFacet","setParentCollection","setSuggestion","useUpdateEffect","fn","inputs","hasMountedRef","maximumSuggestions","useAutocomplete","useState","autocompleteDoc","setAutocompleteDoc","setAutocompleteField","setAutocompleteText","setAutocompleteMaxSuggestions","SearchApi","searchAutoComplete","suggestions","autocompleteRequestDocument","propKey","selected","setSelected","onSelect","checked","propValue","currentIndex","findIndex","thisSelected","newSelected","splice","isSelected","onClear","initialTab","activeTab","setActiveTab","changeTab","_","newValue","useInterval","callback","delay","savedCallback","tick","id","setInterval","clearInterval","useThumbnailScrub","srcList","savedInterval","initialImgIdx","useMemo","Math","floor","length","imgIdx","setImgIdx","imgIdxRef","width","onMouseEnter","onMouseLeave","imageSrc","CHANGE_TYPE","CHANGE_STATE","CHANGE_PRIORITY","CHANGE_STARTTIME","CHANGE_FINISHTIME","jobMetadata","rest","deleteField","newMatrixParams","Array","isArray","join","newQueryParams","CHANGE_JOBMETADATA","useJobSearch","fieldName","onChangeType","onChangeState","onChangePriority","onChangeStarttime","onChangeFinishtime","onChangeJobmetadata","useLocalStorage","localStorageKey","defaultValue","JSON","parse","window","localStorage","getItem","stringify","setValue","setItem","getValue","uuidv4","replace","c","crypto","getRandomValues","Uint8Array","toString","b64EncodeUnicode","str","compressToEncodedURIComponent","b64DecodeUnicode","slice","decodeURIComponent","atob","split","charCodeAt","decompressFromEncodedURIComponent","DEFAULT_AUDIO_SHAPETAGS","DEFAULT_VIDEO_SHAPETAGS","DEFAULT_IMAGE_SHAPETAGS","AUDIO_MIMETYPE_PREFIX","VIDEO_MIMETYPE_PREFIX","IMAGE_MIMETYPE_PREFIX","ADDITIONAL_VIDEO_MIMETYPES","ADDITIONAL_IMAGE_MIMETYPES","ADDITIONAL_AUDIO_MIMETYPES","getDefaultShapeTags","file","mimeType","toLowerCase","startsWith","includes","chunkedUpload","uploadInstance","ChunkedUpload","onFail","error","onComplete","resp","upload","onUploadFile","collectionId","onProgress","metadata","propsMetadata","placeholderParams","importParams","chunkedUploadProps","generateTransferId","getShapeTags","itemId","shapeTags","filename","mediaType","originalFilename","metadataDocument","createMetadataType","ImportApi","createImportPlaceholder","container","itemDocument","collectionIds","all","CollectionApi","addCollectionEntity","entityId","transferId","tag","method","createImportComponentRaw","component","err","console","useUploadFiles","handleUploadFile","initialMetadata","files","setFiles","forEach","URL","revokeObjectURL","preview","onAddFiles","newFiles","newFilesObj","title","currentFiles","onChangeFile","idx","changeFile","currentFilesList","currentFile","newMetadata","newProgress","progress","currentMetadata","currentProgress","newFilesList","newFile","onChangeProgress","onChangeMetadata","onUpload","uploadProps","previousPromise","thisFile","res","currentResult","onRemoveFile","i","onRemoveFiles","idxs","useQueryInitialState","history","queryName","defaultState","defaultStateRef","queryState","searchParams","URLSearchParams","location","search","encodedQuery","get","decodedQuery","pathName","queryInitialState","useUpdateQueryState","onSearchStateChange","useEntityAccess","entityType","AccessApi","listEntityAccess","accessControlList","onList","onRemove","accessId","removeEntityAccess","onAdd","accessControlDocument","createEntityAccess","getValueFromData","key","find","d","defaultGetDataAttributes","fieldOrGroup","keys","Object","assign","getOptions","values","f","label","convertValuesXmlToJson","xmlString","doc","DOMParser","parseFromString","fields","getElementsByTagName","json","childNodes","keyNode","valueNode","push","nodeName","firstChild","nodeValue","useAddMetadataFieldAttributes","groups","getDataAttributes","fieldDataToInclude","groupDataToInclude","fieldQueryParams","groupQueryParams","setIsLoading","fieldsWithAttributes","setFieldsWithAttributes","groupsWithAttributes","setGroupsWithAttributes","useDeepCompareEffect","addFieldAttributes","fieldsArray","fieldsAttributes","overrides","fieldAttributes","dataAttributes","constraint","options","addGroupAttributes","groupsArray","groupsAttributes","group","groupAttributes","childFields","childGroups","didCancel","fetchAttributesAsync","fieldPromises","MetadataFieldApi","getMetadataField","warn","groupPromises","groupsToFetch","groupName","FieldGroupApi","getFieldGroup","dataValues","e","jsonValues","g","some","v","newGroupsWithAttributes","b","indexOf","UPDATE_FREQUENCY","UPDATE_MODE","saveSearch","markerField","markerValue","ItemApi","searchItem","result","updateMode","updateFrequency","library","createCollection","collectionDocument","getLibraryFromCollection","getCollection","children","collectionType","libraryType","Error","deleteSearch","libraryId","LibraryApi","removeLibrary","removeCollection","getLibrarySettings","query","getSavedSearchSettings","useSavedSearch","initialSearchState","onSaveSearch","onDeleteSearch","onUpdateSearchMetadata","updateCollectionMetadata","onGetSavedSearchSettings","saveSearchWithMarker","mergeMarkerField","searchProps","useSearchItem","itemListType","onRefresh","useMouseDownPosition","x","y","position","setPosition","setFromEvent","clientX","clientY","addEventListener","removeEventListener","useGetCollection","refreshOnMount","getCollectionItem","useGetEntity","dataType","entityApi","entityTypeId","getLibrary","apiProps","onGetEntity","useUser","UserApi","getUser","userType","userName","updateUser","userDocument","updateUserGroups","updateUserGroup","groupListDocument","removeUserFromGroup","GroupApi","removeGroupUser","changePassword","password","passwordType","deleteUser","disableUser","hard","args","enableUser","CHANGE_QUERY","userSearchDocument","useSearchUser","searchUser","userListDocument","onSearchUser","onChangeQuery","useListGroup","listGroup","groupListType","useListUser","listUser","userListType","HIDE_ROLES","groupSearchDocument","hideRoles","role","useSearchGroup","searchGroup","onSearchGroup","onHideRoles","useGroup","getGroup","groupType","updateGroup","groupDocument","addChildGroups","childGroupList","addParentGroups","parentGroupList","addUsersToGroup","users","userList","user","u","removeChildGroup","childGroupName","removeGroupChildren","removeFromParentGroup","parentGroupName","removeGroup","useGetItem","itemType","useCollectionAutoPlay","defaultEnabled","nextPlaying","setNextPlaying","isAutoPlayEnabled","setIsAutoPlayEnabled","toggleAutoPlay","prevValue","allItemsRef","orderItemsRef","hitsRef","onNext","searchDocument","searchForNext","allItems","orderItems","searchCollectionItem","hits","item","itemList","contentList","currentItemIdx","thisId","remainingItems","nextItem","useHoverScrub","customOffset","durationSeconds","scrubPosition","setScrubPosition","thumbnailIndex","setThumbnailIndex","showScrub","setShowScrub","thumbnailTimeCodeArray","setThumbnailTimeCodeArray","thumbnailTimeCode","setThumbnailTimeCode","thumbnailWidth","setThumbnailWidth","getInnerLeft","left","currentTarget","offsetLeft","offsetWidth","onMouseMove","innerLeft","pxToSec","pxAsTimeCode","formatSeconds","index","timeCode","nextTimeCode","toSeconds","toFixed","timeCodes","uri","timeCodeFromURI","timecodeText","formatTimeCodeText","handleShowScrub","useDocSearchAutocomplete","searchDoc","debounceTime","suggestionSettings","accuracy","triggerLength","apiCall","textValue","setTextValue","handleAutocompleteChange","debounce","autocomplete","body","useGetFieldMetadataDataset","MetadatafieldApi","getMetadataFieldAllowedValues","constraintValueListType","getMetadataDataset","datasetField","parentValue","parentField","metadataFieldValueConstraintListDocument","dataset","getCollectionTitle","useGetSavedSearchFolders","childFolders","markerProps","expand","currentFolders","setCurrentFolders","subFolders","setSubFolders","errors","setErrors","getSubFolders","timespan","newFolders","prevState","createFolder","parentId","saved_search_folder","updateCollection","mode","collection","folderId","deleteFolder","removeItem","folder","useRepresentativeItems","onError","representativeItems","setRepresentativeItems","asyncGetRepresentativeItems","getCollectionMetadata","parseMetadataType","flat","includeValueAttributes","newRepresentativeItems","updateAsRepresentativeItem","entityIdValueUuids","uuid","defaultOnGetStorage","storageData","StorageApi","listStorage","storage","defaultOnCreate","list","createLibrary","itemListDocument","defaultOnList","storageInfo","fileName","outputFormat","createNewUri","uriBeforeRegion","uriAfterRegion","newUri","encodeURIComponent","getLibraryBatch","destinationUri","SUCCESSFUL_STATES","INACTIVE_STATES","defaultOnGetFile","params","jobId","filePath","JobApi","getJob","status","FileApi","listFileStorage","storageId","path","methodMetadata","r","open","message","setTimeout","useCsvDownload","onSuccess","onGetFile","onCreateList","onGetStorage","onDownload","MetadataType","joinValue","metadataType","cloneProps","cloneChild","child","cloneElement","Children","SearchCollection","searchCollection","collectionListType","SearchItem","SearchItemCollection","searchItemCollection","searchResultType","GetItem","GetCollectionContent","GetJobs","listJob","jobs","ListEntityAccess","VidispineApi","serverUrl","token","username","runAs","defaultClient","defaults","baseURL","headers","Authorization","auth","RunAs","prevProps","Component","VIDISPINE_TOKEN","VIDISPINE_USERNAME","VIDISPINE_SERVER_URL","VIDISPINE_REMEMBER_ME","handleOnGetToken","seconds","autoRefresh","getToken","submissionError","Auth","LoginComponent","LoginProps","AppComponent","AppProps","onGetToken","cookieOptions","maxAge","useCookies","cookies","setCookie","removeCookie","rememberMe","onLogin","newToken","newUserName","newServerUrl","newRememberMe","onLogout","ErrorBoundaryComponent","info","height","maxHeight","maxWidth","backgroundColor","color","componentStack","ErrorBoundary","hasError","nextProps","nextState","nextInfo","onErrorError","setState","GetFieldGroup","metadataFieldGroupDocument","RolesContext","createContext","RolesProvider","intialState","knownUserName","setGroupListType","onGetUserRole","getUserRole","iAm","whoAmI","useRoles","useContext","hasRole","roleName","groupList","groupNames","ROLES","SUPER_ACCESS_USER","thisRole","HasRole","allow","deny","loading","checkedRole","isValidElement","ComposeProviders","providers","reduceRight","acc","Provider","ProviderComponent","provider","providerProps","withErrorBoundary","WrappedComponent","errorBoundaryProps","compose","funcs","arg","BinContext","defaultIsUniqueBinItem","bin","entityTimespan","start","end","entityExistsInBin","o","entity","entityTimespanExistsInBin","binEntitiesWithSameId","beStart","beEnd","beName","BinProvider","onChange","allowDuplicates","defaultAllowDuplicates","isUniqueBinItem","binState","setBinState","setAllowDuplicates","onDelete","binIdToDelete","binId","onEmptyBin","createBinObject","binObject","handleDrop","dragInfo","handleSort","dragId","hoverId","originalDragIndex","dragIndex","hoverIndex","newDragIndex","setBin","onDrop","onSort","onFind","SettingsDispatchContext","SettingsStateContext","UPDATE_ALL_SETTINGS","UPDATE_SETTING","UPDATE_USERNAME","REMOVE_SETTING","reducer","settings","setting","SettingsProvider","initialUsername","settingsKey","initialSettings","getSettingsApi","MetadataApi","getSimpleMetadataKey","updateSettingsApi","updateSimpleMetadataKey","currentSettingsFromServer","currentValue","useSettingsState","useSettingsDispatch","useSettingsActions","updateAllSettings","updateSetting","updateUsername","removeSetting","useSettings","actions","ERROR_CREDENTIALS","ERROR_OFFLINE","ERROR_TOKEN_EXPIRED","ERROR_SERVER_MISMATCH","getErrorMessage","NoAuthApi","getSelfTest","defaultOnGetToken","AuthContext","AuthProvider","propsServerUrl","propsUserName","propsToken","responseInterceptor","interceptors","eject","use","config","useAuthContext","context","setDrag","onDropProp","onDragEnterProp","onDragEnter","onDragOverProp","onDragOver","onDragLeaveProp","onDragLeave","style","dragCounter","setDragCounter","preventDefault","stopPropagation","handleAddEntity","rootParentId","handleRemoveEntity","removeCollectionEntity","handleMoveEntity","addToCollectionId","removeFromCollectionId","onAddEntity","onRemoveEntity","onMoved","onAdded","onRemoved","addPromise","removePromise","promises","allSettled","results","failedResults","allSucceeded","allFailed","oneFailed","fr","reason","failedRequest","failedToRemove","failedToAdd","rollbackPromise"],"mappings":"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"}