@lobehub/chat 0.114.4 → 0.114.6
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/CHANGELOG.md +42 -0
- package/README.md +16 -14
- package/README.zh-CN.md +16 -14
- package/docs/Deployment/Docker-Deployment.md +1 -0
- package/docs/Deployment/Docker-Deployment.zh-CN.md +1 -0
- package/package.json +1 -1
- package/src/app/chat/features/Conversation/ChatList/Plugins/Render/DefaultType/IFrameRender/index.tsx +2 -1
- package/src/app/chat/features/Conversation/ChatList/Plugins/Render/StandaloneType/Iframe.tsx +2 -1
- package/src/features/SideBar/TopActions.tsx +27 -25
- package/src/layout/GlobalLayout/StoreHydration.tsx +6 -0
package/CHANGELOG.md
CHANGED
|
@@ -2,6 +2,48 @@
|
|
|
2
2
|
|
|
3
3
|
# Changelog
|
|
4
4
|
|
|
5
|
+
### [Version 0.114.6](https://github.com/lobehub/lobe-chat/compare/v0.114.5...v0.114.6)
|
|
6
|
+
|
|
7
|
+
<sup>Released on **2023-12-22**</sup>
|
|
8
|
+
|
|
9
|
+
<br/>
|
|
10
|
+
|
|
11
|
+
<details>
|
|
12
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
13
|
+
|
|
14
|
+
</details>
|
|
15
|
+
|
|
16
|
+
<div align="right">
|
|
17
|
+
|
|
18
|
+
[](#readme-top)
|
|
19
|
+
|
|
20
|
+
</div>
|
|
21
|
+
|
|
22
|
+
### [Version 0.114.5](https://github.com/lobehub/lobe-chat/compare/v0.114.4...v0.114.5)
|
|
23
|
+
|
|
24
|
+
<sup>Released on **2023-12-19**</sup>
|
|
25
|
+
|
|
26
|
+
#### 💄 Styles
|
|
27
|
+
|
|
28
|
+
- **misc**: Fix plugin iframe width.
|
|
29
|
+
|
|
30
|
+
<br/>
|
|
31
|
+
|
|
32
|
+
<details>
|
|
33
|
+
<summary><kbd>Improvements and Fixes</kbd></summary>
|
|
34
|
+
|
|
35
|
+
#### Styles
|
|
36
|
+
|
|
37
|
+
- **misc**: Fix plugin iframe width, closes [#721](https://github.com/lobehub/lobe-chat/issues/721) ([53ad132](https://github.com/lobehub/lobe-chat/commit/53ad132))
|
|
38
|
+
|
|
39
|
+
</details>
|
|
40
|
+
|
|
41
|
+
<div align="right">
|
|
42
|
+
|
|
43
|
+
[](#readme-top)
|
|
44
|
+
|
|
45
|
+
</div>
|
|
46
|
+
|
|
5
47
|
### [Version 0.114.4](https://github.com/lobehub/lobe-chat/compare/v0.114.3...v0.114.4)
|
|
6
48
|
|
|
7
49
|
<sup>Released on **2023-12-19**</sup>
|
package/README.md
CHANGED
|
@@ -52,7 +52,7 @@ Supports one-click free deployment of your private ChatGPT/LLM web application.
|
|
|
52
52
|
- [✨ Features](#-features)
|
|
53
53
|
- [⚡️ Performance](#️-performance)
|
|
54
54
|
- [🛳 Self Hosting](#-self-hosting)
|
|
55
|
-
- [`A` Deploying with Vercel or
|
|
55
|
+
- [`A` Deploying with Vercel, Zeabur or Sealos](#a-deploying-with-vercel-zeabur-or-sealos)
|
|
56
56
|
- [`B` Deploying with Docker](#b-deploying-with-docker)
|
|
57
57
|
- [Environment Variable](#environment-variable)
|
|
58
58
|
- [📦 Ecosystem](#-ecosystem)
|
|
@@ -172,9 +172,9 @@ e-commerce platform data access, and various third-party services.
|
|
|
172
172
|
| [weather GPT](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **Steven Tey** on **2023-12-16**</sup> | Get current weather information for a specific location.<br/>`weather` |
|
|
173
173
|
| [Ask Your PDF](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **AskYourPDF** on **2023-12-16**</sup> | Unlock the power of your PDFs!, dive into your documents, find answers, and bring information to your fingertips.<br/>`pdf` `document` `web` |
|
|
174
174
|
| [Clock Time](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **LobeHub** on **2023-11-01**</sup> | Display a clock to show current time<br/>`clock` `time` |
|
|
175
|
-
| [
|
|
175
|
+
| [Mindmap](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **Moonlit7** on **2023-12-19**</sup> | A mindmap generation assistant<br/>`mindmap` |
|
|
176
176
|
|
|
177
|
-
> 📊 Total plugins: [<kbd>**
|
|
177
|
+
> 📊 Total plugins: [<kbd>**9**</kbd>](https://github.com/lobehub/lobe-chat-plugins)
|
|
178
178
|
|
|
179
179
|
<!-- PLUGIN LIST -->
|
|
180
180
|
|
|
@@ -206,14 +206,14 @@ Our marketplace is not just a showcase platform but also a collaborative space.
|
|
|
206
206
|
|
|
207
207
|
<!-- AGENT LIST -->
|
|
208
208
|
|
|
209
|
-
| Recent Submits
|
|
210
|
-
|
|
|
211
|
-
| [
|
|
212
|
-
| [
|
|
213
|
-
| [
|
|
214
|
-
| [
|
|
209
|
+
| Recent Submits | Description |
|
|
210
|
+
| ---------------------------------------------------------------------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
211
|
+
| [Dream Painter](https://chat-preview.lobehub.com/market?agent=dream-painter)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A dream artist who can bring your dreams into reality.<br/>`txt-2-img` `painter` |
|
|
212
|
+
| [NewsHub](https://chat-preview.lobehub.com/market?agent=news-hub)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A news search assistant proficient at finding and presenting relevant news<br/>`news` `search` `helper` |
|
|
213
|
+
| [NewsNest](https://chat-preview.lobehub.com/market?agent=news-nest)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | A news search assistant, can help you find and display relevant news based on your needs.<br/>`news` `search` |
|
|
214
|
+
| [Research Assistant](https://chat-preview.lobehub.com/market?agent=research-assistant)<br/><sup>By **[ccsen](https://github.com/ccsen)** on **2023-12-19**</sup> | Capable of answering questions, conducting research, drafting content, and more, utilizing scientific research papers.<br/>`research-assistant` `literature-retrieval` `writing` `scientific-research` `citation` |
|
|
215
215
|
|
|
216
|
-
> 📊 Total agents: [<kbd>**
|
|
216
|
+
> 📊 Total agents: [<kbd>**78**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
|
|
217
217
|
|
|
218
218
|
<!-- AGENT LIST -->
|
|
219
219
|
|
|
@@ -327,7 +327,7 @@ Beside these features, LobeChat also have much better basic technique undergroun
|
|
|
327
327
|
|
|
328
328
|
LobeChat provides Self-Hosted Version with Vercel and [Docker Image][docker-release-link]. This allows you to deploy your own chatbot within a few minutes without any prior knowledge.
|
|
329
329
|
|
|
330
|
-
### `A` Deploying with Vercel or
|
|
330
|
+
### `A` Deploying with Vercel, Zeabur or Sealos
|
|
331
331
|
|
|
332
332
|
If you want to deploy this service yourself on either Vercel or Zeabur, you can follow these steps:
|
|
333
333
|
|
|
@@ -338,9 +338,9 @@ If you want to deploy this service yourself on either Vercel or Zeabur, you can
|
|
|
338
338
|
|
|
339
339
|
<div align="center">
|
|
340
340
|
|
|
341
|
-
| Deploy with Vercel | Deploy with Zeabur |
|
|
342
|
-
| :-------------------------------------: | :---------------------------------------------------------: |
|
|
343
|
-
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] |
|
|
341
|
+
| Deploy with Vercel | Deploy with Zeabur | Deploy with Sealos |
|
|
342
|
+
| :-------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: |
|
|
343
|
+
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] | [![][deploy-on-sealos-button-image]][deploy-on-sealos-link] |
|
|
344
344
|
|
|
345
345
|
</div>
|
|
346
346
|
|
|
@@ -571,6 +571,8 @@ This project is [MIT](./LICENSE) licensed.
|
|
|
571
571
|
[codespaces-shield]: https://github.com/codespaces/badge.svg
|
|
572
572
|
[deploy-button-image]: https://vercel.com/button
|
|
573
573
|
[deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat&env=OPENAI_API_KEY&envDescription=Find%20your%20OpenAI%20API%20Key%20by%20click%20the%20right%20Learn%20More%20button.&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&project-name=lobe-chat&repository-name=lobe-chat
|
|
574
|
+
[deploy-on-sealos-button-image]: https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg
|
|
575
|
+
[deploy-on-sealos-link]: https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dlobe-chat
|
|
574
576
|
[deploy-on-zeabur-button-image]: https://zeabur.com/button.svg
|
|
575
577
|
[deploy-on-zeabur-link]: https://zeabur.com/templates/VZGGTI
|
|
576
578
|
[discord-link]: https://discord.gg/AYFPHvv2jT
|
package/README.zh-CN.md
CHANGED
|
@@ -49,7 +49,7 @@ LobeChat 是开源的高性能聊天机器人框架,支持语音合成、多
|
|
|
49
49
|
- [✨ 特性一览](#-特性一览)
|
|
50
50
|
- [⚡️ 性能测试](#️-性能测试)
|
|
51
51
|
- [🛳 开箱即用](#-开箱即用)
|
|
52
|
-
- [`A` 使用 Vercel 或
|
|
52
|
+
- [`A` 使用 Vercel、Zeabur 或 Sealos 部署](#a-使用-vercelzeabur-或-sealos-部署)
|
|
53
53
|
- [`B` 使用 Docker 部署](#b-使用-docker-部署)
|
|
54
54
|
- [环境变量](#环境变量)
|
|
55
55
|
- [📦 生态系统](#-生态系统)
|
|
@@ -153,9 +153,9 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
|
|
153
153
|
| [天气 GPT](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **Steven Tey** on **2023-12-16**</sup> | 获取特定位置的当前天气信息。<br/>`天气` |
|
|
154
154
|
| [AskYouPDF](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **AskYourPDF** on **2023-12-16**</sup> | 释放您的 PDF 的力量!深入您的文档,找到答案,并将信息带到您的指尖。<br/>`pdf` `文档` `web` |
|
|
155
155
|
| [时钟时间](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **LobeHub** on **2023-11-01**</sup> | 显示一个时钟来展示当前时间<br/>`时钟` `时间` |
|
|
156
|
-
| [
|
|
156
|
+
| [思维导图](https://chat-preview.lobehub.com/settings/agent)<br/><sup>By **Moonlit7** on **2023-12-19**</sup> | 思维导图生成助手<br/>`思维导图` `脑图` |
|
|
157
157
|
|
|
158
|
-
> 📊 Total plugins: [<kbd>**
|
|
158
|
+
> 📊 Total plugins: [<kbd>**9**</kbd>](https://github.com/lobehub/lobe-chat-plugins)
|
|
159
159
|
|
|
160
160
|
<!-- PLUGIN LIST -->
|
|
161
161
|
|
|
@@ -183,14 +183,14 @@ LobeChat 的插件生态系统是其核心功能的重要扩展,它极大地
|
|
|
183
183
|
|
|
184
184
|
<!-- AGENT LIST -->
|
|
185
185
|
|
|
186
|
-
| 最近新增
|
|
187
|
-
|
|
|
188
|
-
| [
|
|
189
|
-
| [
|
|
190
|
-
| [
|
|
191
|
-
| [
|
|
186
|
+
| 最近新增 | 助手说明 |
|
|
187
|
+
| --------------------------------------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------- |
|
|
188
|
+
| [梦境画家](https://chat-preview.lobehub.com/market?agent=dream-painter)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一位能将你的梦想变成现实的梦境艺术家。<br/>`txt-2-img` `painter` |
|
|
189
|
+
| [NewsHub](https://chat-preview.lobehub.com/market?agent=news-hub)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一个新闻搜索助手,擅长查找和呈现相关新闻<br/>`新闻` `搜索` `助手` |
|
|
190
|
+
| [NewsNest](https://chat-preview.lobehub.com/market?agent=news-nest)<br/><sup>By **[ccdanpian](https://github.com/ccdanpian)** on **2023-12-19**</sup> | 一个新闻搜索助手,可以根据您的需求帮助您查找和显示相关新闻。<br/>`新闻` `搜索` |
|
|
191
|
+
| [研究助理](https://chat-preview.lobehub.com/market?agent=research-assistant)<br/><sup>By **[ccsen](https://github.com/ccsen)** on **2023-12-19**</sup> | 能够回答问题,进行研究,起草内容等,利用科学研究论文。<br/>`research-assistant` `literature-retrieval` `writing` `scientific-research` `citation` |
|
|
192
192
|
|
|
193
|
-
> 📊 Total agents: [<kbd>**
|
|
193
|
+
> 📊 Total agents: [<kbd>**78**</kbd> ](https://github.com/lobehub/lobe-chat-agents)
|
|
194
194
|
|
|
195
195
|
<!-- AGENT LIST -->
|
|
196
196
|
|
|
@@ -299,7 +299,7 @@ LobeChat 提供了 Vercel 的 自托管版本 和 [Docker 镜像][docker-release
|
|
|
299
299
|
|
|
300
300
|
<br/>
|
|
301
301
|
|
|
302
|
-
### `A` 使用 Vercel 或
|
|
302
|
+
### `A` 使用 Vercel、Zeabur 或 Sealos 部署
|
|
303
303
|
|
|
304
304
|
如果想在 Vercel 或 Zeabur 上部署该服务,可以按照以下步骤进行操作:
|
|
305
305
|
|
|
@@ -310,9 +310,9 @@ LobeChat 提供了 Vercel 的 自托管版本 和 [Docker 镜像][docker-release
|
|
|
310
310
|
|
|
311
311
|
<div align="center">
|
|
312
312
|
|
|
313
|
-
| 使用 Vercel 部署 | 使用 Zeabur 部署 |
|
|
314
|
-
| :-------------------------------------: | :---------------------------------------------------------: |
|
|
315
|
-
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] |
|
|
313
|
+
| 使用 Vercel 部署 | 使用 Zeabur 部署 | 使用 Sealos 部署 |
|
|
314
|
+
| :-------------------------------------: | :---------------------------------------------------------: | :---------------------------------------------------------: |
|
|
315
|
+
| [![][deploy-button-image]][deploy-link] | [![][deploy-on-zeabur-button-image]][deploy-on-zeabur-link] | [![][deploy-on-sealos-button-image]][deploy-on-sealos-link] |
|
|
316
316
|
|
|
317
317
|
</div>
|
|
318
318
|
|
|
@@ -543,6 +543,8 @@ This project is [MIT](./LICENSE) licensed.
|
|
|
543
543
|
[codespaces-shield]: https://github.com/codespaces/badge.svg
|
|
544
544
|
[deploy-button-image]: https://vercel.com/button
|
|
545
545
|
[deploy-link]: https://vercel.com/new/clone?repository-url=https%3A%2F%2Fgithub.com%2Flobehub%2Flobe-chat&env=OPENAI_API_KEY&envDescription=Find%20your%20OpenAI%20API%20Key%20by%20click%20the%20right%20Learn%20More%20button.&envLink=https%3A%2F%2Fplatform.openai.com%2Faccount%2Fapi-keys&project-name=lobe-chat&repository-name=lobe-chat
|
|
546
|
+
[deploy-on-sealos-button-image]: https://raw.githubusercontent.com/labring-actions/templates/main/Deploy-on-Sealos.svg
|
|
547
|
+
[deploy-on-sealos-link]: https://cloud.sealos.io/?openapp=system-template%3FtemplateName%3Dlobe-chat
|
|
546
548
|
[deploy-on-zeabur-button-image]: https://zeabur.com/button.svg
|
|
547
549
|
[deploy-on-zeabur-link]: https://zeabur.com/templates/VZGGTI
|
|
548
550
|
[discord-link]: https://discord.gg/AYFPHvv2jT
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@lobehub/chat",
|
|
3
|
-
"version": "0.114.
|
|
3
|
+
"version": "0.114.6",
|
|
4
4
|
"description": "Lobe Chat - an open-source, high-performance chatbot framework that supports speech synthesis, multimodal, and extensible Function Call plugin system. Supports one-click free deployment of your private ChatGPT/LLM web application.",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"framework",
|
|
@@ -35,7 +35,7 @@ const IFrameRender = memo<IFrameRenderProps>(({ url, width = 800, height = 300,
|
|
|
35
35
|
|
|
36
36
|
return (
|
|
37
37
|
<>
|
|
38
|
-
{loading && <Skeleton active style={{ width }} />}
|
|
38
|
+
{loading && <Skeleton active style={{ maxWidth: '100%', width }} />}
|
|
39
39
|
<iframe
|
|
40
40
|
// @ts-ignore
|
|
41
41
|
allowtransparency="true"
|
|
@@ -51,6 +51,7 @@ const IFrameRender = memo<IFrameRenderProps>(({ url, width = 800, height = 300,
|
|
|
51
51
|
// iframe 在 color-scheme:dark 模式下无法透明
|
|
52
52
|
// refs: https://www.jianshu.com/p/bc5a37bb6a7b
|
|
53
53
|
colorScheme: 'light',
|
|
54
|
+
maxWidth: '100%',
|
|
54
55
|
}}
|
|
55
56
|
width={width}
|
|
56
57
|
/>
|
package/src/app/chat/features/Conversation/ChatList/Plugins/Render/StandaloneType/Iframe.tsx
CHANGED
|
@@ -120,7 +120,7 @@ const IFrameRender = memo<IFrameRenderProps>(({ url, id, payload, width = 600, h
|
|
|
120
120
|
|
|
121
121
|
return (
|
|
122
122
|
<>
|
|
123
|
-
{loading && <Skeleton active style={{ width }} />}
|
|
123
|
+
{loading && <Skeleton active style={{ maxWidth: '100%', width }} />}
|
|
124
124
|
<iframe
|
|
125
125
|
// @ts-ignore
|
|
126
126
|
allowtransparency="true"
|
|
@@ -136,6 +136,7 @@ const IFrameRender = memo<IFrameRenderProps>(({ url, id, payload, width = 600, h
|
|
|
136
136
|
// iframe 在 color-scheme:dark 模式下无法透明
|
|
137
137
|
// refs: https://www.jianshu.com/p/bc5a37bb6a7b
|
|
138
138
|
colorScheme: 'light',
|
|
139
|
+
maxWidth: '100%',
|
|
139
140
|
}}
|
|
140
141
|
width={width}
|
|
141
142
|
/>
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ActionIcon } from '@lobehub/ui';
|
|
2
2
|
import { Bot, MessageSquare } from 'lucide-react';
|
|
3
|
-
import
|
|
3
|
+
import Link from 'next/link';
|
|
4
4
|
import { memo } from 'react';
|
|
5
5
|
import { useTranslation } from 'react-i18next';
|
|
6
6
|
|
|
@@ -14,37 +14,39 @@ export interface TopActionProps {
|
|
|
14
14
|
}
|
|
15
15
|
|
|
16
16
|
const TopActions = memo<TopActionProps>(({ tab, setTab }) => {
|
|
17
|
-
const pathname = usePathname();
|
|
18
|
-
const router = useRouter();
|
|
19
17
|
const { t } = useTranslation('common');
|
|
20
18
|
const switchBackToChat = useSessionStore((s) => s.switchBackToChat);
|
|
19
|
+
|
|
21
20
|
return (
|
|
22
21
|
<>
|
|
23
|
-
<
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
// 如果已经在 chat 路径下了,那么就不用再跳转了
|
|
28
|
-
if (pathname?.startsWith('/chat')) return;
|
|
22
|
+
<Link
|
|
23
|
+
href={'/chat'}
|
|
24
|
+
onClick={(e) => {
|
|
25
|
+
e.preventDefault();
|
|
29
26
|
switchBackToChat();
|
|
30
27
|
setTab(SidebarTabKey.Chat);
|
|
31
28
|
}}
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
29
|
+
>
|
|
30
|
+
<ActionIcon
|
|
31
|
+
active={tab === SidebarTabKey.Chat}
|
|
32
|
+
icon={MessageSquare}
|
|
33
|
+
placement={'right'}
|
|
34
|
+
size="large"
|
|
35
|
+
title={t('tab.chat')}
|
|
36
|
+
/>
|
|
37
|
+
</Link>
|
|
38
|
+
<Link href={'/market'}>
|
|
39
|
+
<ActionIcon
|
|
40
|
+
active={tab === SidebarTabKey.Market}
|
|
41
|
+
icon={Bot}
|
|
42
|
+
onClick={() => {
|
|
43
|
+
setTab(SidebarTabKey.Market);
|
|
44
|
+
}}
|
|
45
|
+
placement={'right'}
|
|
46
|
+
size="large"
|
|
47
|
+
title={t('tab.market')}
|
|
48
|
+
/>
|
|
49
|
+
</Link>
|
|
48
50
|
</>
|
|
49
51
|
);
|
|
50
52
|
});
|
|
@@ -29,6 +29,12 @@ const StoreHydration = memo(() => {
|
|
|
29
29
|
},
|
|
30
30
|
[router],
|
|
31
31
|
);
|
|
32
|
+
useEffect(() => {
|
|
33
|
+
router.prefetch('/chat');
|
|
34
|
+
router.prefetch('/market');
|
|
35
|
+
router.prefetch('/settings/common');
|
|
36
|
+
router.prefetch('/settings/agent');
|
|
37
|
+
}, [router]);
|
|
32
38
|
|
|
33
39
|
return null;
|
|
34
40
|
});
|