@wavemaker/app-rn-runtime 11.7.0-patch.2 → 11.7.0-patch.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/components/basic/button/button.component.js +1 -0
- package/components/basic/button/button.component.js.map +1 -1
- package/components/basic/progress-bar/progress-bar.component.js +23 -1
- package/components/basic/progress-bar/progress-bar.component.js.map +1 -1
- package/components/basic/search/search.component.js +6 -4
- package/components/basic/search/search.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.component.js +5 -1
- package/components/container/tabs/tabheader/tabheader.component.js.map +1 -1
- package/components/container/tabs/tabheader/tabheader.styles.js +1 -1
- package/components/container/tabs/tabheader/tabheader.styles.js.map +1 -1
- package/components/container/tabs/tabs.component.js +11 -7
- package/components/container/tabs/tabs.component.js.map +1 -1
- package/components/container/wizard/wizard.component.js +1 -1
- package/components/container/wizard/wizard.component.js.map +1 -1
- package/components/container/wizard/wizard.props.js +1 -0
- package/components/container/wizard/wizard.props.js.map +1 -1
- package/components/data/form/form.props.js +1 -0
- package/components/data/form/form.props.js.map +1 -1
- package/components/data/list/list.component.js +10 -1
- package/components/data/list/list.component.js.map +1 -1
- package/components/data/list/list.styles.js +2 -0
- package/components/data/list/list.styles.js.map +1 -1
- package/components/data/liveform/liveform.component.js +2 -2
- package/components/data/liveform/liveform.component.js.map +1 -1
- package/components/input/checkboxset/checkboxset.component.js +13 -4
- package/components/input/checkboxset/checkboxset.component.js.map +1 -1
- package/components/input/checkboxset/checkboxset.props.js +6 -0
- package/components/input/checkboxset/checkboxset.props.js.map +1 -1
- package/components/input/checkboxset/checkboxset.styles.js +1 -0
- package/components/input/checkboxset/checkboxset.styles.js.map +1 -1
- package/components/input/switch/switch.styles.js +1 -1
- package/components/input/switch/switch.styles.js.map +1 -1
- package/components/page/tabbar/tabbar.component.js +6 -6
- package/components/page/tabbar/tabbar.component.js.map +1 -1
- package/core/utils.js +53 -0
- package/core/utils.js.map +1 -1
- package/package.json +2 -2
- package/runtime/App.js +9 -7
- package/runtime/App.js.map +1 -1
- package/runtime/base-page.component.js +1 -1
- package/runtime/base-page.component.js.map +1 -1
- package/runtime/services/app-security.service.js +2 -0
- package/runtime/services/app-security.service.js.map +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","AppSecurityService","constructor","_defineProperty","interceptors","request","use","config","onBeforeServiceCall","appConfig","getAppConfig","baseUrl","url","getXsrfToken","then","token","_config$url","startsWith","headers","Promise","resolve","getItem","xsrf_token","get","navigateToLandingPage","_this$appConfig$curre","_this$appConfig$logge","currentPage","goToPage","loggedInUser","landingPage","setTimeout","_this$appConfig$curre2","openUrl","appLogin","options","payload","formData","value","name","encodeURIComponent","defaults","withCredentials","post","baseURL","response","xsrfCookieValue","data","setItem","isLoggedIn","load","userData","getLoggedInUserDetails","useDefaultSuccessHandler","app","triggerStartUpVariables","isConnected","getServiceDefinitions","defaultSecurityConfig","details","securityConfig","isSecurityEnabled","securityEnabled","authenticated","isAuthenticated","roles","userInfo","userRoles","userName","id","userId","tenantId","userAttributes","dataSet","redirectToLogin","arguments","length","undefined","redirectTo","_this$securityConfig","loginConfig","type","authUrl","OS","window","parent","location","href","execute","output","JSON","parse","replace","reject","refresh","_this$securityConfig$","_this$appConfig$curre3","loginPage","pageName","appLogout","catch","canUserAccessPage","_this$securityConfig2","res","status","matchRoles","widgetRoles","some","item","hasAccessToWidget","_this$loggedInUser$da","_this$loggedInUser$da2","_this$loggedInUser$da3","_this$loggedInUser$da4","widgetRolesArr","split","EVERYONE","ANONYMOUS","AUTHENTICATED","appSecurityService"],"sources":["app-security.service.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';\nimport { each, includes } from 'lodash';\n\nimport networkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { SecurityService } from '@wavemaker/app-rn-runtime/core/security.service';\n\nimport WebProcessService from './webprocess.service';\n\ndeclare const window: any;\n\ninterface LoggedInUserConfig {\n isAuthenticated: Boolean;\n isSecurityEnabled: Boolean;\n roles: Array<string>;\n name: String;\n id: String;\n tenantId: String;\n userAttributes: any;\n landingPage: string;\n}\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\nconst authCookieStr = 'AUTH_COOKIE';\nconst XSRF_COOKIE_NAME = 'wm_xsrf_token';\nconst xsrf_header_name = 'X-WM-XSRF-TOKEN';\n\nclass AppSecurityService implements SecurityService {\n\n securityConfig: any;\n isLoggedIn = false;\n loggedInUser: any = {};\n token: any;\n appConfig: any;\n baseUrl: string = '';\n defaultSecurityConfig: any;\n landingPage = '';\n\n constructor() {\n axios.interceptors.request.use((config: InternalAxiosRequestConfig) => this.onBeforeServiceCall(config));\n }\n\n onBeforeServiceCall(config: InternalAxiosRequestConfig) {\n if (!this.appConfig) {\n this.appConfig = this.getAppConfig();\n this.baseUrl = this.appConfig.url;\n }\n return this.getXsrfToken().then((token: string) => {\n if (config.url?.startsWith(this.baseUrl) && token) {\n if(config.headers) config.headers[xsrf_header_name] = token;\n }\n return config\n });\n }\n\n private getXsrfToken(): Promise<string> {\n if (this.token) {\n return Promise.resolve(this.token);\n }\n return StorageService.getItem(XSRF_COOKIE_NAME).then(xsrf_token => {\n this.token = xsrf_token;\n return this.token;\n });\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public navigateToLandingPage() {\n this.appConfig.currentPage?.goToPage(\n this.appConfig.loggedInUser?.landingPage \n || this.appConfig.landingPage \n || 'Main', null, true);\n if (this.landingPage) {\n const landingPage = this.landingPage;\n this.landingPage = '';\n setTimeout(() => {\n this.appConfig.currentPage?.openUrl(landingPage);\n }, 100);\n }\n }\n\n public appLogin(options: any) {\n // encode all parameters\n let payload = '';\n each(options.formData, function (value, name) {\n payload += (payload ? '&' : '') + encodeURIComponent(name) + '=' + encodeURIComponent(value);\n });\n axios.defaults.withCredentials = true;\n return axios.post(options.baseURL + '/j_spring_security_check', payload, {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }}).then((response: AxiosResponse) => {\n const xsrfCookieValue = response.data ? response.data[XSRF_COOKIE_NAME] : '';\n this.token = xsrfCookieValue;\n StorageService.setItem(XSRF_COOKIE_NAME, xsrfCookieValue);\n this.isLoggedIn = true;\n }).then(() => this.load(options.baseURL))\n .then(async () => {\n const userData = await this.getLoggedInUserDetails(options.baseURL, options.useDefaultSuccessHandler);\n await this.appConfig.app.triggerStartUpVariables();\n return userData;\n });\n }\n\n public load(baseURL: string) {\n return Promise.resolve().then(() => {\n if (networkService.isConnected()) {\n return axios.get(baseURL + '/services/security/info')\n .then((response: AxiosResponse) => response.data);\n }\n return this.appConfig.getServiceDefinitions(this.appConfig.url)\n .then(() => Promise.resolve(this.defaultSecurityConfig));\n }).then((details: any) => {\n const loggedInUser = {} as LoggedInUserConfig;\n this.securityConfig = details || {};\n this.securityConfig.isSecurityEnabled = !!details?.securityEnabled;\n const appConfig = this.appConfig;\n if (typeof details !== 'string' && (!details.securityEnabled || details.authenticated)) {\n if (details.authenticated) {\n loggedInUser.isAuthenticated = details.authenticated;\n loggedInUser.isSecurityEnabled = details.authenticated;\n loggedInUser.roles = details.userInfo.userRoles;\n loggedInUser.name = details.userInfo.userName;\n loggedInUser.id = details.userInfo.userId;\n loggedInUser.tenantId = details.userInfo.tenantId;\n loggedInUser.userAttributes = details.userInfo.userAttributes;\n loggedInUser.landingPage = details.userInfo.landingPage;\n appConfig.loggedInUser = loggedInUser;\n this.loggedInUser.dataSet = loggedInUser;\n }\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n return details;\n });\n } else {\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n this.redirectToLogin();\n });\n }\n });\n }\n\n private getLoggedInUserDetails(baseURL: string, useDefaultSuccessHandler: boolean = true) {\n if (!baseURL) {\n this.loggedInUser = {};\n return Promise.resolve({});\n }\n return this.load(baseURL);\n }\n\n \n public redirectToLogin(redirectTo?: string) {\n if (this.securityConfig?.loginConfig?.type === 'SSO') {\n const authUrl = this.appConfig.url + '/services/security/ssologin';\n if (Platform.OS === 'web') {\n (window.parent || window).location.href = authUrl;\n } else {\n setTimeout(() => {\n WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true)\n .then((output: any) => {\n if (output) {\n return JSON.parse(output.data && output.data.replace(/"/g, \"\\\"\"));\n }\n return Promise.reject();\n }).then((output: any) => {\n if (output[XSRF_COOKIE_NAME]) {\n this.token = output[XSRF_COOKIE_NAME];\n StorageService.setItem(XSRF_COOKIE_NAME, output[XSRF_COOKIE_NAME]);\n }\n }).then(() => {\n this.appConfig.refresh(true);\n }).then(() => this.load(this.baseUrl)).then(() => {\n return this.getLoggedInUserDetails(this.baseUrl);\n });\n }, 1000);\n }\n } else {\n const loginPage = this.securityConfig.loginConfig?.pageName || 'Login';\n if (redirectTo && !redirectTo.startsWith('#/'+ loginPage)) {\n this.landingPage = redirectTo;\n }\n injector.get<AppConfig>('APP_CONFIG').landingPage = loginPage;\n this.appConfig.currentPage?.goToPage(loginPage, null, true);\n }\n this.appConfig.refresh();\n }\n\n public appLogout(options: any) {\n return axios.post(options.baseURL + '/j_spring_security_logout', null, {\n withCredentials: true\n }).catch(() => {}).then(() => {\n this.isLoggedIn = false;\n this.redirectToLogin();\n });\n }\n\n public canUserAccessPage(pageName: string) {\n if (this.baseUrl && this.securityConfig?.isSecurityEnabled) {\n return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`)\n .catch((res) => res)\n .then((res) => res.status === 200 || res.status === 304); \n } else {\n return Promise.resolve(true);\n }\n }\n\n private matchRoles(widgetRoles: Array<String>, userRoles: Array<String>) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n public hasAccessToWidget(widgetRoles: String) {\n const widgetRolesArr = widgetRoles.split(',');\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRolesArr, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRolesArr, USER_ROLE.ANONYMOUS) && !this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRolesArr, USER_ROLE.AUTHENTICATED) && this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.loggedInUser.dataSet?.isAuthenticated && this.matchRoles(widgetRolesArr, this.loggedInUser.dataSet?.roles);\n }\n}\n\nconst appSecurityService = new AppSecurityService();\n\nexport default appSecurityService;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"names":["Platform","axios","each","includes","networkService","injector","StorageService","WebProcessService","USER_ROLE","authCookieStr","XSRF_COOKIE_NAME","xsrf_header_name","AppSecurityService","constructor","_defineProperty","interceptors","request","use","config","onBeforeServiceCall","appConfig","getAppConfig","baseUrl","url","getXsrfToken","then","token","_config$url","startsWith","headers","Promise","resolve","getItem","xsrf_token","get","navigateToLandingPage","_this$appConfig$curre","_this$appConfig$logge","currentPage","goToPage","loggedInUser","landingPage","setTimeout","_this$appConfig$curre2","openUrl","appLogin","options","payload","formData","value","name","encodeURIComponent","defaults","withCredentials","post","baseURL","response","xsrfCookieValue","data","setItem","isLoggedIn","load","userData","getLoggedInUserDetails","useDefaultSuccessHandler","app","triggerStartUpVariables","isConnected","getServiceDefinitions","defaultSecurityConfig","details","securityConfig","isSecurityEnabled","securityEnabled","authenticated","_appConfig$appPropert","isAuthenticated","roles","userInfo","userRoles","userName","id","userId","tenantId","userAttributes","dataSet","appProperties","homePage","redirectToLogin","arguments","length","undefined","redirectTo","_this$securityConfig","loginConfig","type","authUrl","OS","window","parent","location","href","execute","output","JSON","parse","replace","reject","refresh","_this$securityConfig$","_this$appConfig$curre3","loginPage","pageName","appLogout","catch","canUserAccessPage","_this$securityConfig2","res","status","matchRoles","widgetRoles","some","item","hasAccessToWidget","_this$loggedInUser$da","_this$loggedInUser$da2","_this$loggedInUser$da3","_this$loggedInUser$da4","widgetRolesArr","split","EVERYONE","ANONYMOUS","AUTHENTICATED","appSecurityService"],"sources":["app-security.service.tsx"],"sourcesContent":["import { Platform } from 'react-native';\nimport axios, { InternalAxiosRequestConfig, AxiosResponse } from 'axios';\nimport { each, includes } from 'lodash';\n\nimport networkService from '@wavemaker/app-rn-runtime/core/network.service';\nimport injector from '@wavemaker/app-rn-runtime/core/injector';\nimport AppConfig from '@wavemaker/app-rn-runtime/core/AppConfig';\nimport StorageService from '@wavemaker/app-rn-runtime/core/storage.service';\nimport { SecurityService } from '@wavemaker/app-rn-runtime/core/security.service';\n\nimport WebProcessService from './webprocess.service';\n\ndeclare const window: any;\n\ninterface LoggedInUserConfig {\n isAuthenticated: Boolean;\n isSecurityEnabled: Boolean;\n roles: Array<string>;\n name: String;\n id: String;\n tenantId: String;\n userAttributes: any;\n landingPage: string;\n}\n\nenum USER_ROLE {\n EVERYONE = 'Everyone',\n ANONYMOUS = 'Anonymous',\n AUTHENTICATED = 'Authenticated'\n}\n\nconst authCookieStr = 'AUTH_COOKIE';\nconst XSRF_COOKIE_NAME = 'wm_xsrf_token';\nconst xsrf_header_name = 'X-WM-XSRF-TOKEN';\n\nclass AppSecurityService implements SecurityService {\n\n securityConfig: any;\n isLoggedIn = false;\n loggedInUser: any = {};\n token: any;\n appConfig: any;\n baseUrl: string = '';\n defaultSecurityConfig: any;\n landingPage = '';\n\n constructor() {\n axios.interceptors.request.use((config: InternalAxiosRequestConfig) => this.onBeforeServiceCall(config));\n }\n\n onBeforeServiceCall(config: InternalAxiosRequestConfig) {\n if (!this.appConfig) {\n this.appConfig = this.getAppConfig();\n this.baseUrl = this.appConfig.url;\n }\n return this.getXsrfToken().then((token: string) => {\n if (config.url?.startsWith(this.baseUrl) && token) {\n if(config.headers) config.headers[xsrf_header_name] = token;\n }\n return config\n });\n }\n\n private getXsrfToken(): Promise<string> {\n if (this.token) {\n return Promise.resolve(this.token);\n }\n return StorageService.getItem(XSRF_COOKIE_NAME).then(xsrf_token => {\n this.token = xsrf_token;\n return this.token;\n });\n }\n\n private getAppConfig() {\n return injector.get<AppConfig>('APP_CONFIG');\n }\n\n public navigateToLandingPage() {\n this.appConfig.currentPage?.goToPage(\n this.appConfig.loggedInUser?.landingPage \n || this.appConfig.landingPage \n || 'Main', null, true);\n if (this.landingPage) {\n const landingPage = this.landingPage;\n this.landingPage = '';\n setTimeout(() => {\n this.appConfig.currentPage?.openUrl(landingPage);\n }, 100);\n }\n }\n\n public appLogin(options: any) {\n // encode all parameters\n let payload = '';\n each(options.formData, function (value, name) {\n payload += (payload ? '&' : '') + encodeURIComponent(name) + '=' + encodeURIComponent(value);\n });\n axios.defaults.withCredentials = true;\n return axios.post(options.baseURL + '/j_spring_security_check', payload, {\n withCredentials: true,\n headers: {\n 'Content-Type': 'application/x-www-form-urlencoded'\n }}).then((response: AxiosResponse) => {\n const xsrfCookieValue = response.data ? response.data[XSRF_COOKIE_NAME] : '';\n this.token = xsrfCookieValue;\n StorageService.setItem(XSRF_COOKIE_NAME, xsrfCookieValue);\n this.isLoggedIn = true;\n }).then(() => this.load(options.baseURL))\n .then(async () => {\n const userData = await this.getLoggedInUserDetails(options.baseURL, options.useDefaultSuccessHandler);\n await this.appConfig.app.triggerStartUpVariables();\n return userData;\n });\n }\n\n public load(baseURL: string) {\n return Promise.resolve().then(() => {\n if (networkService.isConnected()) {\n return axios.get(baseURL + '/services/security/info')\n .then((response: AxiosResponse) => response.data);\n }\n return this.appConfig.getServiceDefinitions(this.appConfig.url)\n .then(() => Promise.resolve(this.defaultSecurityConfig));\n }).then((details: any) => {\n const loggedInUser = {} as LoggedInUserConfig;\n this.securityConfig = details || {};\n this.securityConfig.isSecurityEnabled = !!details?.securityEnabled;\n const appConfig = this.appConfig;\n if (typeof details !== 'string' && (!details.securityEnabled || details.authenticated)) {\n if (details.authenticated) {\n loggedInUser.isAuthenticated = details.authenticated;\n loggedInUser.isSecurityEnabled = details.authenticated;\n loggedInUser.roles = details.userInfo.userRoles;\n loggedInUser.name = details.userInfo.userName;\n loggedInUser.id = details.userInfo.userId;\n loggedInUser.tenantId = details.userInfo.tenantId;\n loggedInUser.userAttributes = details.userInfo.userAttributes;\n loggedInUser.landingPage = details.userInfo.landingPage;\n appConfig.loggedInUser = loggedInUser;\n this.loggedInUser.dataSet = loggedInUser;\n appConfig.landingPage = appConfig.appProperties?.homePage;\n }\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n return details;\n });\n } else {\n return appConfig.getServiceDefinitions(appConfig.url)\n .then(() => {\n this.redirectToLogin();\n });\n }\n });\n }\n\n private getLoggedInUserDetails(baseURL: string, useDefaultSuccessHandler: boolean = true) {\n if (!baseURL) {\n this.loggedInUser = {};\n return Promise.resolve({});\n }\n return this.load(baseURL);\n }\n\n \n public redirectToLogin(redirectTo?: string) {\n if (this.securityConfig?.loginConfig?.type === 'SSO') {\n const authUrl = this.appConfig.url + '/services/security/ssologin';\n if (Platform.OS === 'web') {\n (window.parent || window).location.href = authUrl;\n } else {\n setTimeout(() => {\n WebProcessService.execute('LOGIN', '/services/security/ssologin', false, true)\n .then((output: any) => {\n if (output) {\n return JSON.parse(output.data && output.data.replace(/"/g, \"\\\"\"));\n }\n return Promise.reject();\n }).then((output: any) => {\n if (output[XSRF_COOKIE_NAME]) {\n this.token = output[XSRF_COOKIE_NAME];\n StorageService.setItem(XSRF_COOKIE_NAME, output[XSRF_COOKIE_NAME]);\n }\n }).then(() => {\n this.appConfig.refresh(true);\n }).then(() => this.load(this.baseUrl)).then(() => {\n return this.getLoggedInUserDetails(this.baseUrl);\n });\n }, 1000);\n }\n } else {\n const loginPage = this.securityConfig.loginConfig?.pageName || 'Login';\n if (redirectTo && !redirectTo.startsWith('#/'+ loginPage)) {\n this.landingPage = redirectTo;\n }\n injector.get<AppConfig>('APP_CONFIG').landingPage = loginPage;\n this.appConfig.currentPage?.goToPage(loginPage, null, true);\n }\n this.appConfig.refresh();\n }\n\n public appLogout(options: any) {\n return axios.post(options.baseURL + '/j_spring_security_logout', null, {\n withCredentials: true\n }).catch(() => {}).then(() => {\n this.isLoggedIn = false;\n this.redirectToLogin();\n });\n }\n\n public canUserAccessPage(pageName: string) {\n if (this.baseUrl && this.securityConfig?.isSecurityEnabled) {\n return axios.get(this.baseUrl + `/pages/${pageName}/${pageName}.html`)\n .catch((res) => res)\n .then((res) => res.status === 200 || res.status === 304); \n } else {\n return Promise.resolve(true);\n }\n }\n\n private matchRoles(widgetRoles: Array<String>, userRoles: Array<String>) {\n return widgetRoles.some(function (item) {\n return includes(userRoles, item);\n });\n }\n\n public hasAccessToWidget(widgetRoles: String) {\n const widgetRolesArr = widgetRoles.split(',');\n // access the widget when 'Everyone' is chosen\n if (includes(widgetRolesArr, USER_ROLE.EVERYONE)) {\n return true;\n }\n\n // access the widget when 'Anonymous' is chosen and user is not authenticated\n if (includes(widgetRolesArr, USER_ROLE.ANONYMOUS) && !this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when 'Only Authenticated Users' is chosen and user is authenticated\n if (includes(widgetRolesArr, USER_ROLE.AUTHENTICATED) && this.loggedInUser.dataSet?.isAuthenticated) {\n return true;\n }\n\n // access the widget when widget role and logged in user role matches\n return this.loggedInUser.dataSet?.isAuthenticated && this.matchRoles(widgetRolesArr, this.loggedInUser.dataSet?.roles);\n }\n}\n\nconst appSecurityService = new AppSecurityService();\n\nexport default appSecurityService;\n"],"mappings":"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"}
|