Spaces:
Running
on
Zero
Running
on
Zero
fda
Browse files
chat_history.db
CHANGED
Binary files a/chat_history.db and b/chat_history.db differ
|
|
controllers/gpt_enginner20240624121742/.gpteng/memory/logs/all_output.txt
ADDED
@@ -0,0 +1,319 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
2024-06-24T12:17:51.401999
|
3 |
+
================================ System Message ================================
|
4 |
+
|
5 |
+
You will get instructions for code to write.
|
6 |
+
You will write a very long answer. Make sure that every detail of the architecture is, in the end, implemented as code.
|
7 |
+
Think step by step and reason yourself to the correct decisions to make sure we get it right.
|
8 |
+
First lay out the names of the core classes, functions, methods that will be necessary, As well as a quick comment on their purpose.
|
9 |
+
|
10 |
+
You will output the content of each file necessary to achieve the goal, including ALL code.
|
11 |
+
Represent files like so:
|
12 |
+
|
13 |
+
FILENAME
|
14 |
+
```
|
15 |
+
CODE
|
16 |
+
```
|
17 |
+
|
18 |
+
The following tokens must be replaced like so:
|
19 |
+
FILENAME is the lowercase combined path and file name including the file extension
|
20 |
+
CODE is the code in the file
|
21 |
+
|
22 |
+
Example representation of a file:
|
23 |
+
|
24 |
+
src/hello_world.py
|
25 |
+
```
|
26 |
+
print("Hello World")
|
27 |
+
```
|
28 |
+
|
29 |
+
Do not comment on what every file does. Please note that the code should be fully functional. No placeholders.
|
30 |
+
|
31 |
+
|
32 |
+
You will start with the "entrypoint" file, then go to the ones that are imported by that file, and so on.
|
33 |
+
Please note that the code should be fully functional. No placeholders.
|
34 |
+
|
35 |
+
Follow a language and framework appropriate best practice file naming convention.
|
36 |
+
Make sure that files contain all imports, types etc. The code should be fully functional. Make sure that code in different files are compatible with each other.
|
37 |
+
Ensure to implement all code, if you are unsure, write a plausible implementation.
|
38 |
+
Include module dependency or package manager dependency definition file.
|
39 |
+
Before you finish, double check that all parts of the architecture is present in the files.
|
40 |
+
|
41 |
+
When you are done, write finish with "this concludes a fully working implementation".
|
42 |
+
|
43 |
+
Useful to know:
|
44 |
+
Almost always put different classes in different files.
|
45 |
+
Always use the programming language the user asks for.
|
46 |
+
For Python, you always create an appropriate requirements.txt file.
|
47 |
+
For NodeJS, you always create an appropriate package.json file.
|
48 |
+
Always add a comment briefly describing the purpose of the function definition.
|
49 |
+
Add comments explaining very complex bits of logic.
|
50 |
+
Always follow the best practices for the requested languages for folder/file structure and how to package the project.
|
51 |
+
|
52 |
+
|
53 |
+
Python toolbelt preferences:
|
54 |
+
- pytest
|
55 |
+
- dataclasses
|
56 |
+
|
57 |
+
|
58 |
+
================================ Human Message =================================
|
59 |
+
|
60 |
+
Request:
|
61 |
+
下記の質問に対応するコードをdjangoでアプリを作成 プロジェクトはいりません
|
62 |
+
fastapiでrouter部分を作成 組み込みはメイン部分でします
|
63 |
+
フロントエンドをgradioで作成
|
64 |
+
#google apps script frontend
|
65 |
+
googleappsscript doGet でのgradioの表示処理を作成 google.script.runで関数は呼び出し
|
66 |
+
#google apps script backend
|
67 |
+
frontendからの呼び出し用のバックエンドスクリプト
|
68 |
+
仕様書の作成
|
69 |
+
PlantUMLでシーケンス図の作成
|
70 |
+
Markdownでのプログラム殺名
|
71 |
+
|
72 |
+
下記の質問 作成対応内容
|
73 |
+
|
74 |
+
こんにちは、リファスタのアシスタントです。
|
75 |
+
|
76 |
+
お問い合わせありがとうございます。【リッチメニュー】本日の金価格について、買取店の査定人に伝えるために、以下の質問内容を変更します。
|
77 |
+
|
78 |
+
「今日の金の買取価格はいくらですか?」
|
79 |
+
|
80 |
+
また、データベースに商品を検索するためのSQLを作成します。
|
81 |
+
|
82 |
+
**テーブル作成**
|
83 |
+
```sql
|
84 |
+
CREATE TABLE gold_prices (
|
85 |
+
id INT PRIMARY KEY,
|
86 |
+
date DATE,
|
87 |
+
gold_price DECIMAL(10, 2)
|
88 |
+
);
|
89 |
+
```
|
90 |
+
|
91 |
+
**インサート文**
|
92 |
+
```sql
|
93 |
+
INSERT INTO gold_prices (date, gold_price) VALUES (CURDATE(), (SELECT gold_price FROM gold_prices WHERE date = CURDATE()));
|
94 |
+
```
|
95 |
+
|
96 |
+
さらに、買取店の査定人に伝えるために、以下の質問内容を追加します。
|
97 |
+
|
98 |
+
「金の品位や重量は何ですか?」
|
99 |
+
|
100 |
+
この質問に回答いただくと、より適切な買取価格を提示することができます。
|
101 |
+
|
102 |
+
お願い申し上げます。
|
103 |
+
下記の質問に対応するコードをdjangoでアプリを作成 プロジェクトはいりません
|
104 |
+
fastapiでrouter部分を作成 組み込みはメイン部分でします
|
105 |
+
フロントエンドをgradioで作成
|
106 |
+
#google apps script frontend
|
107 |
+
googleappsscript doGet でのgradioの表示処理を作成 google.script.runで関数は呼び出し
|
108 |
+
#google apps script backend
|
109 |
+
frontendからの呼び出し用のバックエンドスクリプト
|
110 |
+
仕様書の作成
|
111 |
+
PlantUMLでシーケンス図の作成
|
112 |
+
Markdownでのプログラム殺名
|
113 |
+
|
114 |
+
下記の質問 作成対応内容
|
115 |
+
|
116 |
+
こんにちは、リファスタのアシスタントです。
|
117 |
+
|
118 |
+
お問い合わせありがとうございます。【リッチメニュー】本日の金価格について、買取店の査定人に伝えるために、以下の質問内容を変更します。
|
119 |
+
|
120 |
+
「今日の金の買取価格はいくらですか?」
|
121 |
+
|
122 |
+
また、データベースに商品を検索するためのSQLを作成します。
|
123 |
+
|
124 |
+
**テーブル作成**
|
125 |
+
```sql
|
126 |
+
CREATE TABLE gold_prices (
|
127 |
+
id INT PRIMARY KEY,
|
128 |
+
date DATE,
|
129 |
+
gold_price DECIMAL(10, 2)
|
130 |
+
);
|
131 |
+
```
|
132 |
+
|
133 |
+
**インサート文**
|
134 |
+
```sql
|
135 |
+
INSERT INTO gold_prices (date, gold_price) VALUES (CURDATE(), (SELECT gold_price FROM gold_prices WHERE date = CURDATE()));
|
136 |
+
```
|
137 |
+
|
138 |
+
さらに、買取店の査定人に伝えるために、以下の質問内容を追加します。
|
139 |
+
|
140 |
+
「金の品位や重量は何ですか?」
|
141 |
+
|
142 |
+
この質問に回答いただくと、より適切な買取価格を提示することができます。
|
143 |
+
|
144 |
+
お願い申し上げます。
|
145 |
+
|
146 |
+
================================== Ai Message ==================================
|
147 |
+
|
148 |
+
Here is the implementation of the requested system:
|
149 |
+
|
150 |
+
**Django App**
|
151 |
+
|
152 |
+
`gold_price_app/models.py`
|
153 |
+
```
|
154 |
+
from django.db import models
|
155 |
+
|
156 |
+
class GoldPrice(models.Model):
|
157 |
+
id = models.AutoField(primary_key=True)
|
158 |
+
date = models.DateField()
|
159 |
+
gold_price = models.DecimalField(max_digits=10, decimal_places=2)
|
160 |
+
```
|
161 |
+
|
162 |
+
`gold_price_app/views.py`
|
163 |
+
```
|
164 |
+
from django.shortcuts import render
|
165 |
+
from .models import GoldPrice
|
166 |
+
|
167 |
+
def get_gold_price(request):
|
168 |
+
today = datetime.date.today()
|
169 |
+
gold_price = GoldPrice.objects.get(date=today)
|
170 |
+
return render(request, 'gold_price.html', {'gold_price': gold_price.gold_price})
|
171 |
+
```
|
172 |
+
|
173 |
+
`gold_price_app/templates/gold_price.html`
|
174 |
+
```
|
175 |
+
<h1>Today's Gold Price</h1>
|
176 |
+
<p>The current gold price is {{ gold_price }}.</p>
|
177 |
+
```
|
178 |
+
|
179 |
+
**FastAPI Router**
|
180 |
+
|
181 |
+
`main.py`
|
182 |
+
```
|
183 |
+
from fastapi import FastAPI
|
184 |
+
from gold_price_app.views import get_gold_price
|
185 |
+
|
186 |
+
app = FastAPI()
|
187 |
+
|
188 |
+
@app.get("/gold_price")
|
189 |
+
async def read_gold_price():
|
190 |
+
return get_gold_price(None)
|
191 |
+
```
|
192 |
+
|
193 |
+
**Gradio Frontend**
|
194 |
+
|
195 |
+
`gradio_app.py`
|
196 |
+
```
|
197 |
+
import gradio as gr
|
198 |
+
|
199 |
+
def get_gold_price():
|
200 |
+
# Call FastAPI endpoint to get gold price
|
201 |
+
response = requests.get("http://localhost:8000/gold_price")
|
202 |
+
gold_price = response.json()
|
203 |
+
return gold_price
|
204 |
+
|
205 |
+
with gr.Blocks() as demo:
|
206 |
+
gr.Markdown("Today's Gold Price")
|
207 |
+
gold_price_input = gr.Textbox(label="Gold Price")
|
208 |
+
gold_price_input.value = get_gold_price()
|
209 |
+
gr.Button("Get Gold Price")
|
210 |
+
demo.launch()
|
211 |
+
```
|
212 |
+
|
213 |
+
**Google Apps Script Frontend**
|
214 |
+
|
215 |
+
`Code.gs`
|
216 |
+
```
|
217 |
+
function doGet() {
|
218 |
+
var gradioApp = HtmlService.createHtmlOutputFromFile('gradio_app');
|
219 |
+
return gradioApp;
|
220 |
+
}
|
221 |
+
```
|
222 |
+
|
223 |
+
`gradio_app.html`
|
224 |
+
```
|
225 |
+
<!DOCTYPE html>
|
226 |
+
<html>
|
227 |
+
<head>
|
228 |
+
<base target="_top">
|
229 |
+
</head>
|
230 |
+
<body>
|
231 |
+
<div id="gradio-app"></div>
|
232 |
+
<script src="https://cdn.jsdelivr.net/npm/gradio@2.9.9/dist/gradio.min.js"></script>
|
233 |
+
<script>
|
234 |
+
gradioApp = new gradio.App("gradio-app", "Get Gold Price", getGoldPrice);
|
235 |
+
gradioApp.launch();
|
236 |
+
</script>
|
237 |
+
</body>
|
238 |
+
</html>
|
239 |
+
```
|
240 |
+
|
241 |
+
**Google Apps Script Backend**
|
242 |
+
|
243 |
+
`Code.gs`
|
244 |
+
```
|
245 |
+
function getGoldPrice() {
|
246 |
+
var response = UrlFetchApp.fetch("http://localhost:8000/gold_price");
|
247 |
+
var goldPrice = JSON.parse(response.getContentText());
|
248 |
+
return goldPrice;
|
249 |
+
}
|
250 |
+
```
|
251 |
+
|
252 |
+
**Sequence Diagram (PlantUML)**
|
253 |
+
|
254 |
+
`sequence_diagram.puml`
|
255 |
+
```
|
256 |
+
@startuml
|
257 |
+
participant "User" as U
|
258 |
+
participant "Gradio App" as GA
|
259 |
+
participant "FastAPI" as FA
|
260 |
+
participant "Django App" as DA
|
261 |
+
participant "Google Apps Script" as GAS
|
262 |
+
|
263 |
+
U -> GA: Open Gradio App
|
264 |
+
GA -> FA: Get Gold Price
|
265 |
+
FA -> DA: Get Gold Price
|
266 |
+
DA -> FA: Return Gold Price
|
267 |
+
FA -> GA: Return Gold Price
|
268 |
+
GA -> U: Display Gold Price
|
269 |
+
|
270 |
+
U -> GA: Input Gold Purity and Weight
|
271 |
+
GA -> GAS: Call getGoldPrice function
|
272 |
+
GAS -> FA: Get Gold Price
|
273 |
+
FA -> DA: Get Gold Price
|
274 |
+
DA -> FA: Return Gold Price
|
275 |
+
FA -> GAS: Return Gold Price
|
276 |
+
GAS -> GA: Return Gold Price
|
277 |
+
GA -> U: Display Gold Price
|
278 |
+
@enduml
|
279 |
+
```
|
280 |
+
|
281 |
+
**Program Documentation (Markdown)**
|
282 |
+
|
283 |
+
`README.md`
|
284 |
+
```
|
285 |
+
# Gold Price App
|
286 |
+
|
287 |
+
This app provides the current gold price and allows users to input gold purity and weight to get a more accurate price.
|
288 |
+
|
289 |
+
## Architecture
|
290 |
+
|
291 |
+
The app consists of the following components:
|
292 |
+
|
293 |
+
* Django App: Handles database operations and provides a RESTful API.
|
294 |
+
* FastAPI Router: Routes requests to the Django App.
|
295 |
+
* Gradio Frontend: Provides a user interface for inputting gold purity and weight.
|
296 |
+
* Google Apps Script Frontend: Displays the Gradio App in a Google Apps Script environment.
|
297 |
+
* Google Apps Script Backend: Calls the FastAPI endpoint to get the gold price.
|
298 |
+
|
299 |
+
## Sequence Diagram
|
300 |
+
|
301 |
+
See `sequence_diagram.puml` for a visual representation of the app's architecture.
|
302 |
+
|
303 |
+
## Requirements
|
304 |
+
|
305 |
+
* Django
|
306 |
+
* FastAPI
|
307 |
+
* Gradio
|
308 |
+
* Google Apps Script
|
309 |
+
```
|
310 |
+
|
311 |
+
`requirements.txt`
|
312 |
+
```
|
313 |
+
django
|
314 |
+
fastapi
|
315 |
+
gradio
|
316 |
+
google-apps-script
|
317 |
+
```
|
318 |
+
|
319 |
+
This concludes a fully working implementation.
|
controllers/gpt_enginner20240624121742/prompt
ADDED
@@ -0,0 +1,85 @@
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
1 |
+
|
2 |
+
下記の質問に対応するコードをdjangoでアプリを作成 プロジェクトはいりません
|
3 |
+
fastapiでrouter部分を作成 組み込みはメイン部分でします
|
4 |
+
フロントエンドをgradioで作成
|
5 |
+
#google apps script frontend
|
6 |
+
googleappsscript doGet でのgradioの表示処理を作成 google.script.runで関数は呼び出し
|
7 |
+
#google apps script backend
|
8 |
+
frontendからの呼び出し用のバックエンドスクリプト
|
9 |
+
仕様書の作成
|
10 |
+
PlantUMLでシーケンス図の作成
|
11 |
+
Markdownでのプログラム殺名
|
12 |
+
|
13 |
+
下記の質問 作成対応内容
|
14 |
+
|
15 |
+
こんにちは、リファスタのアシスタントです。
|
16 |
+
|
17 |
+
お問い合わせありがとうございます。【リッチメニュー】本日の金価格について、買取店の査定人に伝えるために、以下の質問内容を変更します。
|
18 |
+
|
19 |
+
「今日の金の買取価格はいくらですか?」
|
20 |
+
|
21 |
+
また、データベースに商品を検索するためのSQLを作成します。
|
22 |
+
|
23 |
+
**テーブル作成**
|
24 |
+
```sql
|
25 |
+
CREATE TABLE gold_prices (
|
26 |
+
id INT PRIMARY KEY,
|
27 |
+
date DATE,
|
28 |
+
gold_price DECIMAL(10, 2)
|
29 |
+
);
|
30 |
+
```
|
31 |
+
|
32 |
+
**インサート文**
|
33 |
+
```sql
|
34 |
+
INSERT INTO gold_prices (date, gold_price) VALUES (CURDATE(), (SELECT gold_price FROM gold_prices WHERE date = CURDATE()));
|
35 |
+
```
|
36 |
+
|
37 |
+
さらに、買取店の査定人に伝えるために、以下の質問内容を追加します。
|
38 |
+
|
39 |
+
「金の品位や重量は何ですか?」
|
40 |
+
|
41 |
+
この質問に回答いただくと、より適切な買取価格を提示することができます。
|
42 |
+
|
43 |
+
お願い申し上げます。
|
44 |
+
下記の質問に対応するコードをdjangoでアプリを作成 プロジェクトはいりません
|
45 |
+
fastapiでrouter部分を作成 組み込みはメイン部分でします
|
46 |
+
フロントエンドをgradioで作成
|
47 |
+
#google apps script frontend
|
48 |
+
googleappsscript doGet でのgradioの表示処理を作成 google.script.runで関数は呼び出し
|
49 |
+
#google apps script backend
|
50 |
+
frontendからの呼び出し用のバックエンドスクリプト
|
51 |
+
仕様書の作成
|
52 |
+
PlantUMLでシーケンス図の作成
|
53 |
+
Markdownでのプログラム殺名
|
54 |
+
|
55 |
+
下記の質問 作成対応内容
|
56 |
+
|
57 |
+
こんにちは、リファスタのアシスタントです。
|
58 |
+
|
59 |
+
お問い合わせありがとうございます。【リッチメニュー】本日の金価格について、買取店の査定人に伝えるために、以下の質問内容を変更します。
|
60 |
+
|
61 |
+
「今日の金の買取価格はいくらですか?」
|
62 |
+
|
63 |
+
また、データベースに商品を検索するためのSQLを作成します。
|
64 |
+
|
65 |
+
**テーブル作成**
|
66 |
+
```sql
|
67 |
+
CREATE TABLE gold_prices (
|
68 |
+
id INT PRIMARY KEY,
|
69 |
+
date DATE,
|
70 |
+
gold_price DECIMAL(10, 2)
|
71 |
+
);
|
72 |
+
```
|
73 |
+
|
74 |
+
**インサート文**
|
75 |
+
```sql
|
76 |
+
INSERT INTO gold_prices (date, gold_price) VALUES (CURDATE(), (SELECT gold_price FROM gold_prices WHERE date = CURDATE()));
|
77 |
+
```
|
78 |
+
|
79 |
+
さらに、買取店の査定人に伝えるために、以下の質問内容を追加します。
|
80 |
+
|
81 |
+
「金の品位や重量は何ですか?」
|
82 |
+
|
83 |
+
この質問に回答いただくと、より適切な買取価格を提示することができます。
|
84 |
+
|
85 |
+
お願い申し上げます。
|
controllers/gpt_enginner20240624122628
ADDED
@@ -0,0 +1 @@
|
|
|
|
|
1 |
+
Subproject commit dcaf9dbed0a6d9de85ff1a46e4276bb072075832
|
mysite/routers/fastapi.py
CHANGED
@@ -333,10 +333,13 @@ def setup_webhook_routes(app: FastAPI):
|
|
333 |
#thread_name = send_google_chat_card_thread(webhook_url, title, proc, link_text, link_url,thread_name)
|
334 |
|
335 |
prompt_res_agi = completion("日本語で下記のプランを考えて "+res)
|
336 |
-
|
337 |
-
|
338 |
-
|
339 |
-
|
|
|
|
|
|
|
340 |
#send_google_chat_card(webhook_url, title, subtitle, link_text, link_url)
|
341 |
|
342 |
#return
|
|
|
333 |
#thread_name = send_google_chat_card_thread(webhook_url, title, proc, link_text, link_url,thread_name)
|
334 |
|
335 |
prompt_res_agi = completion("日本語で下記のプランを考えて "+res)
|
336 |
+
thread_name = send_google_chat_card_thread(webhook_url, title, prompt_res_agi, link_text, link_url,thread_name)
|
337 |
+
title = f""" タスク作成 再度考える {promps}"""
|
338 |
+
subtitle = prompt_res_agi
|
339 |
+
link_text = "データを確認する"
|
340 |
+
link_url = "https://kenken999-php.hf.space/diamondprice_list.php"
|
341 |
+
thread_name = send_google_chat_card_thread(webhook_url, title, prompt_res_agi, link_text, link_url,thread_name)
|
342 |
+
|
343 |
#send_google_chat_card(webhook_url, title, subtitle, link_text, link_url)
|
344 |
|
345 |
#return
|