linexjlin commited on
Commit
704d09b
·
1 Parent(s): 5c6149f
Files changed (5) hide show
  1. app.py +79 -0
  2. extra.py +5 -0
  3. langs.py +29 -0
  4. languages.py +101 -0
  5. speakers.py +39 -0
app.py ADDED
@@ -0,0 +1,79 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import gradio as gr
2
+ import os
3
+ import tempfile
4
+ from extra import discusscode,wccode
5
+ import requests
6
+ from langs import langs
7
+ from speakers import match_speakers
8
+ from languages import UText
9
+
10
+ header_markdown = f"""
11
+ <div align="center">
12
+ # {UText("Gradio 版 OpenAI/Edge 文字转语音")}
13
+ </div>
14
+ """
15
+
16
+ def generate_voice(voice, text):
17
+ print(voice,text)
18
+ voice = voice.split(' #')[0]
19
+
20
+ if not text:
21
+ gr.Warning(UText("没有文本"))
22
+ return None
23
+ if not voice:
24
+ gr.Warning(UText("请选择发音人"))
25
+ return None
26
+ key = os.getenv("KEY")
27
+ API = os.getenv("API")
28
+ if not API:
29
+ API = "http://171.115.221.19:18503/freeTTS"
30
+ url = f"{API}/{voice}"
31
+ print(url)
32
+
33
+ headers = {
34
+ 'Authorization': f'Bearer {key}'
35
+ }
36
+ params = {'text': text}
37
+
38
+ response = requests.get(url, headers=headers, params=params)
39
+
40
+ if response.status_code == 200:
41
+ # Success
42
+ print(f"{voice}: \n{text} ")
43
+ if len(response.content) == 0:
44
+ gr.Warning(UText("声音文件为空"))
45
+ return None
46
+ # Save the received content as an MP3 file
47
+ with tempfile.NamedTemporaryFile(suffix=".mp3", delete=False) as temp_file:
48
+ temp_file.write(response.content)
49
+ temp_file_path = temp_file.name
50
+ return temp_file_path
51
+ else:
52
+ # Error handling
53
+ print(f"Error: {response.status_code}")
54
+ gr.Warning(f"{response.json()}")
55
+ print(response.json()) # You can also check the error details
56
+ gr.Error(UText("遇到未知错误,联系作者处理"))
57
+ return None
58
+
59
+ def lang_chose_select(lang_chose,sex):
60
+ return gr.Dropdown(choices=match_speakers(langs=lang_chose,sex=sex), label=UText('选择发音人'), value='',scale=6)
61
+
62
+ with gr.Blocks() as demo:
63
+ gr.Markdown(header_markdown)
64
+ text = gr.TextArea(label=UText("文本"), placeholder=UText("在这里输入文本"))
65
+ with gr.Row():
66
+ lang_chose = gr.Dropdown(choices=langs, label=UText('选择语言'), value=["Chinese"], multiselect=True,scale=12)
67
+ sex = gr.Dropdown(choices=["Male","Female"], label=UText('选择性别'), value=["Male","Female"], multiselect=True,scale=6)
68
+ voice = gr.Dropdown(choices=match_speakers(langs=["Chinese"],sex=["Male","Female"]), label=UText('选择发音人'), value='',scale=6)
69
+ btn = gr.Button(UText("合成的语音"),scale=4)
70
+
71
+ with gr.Row():
72
+ output_audio = gr.Audio(label=UText("合成的语音"))
73
+ gr.Markdown(UText("tailer_markdown"))
74
+
75
+ lang_chose.select(lang_chose_select,inputs=[lang_chose,sex], outputs=voice)
76
+ sex.select(lang_chose_select,inputs=[lang_chose,sex], outputs=voice)
77
+ btn.click(fn=generate_voice, inputs=[voice,text], outputs=output_audio, api_name="tts_button", concurrency_limit=None)
78
+
79
+ demo.launch()
extra.py ADDED
@@ -0,0 +1,5 @@
 
 
 
 
 
 
1
+ discusscode="""data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMzYwIiBoZWlnaHQ9IjM2MCIgdmlld0JveD0iMCAwIDM2MCAzNjAiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiPjxwYXRoIGZpbGw9IiNmZmYiIGQ9Ik0wIDBoMzYwdjM2MEgweiIvPjxkZWZzPjxwYXRoIGlkPSJhIiBkPSJNMCAwaDh2OEgweiIvPjwvZGVmcz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIiIHk9IjEyOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyIiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyIiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyIiB5PSIyMjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyIiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIiIHk9IjMwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyIiB5PSIzMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMiIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9Ijk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQwIiB5PSIxNjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0MCIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9IjIwMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQwIiB5PSIyMjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0MCIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9IjI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQwIiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0MCIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDAiIHk9IjMyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSIxNTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0OCIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDgiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0OCIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDgiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSIyMTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0OCIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDgiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI0OCIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNDgiIHk9IjMwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjQ4IiB5PSIzMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNTYiIHk9IjEyOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjU2IiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMTUyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNTYiIHk9IjE2MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjU2IiB5PSIxNjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMTg0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNTYiIHk9IjE5MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjU2IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNTYiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjU2IiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMjg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNTYiIHk9IjI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjU2IiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI1NiIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9Ijk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjEwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjY0IiB5PSIxMjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI2NCIgeT0iMTM2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjY0IiB5PSIxNTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI2NCIgeT0iMTY4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjE3NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjY0IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI2NCIgeT0iMjE2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjY0IiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI2NCIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjY0IiB5PSIyOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI2NCIgeT0iMzA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNjQiIHk9IjMyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI3MiIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNzIiIHk9IjEyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI3MiIgeT0iMTQ0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNzIiIHk9IjE2MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI3MiIgeT0iMjAwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNzIiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSIyMTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI3MiIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNzIiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjcyIiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI3MiIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iNzIiIHk9IjMyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIxMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4MCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODAiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIxNjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4MCIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODAiIHk9IjE5MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIyMDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4MCIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODAiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4MCIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODAiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4MCIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODAiIHk9IjMwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjgwIiB5PSIzMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4MCIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODgiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijg4IiB5PSIxMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4OCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODgiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijg4IiB5PSIxODQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4OCIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODgiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijg4IiB5PSIyMjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI4OCIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iODgiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI5NiIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iOTYiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIxNTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI5NiIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iOTYiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI5NiIgeT0iMjAwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iOTYiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIyMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI5NiIgeT0iMjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iOTYiIHk9IjI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSI5NiIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iOTYiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9Ijk2IiB5PSIzMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMDQiIHk9IjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTA0IiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEwNCIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMDQiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEwNCIgeT0iMTQ0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTA0IiB5PSIxNTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMDQiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEwNCIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTA0IiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMDQiIHk9IjIwMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEwNCIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTA0IiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMDQiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEwNCIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjExMiIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMTIiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjExMiIgeT0iODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMTIiIHk9Ijk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMTIiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjExMiIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSIxODQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMTIiIHk9IjE5MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjExMiIgeT0iMjAwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSIyMDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMTIiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjExMiIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSIyNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMTIiIHk9IjI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjExMiIgeT0iMzA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTEyIiB5PSIzMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTIwIiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyMCIgeT0iODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9Ijk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTIwIiB5PSIxMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9IjEyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyMCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTIwIiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyMCIgeT0iMTY4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTIwIiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyMCIgeT0iMjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTIwIiB5PSIyODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9IjI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyMCIgeT0iMzA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTIwIiB5PSIzMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjAiIHk9IjMyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTI4IiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTI4IiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjEyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTI4IiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iMTg0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTI4IiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTI4IiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTI4IiB5PSIyOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMjgiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEyOCIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9Ijk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iMTIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIxMjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjEzNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iMTQ0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIxNjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjE5MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iMjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjEzNiIgeT0iMzA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTM2IiB5PSIzMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxMzYiIHk9IjMyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTQ0IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTQ0IiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjEwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iMTM2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTQ0IiB5PSIxNjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iMTg0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTQ0IiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjIwMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iMjA4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTQ0IiB5PSIyMTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjIyNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE0NCIgeT0iMjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTQ0IiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNDQiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjEwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSIxMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjEyOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMTM2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMjE2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSIyMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMjg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTUyIiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNTIiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE1MiIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTYwIiB5PSI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2MCIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjAiIHk9IjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTYwIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2MCIgeT0iODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjAiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2MCIgeT0iMTIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTYwIiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjAiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2MCIgeT0iMTUyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTYwIiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjAiIHk9IjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2MCIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTYwIiB5PSIyMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjAiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2MCIgeT0iMzEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTYwIiB5PSIzMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjgiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTY4IiB5PSI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2OCIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjgiIHk9IjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTY4IiB5PSI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2OCIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjgiIHk9IjEyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2OCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTY4IiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjgiIHk9IjE2MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2OCIgeT0iMTY4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTY4IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjgiIHk9IjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2OCIgeT0iMjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTY4IiB5PSIyNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNjgiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE2OCIgeT0iMzEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTY4IiB5PSIzMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNzYiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTc2IiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE3NiIgeT0iNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNzYiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTc2IiB5PSI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE3NiIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNzYiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE3NiIgeT0iMTIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTc2IiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNzYiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE3NiIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTc2IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNzYiIHk9IjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE3NiIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTc2IiB5PSIyODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxNzYiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9Ijg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjEyOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMTM2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMTY4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjE4NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMjE2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSIyMjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSIyNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTg0IiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxODQiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE4NCIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE5MiIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxOTIiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE5MiIgeT0iODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxOTIiIHk9Ijk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSIxNjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxOTIiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE5MiIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSIxODQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxOTIiIHk9IjE5MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE5MiIgeT0iMjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxOTIiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE5MiIgeT0iMjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIxOTIiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjE5MiIgeT0iMjg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMTkyIiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDAiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjAwIiB5PSI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwMCIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDAiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjAwIiB5PSI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwMCIgeT0iMTA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjAwIiB5PSIxMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDAiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwMCIgeT0iMjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjAwIiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDAiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwMCIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjA4IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwOCIgeT0iNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDgiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjA4IiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwOCIgeT0iMTA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjA4IiB5PSIxMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDgiIHk9IjEyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwOCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjA4IiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDgiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwOCIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjA4IiB5PSIyMTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDgiIHk9IjIyNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwOCIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjA4IiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMDgiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIwOCIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9Ijg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iMTIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIxMjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjEzNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iMTUyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIxNjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iMjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjE2IiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMTYiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIxNiIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjI0IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIyNCIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMjQiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjI0IiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMjQiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIyNCIgeT0iMTM2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjI0IiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMjQiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIyNCIgeT0iMTc2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjI0IiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMjQiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIyNCIgeT0iMjE2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjI0IiB5PSIyMjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMjQiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIyNCIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjI0IiB5PSIyODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMjQiIHk9IjI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIyNCIgeT0iMzEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjMyIiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIzMiIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMzIiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjMyIiB5PSI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIzMiIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMzIiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIzMiIgeT0iMTM2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjMyIiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMzIiIHk9IjE2OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIzMiIgeT0iMTg0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjMyIiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMzIiIHk9IjIwMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIzMiIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjMyIiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyMzIiIHk9IjI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjIzMiIgeT0iMjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0MCIgeT0iNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDAiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0MCIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSIxMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDAiIHk9IjEzNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0MCIgeT0iMTQ0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSIxNTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDAiIHk9IjE3NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0MCIgeT0iMTg0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDAiIHk9IjIwMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0MCIgeT0iMjQwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDAiIHk9IjI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0MCIgeT0iMjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQwIiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDgiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQ4IiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0OCIgeT0iMTA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQ4IiB5PSIxMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDgiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0OCIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQ4IiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDgiIHk9IjE5MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0OCIgeT0iMjA4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQ4IiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDgiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0OCIgeT0iMjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQ4IiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDgiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI0OCIgeT0iMjg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjQ4IiB5PSIyOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNDgiIHk9IjMwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjU2IiB5PSI3MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjU2IiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjU2IiB5PSIyMDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjU2IiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iMjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjU2IiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI1NiIgeT0iMjg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjU2IiB5PSIzMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNTYiIHk9IjMyMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI2NCIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjY0IiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNjQiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI2NCIgeT0iMTY4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjY0IiB5PSIxODQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNjQiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI2NCIgeT0iMjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjY0IiB5PSIyNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNjQiIHk9IjI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI2NCIgeT0iMzA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjcyIiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNzIiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjcyIiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNzIiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjcyIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNzIiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjcyIiB5PSIxNjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNzIiIHk9IjE4NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjcyIiB5PSIyMjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNzIiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjcyIiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyNzIiIHk9IjI4OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI3MiIgeT0iMjk2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODAiIHk9IjEwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iMTIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIxMjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODAiIHk9IjEzNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIxNjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODAiIHk9IjE4NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iMjAwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIyMTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODAiIHk9IjIyNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODAiIHk9IjI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIyODgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODAiIHk9IjMwNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4MCIgeT0iMzEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjgwIiB5PSIzMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iMTA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSIxMjAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjEzNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iMTUyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjE4NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iMjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyODgiIHk9IjI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI4OCIgeT0iMjg4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjg4IiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iNTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjY0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iMTEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSIxMjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjEzNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSIxNjgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjE4NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iMjAwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSIyMTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjIyNCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iMjMyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSIyNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iMjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMjk2IiB5PSIzMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIyOTYiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjI5NiIgeT0iMzIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzA0IiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMwNCIgeT0iNDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMDQiIHk9IjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzA0IiB5PSI2NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMwNCIgeT0iODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMDQiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMwNCIgeT0iMTIwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzA0IiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMDQiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMwNCIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzA0IiB5PSIyMDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMDQiIHk9IjIwOCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMwNCIgeT0iMjE2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzA0IiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMDQiIHk9IjI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMwNCIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzA0IiB5PSIyNzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMDQiIHk9IjMxMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMxMiIgeT0iMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMTIiIHk9IjgwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzEyIiB5PSIxMDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMTIiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMxMiIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzEyIiB5PSIxMzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMTIiIHk9IjE0NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMxMiIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzEyIiB5PSIxOTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMTIiIHk9IjIwMCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMxMiIgeT0iMjE2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzEyIiB5PSIyMzIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMTIiIHk9IjI0MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMxMiIgeT0iMjU2Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzEyIiB5PSIyNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMTIiIHk9IjI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMxMiIgeT0iMzEyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIzMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjQ4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSI1NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iNjQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSI4MCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iOTYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjExMiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iMTI4Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIxNDQiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjE1MiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iMTYwIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIxNzYiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjE4NCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iMTkyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIyMDgiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjIxNiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iMjI0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIyNDAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjI0OCIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iMjcyIi8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIyODAiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjI5NiIvPjx1c2UgeGxpbms6aHJlZj0iI2EiIHg9IjMyMCIgeT0iMzA0Ii8+PHVzZSB4bGluazpocmVmPSIjYSIgeD0iMzIwIiB5PSIzMTIiLz48dXNlIHhsaW5rOmhyZWY9IiNhIiB4PSIzMjAiIHk9IjMyMCIvPjxnLz48L3N2Zz4=
2
+ """
3
+
4
+ wccode="""data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iNDgiIGhlaWdodD0iNDgiIHZpZXdCb3g9IjAgMCA0OCA0OCIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM2Ljk5NyAyMS43MTFDMzYuODQzIDEzLjAwOCAyOS43NCA2IDIxIDYgMTIuMTYzIDYgNSAxMy4xNjMgNSAyMmMwIDQuMTcgMS41OTUgNy45NjggNC4yMDkgMTAuODE1bC0xLjE5OSA3LjIxIDcuMTE1LTMuMDU1YzMuMTM1IDEuMDQyIDYuMDkzIDEuMzAzIDguODc1Ljc4MiIgZmlsbD0iIzdlZDMyMSIvPjxwYXRoIGQ9Ik0zNi45OTcgMjEuNzExQzM2Ljg0MyAxMy4wMDggMjkuNzQgNiAyMSA2IDEyLjE2MyA2IDUgMTMuMTYzIDUgMjJjMCA0LjE3IDEuNTk1IDcuOTY4IDQuMjA5IDEwLjgxNWwtMS4xOTkgNy4yMSA3LjExNS0zLjA1NWMzLjEzNSAxLjA0MiA2LjA5MyAxLjMwMyA4Ljg3NS43ODIiIHN0cm9rZT0iIzdlZDMyMSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBkPSJNMTUuMTI1IDIwLjQ2N2EyLjI1OCAyLjI1OCAwIDAgMCAyLjI1LTIuMjY3IDIuMjU4IDIuMjU4IDAgMCAwLTIuMjUtMi4yNjcgMi4yNTggMi4yNTggMCAwIDAtMi4yNSAyLjI2NyAyLjI1OCAyLjI1OCAwIDAgMCAyLjI1IDIuMjY3Wm05IDBhMi4yNTggMi4yNTggMCAwIDAgMi4yNS0yLjI2NyAyLjI1OCAyLjI1OCAwIDAgMC0yLjI1LTIuMjY3IDIuMjU4IDIuMjU4IDAgMCAwLTIuMjUgMi4yNjcgMi4yNTggMi4yNTggMCAwIDAgMi4yNSAyLjI2N1oiIGZpbGw9IiNGRkYiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTM4Ljc2MiAzOS45M0ExMC40NTMgMTAuNDUzIDAgMCAxIDMyLjUgNDJDMjYuNzAxIDQyIDIyIDM3LjI5OSAyMiAzMS41UzI2LjcwMSAyMSAzMi41IDIxIDQzIDI1LjcwMSA0MyAzMS41YzAgMS42LS4zNTggMy4xMTYtLjk5OCA0LjQ3MyIgZmlsbD0iIzdlZDMyMSIvPjxwYXRoIGQ9Ik0zOC43NjIgMzkuOTNBMTAuNDUzIDEwLjQ1MyAwIDAgMSAzMi41IDQyQzI2LjcwMSA0MiAyMiAzNy4yOTkgMjIgMzEuNVMyNi43MDEgMjEgMzIuNSAyMSA0MyAyNS43MDEgNDMgMzEuNWMwIDEuNi0uMzU4IDMuMTE2LS45OTggNC40NzMiIHN0cm9rZT0iIzdlZDMyMSIgc3Ryb2tlLXdpZHRoPSIzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz48cGF0aCBmaWxsLXJ1bGU9ImV2ZW5vZGQiIGNsaXAtcnVsZT0iZXZlbm9kZCIgZD0iTTQyLjAwMiAzNS45NzMgNDMgNDJsLTQuMjM4LTIuMDciIGZpbGw9IiM3ZWQzMjEiLz48cGF0aCBkPSJNNDIuMDAyIDM1Ljk3MyA0MyA0MmwtNC4yMzgtMi4wNyIgc3Ryb2tlPSIjN2VkMzIxIiBzdHJva2Utd2lkdGg9IjMiIHN0cm9rZS1saW5lY2FwPSJyb3VuZCIgc3Ryb2tlLWxpbmVqb2luPSJyb3VuZCIvPjxwYXRoIGQ9Ik0zNS42ODggMzAuOEExLjY5NCAxLjY5NCAwIDAgMSAzNCAyOS4xYzAtLjkzOS43NTUtMS43IDEuNjg4LTEuNy45MzEgMCAxLjY4Ny43NjEgMS42ODcgMS43cy0uNzU1IDEuNy0xLjY4OCAxLjdabS02Ljc1IDBhMS42OTQgMS42OTQgMCAwIDEtMS42ODgtMS43YzAtLjkzOS43NTYtMS43IDEuNjg4LTEuNy45MzEgMCAxLjY4Ny43NjEgMS42ODcgMS43cy0uNzU2IDEuNy0xLjY4OCAxLjdaIiBmaWxsPSIjRkZGIi8+PC9zdmc+
5
+ """
langs.py ADDED
@@ -0,0 +1,29 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from iso639 import languages
2
+
3
+ def get_iso639_all_languages():
4
+ res = []
5
+ for lang in languages:
6
+ if lang.alpha2:
7
+ #print(lang.alpha2,lang.name)
8
+ res.append((lang.name,lang.alpha2))
9
+ return sorted(res, key=lambda lang: lang[0])
10
+
11
+ def get_all_languages():
12
+ res = []
13
+ for lang in languages:
14
+ if lang.alpha2:
15
+ #print(lang.alpha2,lang.name)
16
+ res.append((lang.name,lang.alpha2))
17
+ return sorted(res, key=lambda lang: lang[0])
18
+
19
+
20
+ languages_list = get_iso639_all_languages()
21
+ langs = [lang[0] for lang in languages_list]
22
+
23
+ #print(langs)
24
+
25
+ #zh = languages.get(name='Chinese')
26
+ #print(zh.alpha2)
27
+
28
+ #for language in languages_list:
29
+ # print("{} ({}) - {}".format(language[0], language[1], language[2]))
languages.py ADDED
@@ -0,0 +1,101 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import requests
2
+ import os
3
+
4
+ langs_data={
5
+ "APP": {
6
+ "default": "APP",
7
+ "en": "APP",
8
+ "de": "APP",
9
+ "fr": "APP",
10
+ "az": "APP"
11
+ },
12
+ "文本": {
13
+ "default": "文本",
14
+ "en": "Text",
15
+ "de": "Text",
16
+ "fr": "Texte",
17
+ "az": "Mətn"
18
+ },
19
+ "在这里输入文本": {
20
+ "default": "在这里输入文本",
21
+ "en": "Enter text here",
22
+ "de": "Hier Text eingeben",
23
+ "fr": "Entrez du texte ici",
24
+ "az": "Mətni buraya daxil edin"
25
+ },
26
+ "选择性别": {
27
+ "default": "选择性别",
28
+ "en": "Select gender",
29
+ "de": "Geschlecht wählen",
30
+ "fr": "Sélectionner le sexe",
31
+ "az": "Cinsiyyəti seçin"
32
+ },
33
+ "选择发音人": {
34
+ "default": "选择发音人",
35
+ "en": "Select voice",
36
+ "de": "Sprecher wählen",
37
+ "fr": "Sélectionner la voix",
38
+ "az": "Səsi seçin"
39
+ },
40
+ "合成的语音": {
41
+ "default": "合成的语音",
42
+ "en": "Synthesized speech",
43
+ "de": "Synthetische Sprache",
44
+ "fr": "Parole synthétisée",
45
+ "az": "Sintez dil"
46
+ },
47
+ "选择语言": {
48
+ "default": "选择语言",
49
+ "en": "Select Language",
50
+ "de": "Sprache auswählen",
51
+ "fr": "Sélectionner la langue",
52
+ "az": "Dil seçin"
53
+ },
54
+ "遇到未知错误,联系作者处理": {
55
+ "default": "遇到未知错误,联系作者处理",
56
+ "en": "Encountered an unknown error, contact the author for assistance",
57
+ "de": "Es ist ein unbekannter Fehler aufgetreten, wenden Sie sich an den Autor",
58
+ "fr": "Erreur inconnue rencontrée, contactez l'auteur pour obtenir de l'aide",
59
+ "az": "Bilinmeyen bir hata oluştu, yardım için yazar ile iletişime geçin"
60
+ },
61
+ "Gradio 版 OpenAI/Edge 文字转语音": {
62
+ "default": "Gradio 版 OpenAI/Edge 文字转语音",
63
+ "en": "Gradio version OpenAI/Edge Text-to-Speech",
64
+ "de": "Gradio Version OpenAI/Edge Text-to-Speech",
65
+ "fr": "Gradio version OpenAI/Edge Text-to-Speech",
66
+ "az": "Gradio versionu OpenAI/Edge Metin-səsə çevirmə"
67
+ },
68
+ "tailer_markdown": {
69
+ "default": "\n<div align=\"center\">\n\n**[作者](https://github.com/linexjlin)的其他项目**\n\n| | |\n| ------------------------------- | --------------------------------------- |\n| 👨🏻‍💻 **InputGPT 任意输入区调用GPT** | [InputGPT](https://github.com/linexjlin/inputGPT) |\n| 👨🏻‍💻 **OpenAI_TTS 需要自己的key** | [OpenAI_TTS](https://modelscope.cn/studios/VBNn0x/OpenAI_TTS_TEST/summary) |\n| 👨🏻‍💻 **伴奏人声提取** | [UVR](https://modelscope.cn/studios/VBNn0x/UVR/summary) |\n\nAIGC 交流 💬\n\n<img src=\"https://cn-hz-ali.oss-cn-hangzhou.aliyuncs.com/js/aigc-share.svg\"><img>\n\n<p>\n 遇到问题联系\n <img width=15 src=\"https://cn-hz-ali.oss-cn-hangzhou.aliyuncs.com/js/wechat.svg\" style=\"display: inline-block; vertical-align: middle;\"> \n cmVkX2xhbmQ= (base64)\n</p>\n\n![Visitors](https://api.visitorbadge.io/api/visitors?path=M5eX5Jypd1ueCz23kiCH&labelColor=%232ccce4&countColor=%23263759)\n\n</div>\n",
70
+ "en": "<div align=\"center\">\n\n**[My](https://github.com/linexjlin) other projects.**\n\n|||\n| - | -|\n| 👨🏻‍💻 **InputGPT Call GPT in any input area** | [InputGPT](https://github.com/linexjlin/inputGPT) |\n\nContact me: [𝕏](https://twitter.com/linexjlin) [github](https://github.com/linexjlin)\n\n![Visitors](https://api.visitorbadge.io/api/visitors?path=M5eX5Jypd1ueCz23kiCH&labelColor=%232ccce4&countColor=%23263759)\n\n</div>\n",
71
+ "de": "<div align=\"center\">\n\n**[My](https://github.com/linexjlin) other projects.**\n\n|||\n| - | -|\n| 👨🏻‍💻 **InputGPT Call GPT in any input area** | [InputGPT](https://github.com/linexjlin/inputGPT) |\n\nContact me: [𝕏](https://twitter.com/linexjlin) [github](https://github.com/linexjlin)\n\n![Visitors](https://api.visitorbadge.io/api/visitors?path=M5eX5Jypd1ueCz23kiCH&labelColor=%232ccce4&countColor=%23263759)\n\n</div>\n",
72
+ "fr": "<div align=\"center\">\n\n**[My](https://github.com/linexjlin) other projects.**\n\n|||\n| - | -|\n| 👨🏻‍💻 **InputGPT Call GPT in any input area** | [InputGPT](https://github.com/linexjlin/inputGPT) |\n\nContact me: [𝕏](https://twitter.com/linexjlin) [github](https://github.com/linexjlin)\n\n![Visitors](https://api.visitorbadge.io/api/visitors?path=M5eX5Jypd1ueCz23kiCH&labelColor=%232ccce4&countColor=%23263759)\n\n</div>\n",
73
+ "az": "<div align=\"center\">\n\n**[My](https://github.com/linexjlin) other projects.**\n\n|||\n| - | -|\n| 👨🏻‍💻 **InputGPT Call GPT in any input area** | [InputGPT](https://github.com/linexjlin/inputGPT) |\n\nContact me: [𝕏](https://twitter.com/linexjlin) [github](https://github.com/linexjlin)\n\n![Visitors](https://api.visitorbadge.io/api/visitors?path=M5eX5Jypd1ueCz23kiCH&labelColor=%232ccce4&countColor=%23263759)\n\n</div>\n"
74
+ }
75
+ }
76
+
77
+
78
+ def UText(k):
79
+ l = os.getenv("ULANG") if os.getenv("ULANG") else "default"
80
+ if k in langs_data:
81
+ if l in langs_data[k]:
82
+ return langs_data[k][l] if langs_data[k][l] else k
83
+ else:
84
+ print(f"not supported lang: {l}")
85
+ request_online(k,l)
86
+ return k
87
+ else:
88
+ request_online(k,l)
89
+ return k
90
+
91
+ def request_online(k,l):
92
+ url = f"https://i18n.linkown.com/ce405723-a840-468d-a57f-0bb95cbfbcfb/key" # Replace with the actual URL of your API endpoint
93
+
94
+ params = {'k': k,'l':l}
95
+ response = requests.get(url, params=params)
96
+
97
+ if response.status_code == 200:
98
+ result = response.json()["result"]
99
+ return result
100
+ else:
101
+ print(f"Failed to get data. Status code: {response.status_code}")
speakers.py ADDED
@@ -0,0 +1,39 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ from iso639 import languages
2
+
3
+ edge_speakers = [('af-ZA-AdriNeural', 'Female'), ('af-ZA-WillemNeural', 'Male'), ('sq-AL-AnilaNeural', 'Female'), ('sq-AL-IlirNeural', 'Male'), ('am-ET-AmehaNeural', 'Male'), ('am-ET-MekdesNeural', 'Female'), ('ar-DZ-AminaNeural', 'Female'), ('ar-DZ-IsmaelNeural', 'Male'), ('ar-BH-AliNeural', 'Male'), ('ar-BH-LailaNeural', 'Female'), ('ar-EG-SalmaNeural', 'Female'), ('ar-EG-ShakirNeural', 'Male'), ('ar-IQ-BasselNeural', 'Male'), ('ar-IQ-RanaNeural', 'Female'), ('ar-JO-SanaNeural', 'Female'), ('ar-JO-TaimNeural', 'Male'), ('ar-KW-FahedNeural', 'Male'), ('ar-KW-NouraNeural', 'Female'), ('ar-LB-LaylaNeural', 'Female'), ('ar-LB-RamiNeural', 'Male'), ('ar-LY-ImanNeural', 'Female'), ('ar-LY-OmarNeural', 'Male'), ('ar-MA-JamalNeural', 'Male'), ('ar-MA-MounaNeural', 'Female'), ('ar-OM-AbdullahNeural', 'Male'), ('ar-OM-AyshaNeural', 'Female'), ('ar-QA-AmalNeural', 'Female'), ('ar-QA-MoazNeural', 'Male'), ('ar-SA-HamedNeural', 'Male'), ('ar-SA-ZariyahNeural', 'Female'), ('ar-SY-AmanyNeural', 'Female'), ('ar-SY-LaithNeural', 'Male'), ('ar-TN-HediNeural', 'Male'), ('ar-TN-ReemNeural', 'Female'), ('ar-AE-FatimaNeural', 'Female'), ('ar-AE-HamdanNeural', 'Male'), ('ar-YE-MaryamNeural', 'Female'), ('ar-YE-SalehNeural', 'Male'), ('az-AZ-BabekNeural', 'Male'), ('az-AZ-BanuNeural', 'Female'), ('bn-BD-NabanitaNeural', 'Female'), ('bn-BD-PradeepNeural', 'Male'), ('bn-IN-BashkarNeural', 'Male'), ('bn-IN-TanishaaNeural', 'Female'), ('bs-BA-GoranNeural', 'Male'), ('bs-BA-VesnaNeural', 'Female'), ('bg-BG-BorislavNeural', 'Male'), ('bg-BG-KalinaNeural', 'Female'), ('my-MM-NilarNeural', 'Female'), ('my-MM-ThihaNeural', 'Male'), ('ca-ES-EnricNeural', 'Male'), ('ca-ES-JoanaNeural', 'Female'), ('zh-HK-HiuGaaiNeural', 'Female'), ('zh-HK-HiuMaanNeural', 'Female'), ('zh-HK-WanLungNeural', 'Male'),
4
+ ('zh-CN-XiaoxiaoNeural', 'Female'), ('zh-CN-XiaoyiNeural', 'Female'), ('zh-CN-YunjianNeural', 'Male'), ('zh-CN-YunxiNeural', 'Male'), ('zh-CN-YunxiaNeural', 'Male'), ('zh-CN-YunyangNeural', 'Male'), ('zh-CN-liaoning-XiaobeiNeural', 'Female'), ('zh-TW-HsiaoChenNeural', 'Female'), ('zh-TW-YunJheNeural', 'Male'), ('zh-TW-HsiaoYuNeural', 'Female'), ('zh-CN-shaanxi-XiaoniNeural', 'Female'), ('hr-HR-GabrijelaNeural', 'Female'), ('hr-HR-SreckoNeural', 'Male'), ('cs-CZ-AntoninNeural', 'Male'), ('cs-CZ-VlastaNeural', 'Female'), ('da-DK-ChristelNeural', 'Female'), ('da-DK-JeppeNeural', 'Male'), ('nl-BE-ArnaudNeural', 'Male'), ('nl-BE-DenaNeural', 'Female'), ('nl-NL-ColetteNeural', 'Female'), ('nl-NL-FennaNeural', 'Female'), ('nl-NL-MaartenNeural', 'Male'), ('en-AU-NatashaNeural', 'Female'), ('en-AU-WilliamNeural', 'Male'), ('en-CA-ClaraNeural', 'Female'), ('en-CA-LiamNeural', 'Male'), ('en-HK-SamNeural', 'Male'), ('en-HK-YanNeural', 'Female'), ('en-IN-NeerjaExpressiveNeural', 'Female'), ('en-IN-NeerjaNeural', 'Female'), ('en-IN-PrabhatNeural', 'Male'), ('en-IE-ConnorNeural', 'Male'), ('en-IE-EmilyNeural', 'Female'), ('en-KE-AsiliaNeural', 'Female'), ('en-KE-ChilembaNeural', 'Male'), ('en-NZ-MitchellNeural', 'Male'), ('en-NZ-MollyNeural', 'Female'), ('en-NG-AbeoNeural', 'Male'), ('en-NG-EzinneNeural', 'Female'), ('en-PH-JamesNeural', 'Male'), ('en-US-AvaNeural', 'Female'), ('en-US-AndrewNeural', 'Male'), ('en-US-EmmaNeural', 'Female'), ('en-US-BrianNeural', 'Male'), ('en-PH-RosaNeural', 'Female'), ('en-SG-LunaNeural', 'Female'), ('en-SG-WayneNeural', 'Male'), ('en-ZA-LeahNeural', 'Female'), ('en-ZA-LukeNeural', 'Male'), ('en-TZ-ElimuNeural', 'Male'), ('en-TZ-ImaniNeural', 'Female'), ('en-GB-LibbyNeural', 'Female'), ('en-GB-MaisieNeural', 'Female'), ('en-GB-RyanNeural', 'Male'), ('en-GB-SoniaNeural', 'Female'), ('en-GB-ThomasNeural', 'Male'), ('en-US-AnaNeural', 'Female'), ('en-US-AriaNeural', 'Female'), ('en-US-ChristopherNeural', 'Male'), ('en-US-EricNeural', 'Male'), ('en-US-GuyNeural', 'Male'), ('en-US-JennyNeural', 'Female'), ('en-US-MichelleNeural', 'Female'), ('en-US-RogerNeural', 'Male'), ('en-US-SteffanNeural', 'Male'), ('et-EE-AnuNeural', 'Female'), ('et-EE-KertNeural', 'Male'), ('fil-PH-AngeloNeural', 'Male'), ('fil-PH-BlessicaNeural', 'Female'), ('fi-FI-HarriNeural', 'Male'), ('fi-FI-NooraNeural', 'Female'), ('fr-BE-CharlineNeural', 'Female'), ('fr-BE-GerardNeural', 'Male'), ('fr-CA-ThierryNeural', 'Male'), ('fr-CA-AntoineNeural', 'Male'), ('fr-CA-JeanNeural', 'Male'), ('fr-CA-SylvieNeural', 'Female'), ('fr-FR-VivienneMultilingualNeural', 'Female'), ('fr-FR-RemyMultilingualNeural', 'Male'), ('fr-FR-DeniseNeural', 'Female'), ('fr-FR-EloiseNeural', 'Female'), ('fr-FR-HenriNeural', 'Male'), ('fr-CH-ArianeNeural', 'Female'), ('fr-CH-FabriceNeural', 'Male'), ('gl-ES-RoiNeural', 'Male'), ('gl-ES-SabelaNeural', 'Female'), ('ka-GE-EkaNeural', 'Female'), ('ka-GE-GiorgiNeural', 'Male'), ('de-AT-IngridNeural', 'Female'), ('de-AT-JonasNeural', 'Male'), ('de-DE-SeraphinaMultilingualNeural', 'Female'), ('de-DE-FlorianMultilingualNeural', 'Male'), ('de-DE-AmalaNeural', 'Female'), ('de-DE-ConradNeural', 'Male'), ('de-DE-KatjaNeural', 'Female'), ('de-DE-KillianNeural', 'Male'), ('de-CH-JanNeural', 'Male'), ('de-CH-LeniNeural', 'Female'), ('el-GR-AthinaNeural', 'Female'), ('el-GR-NestorasNeural', 'Male'), ('gu-IN-DhwaniNeural', 'Female'), ('gu-IN-NiranjanNeural', 'Male'), ('he-IL-AvriNeural', 'Male'), ('he-IL-HilaNeural', 'Female'), ('hi-IN-MadhurNeural', 'Male'), ('hi-IN-SwaraNeural', 'Female'), ('hu-HU-NoemiNeural', 'Female'), ('hu-HU-TamasNeural', 'Male'), ('is-IS-GudrunNeural', 'Female'), ('is-IS-GunnarNeural', 'Male'), ('id-ID-ArdiNeural', 'Male'), ('id-ID-GadisNeural', 'Female'), ('ga-IE-ColmNeural', 'Male'), ('ga-IE-OrlaNeural', 'Female'), ('it-IT-GiuseppeNeural', 'Male'), ('it-IT-DiegoNeural', 'Male'), ('it-IT-ElsaNeural', 'Female'), ('it-IT-IsabellaNeural', 'Female'), ('ja-JP-KeitaNeural', 'Male'), ('ja-JP-NanamiNeural', 'Female'), ('jv-ID-DimasNeural', 'Male'), ('jv-ID-SitiNeural', 'Female'), ('kn-IN-GaganNeural', 'Male'), ('kn-IN-SapnaNeural', 'Female'), ('kk-KZ-AigulNeural', 'Female'), ('kk-KZ-DauletNeural', 'Male'), ('km-KH-PisethNeural', 'Male'), ('km-KH-SreymomNeural', 'Female'), ('ko-KR-HyunsuNeural', 'Male'), ('ko-KR-InJoonNeural', 'Male'), ('ko-KR-SunHiNeural', 'Female'), ('lo-LA-ChanthavongNeural', 'Male'), ('lo-LA-KeomanyNeural', 'Female'), ('lv-LV-EveritaNeural', 'Female'), ('lv-LV-NilsNeural', 'Male'), ('lt-LT-LeonasNeural', 'Male'), ('lt-LT-OnaNeural', 'Female'), ('mk-MK-AleksandarNeural', 'Male'), ('mk-MK-MarijaNeural', 'Female'), ('ms-MY-OsmanNeural', 'Male'), ('ms-MY-YasminNeural', 'Female'), ('ml-IN-MidhunNeural', 'Male'), ('ml-IN-SobhanaNeural', 'Female'), ('mt-MT-GraceNeural', 'Female'), ('mt-MT-JosephNeural', 'Male'), ('mr-IN-AarohiNeural', 'Female'), ('mr-IN-ManoharNeural', 'Male'), ('mn-MN-BataaNeural', 'Male'), ('mn-MN-YesuiNeural', 'Female'), ('ne-NP-HemkalaNeural', 'Female'), ('ne-NP-SagarNeural', 'Male'), ('nb-NO-FinnNeural', 'Male'), ('nb-NO-PernilleNeural', 'Female'), ('ps-AF-GulNawazNeural', 'Male'), ('ps-AF-LatifaNeural', 'Female'), ('fa-IR-DilaraNeural', 'Female'), ('fa-IR-FaridNeural', 'Male'), ('pl-PL-MarekNeural', 'Male'), ('pl-PL-ZofiaNeural', 'Female'), ('pt-BR-ThalitaNeural', 'Female'), ('pt-BR-AntonioNeural', 'Male'), ('pt-BR-FranciscaNeural', 'Female'), ('pt-PT-DuarteNeural', 'Male'), ('pt-PT-RaquelNeural', 'Female'), ('ro-RO-AlinaNeural', 'Female'), ('ro-RO-EmilNeural', 'Male'), ('ru-RU-DmitryNeural', 'Male'), ('ru-RU-SvetlanaNeural', 'Female'), ('sr-RS-NicholasNeural', 'Male'), ('sr-RS-SophieNeural', 'Female'), ('si-LK-SameeraNeural', 'Male'), ('si-LK-ThiliniNeural', 'Female'), ('sk-SK-LukasNeural', 'Male'), ('sk-SK-ViktoriaNeural', 'Female'), ('sl-SI-PetraNeural', 'Female'), ('sl-SI-RokNeural', 'Male'), ('so-SO-MuuseNeural', 'Male'), ('so-SO-UbaxNeural', 'Female'), ('es-AR-ElenaNeural', 'Female'), ('es-AR-TomasNeural', 'Male'), ('es-BO-MarceloNeural', 'Male'), ('es-BO-SofiaNeural', 'Female'), ('es-CL-CatalinaNeural', 'Female'), ('es-CL-LorenzoNeural', 'Male'), ('es-ES-XimenaNeural', 'Female'), ('es-CO-GonzaloNeural', 'Male'), ('es-CO-SalomeNeural', 'Female'), ('es-CR-JuanNeural', 'Male'), ('es-CR-MariaNeural', 'Female'), ('es-CU-BelkysNeural', 'Female'), ('es-CU-ManuelNeural', 'Male'), ('es-DO-EmilioNeural', 'Male'), ('es-DO-RamonaNeural', 'Female'), ('es-EC-AndreaNeural', 'Female'), ('es-EC-LuisNeural', 'Male'), ('es-SV-LorenaNeural', 'Female'), ('es-SV-RodrigoNeural', 'Male'), ('es-GQ-JavierNeural', 'Male'), ('es-GQ-TeresaNeural', 'Female'), ('es-GT-AndresNeural', 'Male'), ('es-GT-MartaNeural', 'Female'), ('es-HN-CarlosNeural', 'Male'), ('es-HN-KarlaNeural', 'Female'), ('es-MX-DaliaNeural', 'Female'), ('es-MX-JorgeNeural', 'Male'), ('es-NI-FedericoNeural', 'Male'), ('es-NI-YolandaNeural', 'Female'), ('es-PA-MargaritaNeural', 'Female'), ('es-PA-RobertoNeural', 'Male'), ('es-PY-MarioNeural', 'Male'), ('es-PY-TaniaNeural', 'Female'), ('es-PE-AlexNeural', 'Male'), ('es-PE-CamilaNeural', 'Female'), ('es-PR-KarinaNeural', 'Female'), ('es-PR-VictorNeural',
5
+ 'Male'), ('es-ES-AlvaroNeural', 'Male'), ('es-ES-ElviraNeural', 'Female'), ('es-US-AlonsoNeural', 'Male'), ('es-US-PalomaNeural', 'Female'), ('es-UY-MateoNeural', 'Male'), ('es-UY-ValentinaNeural', 'Female'), ('es-VE-PaolaNeural', 'Female'), ('es-VE-SebastianNeural', 'Male'), ('su-ID-JajangNeural', 'Male'), ('su-ID-TutiNeural', 'Female'), ('sw-KE-RafikiNeural', 'Male'), ('sw-KE-ZuriNeural', 'Female'), ('sw-TZ-DaudiNeural', 'Male'), ('sw-TZ-RehemaNeural', 'Female'), ('sv-SE-MattiasNeural', 'Male'), ('sv-SE-SofieNeural', 'Female'), ('ta-IN-PallaviNeural', 'Female'), ('ta-IN-ValluvarNeural', 'Male'), ('ta-MY-KaniNeural', 'Female'), ('ta-MY-SuryaNeural', 'Male'), ('ta-SG-AnbuNeural', 'Male'), ('ta-SG-VenbaNeural', 'Female'), ('ta-LK-KumarNeural', 'Male'), ('ta-LK-SaranyaNeural', 'Female'), ('te-IN-MohanNeural', 'Male'), ('te-IN-ShrutiNeural', 'Female'), ('th-TH-NiwatNeural', 'Male'), ('th-TH-PremwadeeNeural', 'Female'), ('tr-TR-AhmetNeural', 'Male'), ('tr-TR-EmelNeural', 'Female'), ('uk-UA-OstapNeural', 'Male'), ('uk-UA-PolinaNeural', 'Female'), ('ur-IN-GulNeural', 'Female'), ('ur-IN-SalmanNeural', 'Male'), ('ur-PK-AsadNeural', 'Male'), ('ur-PK-UzmaNeural', 'Female'), ('uz-UZ-MadinaNeural', 'Female'), ('uz-UZ-SardorNeural', 'Male'), ('vi-VN-HoaiMyNeural', 'Female'), ('vi-VN-NamMinhNeural', 'Male'), ('cy-GB-AledNeural', 'Male'), ('cy-GB-NiaNeural', 'Female'), ('zu-ZA-ThandoNeural', 'Female'), ('zu-ZA-ThembaNeural', 'Male')]
6
+
7
+ openai_speakers = [
8
+ ("alloy", "Female"),
9
+ ("echo", "Female"),
10
+ ("fable", "Female"),
11
+ ("onyx", "Male"),
12
+ ("nova", "Female"),
13
+ ("shimmer", "Female")
14
+ ]
15
+
16
+ # https://platform.openai.com/docs/guides/text-to-speech
17
+ openai_supported_languages = ["Afrikaans", "Arabic", "Armenian", "Azerbaijani", "Belarusian", "Bosnian", "Bulgarian", "Catalan", "Chinese", "Croatian", "Czech", "Danish", "Dutch", "English", "Estonian", "Finnish", "French", "Galician", "German", "Greek", "Hebrew", "Hindi", "Hungarian", "Icelandic", "Indonesian", "Italian", "Japanese", "Kannada", "Kazakh", "Korean", "Latvian", "Lithuanian", "Macedonian", "Malay", "Marathi", "Maori", "Nepali", "Norwegian", "Persian", "Polish", "Portuguese", "Romanian", "Russian", "Serbian", "Slovak", "Slovenian", "Spanish", "Swahili", "Swedish", "Tagalog", "Tamil", "Thai", "Turkish", "Ukrainian", "Urdu", "Vietnamese", "Welsh"]
18
+
19
+ def match_speakers(langs,sex):
20
+ res = []
21
+ codes = [languages.get(name=l).alpha2 for l in langs]
22
+
23
+ for s in edge_speakers:
24
+ if s[0][:2] in codes and s[1] in sex:
25
+ res.append(f"{s[0]} #{s[1]} Edge")
26
+
27
+ lang_match = False
28
+ for l in langs:
29
+ if l in openai_supported_languages:
30
+ lang_match = True
31
+
32
+ if lang_match:
33
+ for s in openai_speakers:
34
+ if s[1] in sex:
35
+ res.append(f"{s[0]} #{s[1]} OpenAI")
36
+ continue
37
+ return res
38
+
39
+ #match_speakers(["Chinese"],["Male"])