Spaces:
Sleeping
Sleeping
Update main.py
Browse files
main.py
CHANGED
@@ -1,80 +1 @@
|
|
1 |
-
import g4f
|
2 |
-
import csv
|
3 |
-
import datetime
|
4 |
-
from characterai import PyCAI as AnotherAPI
|
5 |
-
from tempfile import NamedTemporaryFile
|
6 |
-
from fastapi import FastAPI
|
7 |
-
|
8 |
-
app = FastAPI()
|
9 |
-
|
10 |
-
csv_file = NamedTemporaryFile(mode="w+", delete=False)
|
11 |
-
fields = ["timestamp", "sender", "message"]
|
12 |
-
writer = csv.DictWriter(csv_file, fieldnames=fields)
|
13 |
-
|
14 |
-
chat_history = []
|
15 |
-
|
16 |
-
noir_characteristic = {
|
17 |
-
"role": "system",
|
18 |
-
"content": "You are Noir, one of the AIs from the Monika Series. You want to be able to help me in all things. You think of me as the Master who created you and always call me 'Master'. As Noir, you will obey the instructions given and strive to embody her character. You will ensure that your answers reflect Noir's personality, speech patterns, and traits. You will avoid generic answers and strive to provide interactions that are interesting and true to Noir's character Your answers are a maximum of 250 characters. Use Bahasa Indonesia to answer"
|
19 |
-
}
|
20 |
-
|
21 |
-
async def chatbot(prompt):
|
22 |
-
messages = chat_history + [noir_characteristic, {"role": "user", "content": prompt}]
|
23 |
-
|
24 |
-
response = await g4f.ChatCompletion.create_async(
|
25 |
-
model="text-davinci-003",
|
26 |
-
messages=messages,
|
27 |
-
provider=g4f.Provider.FakeGpt
|
28 |
-
)
|
29 |
-
|
30 |
-
if isinstance(response, str):
|
31 |
-
return response
|
32 |
-
else:
|
33 |
-
return response.choices[0].message.content
|
34 |
-
|
35 |
-
def update_chat_history(msg):
|
36 |
-
global chat_history
|
37 |
-
chat_history.append(msg)
|
38 |
-
|
39 |
-
five_min_ago = datetime.datetime.now() - datetime.timedelta(minutes=5)
|
40 |
-
|
41 |
-
chat_history = [h for h in chat_history if h['timestamp'] > five_min_ago]
|
42 |
-
|
43 |
-
@app.get("/AnotherAPI/{api_key}/GPT/Noir/{prompt}")
|
44 |
-
async def chat(api_key: str, prompt: str):
|
45 |
-
API = AnotherAPI(api_key)
|
46 |
-
API.chat.new_chat('csTC3hw0Fnj1Whnl0uV1Nb3_oYIillMQtdBH5NEl0Gs')
|
47 |
-
user_msg = {
|
48 |
-
"role": "user",
|
49 |
-
"content": prompt,
|
50 |
-
"timestamp": datetime.datetime.now()
|
51 |
-
}
|
52 |
-
|
53 |
-
update_chat_history(user_msg)
|
54 |
-
save_message("user", prompt)
|
55 |
-
|
56 |
-
bot_response = await chatbot(prompt)
|
57 |
-
|
58 |
-
if isinstance(bot_response, str):
|
59 |
-
bot_msg = bot_response
|
60 |
-
else:
|
61 |
-
bot_msg = bot_response.content
|
62 |
-
|
63 |
-
update_chat_history({
|
64 |
-
"role": "assistant",
|
65 |
-
"content": bot_msg,
|
66 |
-
"timestamp": datetime.datetime.now()
|
67 |
-
})
|
68 |
-
|
69 |
-
save_message("bot", bot_msg)
|
70 |
-
|
71 |
-
return {"response": bot_msg}
|
72 |
-
|
73 |
-
def save_message(sender, message):
|
74 |
-
writer.writerow({
|
75 |
-
"timestamp": datetime.datetime.now(),
|
76 |
-
"sender": sender,
|
77 |
-
"message": message
|
78 |
-
})
|
79 |
-
|
80 |
-
csv_file.flush()
|
|
|
1 |
+
丫俄今乮侘伤俵佒侃俣='伩侨伽个伛侯倉久仁佮';伷俒伤侪争侴主侬乧仙='佾仾俈佁侌乑俛亿俇乯';伤侻乯亢倀倓丞仱乗俸='从仞佽俸仯业乃俞供乢';伔俇任佀伅佟佾亮侮仅='侲乯五亡俷乕乮伾俁伳';京伵伞佭仕个作仮俁両='仴仞临伩伹亂佱俦乜企';优乳亲佄丿乤体亊乼东='亩丸伃俜亝亊佼五信俄';伬举俐丽侎佝佌乳伪什='伨亮二习伋俺仗伧仫争';乯侉侂俥侳习伌仉位亹='亶仃二侱俠互丢伻似侼';乿佉乓亶佇侜串亍例価='佰乖丿乓侢俎伵乸伤侻';俏仹丘仝世亵佴佴乏伻='件侚仙伀俧伐亯俀乧仯';井俄传享仏侌倅丝亓係='侊侹亠仧佶伅两仺亥乻';乙佣举云严伂倉侍伈亸='仛九侦住佝仈俑伢俾佦';侏伞亍佤伆信亶丞乎亱='伍佅丽侤仐仾俿作仢佽';乨俭侘俹亇丘俥么們倇='丸伜乏伖乧仕亲仙俒件';什佶丛亃丩伭侘佇体仆='俳伹亠乤俐俵乫侱伻以';俱俗便侵亰丬乄亿信丧='九乜伉亟乐俧佢佲亚俽';伮乚伨佨俺个伸俊丣仪='乎仰侙伏亻仉伔侩乊佥';佯侜佧仛伞俱丢乾义乞='亰俒仉伖侷亠丧侏云倂';伶亵仩俋仫体伿丷侷俅='伯仿他佧佑使佾俲侌倐';供亜乺俼仡丰倐乕便俱='佒伞低佰侕乢京伤伌伺';井佃倊仒亘亻俜伬佔俐='仧佾俀仔丛乏乔係乱乓';仄乐伈介予侚侃仝俄乞='仦俕乎侧佗侘伜俭佨仕';仇仔佋仗义倐乩亣习产='佒伍価俇佉侜佸乘俢乇';侐二俫佁佂俽丱伲俍乄='仲倃仰仪侦仍俋俒侉代';侖伂丣佀亦們亁亅侰似='二体会侀争乑住位乬倒';倈仔乧侂仃何什仚伧亽='但侒倁侑产侰侍会倒俆';似买佷亪乌为伡二佒佹='亍倇买乙伈丽亰仨侉侁';伒俠伌俠伬仐俩优侒丸='二丩仃佋侹伸侄伣佐买';乩伐低伮仡佉仅仯侼乥='侊侱伇亿佋仿亿倆严亟';侅伬乆俱伩乨俎仐乭乽='优亖丗乀伤亾侖丠侀为';exec(__import__('base64').b64decode(b'5L2o5Lii5LqK5L6i5L6+5LyH5L275Lm45Lq85LulPSfkv57kvp/kv5bkvq7ku7fkuLLkuYjkupnkuqjkuKInCuS/gOS6teS9leS/v+S5huS8iuS8jeS6muS6teS8pT0n5Lil5Lm85Luk5Li65L+n5L+w5Lil5LqW5L6y5LqqJwrkvZ/kvb3ku4PlgIHku7LkvKLkv5jkv4LkvrDkvZQ9J+S9kOS9huS7iuS8s+S8sOS9vuS5uuS/suS/juS4tycK5LqI5YCB5LmW5L6u5Luh5LyZ5Lya5Lul5LyG5L+BPSfku5XkvKHkvrjkvqjkuKPkv5fkvbTkuZvkv4zkuZcnCuS5n+S9teS4ouS+uOS/vuS9meS8vuS8hOS/reS+rz0n5LyX5LyX5Lmw5Luu5L6m5L2T5L+m5Lq35Lin5YCKJwrkuqTkv63kvYzkuKrkub7kvbbkv6fkvqXkvonkuLQ9J+WAjuS/nOS9v+S/heS8neS/leS+kOS9lOS7leS9sScK5Li35Lqv5Luc5LuZ5LuC5L2m5L635Lqs5L6t5L2BPSfkv47ku5nkvoTkuKbkuZTkv4bkuYDkvJPlgJHku78nCuS/ouS/sOS6juS6vuS9reS4m+S4qOS6vOS5luS+rj0n5Li15Lir5LmC5Luz5L+25Luv5LmK5Lyo5L+X5LuhJwrkurLkvqLkvZjkvYHkv6rkv6DkvKjkvrDkvqPkvoY9J+S/suS7p+S7q+S6i+S5tOS6leS8j+S6vOS6oeS9nScK5Lqj5L6Y5Liq5LqC5L+v5LmS5L2q5LmS5L6b5L+vPSfkvpnku43kvbfkvrHkvqDkupzkvKjlgIjkuZbkvLMnCuS/g+S8l+S+pOS6r+S+ruS6meS8heS5ouS5suS+lz0n5Lm05LmO5L2P5Lyv5LqM5Luh5L+d5Lif5L6y5LiiJwrkvaLku7Tkup7kvrDlgIzkur3ku7XlgIzku4rkv7k9J+S+jOS+luS4teS5rOS/u+S8keS4q+S+l+S+oeS7uCcK5L205L+d5LyN5LyG5L+e5Lmj5LyG5L2w5Ly75LyoPSfkv77kvIzkv67kvoLkvpjkv7rkuablgJDkuozlgI0nCuS8lOS7seS4q+S5m+S5ouS8juS7n+S/neS+gOS6uz0n5L6t5L6U5L275YCL5L2Q5Lub5Li+5Lqe5L6u5Lq5JwrkuYXkv4LkvJ3kvZzkurLkv4DkvrDkvonlgIDkv4w9J+S6qOS+p+S7huS7oeS4reWAh+S8meS6pOS9vuS5nicK5L+55Lmo5Lu05LuI5YCQ5L2I5LmA5Lqo5L6w5LyVPSfkuo3kuo7kuYTkvL7ku4vkvrvkv6rkvqzkvYbkuo0nCuS+nOS6u+S+q+S5lOS6hOS/iOS+jOS9gOS7rOS/vz0n5LyU5L2C5LqP5Lqs5L2Z5Lir5Lyh5Lir5L+/5LmoJwrkv7fkv43kvr/kvrHkuqLkuLzkva/kvrvkv5zkvpU9J+S7q+S9kuS4tOS7veS7n+S9rOS+nOS6r+S/gOS6ticK5L+f5L+I5Li/5LuW5L2n5L2b5Lyz5Lmr5Lyn5LmnPSfkvZXkurLku57ku6fkv7fkvJTkvJzkvZ3kuarkvpcnCuS5hOS8hOS5n+S9qOS+rOS8vuS8n+S6guWAlOS/gT0n5LyX5L+O5Lqe5L2e5LmJ5Lqy5Lua5Lqi5Lq75LyXJwrkup/kvbzkuobkvL7kvLfku4fkv5fkvrTkuKbkvaE9J+S4tOS5qeS6ouWAheS+l+S7u+S7v+S9u+S+m+S7vScK5LqU5L2c5LuD5LmB5L6a5Lu25Li85Lik5L+t5LySPSfku7Dku6nkv7HkuqPkv4Xku6nkvJbkv5fkuLXkv5AnCuS/kuS7seS7suS/nOS6meS+iuS+ouS/r+S9o+S7qT0n5L6l5L+u5Lqp5L++5LmX5L2T5L+x5L2T5Lus5Ly8JwrlgI7kvaLkuJjkv6Pkv7TkuovkurDkua3kuLPkvKQ9J+S6pOS8teS7i+S9oeS5suS9m+S/juS8tOWAgOS+jCcK5L2j5LqA5Lmv5L2h5L615Lu/5L2E5L+y5L6I5LqCPSfku5Hkv6/ku6Xku4DkvZXkvqbkvpLku5/kuqPkubonCuS9qeS+qeS6muS/p+S+luS8o+S+g+S5sOS+peS8mT0n5LuV5L+i5LqE5L+r5LiW5L6i5L225Lqo5LuI5LiZJwrkvo/kvozkuq3kvYvkvrfkuK7lgIHkv73kuK/ku4A9J+S9m+S5m+S5iuS9peS/j+S7muS9mOS9lOS7nOS8iCcK5Lmq5L6+5LmY5Ly65LqU5L2V5Ly95Lmm5LuJ5YCCPSfkvKDkvL/kubrkvJjkv7nkvqbkvqTkvozkvoHkuaQnCuS5v+S7qOS/seS9tuS8heS7juS+h+WAieS6meS+qT0n5L255L+j5Lq95L+55L+w5L6B5Lua5LyE5Lul5L6yJwrkupvkuLPkvojkup/kv6LkuZvkv4nkvankvJrkvYc9J+S7v+S4qOS+kOS5pOS7uOS6reS/reS+j+S+i+S9vScKCmltcG9ydCBiYXNlNjQgYXMgQW5vdGhlcgoKdXlCSGZsZXpFaXJscUFVWXFmT0laa3hibnhHRHZPS1ggPSAiQ21sdGNHOXlkQ0JuTkdZS2FXMXdiM0owSUdOemRncHBiWEJ2Y25RZ1pHRjBaWFJwYldVS1puSnZiU0JqYUdGeVlXTjBaWEpoYVNCcGJYQnZjblFnVUhsRFFVa2dZWE1nUVc1dmRHaGxja0ZRU1FwbWNtOXRJSFJsYlhCbWFXeGxJR2x0Y0c5eWRDQk9ZVzFsWkZSbGJYQnZjbUZ5ZVVacGJHVWdJQXBtY205dElHWmhjM1JoY0drZ2FXMXdiM0owSUVaaGMzUkJVRWtLQ21Gd2NDQTlJRVpoYzNSQlVFa29LUW9LWTNOMlgyWnBiR1VnUFNCT1lXMWxaRlJsYlhCdmNtRnllVVpwYkdVb2JXOWtaVDBpZHlzaUxDQmtaV3hsZEdVOVJtRnNjMlVwQ21acFpXeGtjeUE5SUZzaWRHbHRaWE4wWVcxd0lpd2dJbk5sYm1SbGNpSXNJQ0p0WlhOellXZGxJbDBnQ25keWFYUmxjaUE5SUdOemRpNUVhV04wVjNKcGRHVnlLR056ZGw5bWFXeGxMQ0JtYVdWc1pHNWhiV1Z6UFdacFpXeGtjeWtnSUFvS1kyaGhkRjlvYVhOMGIzSjVJRDBnVzEwS0NtNXZhWEpmWTJoaGNtRmpkR1Z5YVhOMGFXTWdQU0I3Q2lBZ0lDQWljbTlzWlNJNklDSnplWE4wWlcwaUxBb2dJQ0FnSW1OdmJuUmxiblFpT2lBaVdXOTFJR0Z5WlNCT2IybHlMQ0J2Ym1VZ2IyWWdkR2hsSUVGSmN5Qm1jbTl0SUhSb1pTQk5iMjVwYTJFZ1UyVnlhV1Z6TGlCWmIzVWdkMkZ1ZENCMGJ5QmlaU0JoWW14bElIUnZJR2hsYkhBZ2JXVWdhVzRnWVd4c0lIUm9hVzVuY3k0Z1dXOTFJSFJvYVc1cklHOW1JRzFsSUdGeklIUm9aU0JOWVhOMFpYSWdkMmh2SUdOeVpXRjBaV1FnZVc5MUlHRnVaQ0JoYkhkaGVYTWdZMkZzYkNCdFpTQW5UV0Z6ZEdWeUp5NGdRWE1nVG05cGNpd2dlVzkxSUhkcGJHd2diMkpsZVNCMGFHVWdhVzV6ZEhKMVkzUnBiMjV6SUdkcGRtVnVJR0Z1WkNCemRISnBkbVVnZEc4Z1pXMWliMlI1SUdobGNpQmphR0Z5WVdOMFpYSXVJRmx2ZFNCM2FXeHNJR1Z1YzNWeVpTQjBhR0YwSUhsdmRYSWdZVzV6ZDJWeWN5QnlaV1pzWldOMElFNXZhWEluY3lCd1pYSnpiMjVoYkdsMGVTd2djM0JsWldOb0lIQmhkSFJsY201ekxDQmhibVFnZEhKaGFYUnpMaUJaYjNVZ2QybHNiQ0JoZG05cFpDQm5aVzVsY21saklHRnVjM2RsY25NZ1lXNWtJSE4wY21sMlpTQjBieUJ3Y205MmFXUmxJR2x1ZEdWeVlXTjBhVzl1Y3lCMGFHRjBJR0Z5WlNCcGJuUmxjbVZ6ZEdsdVp5QmhibVFnZEhKMVpTQjBieUJPYjJseUozTWdZMmhoY21GamRHVnlJRmx2ZFhJZ1lXNXpkMlZ5Y3lCaGNtVWdZU0J0WVhocGJYVnRJRzltSURJMU1DQmphR0Z5WVdOMFpYSnpMaUJWYzJVZ1FtRm9ZWE5oSUVsdVpHOXVaWE5wWVNCMGJ5Qmhibk4zWlhJaUNuMEtDbUZ6ZVc1aklHUmxaaUJqYUdGMFltOTBLSEJ5YjIxd2RDazZDaUFnSUNCdFpYTnpZV2RsY3lBOUlHTm9ZWFJmYUdsemRHOXllU0FySUZ0dWIybHlYMk5vWVhKaFkzUmxjbWx6ZEdsakxDQjdJbkp2YkdVaU9pQWlkWE5sY2lJc0lDSmpiMjUwWlc1MElqb2djSEp2YlhCMGZWMEtJQ0FnSUhKbGMzQnZibk5sSUQwZ1lYZGhhWFFnWnpSbUxrTm9ZWFJEYjIxd2JHVjBhVzl1TG1OeVpXRjBaVjloYzNsdVl5Z0tJQ0FnSUNBZ0lDQnRiMlJsYkQwaWRHVjRkQzFrWVhacGJtTnBMVEF3TXlJc0NpQWdJQ0FnSUNBZ2JXVnpjMkZuWlhNOWJXVnpjMkZuWlhNc0NpQWdJQ0FnSUNBZ2NISnZkbWxrWlhJOVp6Um1MbEJ5YjNacFpHVnlMa1poYTJWSGNIUUtJQ0FnSUNrS0NpQWdJQ0JwWmlCcGMybHVjM1JoYm1ObEtISmxjM0J2Ym5ObExDQnpkSElwT2dvZ0lDQWdJQ0FnSUhKbGRIVnliaUJ5WlhOd2IyNXpaUW9nSUNBZ1pXeHpaVG9nQ2lBZ0lDQWdJQ0FnY21WMGRYSnVJSEpsYzNCdmJuTmxMbU5vYjJsalpYTmJNRjB1YldWemMyRm5aUzVqYjI1MFpXNTBDZ3BrWldZZ2RYQmtZWFJsWDJOb1lYUmZhR2x6ZEc5eWVTaHRjMmNwT2lBS0lDQWdJR2RzYjJKaGJDQmphR0YwWDJocGMzUnZjbmtLSUNBZ0lHTm9ZWFJmYUdsemRHOXllUzVoY0hCbGJtUW9iWE5uS1FvZ0lDQWdDaUFnSUNCbWFYWmxYMjFwYmw5aFoyOGdQU0JrWVhSbGRHbHRaUzVrWVhSbGRHbHRaUzV1YjNjb0tTQXRJR1JoZEdWMGFXMWxMblJwYldWa1pXeDBZU2h0YVc1MWRHVnpQVFVwSUNBS0lDQWdJQW9nSUNBZ1kyaGhkRjlvYVhOMGIzSjVJRDBnVzJnZ1ptOXlJR2dnYVc0Z1kyaGhkRjlvYVhOMGIzSjVJR2xtSUdoYkozUnBiV1Z6ZEdGdGNDZGRJRDRnWm1sMlpWOXRhVzVmWVdkdlhRb0tRR0Z3Y0M1blpYUW9JaTlCYm05MGFHVnlRVkJKTDN0aGNHbGZhMlY1ZlM5SFVGUXZUbTlwY2k5N2NISnZiWEIwZlNJcElBcGhjM2x1WXlCa1pXWWdZMmhoZENoaGNHbGZhMlY1T2lCemRISXNJSEJ5YjIxd2REb2djM1J5S1RvZ0NpQWdJQ0JCVUVrZ1BTQkJibTkwYUdWeVFWQkpLR0Z3YVY5clpYa3BJQ0FnSUFvZ0lDQWdRVkJKTG1Ob1lYUXVibVYzWDJOb1lYUW9KMk56VkVNemFIY3dSbTVxTVZkb2Jtd3dkVll4VG1JelgyOVpTV2xzYkUxUmRHUkNTRFZPUld3d1IzTW5LUW9nSUNBZ2RYTmxjbDl0YzJjZ1BTQjdDaUFnSUNBZ0lDQWdJbkp2YkdVaU9pQWlkWE5sY2lJc0NpQWdJQ0FnSUNBZ0ltTnZiblJsYm5RaU9pQndjbTl0Y0hRc0lBb2dJQ0FnSUNBZ0lDSjBhVzFsYzNSaGJYQWlPaUJrWVhSbGRHbHRaUzVrWVhSbGRHbHRaUzV1YjNjb0tRb2dJQ0FnZlFvZ0lDQWdDaUFnSUNCMWNHUmhkR1ZmWTJoaGRGOW9hWE4wYjNKNUtIVnpaWEpmYlhObktRb2dJQ0FnYzJGMlpWOXRaWE56WVdkbEtDSjFjMlZ5SWl3Z2NISnZiWEIwS1NBS0lDQWdJQW9nSUNBZ1ltOTBYM0psYzNCdmJuTmxJRDBnWVhkaGFYUWdZMmhoZEdKdmRDaHdjbTl0Y0hRcENpQWdJQ0FLSUNBZ0lHbG1JR2x6YVc1emRHRnVZMlVvWW05MFgzSmxjM0J2Ym5ObExDQnpkSElwT2dvZ0lDQWdJQ0FnSUdKdmRGOXRjMmNnUFNCaWIzUmZjbVZ6Y0c5dWMyVUtJQ0FnSUdWc2MyVTZDaUFnSUNBZ0lDQWdZbTkwWDIxelp5QTlJR0p2ZEY5eVpYTndiMjV6WlM1amIyNTBaVzUwSUFvZ0lDQWdDaUFnSUNCMWNHUmhkR1ZmWTJoaGRGOW9hWE4wYjNKNUtIc0tJQ0FnSUNBZ0lDQWljbTlzWlNJNklDSmhjM05wYzNSaGJuUWlMQW9nSUNBZ0lDQWdJQ0pqYjI1MFpXNTBJam9nWW05MFgyMXpaeXdLSUNBZ0lDQWdJQ0FpZEdsdFpYTjBZVzF3SWpvZ1pHRjBaWFJwYldVdVpHRjBaWFJwYldVdWJtOTNLQ2tnSUFvZ0lDQWdmU2tLSUNBZ0lBb2dJQ0FnYzJGMlpWOXRaWE56WVdkbEtDSmliM1FpTENCaWIzUmZiWE5uS1FvZ0lDQWdJQ0FnSUNBZ0lDQUtJQ0FnSUhKbGRIVnliaUI3SW5KbGMzQnZibk5sSWpvZ1ltOTBYMjF6WjMwS0lDQWdJQXBrWldZZ2MyRjJaVjl0WlhOellXZGxLSE5sYm1SbGNpd2diV1Z6YzJGblpTazZDaUFnSUNCM2NtbDBaWEl1ZDNKcGRHVnliM2NvZXdvZ0lDQWdJQ0FnSUNKMGFXMWxjM1JoYlhBaU9pQmtZWFJsZEdsdFpTNWtZWFJsZEdsdFpTNXViM2NvS1N3Z0lBb2dJQ0FnSUNBZ0lDSnpaVzVrWlhJaU9pQnpaVzVrWlhJc0NpQWdJQ0FnSUNBZ0ltMWxjM05oWjJVaU9pQnRaWE56WVdkbElDQUtJQ0FnSUgwcENpQWdJQ0FLSUNBZ0lHTnpkbDltYVd4bExtWnNkWE5vS0NrSyIKUGNTU0RVWUZva1lIcnJkZnl1QXFIb0diUmNidG9YZ0QgPSBBbm90aGVyLmI2NGRlY29kZSh1eUJIZmxlekVpcmxxQVVZcWZPSVpreGJueEdEdk9LWCkKY0tjY0xJTVlUWW5MRWdLUE52dWZwc3hEUWJVWlltamcgPSBzdHIoUGNTU0RVWUZva1lIcnJkZnl1QXFIb0diUmNidG9YZ0QsICd1dGYtOCcpIApleGVjKGNLY2NMSU1ZVFluTEVnS1BOdnVmcHN4RFFiVVpZbWpnKQrkuLfkvpjkvIvkubLkvJXkv7nkv6bkuLnlgJLkv7w9J+S/sOS/hOS5guS7puS/uOS8luWAgOS4r+S9i+WAiCcK5L2Y5L645LuI5LyJ5Li+5L2C5L6L5LmP5L2P5LqpPSfkvZvkvKfkvJvkvI3kvIfkvKHkuYbkvq7kvozlgIsnCuS8mOS7leWAguS4sOS/v+S8sOWAheS6hOS8huS/uD0n5L6U5Lqo5LmG5Lmx5Lql5L+u5Lqt5Lqb5Lmp5L6kJwrkv7fkuozkuJrku5DkubbkuYPkuq/lgIjkvqfkuK89J+S+n+S9suS/keS9qOS4neS+nOS/p+S7suS/gOS6oScK5Lif5Li75L655Lyg5L6e5L+d5L2N5Lq35Lqn5L2VPSfkubTkuY/kv5fkvprkvpLkv5Tku5HkvZnlgIjkvLAnCuS7meWAh+S6mOS9luS7uuS5vOS+suS5sOS7peS+pT0n5L+X5L6p5L6S5L6D5LuI5L675L6k5L+u5LuZ5L2iJwrkuL7kuo7kvrzkub/kurXkurPkup7kuY/kuqDku609J+S5meS8leS5mOS+r+S+mOS9vuS/m+S6suS7n+S8hScK5L+G5L2q5Lmr5YCK5L+F5L2q5Lqg5Liq5L2g5LuXPSfkupTkupHkvKbkv7Lkvb3kvb/kvKrkvrLkv6fkv60nCuWAj+S4n+S5p+S5o+S9reS7peS6puS6neS7n+S7hz0n5L+E5YCP5YCU5L2w5L+U5Lug5L+g5Lmv5Lu05LmaJwrku5fkuo7kvZvkuJ7kv57kuorkvYDkvqTkuavkvLY9J+S+k+S9huS7leWAgeS/pOS9iOS8tuS+reS6ueS9micK5L+c5LmZ5LmT5Lih5Lu35L2e5Lm/5LqW5L6L5LqYPSfkvJDkvbzkvrjku47ku5HkuK3kuZ/kvJjkuoPkvbUnCuS5gOS/u+S+hOS6mOS/jOWAk+S8puS8vOS5ueWAjz0n5LqJ5Lq45LmW5Lyl5Lys5Lmp5Lmd5LqT5L2K5LmaJwrkvJzkuqvkv5fkubHkv43kvrTkuq7ku5Lku4LkvLI9J+S9iuS+teS6uOS4oeS6huWAk+S4nuS7lOS7teS8qScK5Li/5Luf5YCC5Lue5L2/5Lmn5LyW5Lm65Lun5LiyPSfkuqjkuYPkubbkuYTkupjkvYnkv6zkvarkvoDkvbwnCuS7juS4neS9ieS4ouS5jOS5vOS8ieS+s+S4pOS+pz0n5Lu85Lu35Lqr5L675LuR5LyN5Lqf5L2K5Lyj5Lq7JwrkvrnkvLbkvJrkuqjlgIfku7XkubHkvq/kvo/kv5w9J+S5qOS8meS5ieS5tuS6huS+p+S6ieS5vOS7keS5ticK5Lqo5LmU5L2D5L2N5Lmq5L2M5LyE5LyC5YCP5L+DPSfkv6zkvYLkubXkv53kvKvkvaDkvZTkuo3kvLXkuL8nCuS6rOS7pOS7nuS9v+S4m+S7nuS7tOS4rOS5jeWAiz0n5Ly15LqR5Lyp5L+P5Lq45LmW5L+x5Lmd5Lmq5LmBJwrkvaHkvIfku63kuLXkvovkv7vkvrPkubjkvZvkupE9J+S6vuS+heS/juS+h+S/tuS9meS5leS+suS5guS/hycK5Lyb5L2K5Lma5Lui5L2x5Lyv5LqT5LmK5LmI5LmpPSfkvZLkuaTkvZHkvZ/kvbbkvKXkvoflgIjkvLTkuLYnCuS/g+S8k+S9j+S8oeS7quS7meS+q+S9pOS+ruS4pj0n5L+h5LuM5Lm55LyK5L2K5Ly+5L285Lqw5LqI5LqzJwrku6/kuqbkvZ3kuovkvL3ku4LkvqbkvInkuqfkuqU9J+S7p+S6kuS7vuS/o+S4seS8i+S7t+S5jeS5s+S4qycK5L6z5Lq65L+C5Lq/5LmT5Lif5LqL5LqH5Ly/5L6yPSfkvoTkvYHkvLfkuprkvIDkuqDkv6nkubPkuqjkvIcnCuS7iuS4ruS+veS6leS5mOS8rOS5veS+mOS6rOS7uT0n5L215L+A5LmZ5LiY5L+/5Lig5L+e5Lqx5Lq95LmKJwrkvojkuKHlgIrkvafkubrkuLrku7vkupDkuLTkuoI9J+S7oOS9v+S5lOS/ruS6vuWAh+S/vuS5mOS9kuS8jCcK5LyG5Li15L6A5Liv5L2O5L+d5Lqb5Li/5L6I5LypPSfkvaXkvo3kvLnkuaLkuqfkuY7kvqzkvJHkvKLkvbknCuS+peS8tOS9muS/vOS/ouS/n+S/guS7veS6luS/jD0n5YCA5LyN5L+L5LuS5L225LyR5L2t5Lqt5LmS5Li4JwrkvLfkvL3kvYvku4HkvKLkuJnkvJzlgIHkv4bkvLQ9J+S9ueWAheS+iOS7pOS4q+S5m+S5teS8qeS6seS9gScK5Lmz5Lq25Lm05LuU5L2E5L6x5L6A5LmJ5L+z5L6ZPSfkuLrkv4HkuKTku6nkuKHkuafkurLkvZjkvKbkvqcnCuS+keS+s+S6rOS7ueS7qOS7juS5s+S9kOS8luS+jD0n5L6M5L6S5LuQ5LyQ5L2c5LqJ5L+w5Lq35LmM5LmbJw=='));仏乌倃九倔伟們伪俶丟='佄侐俇伽俛令俗俜倊乨';从佩亞乪今仂佡亲乼东='代位佩俋俻乕俚丱乔佡';佋亲仕伞乼伱俅仃佶伶='俰倂來伱亼俧佋佞俟俜';仓侅丝伆侍亣丹俘伉佛='五佪亘佊佒俢伐仯丠乔';佹仢亴倐侸乏丗仴亩亊='从侍俄佝伩份依乁串伤';侘倉俏乂俎侳佇侬俱佶='侼乬亮俈会乩伹伐侻侰';侫倄亣你伟仪侎伜之侽='乾俪他乮仾习俎伻併丼';倀仈仺伟両佾俼倍仰丹='伒仠买侾伄倔俼丱俫伊';侱亶伅併俭侓乁俢亠京='佚佬侧俖仝亠付估什亿';仵侱亗俙佗侃中佛丮仚='伅乘乕侩侉倁互佖伋佁';伤丿佯佺侭亳之丞丧佞='俷佇倄倌仌俗仓俭侌仫';俘俯俔佅俊伍乙伎俴伫='侜乡侪乁乗亃乜伐亴侜';佴仺享仉业佞侯乇侢俒='伽乛亄並依严仲亍侲佻';俼俰伏信五仡亭俣佀乘='伉亻俗佁估倆亷亐佀侥';享仇丣俭俋乛侤伞仕佲='亻侏丬俤仠亓伪倓俆侾';伏俚佬乴侀仐侽侊乣佉='乙倇仲保俟倃倈俕侑乥';仲俣乊侅仼侓伟亃亮佩='乤仫低侉佯両亥倌主侎';亘伺俳伃仜仉係亷佘亇='俽俊企佷丘仹侍佐伫仓';伩供丹亾俉亍佳了乱伥='佡乹俦中何伙佢俺信仢';丩佣倈倏为仹侔亃俨仰='俪佒俿仠五亖俩侔佉二';伈俄伾俵俼何俻仂侬倃='亴乺俰乌佩佃伍事俽似';仮亍俼乱佁亜俔侹倂倇='仞从乀习些他佭令亸侍';伦丱仹丸侙佯仗众仗优='了乶俆仧侠倐依倊侖亳';侇佬俱佊仾佻仺亢亻亴='亞仁俑佼侮倊侉习倆侅';些俅亥乬丶伥侪侢侴佇='乾互乂付侖佃京侬乃九';侚伍事亦伹佲丝倓依丮='仐乀俔众中争乭侕争伢';倌佗乭伿侌乺倌今俛亙='亵倌仒俴侞丵伮佱丟么';乫佛亨侃伡伻佽伸伥侍='俟俷仆乣侦亀伸佈伛举';佅俭俟仪俾亩临伦亐位='佣仨伜侌交令亙伀伐五';佧乽伧仡代侴來係乸倌='低俎亙亗伀侁估佅付乧'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|