Mahiruoshi commited on
Commit
a6a8479
1 Parent(s): 8a20534

Upload 131 files

Browse files
This view is limited to 50 files because it contains too many changes.   See raw diff
Files changed (50) hide show
  1. Data/BangDream/config.json +184 -0
  2. Data/BangDream/models/G_060000.pth +3 -0
  3. app.py +279 -0
  4. attentions.py +464 -0
  5. bert/Erlangshen-DeBERTa-v2-710M-Chinese/config.json +35 -0
  6. bert/Erlangshen-DeBERTa-v2-710M-Chinese/special_tokens_map.json +1 -0
  7. bert/Erlangshen-DeBERTa-v2-710M-Chinese/tokenizer_config.json +15 -0
  8. bert/Erlangshen-DeBERTa-v2-710M-Chinese/vocab.txt +12800 -0
  9. bert/Erlangshen-MegatronBert-1.3B-Chinese/config.json +1 -0
  10. bert/Erlangshen-MegatronBert-1.3B-Chinese/vocab.txt +0 -0
  11. bert/Erlangshen-MegatronBert-3.9B-Chinese/config.json +21 -0
  12. bert/Erlangshen-MegatronBert-3.9B-Chinese/special_tokens_map.json +7 -0
  13. bert/Erlangshen-MegatronBert-3.9B-Chinese/tokenizer_config.json +16 -0
  14. bert/Erlangshen-MegatronBert-3.9B-Chinese/vocab.txt +0 -0
  15. bert/bert-base-japanese-v3/.gitattributes +34 -0
  16. bert/bert-base-japanese-v3/README.md +53 -0
  17. bert/bert-base-japanese-v3/config.json +19 -0
  18. bert/bert-base-japanese-v3/tokenizer_config.json +10 -0
  19. bert/bert-base-japanese-v3/vocab.txt +0 -0
  20. bert/bert-large-japanese-v2/.gitattributes +34 -0
  21. bert/bert-large-japanese-v2/README.md +53 -0
  22. bert/bert-large-japanese-v2/config.json +19 -0
  23. bert/bert-large-japanese-v2/tokenizer_config.json +10 -0
  24. bert/bert-large-japanese-v2/vocab.txt +0 -0
  25. bert/bert_models.json +14 -0
  26. bert/chinese-roberta-wwm-ext-large/.gitattributes +9 -0
  27. bert/chinese-roberta-wwm-ext-large/README.md +57 -0
  28. bert/chinese-roberta-wwm-ext-large/added_tokens.json +1 -0
  29. bert/chinese-roberta-wwm-ext-large/config.json +28 -0
  30. bert/chinese-roberta-wwm-ext-large/special_tokens_map.json +1 -0
  31. bert/chinese-roberta-wwm-ext-large/tokenizer.json +0 -0
  32. bert/chinese-roberta-wwm-ext-large/tokenizer_config.json +1 -0
  33. bert/chinese-roberta-wwm-ext-large/vocab.txt +0 -0
  34. bert/deberta-v2-large-japanese-char-wwm/.gitattributes +34 -0
  35. bert/deberta-v2-large-japanese-char-wwm/README.md +89 -0
  36. bert/deberta-v2-large-japanese-char-wwm/config.json +37 -0
  37. bert/deberta-v2-large-japanese-char-wwm/pytorch_model.bin +3 -0
  38. bert/deberta-v2-large-japanese-char-wwm/special_tokens_map.json +7 -0
  39. bert/deberta-v2-large-japanese-char-wwm/tokenizer_config.json +19 -0
  40. bert/deberta-v2-large-japanese-char-wwm/vocab.txt +0 -0
  41. bert/deberta-v2-large-japanese/.gitattributes +34 -0
  42. bert/deberta-v2-large-japanese/README.md +111 -0
  43. bert/deberta-v2-large-japanese/config.json +38 -0
  44. bert/deberta-v2-large-japanese/special_tokens_map.json +9 -0
  45. bert/deberta-v2-large-japanese/tokenizer.json +0 -0
  46. bert/deberta-v2-large-japanese/tokenizer_config.json +15 -0
  47. bert/deberta-v3-large/.gitattributes +27 -0
  48. bert/deberta-v3-large/README.md +93 -0
  49. bert/deberta-v3-large/config.json +22 -0
  50. bert/deberta-v3-large/generator_config.json +22 -0
Data/BangDream/config.json ADDED
@@ -0,0 +1,184 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "train": {
3
+ "log_interval": 200,
4
+ "eval_interval": 20000,
5
+ "seed": 42,
6
+ "epochs": 1000,
7
+ "learning_rate": 0.0001,
8
+ "betas": [
9
+ 0.8,
10
+ 0.99
11
+ ],
12
+ "eps": 1e-09,
13
+ "batch_size": 8,
14
+ "bf16_run": false,
15
+ "fp16_run": false,
16
+ "lr_decay": 0.99996,
17
+ "segment_size": 16384,
18
+ "init_lr_ratio": 1,
19
+ "warmup_epochs": 0,
20
+ "c_mel": 45,
21
+ "c_kl": 1.0,
22
+ "c_commit": 100,
23
+ "skip_optimizer": true,
24
+ "freeze_ZH_bert": false,
25
+ "freeze_JP_bert": false,
26
+ "freeze_EN_bert": false,
27
+ "freeze_emo": false
28
+ },
29
+ "data": {
30
+ "training_files": "Data/BangDream/filelists/train.list",
31
+ "validation_files": "Data/BangDream/filelists/val.list",
32
+ "max_wav_value": 32768.0,
33
+ "sampling_rate": 44100,
34
+ "filter_length": 2048,
35
+ "hop_length": 512,
36
+ "win_length": 2048,
37
+ "n_mel_channels": 128,
38
+ "mel_fmin": 0.0,
39
+ "mel_fmax": null,
40
+ "add_blank": true,
41
+ "n_speakers": 75,
42
+ "cleaned_text": true,
43
+ "spk2id": {
44
+ "紗夜": 0,
45
+ "有咲": 1,
46
+ "たえ": 2,
47
+ "りみ": 3,
48
+ "香澄": 4,
49
+ "ロック": 5,
50
+ "パレオ": 6,
51
+ "レイヤ": 7,
52
+ "千聖": 8,
53
+ "イヴ": 9,
54
+ "蘭": 10,
55
+ "巴": 11,
56
+ "ひまり": 12,
57
+ "つぐみ": 13,
58
+ "華戀": 14,
59
+ "晶": 15,
60
+ "光": 16,
61
+ "未知留": 17,
62
+ "香子": 18,
63
+ "雙葉": 19,
64
+ "真晝": 20,
65
+ "艾露": 21,
66
+ "珠緒": 22,
67
+ "艾露露": 23,
68
+ "純那": 24,
69
+ "克洛迪娜": 25,
70
+ "真矢": 26,
71
+ "奈奈": 27,
72
+ "壘": 28,
73
+ "文": 29,
74
+ "一愛": 30,
75
+ "菈樂菲": 31,
76
+ "司": 32,
77
+ "美空": 33,
78
+ "靜羽": 34,
79
+ "悠悠子": 35,
80
+ "八千代": 36,
81
+ "栞": 37,
82
+ "美帆": 38,
83
+ "安德露": 39,
84
+ "瑪莉亞貝菈": 40,
85
+ "克拉迪亞": 41,
86
+ "桃樂西": 42,
87
+ "瑪麗安": 43,
88
+ "花音": 44,
89
+ "はぐみ": 45,
90
+ "こころ": 46,
91
+ "美咲": 47,
92
+ "沙綾": 48,
93
+ "つくし": 49,
94
+ "瑠唯": 50,
95
+ "透子": 51,
96
+ "七深": 52,
97
+ "ましろ": 53,
98
+ "友希那": 54,
99
+ "リサ": 55,
100
+ "あこ": 56,
101
+ "チュチュ": 57,
102
+ "薫": 58,
103
+ "麻弥": 59,
104
+ "彩": 60,
105
+ "日菜": 61,
106
+ "愛音": 62,
107
+ "楽奈": 63,
108
+ "そよ": 64,
109
+ "立希": 65,
110
+ "燐子": 66,
111
+ "モカ": 67,
112
+ "燈": 68,
113
+ "ますき": 69,
114
+ "祥子": 70,
115
+ "睦": 71,
116
+ "海鈴": 72,
117
+ "にゃむ": 73,
118
+ "初華": 74
119
+ }
120
+ },
121
+ "model": {
122
+ "use_spk_conditioned_encoder": true,
123
+ "use_noise_scaled_mas": true,
124
+ "use_mel_posterior_encoder": false,
125
+ "use_duration_discriminator": false,
126
+ "use_wavlm_discriminator": true,
127
+ "inter_channels": 192,
128
+ "hidden_channels": 192,
129
+ "filter_channels": 768,
130
+ "n_heads": 2,
131
+ "n_layers": 6,
132
+ "kernel_size": 3,
133
+ "p_dropout": 0.1,
134
+ "resblock": "1",
135
+ "resblock_kernel_sizes": [
136
+ 3,
137
+ 7,
138
+ 11
139
+ ],
140
+ "resblock_dilation_sizes": [
141
+ [
142
+ 1,
143
+ 3,
144
+ 5
145
+ ],
146
+ [
147
+ 1,
148
+ 3,
149
+ 5
150
+ ],
151
+ [
152
+ 1,
153
+ 3,
154
+ 5
155
+ ]
156
+ ],
157
+ "upsample_rates": [
158
+ 8,
159
+ 8,
160
+ 2,
161
+ 2,
162
+ 2
163
+ ],
164
+ "upsample_initial_channel": 512,
165
+ "upsample_kernel_sizes": [
166
+ 16,
167
+ 16,
168
+ 8,
169
+ 2,
170
+ 2
171
+ ],
172
+ "n_layers_q": 3,
173
+ "use_spectral_norm": false,
174
+ "gin_channels": 512,
175
+ "slm": {
176
+ "model": "./slm/wavlm-base-plus",
177
+ "sr": 16000,
178
+ "hidden": 768,
179
+ "nlayers": 13,
180
+ "initial_channel": 64
181
+ }
182
+ },
183
+ "version": "2.4"
184
+ }
Data/BangDream/models/G_060000.pth ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:4fd175e07cf8e52eeae57b4130030a580c0b31edb314b1f3e8e60f1c6439db71
3
+ size 914308886
app.py ADDED
@@ -0,0 +1,279 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import argparse
2
+ import os
3
+ from pathlib import Path
4
+
5
+ import logging
6
+ import re_matching
7
+
8
+ logging.getLogger("numba").setLevel(logging.WARNING)
9
+ logging.getLogger("markdown_it").setLevel(logging.WARNING)
10
+ logging.getLogger("urllib3").setLevel(logging.WARNING)
11
+ logging.getLogger("matplotlib").setLevel(logging.WARNING)
12
+
13
+ logging.basicConfig(
14
+ level=logging.INFO, format="| %(name)s | %(levelname)s | %(message)s"
15
+ )
16
+
17
+ logger = logging.getLogger(__name__)
18
+
19
+ import librosa
20
+ import numpy as np
21
+ import torch
22
+ import torch.nn as nn
23
+ from torch.utils.data import Dataset
24
+ from torch.utils.data import DataLoader, Dataset
25
+ from tqdm import tqdm
26
+ from clap_wrapper import get_clap_audio_feature, get_clap_text_feature
27
+
28
+
29
+ import gradio as gr
30
+
31
+ import utils
32
+ from config import config
33
+
34
+ import torch
35
+ import commons
36
+ from text import cleaned_text_to_sequence, get_bert
37
+ from text.cleaner import clean_text
38
+ import utils
39
+
40
+ from models import SynthesizerTrn
41
+ from text.symbols import symbols
42
+ import sys
43
+
44
+ net_g = None
45
+ '''
46
+ device = (
47
+ "cuda:0"
48
+ if torch.cuda.is_available()
49
+ else (
50
+ "mps"
51
+ if sys.platform == "darwin" and torch.backends.mps.is_available()
52
+ else "cpu"
53
+ )
54
+ )
55
+ '''
56
+ device = "cpu"
57
+ BandList = {
58
+ "PoppinParty":["香澄","有咲","たえ","りみ","沙綾"],
59
+ "Afterglow":["蘭","モカ","ひまり","巴","つぐみ"],
60
+ "HelloHappyWorld":["こころ","美咲","薫","花音","はぐみ"],
61
+ "PastelPalettes":["彩","日菜","千聖","イヴ","麻弥"],
62
+ "Roselia":["友希那","紗夜","リサ","燐子","あこ"],
63
+ "RaiseASuilen":["レイヤ","ロック","ますき","チュチュ","パレオ"],
64
+ "Morfonica":["ましろ","瑠唯","つくし","七深","透子"],
65
+ "MyGo":["燈","愛音","そよ","立希","楽奈"],
66
+ "AveMujica":["祥子","睦","海鈴","にゃむ","初華"],
67
+ "圣翔音乐学园":["華戀","光","香子","雙葉","真晝","純那","克洛迪娜","真矢","奈奈"],
68
+ "凛明馆女子学校":["珠緒","壘","文","悠悠子","一愛"],
69
+ "弗隆提亚艺术学校":["艾露","艾露露","菈樂菲","司","靜羽"],
70
+ "西克菲尔特音乐学院":["晶","未知留","八千代","栞","美帆"]
71
+ }
72
+
73
+ def get_net_g(model_path: str, device: str, hps):
74
+ # 当前版本模型 net_g
75
+ net_g = SynthesizerTrn(
76
+ len(symbols),
77
+ hps.data.filter_length // 2 + 1,
78
+ hps.train.segment_size // hps.data.hop_length,
79
+ n_speakers=hps.data.n_speakers,
80
+ **hps.model,
81
+ ).to(device)
82
+ _ = net_g.eval()
83
+ _ = utils.load_checkpoint(model_path, net_g, None, skip_optimizer=True)
84
+ return net_g
85
+
86
+
87
+ def get_text(text, language_str, hps, device, style_text=None, style_weight=0.7):
88
+ style_text = None if style_text == "" else style_text
89
+ # 在此处实现当前版本的get_text
90
+ norm_text, phone, tone, word2ph = clean_text(text, language_str)
91
+ phone, tone, language = cleaned_text_to_sequence(phone, tone, language_str)
92
+ if hps.data.add_blank:
93
+ phone = commons.intersperse(phone, 0)
94
+ tone = commons.intersperse(tone, 0)
95
+ language = commons.intersperse(language, 0)
96
+ for i in range(len(word2ph)):
97
+ word2ph[i] = word2ph[i] * 2
98
+ word2ph[0] += 1
99
+ bert = get_bert(norm_text, word2ph, language_str, device, style_text, style_weight)
100
+ del word2ph
101
+
102
+ assert bert.shape[-1] == len(
103
+ phone
104
+ ), f"Bert seq len {bert.shape[-1]} != {len(phone)}"
105
+
106
+ phone = torch.LongTensor(phone)
107
+ tone = torch.LongTensor(tone)
108
+ language = torch.LongTensor(language)
109
+ return bert, phone, tone, language
110
+
111
+ def infer(
112
+ text,
113
+ sdp_ratio,
114
+ noise_scale,
115
+ noise_scale_w,
116
+ length_scale,
117
+ sid,
118
+ emotion,
119
+ reference_audio=None,
120
+ skip_start=False,
121
+ skip_end=False,
122
+ style_text=None,
123
+ style_weight=0.7,
124
+ ):
125
+ language = "JP"
126
+ if isinstance(reference_audio, np.ndarray):
127
+ emo = get_clap_audio_feature(reference_audio, device)
128
+ else:
129
+ emo = get_clap_text_feature(emotion, device)
130
+ emo = torch.squeeze(emo, dim=1)
131
+
132
+ bert, phones, tones, lang_ids = get_text(
133
+ text,
134
+ language,
135
+ hps,
136
+ device,
137
+ style_text=style_text,
138
+ style_weight=style_weight,
139
+ )
140
+ if skip_start:
141
+ phones = phones[3:]
142
+ tones = tones[3:]
143
+ lang_ids = lang_ids[3:]
144
+ bert = bert[:, 3:]
145
+ if skip_end:
146
+ phones = phones[:-2]
147
+ tones = tones[:-2]
148
+ lang_ids = lang_ids[:-2]
149
+ bert = bert[:, :-2]
150
+ with torch.no_grad():
151
+ x_tst = phones.to(device).unsqueeze(0)
152
+ tones = tones.to(device).unsqueeze(0)
153
+ lang_ids = lang_ids.to(device).unsqueeze(0)
154
+ bert = bert.to(device).unsqueeze(0)
155
+ x_tst_lengths = torch.LongTensor([phones.size(0)]).to(device)
156
+ emo = emo.to(device).unsqueeze(0)
157
+ del phones
158
+ speakers = torch.LongTensor([hps.data.spk2id[sid]]).to(device)
159
+ print(text)
160
+ audio = (
161
+ net_g.infer(
162
+ x_tst,
163
+ x_tst_lengths,
164
+ speakers,
165
+ tones,
166
+ lang_ids,
167
+ bert,
168
+ emo,
169
+ sdp_ratio=sdp_ratio,
170
+ noise_scale=noise_scale,
171
+ noise_scale_w=noise_scale_w,
172
+ length_scale=length_scale,
173
+ )[0][0, 0]
174
+ .data.cpu()
175
+ .float()
176
+ .numpy()
177
+ )
178
+ del (
179
+ x_tst,
180
+ tones,
181
+ lang_ids,
182
+ bert,
183
+ x_tst_lengths,
184
+ speakers,
185
+ emo,
186
+ ) # , emo
187
+ if torch.cuda.is_available():
188
+ torch.cuda.empty_cache()
189
+ return (hps.data.sampling_rate,gr.processing_utils.convert_to_16_bit_wav(audio))
190
+
191
+ def loadmodel(model):
192
+ _ = net_g.eval()
193
+ _ = utils.load_checkpoint(model, net_g, None, skip_optimizer=True)
194
+ return "success"
195
+
196
+ if __name__ == "__main__":
197
+ modelPaths = []
198
+ for dirpath, dirnames, filenames in os.walk('Data/BangDream/models/'):
199
+ for filename in filenames:
200
+ modelPaths.append(os.path.join(dirpath, filename))
201
+ hps = utils.get_hparams_from_file('Data/BangDream//config.json')
202
+ net_g = get_net_g(
203
+ model_path=modelPaths[-1], device=device, hps=hps
204
+ )
205
+ speaker_ids = hps.data.spk2id
206
+ speakers = list(speaker_ids.keys())
207
+ with gr.Blocks() as app:
208
+ for band in BandList:
209
+ with gr.TabItem(band):
210
+ for name in BandList[band]:
211
+ with gr.TabItem(name):
212
+ with gr.Row():
213
+ with gr.Column():
214
+ with gr.Row():
215
+ gr.Markdown(
216
+ '<div align="center">'
217
+ f'<img style="width:auto;height:400px;" src="https://mahiruoshi-bangdream-bert-vits2.hf.space/file/image/{name}.png">'
218
+ '</div>'
219
+ )
220
+ length_scale = gr.Slider(
221
+ minimum=0.1, maximum=2, value=1, step=0.01, label="语速调节"
222
+ )
223
+ emotion = gr.Textbox(
224
+ label="情感标注文本t",
225
+ value = 'なんではるひかげやったの?!!'
226
+ )
227
+ style_weight = gr.Slider(
228
+ minimum=0.1, maximum=2, value=1, step=0.01, label="感情比重"
229
+ )
230
+ with gr.Accordion(label="参数设定", open=False):
231
+ sdp_ratio = gr.Slider(
232
+ minimum=0, maximum=1, value=0.2, step=0.01, label="SDP/DP混合比"
233
+ )
234
+ noise_scale = gr.Slider(
235
+ minimum=0.1, maximum=2, value=0.6, step=0.01, label="感情调节"
236
+ )
237
+ noise_scale_w = gr.Slider(
238
+ minimum=0.1, maximum=2, value=0.8, step=0.01, label="音素长度"
239
+ )
240
+ speaker = gr.Dropdown(
241
+ choices=speakers, value=name, label="说话人"
242
+ )
243
+ skip_start = gr.Checkbox(label="跳过开头")
244
+ skip_end = gr.Checkbox(label="跳过结尾")
245
+ with gr.Accordion(label="切换模型", open=False):
246
+ modelstrs = gr.Dropdown(label = "模型", choices = modelPaths, value = modelPaths[0], type = "value")
247
+ btnMod = gr.Button("载入模型")
248
+ statusa = gr.TextArea()
249
+ btnMod.click(loadmodel, inputs=[modelstrs], outputs = [statusa])
250
+ with gr.Column():
251
+ text = gr.TextArea(
252
+ label="输入纯日语",
253
+ placeholder="输入纯日语",
254
+ value="なんではるひかげやったの?!!",
255
+ )
256
+ reference_audio = gr.Audio(label="情感参考音频)", type="filepath")
257
+ btn = gr.Button("点击生成", variant="primary")
258
+ audio_output = gr.Audio(label="Output Audio")
259
+ btn.click(
260
+ infer,
261
+ inputs=[
262
+ text,
263
+ sdp_ratio,
264
+ noise_scale,
265
+ noise_scale_w,
266
+ length_scale,
267
+ speaker,
268
+ emotion,
269
+ reference_audio,
270
+ skip_start,
271
+ skip_end,
272
+ emotion,
273
+ style_weight,
274
+ ],
275
+ outputs=[audio_output],
276
+ )
277
+
278
+ print("推理页面已开启!")
279
+ app.launch(share=True)
attentions.py ADDED
@@ -0,0 +1,464 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ import math
2
+ import torch
3
+ from torch import nn
4
+ from torch.nn import functional as F
5
+
6
+ import commons
7
+ import logging
8
+
9
+ logger = logging.getLogger(__name__)
10
+
11
+
12
+ class LayerNorm(nn.Module):
13
+ def __init__(self, channels, eps=1e-5):
14
+ super().__init__()
15
+ self.channels = channels
16
+ self.eps = eps
17
+
18
+ self.gamma = nn.Parameter(torch.ones(channels))
19
+ self.beta = nn.Parameter(torch.zeros(channels))
20
+
21
+ def forward(self, x):
22
+ x = x.transpose(1, -1)
23
+ x = F.layer_norm(x, (self.channels,), self.gamma, self.beta, self.eps)
24
+ return x.transpose(1, -1)
25
+
26
+
27
+ @torch.jit.script
28
+ def fused_add_tanh_sigmoid_multiply(input_a, input_b, n_channels):
29
+ n_channels_int = n_channels[0]
30
+ in_act = input_a + input_b
31
+ t_act = torch.tanh(in_act[:, :n_channels_int, :])
32
+ s_act = torch.sigmoid(in_act[:, n_channels_int:, :])
33
+ acts = t_act * s_act
34
+ return acts
35
+
36
+
37
+ class Encoder(nn.Module):
38
+ def __init__(
39
+ self,
40
+ hidden_channels,
41
+ filter_channels,
42
+ n_heads,
43
+ n_layers,
44
+ kernel_size=1,
45
+ p_dropout=0.0,
46
+ window_size=4,
47
+ isflow=True,
48
+ **kwargs
49
+ ):
50
+ super().__init__()
51
+ self.hidden_channels = hidden_channels
52
+ self.filter_channels = filter_channels
53
+ self.n_heads = n_heads
54
+ self.n_layers = n_layers
55
+ self.kernel_size = kernel_size
56
+ self.p_dropout = p_dropout
57
+ self.window_size = window_size
58
+ # if isflow:
59
+ # cond_layer = torch.nn.Conv1d(256, 2*hidden_channels*n_layers, 1)
60
+ # self.cond_pre = torch.nn.Conv1d(hidden_channels, 2*hidden_channels, 1)
61
+ # self.cond_layer = weight_norm(cond_layer, name='weight')
62
+ # self.gin_channels = 256
63
+ self.cond_layer_idx = self.n_layers
64
+ if "gin_channels" in kwargs:
65
+ self.gin_channels = kwargs["gin_channels"]
66
+ if self.gin_channels != 0:
67
+ self.spk_emb_linear = nn.Linear(self.gin_channels, self.hidden_channels)
68
+ # vits2 says 3rd block, so idx is 2 by default
69
+ self.cond_layer_idx = (
70
+ kwargs["cond_layer_idx"] if "cond_layer_idx" in kwargs else 2
71
+ )
72
+ logging.debug(self.gin_channels, self.cond_layer_idx)
73
+ assert (
74
+ self.cond_layer_idx < self.n_layers
75
+ ), "cond_layer_idx should be less than n_layers"
76
+ self.drop = nn.Dropout(p_dropout)
77
+ self.attn_layers = nn.ModuleList()
78
+ self.norm_layers_1 = nn.ModuleList()
79
+ self.ffn_layers = nn.ModuleList()
80
+ self.norm_layers_2 = nn.ModuleList()
81
+ for i in range(self.n_layers):
82
+ self.attn_layers.append(
83
+ MultiHeadAttention(
84
+ hidden_channels,
85
+ hidden_channels,
86
+ n_heads,
87
+ p_dropout=p_dropout,
88
+ window_size=window_size,
89
+ )
90
+ )
91
+ self.norm_layers_1.append(LayerNorm(hidden_channels))
92
+ self.ffn_layers.append(
93
+ FFN(
94
+ hidden_channels,
95
+ hidden_channels,
96
+ filter_channels,
97
+ kernel_size,
98
+ p_dropout=p_dropout,
99
+ )
100
+ )
101
+ self.norm_layers_2.append(LayerNorm(hidden_channels))
102
+
103
+ def forward(self, x, x_mask, g=None):
104
+ attn_mask = x_mask.unsqueeze(2) * x_mask.unsqueeze(-1)
105
+ x = x * x_mask
106
+ for i in range(self.n_layers):
107
+ if i == self.cond_layer_idx and g is not None:
108
+ g = self.spk_emb_linear(g.transpose(1, 2))
109
+ g = g.transpose(1, 2)
110
+ x = x + g
111
+ x = x * x_mask
112
+ y = self.attn_layers[i](x, x, attn_mask)
113
+ y = self.drop(y)
114
+ x = self.norm_layers_1[i](x + y)
115
+
116
+ y = self.ffn_layers[i](x, x_mask)
117
+ y = self.drop(y)
118
+ x = self.norm_layers_2[i](x + y)
119
+ x = x * x_mask
120
+ return x
121
+
122
+
123
+ class Decoder(nn.Module):
124
+ def __init__(
125
+ self,
126
+ hidden_channels,
127
+ filter_channels,
128
+ n_heads,
129
+ n_layers,
130
+ kernel_size=1,
131
+ p_dropout=0.0,
132
+ proximal_bias=False,
133
+ proximal_init=True,
134
+ **kwargs
135
+ ):
136
+ super().__init__()
137
+ self.hidden_channels = hidden_channels
138
+ self.filter_channels = filter_channels
139
+ self.n_heads = n_heads
140
+ self.n_layers = n_layers
141
+ self.kernel_size = kernel_size
142
+ self.p_dropout = p_dropout
143
+ self.proximal_bias = proximal_bias
144
+ self.proximal_init = proximal_init
145
+
146
+ self.drop = nn.Dropout(p_dropout)
147
+ self.self_attn_layers = nn.ModuleList()
148
+ self.norm_layers_0 = nn.ModuleList()
149
+ self.encdec_attn_layers = nn.ModuleList()
150
+ self.norm_layers_1 = nn.ModuleList()
151
+ self.ffn_layers = nn.ModuleList()
152
+ self.norm_layers_2 = nn.ModuleList()
153
+ for i in range(self.n_layers):
154
+ self.self_attn_layers.append(
155
+ MultiHeadAttention(
156
+ hidden_channels,
157
+ hidden_channels,
158
+ n_heads,
159
+ p_dropout=p_dropout,
160
+ proximal_bias=proximal_bias,
161
+ proximal_init=proximal_init,
162
+ )
163
+ )
164
+ self.norm_layers_0.append(LayerNorm(hidden_channels))
165
+ self.encdec_attn_layers.append(
166
+ MultiHeadAttention(
167
+ hidden_channels, hidden_channels, n_heads, p_dropout=p_dropout
168
+ )
169
+ )
170
+ self.norm_layers_1.append(LayerNorm(hidden_channels))
171
+ self.ffn_layers.append(
172
+ FFN(
173
+ hidden_channels,
174
+ hidden_channels,
175
+ filter_channels,
176
+ kernel_size,
177
+ p_dropout=p_dropout,
178
+ causal=True,
179
+ )
180
+ )
181
+ self.norm_layers_2.append(LayerNorm(hidden_channels))
182
+
183
+ def forward(self, x, x_mask, h, h_mask):
184
+ """
185
+ x: decoder input
186
+ h: encoder output
187
+ """
188
+ self_attn_mask = commons.subsequent_mask(x_mask.size(2)).to(
189
+ device=x.device, dtype=x.dtype
190
+ )
191
+ encdec_attn_mask = h_mask.unsqueeze(2) * x_mask.unsqueeze(-1)
192
+ x = x * x_mask
193
+ for i in range(self.n_layers):
194
+ y = self.self_attn_layers[i](x, x, self_attn_mask)
195
+ y = self.drop(y)
196
+ x = self.norm_layers_0[i](x + y)
197
+
198
+ y = self.encdec_attn_layers[i](x, h, encdec_attn_mask)
199
+ y = self.drop(y)
200
+ x = self.norm_layers_1[i](x + y)
201
+
202
+ y = self.ffn_layers[i](x, x_mask)
203
+ y = self.drop(y)
204
+ x = self.norm_layers_2[i](x + y)
205
+ x = x * x_mask
206
+ return x
207
+
208
+
209
+ class MultiHeadAttention(nn.Module):
210
+ def __init__(
211
+ self,
212
+ channels,
213
+ out_channels,
214
+ n_heads,
215
+ p_dropout=0.0,
216
+ window_size=None,
217
+ heads_share=True,
218
+ block_length=None,
219
+ proximal_bias=False,
220
+ proximal_init=False,
221
+ ):
222
+ super().__init__()
223
+ assert channels % n_heads == 0
224
+
225
+ self.channels = channels
226
+ self.out_channels = out_channels
227
+ self.n_heads = n_heads
228
+ self.p_dropout = p_dropout
229
+ self.window_size = window_size
230
+ self.heads_share = heads_share
231
+ self.block_length = block_length
232
+ self.proximal_bias = proximal_bias
233
+ self.proximal_init = proximal_init
234
+ self.attn = None
235
+
236
+ self.k_channels = channels // n_heads
237
+ self.conv_q = nn.Conv1d(channels, channels, 1)
238
+ self.conv_k = nn.Conv1d(channels, channels, 1)
239
+ self.conv_v = nn.Conv1d(channels, channels, 1)
240
+ self.conv_o = nn.Conv1d(channels, out_channels, 1)
241
+ self.drop = nn.Dropout(p_dropout)
242
+
243
+ if window_size is not None:
244
+ n_heads_rel = 1 if heads_share else n_heads
245
+ rel_stddev = self.k_channels**-0.5
246
+ self.emb_rel_k = nn.Parameter(
247
+ torch.randn(n_heads_rel, window_size * 2 + 1, self.k_channels)
248
+ * rel_stddev
249
+ )
250
+ self.emb_rel_v = nn.Parameter(
251
+ torch.randn(n_heads_rel, window_size * 2 + 1, self.k_channels)
252
+ * rel_stddev
253
+ )
254
+
255
+ nn.init.xavier_uniform_(self.conv_q.weight)
256
+ nn.init.xavier_uniform_(self.conv_k.weight)
257
+ nn.init.xavier_uniform_(self.conv_v.weight)
258
+ if proximal_init:
259
+ with torch.no_grad():
260
+ self.conv_k.weight.copy_(self.conv_q.weight)
261
+ self.conv_k.bias.copy_(self.conv_q.bias)
262
+
263
+ def forward(self, x, c, attn_mask=None):
264
+ q = self.conv_q(x)
265
+ k = self.conv_k(c)
266
+ v = self.conv_v(c)
267
+
268
+ x, self.attn = self.attention(q, k, v, mask=attn_mask)
269
+
270
+ x = self.conv_o(x)
271
+ return x
272
+
273
+ def attention(self, query, key, value, mask=None):
274
+ # reshape [b, d, t] -> [b, n_h, t, d_k]
275
+ b, d, t_s, t_t = (*key.size(), query.size(2))
276
+ query = query.view(b, self.n_heads, self.k_channels, t_t).transpose(2, 3)
277
+ key = key.view(b, self.n_heads, self.k_channels, t_s).transpose(2, 3)
278
+ value = value.view(b, self.n_heads, self.k_channels, t_s).transpose(2, 3)
279
+
280
+ scores = torch.matmul(query / math.sqrt(self.k_channels), key.transpose(-2, -1))
281
+ if self.window_size is not None:
282
+ assert (
283
+ t_s == t_t
284
+ ), "Relative attention is only available for self-attention."
285
+ key_relative_embeddings = self._get_relative_embeddings(self.emb_rel_k, t_s)
286
+ rel_logits = self._matmul_with_relative_keys(
287
+ query / math.sqrt(self.k_channels), key_relative_embeddings
288
+ )
289
+ scores_local = self._relative_position_to_absolute_position(rel_logits)
290
+ scores = scores + scores_local
291
+ if self.proximal_bias:
292
+ assert t_s == t_t, "Proximal bias is only available for self-attention."
293
+ scores = scores + self._attention_bias_proximal(t_s).to(
294
+ device=scores.device, dtype=scores.dtype
295
+ )
296
+ if mask is not None:
297
+ scores = scores.masked_fill(mask == 0, -1e4)
298
+ if self.block_length is not None:
299
+ assert (
300
+ t_s == t_t
301
+ ), "Local attention is only available for self-attention."
302
+ block_mask = (
303
+ torch.ones_like(scores)
304
+ .triu(-self.block_length)
305
+ .tril(self.block_length)
306
+ )
307
+ scores = scores.masked_fill(block_mask == 0, -1e4)
308
+ p_attn = F.softmax(scores, dim=-1) # [b, n_h, t_t, t_s]
309
+ p_attn = self.drop(p_attn)
310
+ output = torch.matmul(p_attn, value)
311
+ if self.window_size is not None:
312
+ relative_weights = self._absolute_position_to_relative_position(p_attn)
313
+ value_relative_embeddings = self._get_relative_embeddings(
314
+ self.emb_rel_v, t_s
315
+ )
316
+ output = output + self._matmul_with_relative_values(
317
+ relative_weights, value_relative_embeddings
318
+ )
319
+ output = (
320
+ output.transpose(2, 3).contiguous().view(b, d, t_t)
321
+ ) # [b, n_h, t_t, d_k] -> [b, d, t_t]
322
+ return output, p_attn
323
+
324
+ def _matmul_with_relative_values(self, x, y):
325
+ """
326
+ x: [b, h, l, m]
327
+ y: [h or 1, m, d]
328
+ ret: [b, h, l, d]
329
+ """
330
+ ret = torch.matmul(x, y.unsqueeze(0))
331
+ return ret
332
+
333
+ def _matmul_with_relative_keys(self, x, y):
334
+ """
335
+ x: [b, h, l, d]
336
+ y: [h or 1, m, d]
337
+ ret: [b, h, l, m]
338
+ """
339
+ ret = torch.matmul(x, y.unsqueeze(0).transpose(-2, -1))
340
+ return ret
341
+
342
+ def _get_relative_embeddings(self, relative_embeddings, length):
343
+ 2 * self.window_size + 1
344
+ # Pad first before slice to avoid using cond ops.
345
+ pad_length = max(length - (self.window_size + 1), 0)
346
+ slice_start_position = max((self.window_size + 1) - length, 0)
347
+ slice_end_position = slice_start_position + 2 * length - 1
348
+ if pad_length > 0:
349
+ padded_relative_embeddings = F.pad(
350
+ relative_embeddings,
351
+ commons.convert_pad_shape([[0, 0], [pad_length, pad_length], [0, 0]]),
352
+ )
353
+ else:
354
+ padded_relative_embeddings = relative_embeddings
355
+ used_relative_embeddings = padded_relative_embeddings[
356
+ :, slice_start_position:slice_end_position
357
+ ]
358
+ return used_relative_embeddings
359
+
360
+ def _relative_position_to_absolute_position(self, x):
361
+ """
362
+ x: [b, h, l, 2*l-1]
363
+ ret: [b, h, l, l]
364
+ """
365
+ batch, heads, length, _ = x.size()
366
+ # Concat columns of pad to shift from relative to absolute indexing.
367
+ x = F.pad(x, commons.convert_pad_shape([[0, 0], [0, 0], [0, 0], [0, 1]]))
368
+
369
+ # Concat extra elements so to add up to shape (len+1, 2*len-1).
370
+ x_flat = x.view([batch, heads, length * 2 * length])
371
+ x_flat = F.pad(
372
+ x_flat, commons.convert_pad_shape([[0, 0], [0, 0], [0, length - 1]])
373
+ )
374
+
375
+ # Reshape and slice out the padded elements.
376
+ x_final = x_flat.view([batch, heads, length + 1, 2 * length - 1])[
377
+ :, :, :length, length - 1 :
378
+ ]
379
+ return x_final
380
+
381
+ def _absolute_position_to_relative_position(self, x):
382
+ """
383
+ x: [b, h, l, l]
384
+ ret: [b, h, l, 2*l-1]
385
+ """
386
+ batch, heads, length, _ = x.size()
387
+ # pad along column
388
+ x = F.pad(
389
+ x, commons.convert_pad_shape([[0, 0], [0, 0], [0, 0], [0, length - 1]])
390
+ )
391
+ x_flat = x.view([batch, heads, length**2 + length * (length - 1)])
392
+ # add 0's in the beginning that will skew the elements after reshape
393
+ x_flat = F.pad(x_flat, commons.convert_pad_shape([[0, 0], [0, 0], [length, 0]]))
394
+ x_final = x_flat.view([batch, heads, length, 2 * length])[:, :, :, 1:]
395
+ return x_final
396
+
397
+ def _attention_bias_proximal(self, length):
398
+ """Bias for self-attention to encourage attention to close positions.
399
+ Args:
400
+ length: an integer scalar.
401
+ Returns:
402
+ a Tensor with shape [1, 1, length, length]
403
+ """
404
+ r = torch.arange(length, dtype=torch.float32)
405
+ diff = torch.unsqueeze(r, 0) - torch.unsqueeze(r, 1)
406
+ return torch.unsqueeze(torch.unsqueeze(-torch.log1p(torch.abs(diff)), 0), 0)
407
+
408
+
409
+ class FFN(nn.Module):
410
+ def __init__(
411
+ self,
412
+ in_channels,
413
+ out_channels,
414
+ filter_channels,
415
+ kernel_size,
416
+ p_dropout=0.0,
417
+ activation=None,
418
+ causal=False,
419
+ ):
420
+ super().__init__()
421
+ self.in_channels = in_channels
422
+ self.out_channels = out_channels
423
+ self.filter_channels = filter_channels
424
+ self.kernel_size = kernel_size
425
+ self.p_dropout = p_dropout
426
+ self.activation = activation
427
+ self.causal = causal
428
+
429
+ if causal:
430
+ self.padding = self._causal_padding
431
+ else:
432
+ self.padding = self._same_padding
433
+
434
+ self.conv_1 = nn.Conv1d(in_channels, filter_channels, kernel_size)
435
+ self.conv_2 = nn.Conv1d(filter_channels, out_channels, kernel_size)
436
+ self.drop = nn.Dropout(p_dropout)
437
+
438
+ def forward(self, x, x_mask):
439
+ x = self.conv_1(self.padding(x * x_mask))
440
+ if self.activation == "gelu":
441
+ x = x * torch.sigmoid(1.702 * x)
442
+ else:
443
+ x = torch.relu(x)
444
+ x = self.drop(x)
445
+ x = self.conv_2(self.padding(x * x_mask))
446
+ return x * x_mask
447
+
448
+ def _causal_padding(self, x):
449
+ if self.kernel_size == 1:
450
+ return x
451
+ pad_l = self.kernel_size - 1
452
+ pad_r = 0
453
+ padding = [[0, 0], [0, 0], [pad_l, pad_r]]
454
+ x = F.pad(x, commons.convert_pad_shape(padding))
455
+ return x
456
+
457
+ def _same_padding(self, x):
458
+ if self.kernel_size == 1:
459
+ return x
460
+ pad_l = (self.kernel_size - 1) // 2
461
+ pad_r = self.kernel_size // 2
462
+ padding = [[0, 0], [0, 0], [pad_l, pad_r]]
463
+ x = F.pad(x, commons.convert_pad_shape(padding))
464
+ return x
bert/Erlangshen-DeBERTa-v2-710M-Chinese/config.json ADDED
@@ -0,0 +1,35 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "deberta-v2",
3
+ "architectures": [
4
+ "DebertaV2ForMaskedLM"
5
+ ],
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "attention_head_size": 64,
8
+ "hidden_act": "gelu",
9
+ "hidden_dropout_prob": 0.1,
10
+ "hidden_size": 1536,
11
+ "initializer_range": 0.02,
12
+ "intermediate_size": 6144,
13
+ "max_position_embeddings": 512,
14
+ "relative_attention": true,
15
+ "position_buckets": 256,
16
+ "norm_rel_ebd": "layer_norm",
17
+ "share_att_key": true,
18
+ "pos_att_type": [
19
+ "p2c",
20
+ "c2p"
21
+ ],
22
+ "conv_kernel_size": 3,
23
+ "pooler_dropout": 0,
24
+ "pooler_hidden_act": "gelu",
25
+ "pooler_hidden_size": 1536,
26
+ "conv_act": "gelu",
27
+ "layer_norm_eps": 1e-7,
28
+ "max_relative_positions": -1,
29
+ "position_biased_input": false,
30
+ "num_attention_heads": 24,
31
+ "num_hidden_layers": 24,
32
+ "type_vocab_size": 0,
33
+ "num_labels": 119,
34
+ "vocab_size": 12800
35
+ }
bert/Erlangshen-DeBERTa-v2-710M-Chinese/special_tokens_map.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
bert/Erlangshen-DeBERTa-v2-710M-Chinese/tokenizer_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "do_lower_case": true,
3
+ "do_basic_tokenize": true,
4
+ "never_split": null,
5
+ "unk_token": "[UNK]",
6
+ "sep_token": "[SEP]",
7
+ "pad_token": "[PAD]",
8
+ "cls_token": "[CLS]",
9
+ "mask_token": "[MASK]",
10
+ "tokenize_chinese_chars": true,
11
+ "strip_accents": null,
12
+ "special_tokens_map_file": null,
13
+ "name_or_path": "/cognitive_comp/gaoxinyu/pretrained_model/bert-1.3B",
14
+ "tokenizer_class": "BertTokenizer"
15
+ }
bert/Erlangshen-DeBERTa-v2-710M-Chinese/vocab.txt ADDED
@@ -0,0 +1,12800 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ [PAD]
2
+ [CLS]
3
+ [SEP]
4
+ [UNK]
5
+ [MASK]
6
+ [unused1]
7
+ [unused2]
8
+ [unused3]
9
+ [unused4]
10
+ [unused5]
11
+ [unused6]
12
+ [unused7]
13
+ [unused8]
14
+ [unused9]
15
+ [unused10]
16
+ [unused11]
17
+ [unused12]
18
+ [unused13]
19
+ [unused14]
20
+ [unused15]
21
+ [unused16]
22
+ [unused17]
23
+ [unused18]
24
+ [unused19]
25
+ [unused20]
26
+ [unused21]
27
+ [unused22]
28
+ [unused23]
29
+ [unused24]
30
+ [unused25]
31
+ [unused26]
32
+ [unused27]
33
+ [unused28]
34
+ [unused29]
35
+ [unused30]
36
+ [unused31]
37
+ [unused32]
38
+ [unused33]
39
+ [unused34]
40
+ [unused35]
41
+ [unused36]
42
+ [unused37]
43
+ [unused38]
44
+ [unused39]
45
+ [unused40]
46
+ [unused41]
47
+ [unused42]
48
+ [unused43]
49
+ [unused44]
50
+ [unused45]
51
+ [unused46]
52
+ [unused47]
53
+ [unused48]
54
+ [unused49]
55
+ [unused50]
56
+ [unused51]
57
+ [unused52]
58
+ [unused53]
59
+ [unused54]
60
+ [unused55]
61
+ [unused56]
62
+ [unused57]
63
+ [unused58]
64
+ [unused59]
65
+ [unused60]
66
+ [unused61]
67
+ [unused62]
68
+ [unused63]
69
+ [unused64]
70
+ [unused65]
71
+ [unused66]
72
+ [unused67]
73
+ [unused68]
74
+ [unused69]
75
+ [unused70]
76
+ [unused71]
77
+ [unused72]
78
+ [unused73]
79
+ [unused74]
80
+ [unused75]
81
+ [unused76]
82
+ [unused77]
83
+ [unused78]
84
+ [unused79]
85
+ [unused80]
86
+ [unused81]
87
+ [unused82]
88
+ [unused83]
89
+ [unused84]
90
+ [unused85]
91
+ [unused86]
92
+ [unused87]
93
+ [unused88]
94
+ [unused89]
95
+ [unused90]
96
+ [unused91]
97
+ [unused92]
98
+ [unused93]
99
+ [unused94]
100
+ [unused95]
101
+ [unused96]
102
+ [unused97]
103
+ [unused98]
104
+ [unused99]
105
+ !
106
+ "
107
+ #
108
+ $
109
+ %
110
+ &
111
+ '
112
+ (
113
+ )
114
+ *
115
+ +
116
+ ,
117
+ -
118
+ .
119
+ /
120
+ :
121
+ ;
122
+ <
123
+ =
124
+ >
125
+ ?
126
+ @
127
+ [
128
+ \
129
+ ]
130
+ ^
131
+ _
132
+ `
133
+ {
134
+ |
135
+ }
136
+ ~
137
+ ·
138
+
139
+
140
+
141
+
142
+
143
+
144
+
145
+
146
+
147
+
148
+
149
+
150
+
151
+
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+
160
+
161
+
162
+
163
+
164
+
165
+
166
+
167
+
168
+
169
+
170
+
171
+
172
+
173
+
174
+
175
+
176
+
177
+
178
+
179
+
180
+
181
+
182
+
183
+
184
+
185
+
186
+
187
+
188
+
189
+
190
+
191
+
192
+
193
+
194
+
195
+
196
+
197
+ _
198
+
199
+
200
+
201
+
202
+
203
+
204
+
205
+
206
+
207
+ 0
208
+ ##0
209
+ 1
210
+ ##1
211
+ 2
212
+ ##2
213
+ 3
214
+ ##3
215
+ 4
216
+ ##4
217
+ 5
218
+ ##5
219
+ 6
220
+ ##6
221
+ 7
222
+ ##7
223
+ 8
224
+ ##8
225
+ 9
226
+ ##9
227
+
228
+
229
+
230
+
231
+
232
+
233
+
234
+
235
+
236
+
237
+
238
+
239
+
240
+
241
+
242
+
243
+
244
+
245
+
246
+
247
+
248
+
249
+
250
+
251
+
252
+
253
+
254
+
255
+
256
+
257
+
258
+
259
+
260
+
261
+
262
+
263
+
264
+
265
+
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+
275
+ 丿
276
+
277
+
278
+
279
+
280
+
281
+
282
+
283
+
284
+
285
+
286
+
287
+
288
+
289
+
290
+
291
+
292
+
293
+
294
+
295
+
296
+
297
+
298
+
299
+
300
+
301
+
302
+
303
+
304
+
305
+
306
+
307
+
308
+
309
+
310
+
311
+
312
+
313
+
314
+
315
+
316
+
317
+
318
+
319
+
320
+
321
+
322
+
323
+
324
+
325
+
326
+
327
+
328
+
329
+
330
+
331
+
332
+
333
+
334
+
335
+
336
+
337
+
338
+
339
+
340
+
341
+
342
+
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+
352
+
353
+ 亿
354
+
355
+
356
+
357
+
358
+
359
+
360
+
361
+
362
+
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+
371
+
372
+
373
+
374
+
375
+
376
+
377
+
378
+
379
+
380
+
381
+
382
+
383
+
384
+
385
+
386
+
387
+
388
+
389
+
390
+
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+ 仿
399
+
400
+
401
+
402
+
403
+
404
+
405
+
406
+
407
+
408
+
409
+
410
+
411
+
412
+
413
+
414
+
415
+
416
+
417
+
418
+
419
+
420
+
421
+
422
+
423
+
424
+
425
+
426
+
427
+
428
+
429
+
430
+
431
+
432
+
433
+
434
+
435
+
436
+
437
+
438
+
439
+
440
+
441
+
442
+
443
+
444
+
445
+
446
+
447
+
448
+
449
+
450
+
451
+
452
+
453
+
454
+
455
+
456
+
457
+
458
+
459
+
460
+
461
+
462
+
463
+
464
+
465
+
466
+
467
+
468
+
469
+
470
+
471
+
472
+
473
+
474
+ 使
475
+
476
+
477
+
478
+
479
+
480
+
481
+
482
+
483
+
484
+
485
+
486
+
487
+
488
+
489
+
490
+
491
+
492
+
493
+
494
+
495
+
496
+
497
+
498
+
499
+
500
+
501
+
502
+
503
+
504
+ 便
505
+
506
+
507
+
508
+
509
+
510
+
511
+
512
+
513
+
514
+
515
+
516
+
517
+
518
+
519
+
520
+
521
+
522
+
523
+
524
+
525
+
526
+
527
+
528
+
529
+
530
+
531
+
532
+
533
+
534
+
535
+
536
+
537
+
538
+
539
+
540
+
541
+
542
+
543
+
544
+
545
+
546
+
547
+
548
+
549
+
550
+
551
+
552
+
553
+
554
+
555
+
556
+
557
+
558
+
559
+
560
+
561
+
562
+
563
+
564
+
565
+
566
+
567
+
568
+
569
+
570
+
571
+
572
+
573
+
574
+
575
+
576
+
577
+
578
+
579
+
580
+
581
+
582
+
583
+
584
+
585
+
586
+
587
+
588
+
589
+
590
+
591
+
592
+
593
+
594
+
595
+
596
+
597
+
598
+
599
+
600
+
601
+
602
+
603
+
604
+
605
+
606
+
607
+
608
+
609
+
610
+
611
+
612
+
613
+
614
+
615
+
616
+
617
+
618
+
619
+
620
+
621
+
622
+
623
+
624
+
625
+
626
+
627
+
628
+
629
+
630
+
631
+
632
+
633
+
634
+
635
+
636
+
637
+
638
+
639
+
640
+
641
+
642
+
643
+
644
+
645
+
646
+
647
+
648
+
649
+
650
+
651
+
652
+
653
+
654
+
655
+
656
+
657
+
658
+
659
+
660
+
661
+
662
+
663
+
664
+
665
+
666
+
667
+
668
+
669
+
670
+
671
+
672
+
673
+
674
+
675
+
676
+
677
+
678
+
679
+
680
+
681
+
682
+
683
+
684
+
685
+
686
+
687
+
688
+
689
+
690
+
691
+
692
+
693
+
694
+
695
+
696
+
697
+
698
+
699
+
700
+
701
+
702
+
703
+
704
+
705
+
706
+
707
+
708
+
709
+
710
+
711
+
712
+
713
+
714
+
715
+
716
+
717
+
718
+
719
+
720
+
721
+
722
+
723
+
724
+
725
+
726
+
727
+
728
+
729
+
730
+
731
+
732
+
733
+
734
+
735
+
736
+
737
+
738
+
739
+
740
+
741
+
742
+
743
+
744
+
745
+
746
+
747
+
748
+
749
+
750
+
751
+
752
+
753
+
754
+
755
+
756
+
757
+
758
+
759
+
760
+
761
+
762
+
763
+
764
+
765
+
766
+
767
+
768
+
769
+
770
+
771
+
772
+
773
+
774
+
775
+
776
+
777
+
778
+
779
+
780
+
781
+
782
+
783
+
784
+
785
+
786
+
787
+
788
+
789
+
790
+
791
+
792
+
793
+
794
+
795
+
796
+
797
+
798
+
799
+
800
+
801
+
802
+
803
+
804
+
805
+
806
+
807
+
808
+
809
+
810
+
811
+
812
+
813
+
814
+
815
+
816
+
817
+
818
+
819
+
820
+
821
+
822
+
823
+
824
+
825
+
826
+
827
+
828
+
829
+
830
+
831
+
832
+
833
+
834
+
835
+
836
+
837
+
838
+
839
+
840
+
841
+
842
+
843
+
844
+
845
+
846
+
847
+
848
+
849
+
850
+
851
+
852
+
853
+
854
+
855
+
856
+
857
+
858
+
859
+
860
+
861
+
862
+
863
+
864
+
865
+
866
+
867
+
868
+
869
+
870
+
871
+
872
+
873
+
874
+
875
+
876
+
877
+
878
+
879
+
880
+
881
+
882
+
883
+
884
+
885
+
886
+
887
+
888
+
889
+
890
+
891
+
892
+
893
+
894
+
895
+
896
+
897
+
898
+
899
+
900
+
901
+
902
+
903
+
904
+
905
+
906
+
907
+
908
+
909
+
910
+
911
+
912
+
913
+
914
+
915
+
916
+
917
+
918
+
919
+
920
+
921
+
922
+
923
+
924
+
925
+
926
+
927
+
928
+
929
+
930
+
931
+
932
+
933
+
934
+
935
+
936
+
937
+
938
+
939
+
940
+
941
+
942
+
943
+
944
+
945
+
946
+
947
+
948
+
949
+
950
+
951
+
952
+
953
+
954
+
955
+
956
+
957
+
958
+
959
+
960
+
961
+
962
+
963
+
964
+
965
+
966
+
967
+
968
+
969
+
970
+
971
+
972
+
973
+
974
+
975
+
976
+
977
+
978
+
979
+
980
+
981
+
982
+
983
+
984
+
985
+
986
+
987
+
988
+
989
+
990
+
991
+
992
+
993
+
994
+
995
+
996
+
997
+
998
+
999
+
1000
+
1001
+
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+
1011
+
1012
+
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+
1019
+
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+
1026
+
1027
+
1028
+
1029
+
1030
+
1031
+
1032
+
1033
+
1034
+
1035
+
1036
+
1037
+
1038
+
1039
+
1040
+
1041
+
1042
+
1043
+
1044
+
1045
+
1046
+
1047
+
1048
+
1049
+
1050
+
1051
+
1052
+
1053
+
1054
+
1055
+
1056
+
1057
+
1058
+
1059
+
1060
+
1061
+
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+
1074
+
1075
+
1076
+
1077
+
1078
+
1079
+
1080
+
1081
+
1082
+
1083
+
1084
+
1085
+
1086
+
1087
+
1088
+
1089
+
1090
+
1091
+
1092
+
1093
+
1094
+
1095
+
1096
+
1097
+
1098
+
1099
+
1100
+
1101
+
1102
+
1103
+
1104
+
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+
1111
+
1112
+
1113
+
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+
1120
+
1121
+
1122
+
1123
+
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+
1130
+
1131
+
1132
+
1133
+
1134
+
1135
+
1136
+
1137
+
1138
+
1139
+
1140
+
1141
+
1142
+
1143
+
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+
1154
+
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+
1161
+
1162
+
1163
+
1164
+
1165
+
1166
+
1167
+
1168
+
1169
+
1170
+
1171
+
1172
+
1173
+
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+
1184
+
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+
1191
+
1192
+
1193
+
1194
+
1195
+
1196
+
1197
+
1198
+
1199
+
1200
+
1201
+
1202
+
1203
+
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+
1214
+
1215
+
1216
+
1217
+
1218
+
1219
+
1220
+
1221
+
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+
1228
+
1229
+
1230
+
1231
+
1232
+
1233
+
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+
1240
+
1241
+
1242
+
1243
+
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+
1250
+
1251
+
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+
1258
+
1259
+
1260
+
1261
+
1262
+
1263
+
1264
+
1265
+
1266
+
1267
+
1268
+
1269
+
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+
1276
+
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+
1283
+
1284
+
1285
+
1286
+
1287
+
1288
+
1289
+
1290
+
1291
+
1292
+
1293
+
1294
+
1295
+
1296
+
1297
+
1298
+
1299
+
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+
1306
+
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+
1314
+
1315
+
1316
+
1317
+
1318
+
1319
+
1320
+
1321
+
1322
+
1323
+
1324
+
1325
+
1326
+
1327
+
1328
+
1329
+
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+
1336
+
1337
+
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+
1344
+
1345
+
1346
+
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+
1353
+
1354
+
1355
+
1356
+
1357
+
1358
+
1359
+
1360
+
1361
+
1362
+
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+
1369
+
1370
+
1371
+
1372
+
1373
+
1374
+
1375
+
1376
+
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+
1383
+
1384
+
1385
+
1386
+
1387
+
1388
+
1389
+
1390
+
1391
+
1392
+
1393
+
1394
+
1395
+
1396
+
1397
+
1398
+
1399
+
1400
+
1401
+
1402
+
1403
+
1404
+
1405
+
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+
1419
+
1420
+
1421
+
1422
+
1423
+
1424
+
1425
+
1426
+
1427
+
1428
+
1429
+
1430
+
1431
+
1432
+
1433
+
1434
+
1435
+
1436
+
1437
+
1438
+
1439
+
1440
+
1441
+
1442
+
1443
+
1444
+
1445
+
1446
+
1447
+
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+
1454
+
1455
+
1456
+
1457
+
1458
+
1459
+
1460
+
1461
+
1462
+
1463
+
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+
1473
+
1474
+
1475
+
1476
+
1477
+
1478
+
1479
+
1480
+
1481
+
1482
+
1483
+
1484
+
1485
+
1486
+
1487
+
1488
+
1489
+
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+
1503
+
1504
+
1505
+
1506
+
1507
+
1508
+
1509
+
1510
+
1511
+
1512
+
1513
+
1514
+
1515
+
1516
+
1517
+
1518
+
1519
+
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+
1526
+
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+
1533
+
1534
+
1535
+
1536
+
1537
+
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+
1544
+
1545
+
1546
+
1547
+
1548
+
1549
+
1550
+
1551
+
1552
+
1553
+
1554
+
1555
+
1556
+
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+
1563
+
1564
+
1565
+
1566
+
1567
+
1568
+
1569
+
1570
+
1571
+
1572
+
1573
+
1574
+
1575
+
1576
+
1577
+
1578
+
1579
+
1580
+
1581
+
1582
+
1583
+
1584
+
1585
+
1586
+
1587
+
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+
1605
+
1606
+
1607
+
1608
+
1609
+
1610
+
1611
+
1612
+
1613
+
1614
+
1615
+
1616
+
1617
+
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+
1635
+
1636
+
1637
+
1638
+
1639
+
1640
+
1641
+
1642
+
1643
+
1644
+
1645
+
1646
+
1647
+
1648
+
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+
1665
+
1666
+
1667
+
1668
+
1669
+
1670
+
1671
+
1672
+
1673
+
1674
+
1675
+
1676
+
1677
+
1678
+
1679
+
1680
+
1681
+
1682
+
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+
1695
+
1696
+
1697
+
1698
+
1699
+
1700
+
1701
+
1702
+
1703
+
1704
+
1705
+
1706
+
1707
+
1708
+ 姿
1709
+
1710
+
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+
1717
+
1718
+
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+
1725
+
1726
+
1727
+
1728
+
1729
+
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+
1736
+
1737
+
1738
+
1739
+
1740
+
1741
+
1742
+
1743
+
1744
+
1745
+
1746
+
1747
+
1748
+
1749
+
1750
+
1751
+
1752
+
1753
+ 婿
1754
+
1755
+
1756
+
1757
+
1758
+
1759
+
1760
+
1761
+
1762
+
1763
+
1764
+
1765
+
1766
+
1767
+
1768
+
1769
+
1770
+
1771
+
1772
+
1773
+
1774
+
1775
+
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+
1785
+
1786
+
1787
+
1788
+
1789
+
1790
+
1791
+
1792
+
1793
+
1794
+
1795
+
1796
+
1797
+
1798
+
1799
+
1800
+ 嬿
1801
+
1802
+
1803
+
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+
1810
+
1811
+
1812
+
1813
+
1814
+
1815
+
1816
+
1817
+
1818
+
1819
+
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+
1826
+
1827
+
1828
+
1829
+
1830
+
1831
+
1832
+
1833
+
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+
1840
+
1841
+
1842
+
1843
+
1844
+
1845
+
1846
+
1847
+
1848
+
1849
+
1850
+
1851
+
1852
+
1853
+
1854
+
1855
+
1856
+
1857
+
1858
+
1859
+
1860
+
1861
+
1862
+
1863
+
1864
+
1865
+
1866
+
1867
+
1868
+
1869
+
1870
+
1871
+
1872
+
1873
+ 宿
1874
+
1875
+
1876
+
1877
+
1878
+
1879
+
1880
+
1881
+
1882
+
1883
+
1884
+
1885
+
1886
+
1887
+
1888
+
1889
+
1890
+
1891
+
1892
+
1893
+
1894
+
1895
+
1896
+
1897
+
1898
+
1899
+
1900
+
1901
+
1902
+
1903
+
1904
+
1905
+ 寿
1906
+
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+
1913
+
1914
+
1915
+
1916
+
1917
+
1918
+
1919
+
1920
+
1921
+
1922
+
1923
+
1924
+
1925
+
1926
+
1927
+
1928
+
1929
+
1930
+
1931
+
1932
+
1933
+
1934
+
1935
+
1936
+
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+
1943
+ 尿
1944
+
1945
+
1946
+
1947
+
1948
+
1949
+
1950
+
1951
+
1952
+
1953
+
1954
+
1955
+
1956
+
1957
+
1958
+
1959
+
1960
+
1961
+
1962
+
1963
+
1964
+
1965
+
1966
+
1967
+
1968
+
1969
+
1970
+
1971
+
1972
+
1973
+
1974
+ 屿
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+
1981
+
1982
+
1983
+
1984
+
1985
+
1986
+
1987
+
1988
+
1989
+
1990
+
1991
+
1992
+
1993
+
1994
+
1995
+
1996
+
1997
+
1998
+
1999
+
2000
+
2001
+
2002
+
2003
+
2004
+
2005
+ 岿
2006
+
2007
+
2008
+
2009
+
2010
+
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+
2017
+
2018
+
2019
+
2020
+
2021
+
2022
+
2023
+
2024
+
2025
+
2026
+
2027
+
2028
+
2029
+
2030
+
2031
+
2032
+
2033
+
2034
+
2035
+
2036
+
2037
+
2038
+
2039
+
2040
+
2041
+
2042
+
2043
+
2044
+
2045
+
2046
+
2047
+
2048
+
2049
+
2050
+
2051
+
2052
+
2053
+
2054
+
2055
+
2056
+
2057
+
2058
+
2059
+
2060
+
2061
+
2062
+
2063
+
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+
2070
+
2071
+
2072
+
2073
+
2074
+
2075
+
2076
+
2077
+
2078
+
2079
+
2080
+
2081
+
2082
+
2083
+
2084
+
2085
+
2086
+
2087
+
2088
+
2089
+
2090
+
2091
+
2092
+
2093
+
2094
+
2095
+
2096
+
2097
+
2098
+
2099
+
2100
+
2101
+ 巿
2102
+
2103
+
2104
+
2105
+
2106
+
2107
+
2108
+
2109
+
2110
+
2111
+
2112
+
2113
+
2114
+
2115
+
2116
+
2117
+
2118
+
2119
+
2120
+
2121
+
2122
+
2123
+
2124
+
2125
+
2126
+
2127
+
2128
+
2129
+
2130
+
2131
+
2132
+
2133
+
2134
+
2135
+
2136
+
2137
+
2138
+
2139
+
2140
+
2141
+
2142
+
2143
+
2144
+
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+
2151
+
2152
+
2153
+ 广
2154
+
2155
+
2156
+
2157
+
2158
+
2159
+
2160
+
2161
+
2162
+
2163
+
2164
+
2165
+
2166
+
2167
+
2168
+
2169
+
2170
+
2171
+
2172
+
2173
+
2174
+
2175
+
2176
+
2177
+
2178
+
2179
+
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+
2186
+
2187
+
2188
+
2189
+
2190
+
2191
+
2192
+
2193
+
2194
+
2195
+
2196
+
2197
+
2198
+
2199
+
2200
+
2201
+
2202
+
2203
+
2204
+
2205
+
2206
+
2207
+
2208
+
2209
+ 廿
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+
2216
+
2217
+
2218
+
2219
+
2220
+
2221
+
2222
+
2223
+
2224
+
2225
+
2226
+
2227
+
2228
+
2229
+
2230
+
2231
+
2232
+
2233
+
2234
+
2235
+
2236
+
2237
+
2238
+
2239
+
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+
2246
+
2247
+
2248
+
2249
+
2250
+
2251
+
2252
+
2253
+
2254
+
2255
+
2256
+
2257
+
2258
+
2259
+
2260
+
2261
+
2262
+
2263
+
2264
+
2265
+
2266
+
2267
+
2268
+
2269
+
2270
+
2271
+
2272
+
2273
+
2274
+
2275
+
2276
+
2277
+
2278
+
2279
+
2280
+
2281
+
2282
+
2283
+
2284
+
2285
+
2286
+
2287
+
2288
+
2289
+
2290
+
2291
+
2292
+
2293
+
2294
+
2295
+
2296
+
2297
+
2298
+
2299
+
2300
+
2301
+
2302
+
2303
+
2304
+
2305
+
2306
+
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+
2313
+
2314
+
2315
+
2316
+
2317
+
2318
+
2319
+
2320
+
2321
+
2322
+
2323
+
2324
+
2325
+
2326
+
2327
+
2328
+ 忿
2329
+ 怀
2330
+
2331
+
2332
+
2333
+
2334
+
2335
+
2336
+
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+
2343
+
2344
+
2345
+
2346
+
2347
+
2348
+
2349
+
2350
+
2351
+
2352
+
2353
+
2354
+
2355
+
2356
+
2357
+
2358
+
2359
+
2360
+
2361
+
2362
+
2363
+
2364
+
2365
+
2366
+
2367
+
2368
+
2369
+
2370
+
2371
+
2372
+
2373
+
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+
2380
+
2381
+
2382
+
2383
+
2384
+
2385
+
2386
+
2387
+
2388
+
2389
+
2390
+
2391
+
2392
+
2393
+
2394
+
2395
+
2396
+
2397
+
2398
+
2399
+
2400
+
2401
+
2402
+
2403
+
2404
+
2405
+
2406
+
2407
+
2408
+
2409
+
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+
2416
+
2417
+
2418
+
2419
+
2420
+
2421
+
2422
+
2423
+
2424
+
2425
+
2426
+
2427
+
2428
+
2429
+
2430
+
2431
+
2432
+
2433
+
2434
+
2435
+
2436
+
2437
+
2438
+
2439
+
2440
+
2441
+
2442
+
2443
+
2444
+
2445
+
2446
+
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+
2453
+
2454
+
2455
+
2456
+
2457
+
2458
+
2459
+
2460
+
2461
+
2462
+
2463
+
2464
+
2465
+
2466
+
2467
+
2468
+
2469
+
2470
+
2471
+
2472
+
2473
+
2474
+
2475
+
2476
+
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+
2483
+
2484
+
2485
+
2486
+
2487
+
2488
+
2489
+
2490
+
2491
+
2492
+
2493
+
2494
+
2495
+
2496
+
2497
+
2498
+
2499
+
2500
+
2501
+
2502
+
2503
+
2504
+
2505
+
2506
+
2507
+
2508
+
2509
+
2510
+
2511
+
2512
+
2513
+
2514
+
2515
+
2516
+
2517
+
2518
+
2519
+
2520
+
2521
+
2522
+
2523
+
2524
+
2525
+
2526
+
2527
+
2528
+
2529
+
2530
+
2531
+
2532
+
2533
+
2534
+
2535
+
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+
2542
+
2543
+
2544
+
2545
+
2546
+
2547
+
2548
+
2549
+
2550
+
2551
+
2552
+
2553
+
2554
+
2555
+
2556
+
2557
+
2558
+
2559
+
2560
+
2561
+
2562
+
2563
+
2564
+
2565
+
2566
+
2567
+
2568
+
2569
+
2570
+
2571
+
2572
+
2573
+
2574
+
2575
+
2576
+
2577
+
2578
+
2579
+
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+
2586
+
2587
+
2588
+
2589
+
2590
+
2591
+
2592
+
2593
+
2594
+
2595
+
2596
+
2597
+
2598
+
2599
+
2600
+
2601
+
2602
+
2603
+
2604
+
2605
+
2606
+
2607
+
2608
+
2609
+
2610
+
2611
+
2612
+
2613
+
2614
+
2615
+
2616
+
2617
+
2618
+
2619
+
2620
+
2621
+
2622
+
2623
+
2624
+
2625
+
2626
+
2627
+
2628
+
2629
+
2630
+
2631
+
2632
+
2633
+
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+
2640
+
2641
+
2642
+
2643
+
2644
+
2645
+
2646
+
2647
+
2648
+
2649
+
2650
+
2651
+
2652
+
2653
+
2654
+
2655
+
2656
+
2657
+
2658
+
2659
+
2660
+
2661
+
2662
+
2663
+
2664
+
2665
+
2666
+
2667
+
2668
+
2669
+
2670
+
2671
+
2672
+
2673
+
2674
+
2675
+
2676
+
2677
+
2678
+
2679
+
2680
+
2681
+
2682
+
2683
+
2684
+
2685
+
2686
+
2687
+
2688
+
2689
+
2690
+
2691
+
2692
+
2693
+
2694
+
2695
+
2696
+
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+
2703
+
2704
+
2705
+
2706
+
2707
+
2708
+
2709
+
2710
+
2711
+
2712
+
2713
+
2714
+
2715
+
2716
+
2717
+
2718
+
2719
+
2720
+
2721
+
2722
+
2723
+
2724
+
2725
+
2726
+
2727
+
2728
+
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+
2735
+
2736
+
2737
+
2738
+
2739
+
2740
+
2741
+
2742
+
2743
+
2744
+
2745
+
2746
+
2747
+
2748
+
2749
+
2750
+
2751
+
2752
+
2753
+
2754
+
2755
+
2756
+
2757
+
2758
+
2759
+
2760
+
2761
+
2762
+
2763
+
2764
+
2765
+
2766
+
2767
+
2768
+
2769
+
2770
+
2771
+
2772
+
2773
+
2774
+
2775
+
2776
+
2777
+
2778
+
2779
+
2780
+
2781
+
2782
+
2783
+
2784
+
2785
+
2786
+
2787
+
2788
+
2789
+
2790
+
2791
+
2792
+
2793
+
2794
+
2795
+
2796
+
2797
+
2798
+
2799
+
2800
+
2801
+
2802
+
2803
+
2804
+
2805
+
2806
+
2807
+
2808
+
2809
+
2810
+
2811
+
2812
+
2813
+
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+
2820
+
2821
+
2822
+
2823
+
2824
+
2825
+
2826
+
2827
+
2828
+
2829
+
2830
+
2831
+
2832
+
2833
+
2834
+
2835
+
2836
+
2837
+
2838
+
2839
+
2840
+
2841
+
2842
+
2843
+
2844
+
2845
+
2846
+
2847
+
2848
+
2849
+
2850
+
2851
+
2852
+
2853
+
2854
+
2855
+
2856
+
2857
+
2858
+
2859
+
2860
+
2861
+
2862
+
2863
+
2864
+
2865
+
2866
+
2867
+
2868
+
2869
+
2870
+
2871
+
2872
+
2873
+
2874
+
2875
+
2876
+
2877
+
2878
+
2879
+
2880
+
2881
+
2882
+
2883
+
2884
+
2885
+
2886
+
2887
+
2888
+
2889
+
2890
+
2891
+
2892
+
2893
+
2894
+
2895
+
2896
+
2897
+
2898
+
2899
+
2900
+
2901
+
2902
+
2903
+
2904
+
2905
+
2906
+
2907
+
2908
+
2909
+
2910
+
2911
+
2912
+
2913
+
2914
+
2915
+
2916
+
2917
+
2918
+
2919
+
2920
+
2921
+
2922
+
2923
+
2924
+
2925
+
2926
+
2927
+
2928
+
2929
+
2930
+
2931
+
2932
+
2933
+
2934
+
2935
+
2936
+
2937
+
2938
+
2939
+
2940
+
2941
+
2942
+
2943
+
2944
+
2945
+
2946
+
2947
+
2948
+
2949
+
2950
+
2951
+
2952
+
2953
+
2954
+
2955
+
2956
+
2957
+
2958
+
2959
+
2960
+
2961
+
2962
+
2963
+
2964
+
2965
+
2966
+
2967
+
2968
+
2969
+
2970
+
2971
+
2972
+
2973
+
2974
+
2975
+
2976
+
2977
+
2978
+
2979
+
2980
+
2981
+
2982
+
2983
+
2984
+
2985
+
2986
+
2987
+
2988
+
2989
+
2990
+
2991
+
2992
+
2993
+
2994
+
2995
+
2996
+
2997
+
2998
+
2999
+
3000
+
3001
+
3002
+
3003
+
3004
+
3005
+
3006
+
3007
+
3008
+
3009
+
3010
+
3011
+
3012
+
3013
+
3014
+
3015
+
3016
+
3017
+
3018
+
3019
+
3020
+
3021
+
3022
+
3023
+
3024
+
3025
+
3026
+
3027
+
3028
+
3029
+
3030
+
3031
+
3032
+
3033
+
3034
+
3035
+
3036
+
3037
+
3038
+
3039
+
3040
+
3041
+
3042
+
3043
+
3044
+
3045
+
3046
+
3047
+
3048
+
3049
+
3050
+
3051
+
3052
+
3053
+
3054
+
3055
+
3056
+
3057
+
3058
+
3059
+
3060
+
3061
+
3062
+
3063
+
3064
+
3065
+
3066
+
3067
+
3068
+
3069
+
3070
+
3071
+
3072
+
3073
+
3074
+
3075
+
3076
+
3077
+
3078
+
3079
+
3080
+
3081
+
3082
+
3083
+
3084
+
3085
+
3086
+
3087
+
3088
+
3089
+
3090
+
3091
+
3092
+
3093
+
3094
+
3095
+
3096
+
3097
+
3098
+
3099
+
3100
+
3101
+
3102
+
3103
+
3104
+
3105
+
3106
+
3107
+
3108
+
3109
+
3110
+
3111
+
3112
+
3113
+
3114
+
3115
+
3116
+
3117
+
3118
+
3119
+
3120
+
3121
+
3122
+
3123
+
3124
+
3125
+
3126
+
3127
+
3128
+
3129
+
3130
+
3131
+
3132
+
3133
+
3134
+
3135
+
3136
+
3137
+
3138
+
3139
+
3140
+
3141
+
3142
+
3143
+
3144
+
3145
+
3146
+
3147
+
3148
+
3149
+
3150
+
3151
+
3152
+
3153
+
3154
+
3155
+
3156
+
3157
+
3158
+
3159
+
3160
+
3161
+
3162
+
3163
+
3164
+
3165
+
3166
+
3167
+
3168
+
3169
+
3170
+
3171
+
3172
+
3173
+
3174
+
3175
+
3176
+
3177
+
3178
+
3179
+
3180
+
3181
+
3182
+
3183
+
3184
+
3185
+
3186
+
3187
+
3188
+
3189
+
3190
+
3191
+
3192
+
3193
+
3194
+
3195
+
3196
+
3197
+
3198
+
3199
+
3200
+
3201
+
3202
+
3203
+
3204
+
3205
+
3206
+
3207
+
3208
+
3209
+
3210
+
3211
+
3212
+
3213
+
3214
+
3215
+
3216
+
3217
+
3218
+
3219
+
3220
+
3221
+
3222
+
3223
+
3224
+
3225
+
3226
+
3227
+
3228
+
3229
+
3230
+
3231
+
3232
+
3233
+
3234
+
3235
+
3236
+
3237
+
3238
+
3239
+
3240
+
3241
+
3242
+
3243
+
3244
+
3245
+
3246
+
3247
+
3248
+
3249
+
3250
+
3251
+
3252
+
3253
+
3254
+
3255
+
3256
+
3257
+
3258
+
3259
+
3260
+
3261
+
3262
+
3263
+
3264
+
3265
+
3266
+
3267
+
3268
+
3269
+
3270
+
3271
+
3272
+
3273
+
3274
+
3275
+
3276
+
3277
+
3278
+
3279
+
3280
+
3281
+
3282
+
3283
+
3284
+
3285
+
3286
+
3287
+
3288
+
3289
+
3290
+
3291
+
3292
+
3293
+
3294
+
3295
+
3296
+
3297
+
3298
+
3299
+
3300
+
3301
+
3302
+
3303
+
3304
+
3305
+
3306
+
3307
+
3308
+
3309
+
3310
+
3311
+
3312
+
3313
+
3314
+
3315
+
3316
+
3317
+
3318
+
3319
+
3320
+
3321
+
3322
+
3323
+
3324
+
3325
+
3326
+
3327
+
3328
+
3329
+
3330
+
3331
+
3332
+
3333
+
3334
+
3335
+
3336
+
3337
+
3338
+
3339
+
3340
+
3341
+
3342
+
3343
+
3344
+
3345
+
3346
+
3347
+
3348
+
3349
+
3350
+
3351
+
3352
+
3353
+
3354
+ 椿
3355
+
3356
+
3357
+
3358
+
3359
+
3360
+
3361
+
3362
+
3363
+
3364
+
3365
+
3366
+
3367
+
3368
+
3369
+
3370
+
3371
+
3372
+
3373
+
3374
+
3375
+
3376
+
3377
+
3378
+
3379
+
3380
+
3381
+
3382
+
3383
+
3384
+
3385
+
3386
+
3387
+
3388
+
3389
+
3390
+
3391
+
3392
+
3393
+
3394
+
3395
+
3396
+
3397
+
3398
+
3399
+
3400
+
3401
+
3402
+
3403
+
3404
+
3405
+
3406
+
3407
+
3408
+
3409
+
3410
+
3411
+
3412
+
3413
+
3414
+
3415
+
3416
+
3417
+
3418
+
3419
+
3420
+
3421
+
3422
+
3423
+
3424
+
3425
+
3426
+
3427
+ 槿
3428
+
3429
+
3430
+
3431
+
3432
+
3433
+
3434
+
3435
+
3436
+
3437
+
3438
+
3439
+
3440
+
3441
+
3442
+
3443
+
3444
+
3445
+
3446
+
3447
+
3448
+
3449
+
3450
+
3451
+
3452
+
3453
+
3454
+
3455
+
3456
+
3457
+
3458
+
3459
+
3460
+
3461
+
3462
+
3463
+
3464
+
3465
+
3466
+
3467
+
3468
+
3469
+
3470
+
3471
+
3472
+
3473
+
3474
+
3475
+
3476
+
3477
+
3478
+
3479
+
3480
+
3481
+
3482
+
3483
+
3484
+
3485
+
3486
+
3487
+
3488
+
3489
+
3490
+
3491
+
3492
+
3493
+
3494
+
3495
+
3496
+
3497
+
3498
+
3499
+
3500
+
3501
+
3502
+
3503
+
3504
+
3505
+
3506
+
3507
+
3508
+
3509
+
3510
+
3511
+
3512
+
3513
+
3514
+
3515
+
3516
+
3517
+
3518
+
3519
+
3520
+
3521
+
3522
+
3523
+
3524
+
3525
+
3526
+
3527
+
3528
+
3529
+ 殿
3530
+
3531
+
3532
+
3533
+
3534
+
3535
+
3536
+
3537
+
3538
+
3539
+
3540
+
3541
+
3542
+
3543
+
3544
+
3545
+
3546
+
3547
+
3548
+
3549
+
3550
+
3551
+
3552
+
3553
+
3554
+
3555
+
3556
+
3557
+
3558
+
3559
+
3560
+
3561
+
3562
+
3563
+
3564
+
3565
+
3566
+
3567
+
3568
+
3569
+
3570
+
3571
+
3572
+
3573
+
3574
+
3575
+
3576
+
3577
+
3578
+
3579
+
3580
+
3581
+
3582
+
3583
+
3584
+
3585
+
3586
+
3587
+
3588
+
3589
+
3590
+
3591
+
3592
+ 氿
3593
+
3594
+
3595
+
3596
+
3597
+
3598
+
3599
+
3600
+
3601
+
3602
+
3603
+
3604
+
3605
+
3606
+
3607
+
3608
+
3609
+
3610
+
3611
+
3612
+
3613
+
3614
+
3615
+
3616
+
3617
+
3618
+
3619
+
3620
+
3621
+
3622
+
3623
+
3624
+
3625
+
3626
+
3627
+
3628
+
3629
+
3630
+
3631
+
3632
+
3633
+
3634
+
3635
+
3636
+
3637
+
3638
+
3639
+
3640
+
3641
+
3642
+
3643
+
3644
+
3645
+
3646
+
3647
+
3648
+
3649
+
3650
+
3651
+
3652
+
3653
+
3654
+
3655
+
3656
+
3657
+
3658
+
3659
+
3660
+
3661
+
3662
+
3663
+
3664
+
3665
+
3666
+
3667
+
3668
+
3669
+ 沿
3670
+
3671
+
3672
+
3673
+
3674
+
3675
+
3676
+
3677
+
3678
+
3679
+
3680
+
3681
+
3682
+
3683
+
3684
+
3685
+
3686
+
3687
+
3688
+
3689
+
3690
+
3691
+
3692
+
3693
+
3694
+
3695
+
3696
+
3697
+
3698
+
3699
+
3700
+
3701
+
3702
+
3703
+
3704
+
3705
+
3706
+
3707
+
3708
+
3709
+
3710
+
3711
+
3712
+
3713
+
3714
+
3715
+
3716
+
3717
+
3718
+
3719
+
3720
+
3721
+
3722
+
3723
+
3724
+
3725
+
3726
+
3727
+
3728
+
3729
+
3730
+
3731
+
3732
+
3733
+
3734
+
3735
+
3736
+
3737
+
3738
+
3739
+
3740
+
3741
+
3742
+
3743
+
3744
+
3745
+
3746
+
3747
+
3748
+
3749
+
3750
+
3751
+
3752
+
3753
+
3754
+
3755
+
3756
+
3757
+
3758
+
3759
+
3760
+
3761
+
3762
+
3763
+
3764
+
3765
+
3766
+
3767
+
3768
+
3769
+
3770
+
3771
+
3772
+
3773
+
3774
+
3775
+
3776
+
3777
+
3778
+
3779
+
3780
+
3781
+
3782
+
3783
+
3784
+
3785
+
3786
+
3787
+
3788
+
3789
+
3790
+
3791
+
3792
+
3793
+
3794
+
3795
+
3796
+
3797
+
3798
+
3799
+
3800
+
3801
+
3802
+
3803
+
3804
+
3805
+
3806
+
3807
+
3808
+
3809
+
3810
+
3811
+
3812
+ 涿
3813
+
3814
+
3815
+
3816
+
3817
+
3818
+
3819
+
3820
+
3821
+
3822
+
3823
+
3824
+
3825
+
3826
+
3827
+
3828
+
3829
+
3830
+
3831
+
3832
+
3833
+
3834
+
3835
+
3836
+
3837
+
3838
+
3839
+
3840
+
3841
+
3842
+
3843
+
3844
+
3845
+
3846
+
3847
+
3848
+
3849
+
3850
+
3851
+
3852
+
3853
+
3854
+
3855
+
3856
+
3857
+
3858
+
3859
+
3860
+
3861
+
3862
+
3863
+
3864
+
3865
+
3866
+
3867
+
3868
+
3869
+
3870
+
3871
+
3872
+
3873
+
3874
+
3875
+
3876
+
3877
+
3878
+
3879
+
3880
+
3881
+
3882
+
3883
+
3884
+
3885
+
3886
+
3887
+
3888
+
3889
+
3890
+
3891
+
3892
+
3893
+
3894
+
3895
+
3896
+
3897
+
3898
+ 湿
3899
+
3900
+
3901
+
3902
+
3903
+
3904
+
3905
+
3906
+
3907
+
3908
+
3909
+
3910
+
3911
+
3912
+
3913
+
3914
+
3915
+
3916
+
3917
+
3918
+
3919
+
3920
+
3921
+
3922
+
3923
+
3924
+
3925
+
3926
+
3927
+
3928
+
3929
+
3930
+
3931
+
3932
+
3933
+
3934
+
3935
+
3936
+
3937
+
3938
+
3939
+
3940
+
3941
+
3942
+
3943
+
3944
+
3945
+
3946
+
3947
+
3948
+
3949
+
3950
+
3951
+
3952
+
3953
+
3954
+
3955
+
3956
+
3957
+
3958
+
3959
+
3960
+
3961
+
3962
+
3963
+
3964
+
3965
+
3966
+
3967
+
3968
+
3969
+
3970
+
3971
+
3972
+
3973
+
3974
+
3975
+
3976
+
3977
+
3978
+
3979
+
3980
+
3981
+
3982
+
3983
+
3984
+
3985
+
3986
+
3987
+
3988
+
3989
+
3990
+
3991
+
3992
+
3993
+
3994
+
3995
+
3996
+
3997
+
3998
+
3999
+
4000
+
4001
+
4002
+
4003
+
4004
+
4005
+
4006
+
4007
+
4008
+
4009
+
4010
+
4011
+
4012
+
4013
+
4014
+
4015
+
4016
+
4017
+
4018
+
4019
+
4020
+
4021
+
4022
+
4023
+
4024
+
4025
+
4026
+
4027
+
4028
+
4029
+
4030
+ 瀀
4031
+
4032
+
4033
+
4034
+
4035
+
4036
+
4037
+
4038
+
4039
+
4040
+
4041
+
4042
+
4043
+
4044
+
4045
+
4046
+
4047
+
4048
+
4049
+
4050
+
4051
+
4052
+
4053
+
4054
+
4055
+
4056
+
4057
+
4058
+
4059
+
4060
+
4061
+
4062
+
4063
+
4064
+
4065
+
4066
+
4067
+
4068
+
4069
+
4070
+
4071
+
4072
+
4073
+
4074
+
4075
+
4076
+
4077
+
4078
+
4079
+
4080
+
4081
+
4082
+
4083
+
4084
+
4085
+
4086
+
4087
+
4088
+
4089
+
4090
+
4091
+
4092
+
4093
+
4094
+
4095
+
4096
+
4097
+
4098
+
4099
+
4100
+
4101
+
4102
+
4103
+
4104
+
4105
+
4106
+
4107
+
4108
+
4109
+
4110
+
4111
+
4112
+
4113
+
4114
+
4115
+
4116
+
4117
+
4118
+
4119
+
4120
+
4121
+
4122
+
4123
+
4124
+
4125
+
4126
+
4127
+
4128
+
4129
+
4130
+
4131
+
4132
+
4133
+
4134
+
4135
+
4136
+
4137
+
4138
+
4139
+
4140
+
4141
+
4142
+
4143
+
4144
+
4145
+
4146
+
4147
+
4148
+
4149
+
4150
+
4151
+
4152
+
4153
+
4154
+
4155
+
4156
+
4157
+
4158
+
4159
+
4160
+
4161
+
4162
+
4163
+
4164
+
4165
+
4166
+
4167
+
4168
+
4169
+
4170
+
4171
+
4172
+
4173
+
4174
+
4175
+
4176
+
4177
+
4178
+
4179
+
4180
+
4181
+
4182
+
4183
+
4184
+
4185
+
4186
+
4187
+
4188
+
4189
+
4190
+
4191
+
4192
+
4193
+
4194
+
4195
+
4196
+
4197
+
4198
+
4199
+
4200
+
4201
+
4202
+
4203
+
4204
+
4205
+
4206
+
4207
+
4208
+
4209
+
4210
+
4211
+
4212
+
4213
+
4214
+
4215
+
4216
+
4217
+
4218
+
4219
+
4220
+
4221
+
4222
+
4223
+
4224
+
4225
+
4226
+
4227
+
4228
+
4229
+
4230
+
4231
+
4232
+
4233
+
4234
+
4235
+
4236
+
4237
+
4238
+
4239
+
4240
+
4241
+
4242
+
4243
+
4244
+
4245
+
4246
+
4247
+
4248
+
4249
+
4250
+
4251
+
4252
+
4253
+
4254
+
4255
+
4256
+
4257
+
4258
+
4259
+
4260
+
4261
+
4262
+
4263
+
4264
+
4265
+
4266
+
4267
+
4268
+
4269
+
4270
+
4271
+
4272
+
4273
+
4274
+
4275
+
4276
+
4277
+
4278
+
4279
+
4280
+
4281
+
4282
+
4283
+
4284
+
4285
+
4286
+
4287
+
4288
+
4289
+
4290
+
4291
+
4292
+
4293
+
4294
+
4295
+
4296
+
4297
+
4298
+
4299
+
4300
+
4301
+
4302
+
4303
+
4304
+
4305
+
4306
+
4307
+
4308
+
4309
+
4310
+
4311
+
4312
+
4313
+
4314
+
4315
+
4316
+
4317
+
4318
+
4319
+
4320
+
4321
+
4322
+
4323
+
4324
+
4325
+
4326
+
4327
+
4328
+
4329
+
4330
+
4331
+
4332
+
4333
+
4334
+
4335
+
4336
+
4337
+
4338
+
4339
+
4340
+
4341
+
4342
+
4343
+
4344
+
4345
+
4346
+
4347
+
4348
+
4349
+
4350
+
4351
+
4352
+
4353
+
4354
+
4355
+
4356
+
4357
+
4358
+
4359
+
4360
+
4361
+
4362
+
4363
+
4364
+
4365
+
4366
+
4367
+
4368
+
4369
+
4370
+
4371
+
4372
+
4373
+
4374
+
4375
+
4376
+
4377
+
4378
+
4379
+
4380
+
4381
+
4382
+
4383
+
4384
+
4385
+
4386
+
4387
+
4388
+
4389
+
4390
+
4391
+
4392
+
4393
+
4394
+
4395
+
4396
+
4397
+
4398
+
4399
+
4400
+
4401
+
4402
+
4403
+
4404
+
4405
+
4406
+
4407
+
4408
+
4409
+
4410
+
4411
+
4412
+
4413
+
4414
+
4415
+
4416
+
4417
+
4418
+
4419
+
4420
+
4421
+
4422
+
4423
+
4424
+
4425
+
4426
+
4427
+
4428
+
4429
+
4430
+
4431
+
4432
+
4433
+
4434
+
4435
+
4436
+
4437
+
4438
+
4439
+
4440
+
4441
+
4442
+
4443
+
4444
+
4445
+
4446
+
4447
+
4448
+
4449
+
4450
+
4451
+
4452
+
4453
+
4454
+
4455
+
4456
+
4457
+
4458
+
4459
+
4460
+
4461
+
4462
+
4463
+
4464
+
4465
+
4466
+
4467
+
4468
+
4469
+
4470
+
4471
+
4472
+
4473
+
4474
+
4475
+
4476
+
4477
+
4478
+
4479
+
4480
+
4481
+
4482
+
4483
+
4484
+
4485
+
4486
+
4487
+
4488
+
4489
+
4490
+
4491
+
4492
+
4493
+
4494
+
4495
+
4496
+
4497
+
4498
+
4499
+
4500
+
4501
+
4502
+
4503
+
4504
+
4505
+
4506
+
4507
+
4508
+
4509
+
4510
+
4511
+
4512
+
4513
+
4514
+
4515
+
4516
+
4517
+
4518
+
4519
+
4520
+
4521
+
4522
+
4523
+
4524
+
4525
+
4526
+
4527
+
4528
+
4529
+
4530
+
4531
+
4532
+
4533
+
4534
+
4535
+
4536
+
4537
+
4538
+
4539
+
4540
+
4541
+
4542
+
4543
+
4544
+
4545
+
4546
+
4547
+
4548
+
4549
+
4550
+
4551
+
4552
+
4553
+
4554
+
4555
+
4556
+
4557
+
4558
+
4559
+
4560
+
4561
+
4562
+
4563
+
4564
+
4565
+
4566
+
4567
+
4568
+
4569
+
4570
+
4571
+
4572
+
4573
+
4574
+
4575
+
4576
+
4577
+
4578
+
4579
+
4580
+
4581
+
4582
+
4583
+
4584
+
4585
+
4586
+
4587
+
4588
+
4589
+
4590
+
4591
+
4592
+
4593
+
4594
+
4595
+
4596
+
4597
+
4598
+
4599
+
4600
+
4601
+
4602
+
4603
+
4604
+
4605
+
4606
+
4607
+
4608
+
4609
+
4610
+
4611
+
4612
+
4613
+
4614
+
4615
+
4616
+
4617
+
4618
+
4619
+
4620
+
4621
+
4622
+
4623
+
4624
+
4625
+
4626
+
4627
+
4628
+
4629
+
4630
+
4631
+
4632
+
4633
+
4634
+
4635
+
4636
+
4637
+
4638
+
4639
+
4640
+
4641
+
4642
+
4643
+
4644
+
4645
+
4646
+
4647
+
4648
+
4649
+
4650
+
4651
+
4652
+
4653
+
4654
+
4655
+
4656
+
4657
+
4658
+
4659
+
4660
+
4661
+
4662
+
4663
+
4664
+
4665
+
4666
+
4667
+
4668
+
4669
+
4670
+
4671
+
4672
+
4673
+
4674
+
4675
+
4676
+
4677
+
4678
+
4679
+
4680
+
4681
+
4682
+
4683
+
4684
+
4685
+
4686
+
4687
+
4688
+
4689
+
4690
+
4691
+
4692
+
4693
+
4694
+
4695
+
4696
+
4697
+
4698
+
4699
+
4700
+
4701
+
4702
+
4703
+
4704
+
4705
+
4706
+
4707
+
4708
+
4709
+
4710
+
4711
+
4712
+
4713
+
4714
+
4715
+
4716
+
4717
+
4718
+
4719
+
4720
+
4721
+
4722
+
4723
+
4724
+
4725
+
4726
+
4727
+
4728
+
4729
+
4730
+
4731
+
4732
+
4733
+
4734
+
4735
+
4736
+
4737
+
4738
+
4739
+
4740
+
4741
+
4742
+
4743
+
4744
+
4745
+
4746
+
4747
+
4748
+
4749
+
4750
+
4751
+
4752
+
4753
+
4754
+
4755
+
4756
+
4757
+
4758
+
4759
+
4760
+
4761
+
4762
+
4763
+
4764
+
4765
+
4766
+
4767
+
4768
+
4769
+
4770
+
4771
+
4772
+
4773
+
4774
+
4775
+
4776
+
4777
+
4778
+
4779
+
4780
+
4781
+
4782
+
4783
+
4784
+
4785
+
4786
+
4787
+
4788
+
4789
+
4790
+
4791
+
4792
+
4793
+
4794
+
4795
+
4796
+
4797
+
4798
+
4799
+
4800
+
4801
+
4802
+
4803
+
4804
+
4805
+
4806
+
4807
+
4808
+
4809
+
4810
+
4811
+
4812
+
4813
+
4814
+
4815
+
4816
+
4817
+
4818
+
4819
+
4820
+
4821
+
4822
+
4823
+
4824
+
4825
+
4826
+
4827
+
4828
+
4829
+
4830
+
4831
+
4832
+
4833
+
4834
+
4835
+
4836
+
4837
+
4838
+
4839
+
4840
+
4841
+
4842
+
4843
+
4844
+
4845
+
4846
+
4847
+
4848
+
4849
+
4850
+
4851
+
4852
+
4853
+
4854
+
4855
+
4856
+
4857
+
4858
+
4859
+
4860
+
4861
+
4862
+
4863
+
4864
+
4865
+
4866
+
4867
+
4868
+
4869
+
4870
+
4871
+
4872
+
4873
+
4874
+
4875
+
4876
+
4877
+
4878
+
4879
+
4880
+
4881
+
4882
+
4883
+
4884
+
4885
+
4886
+
4887
+
4888
+
4889
+
4890
+
4891
+
4892
+
4893
+
4894
+
4895
+
4896
+
4897
+
4898
+
4899
+
4900
+
4901
+
4902
+
4903
+
4904
+
4905
+
4906
+
4907
+
4908
+
4909
+
4910
+
4911
+
4912
+
4913
+
4914
+
4915
+
4916
+
4917
+
4918
+
4919
+
4920
+
4921
+
4922
+
4923
+
4924
+
4925
+
4926
+
4927
+
4928
+
4929
+
4930
+
4931
+
4932
+
4933
+
4934
+
4935
+
4936
+
4937
+
4938
+
4939
+
4940
+
4941
+
4942
+
4943
+
4944
+
4945
+
4946
+
4947
+
4948
+
4949
+
4950
+
4951
+
4952
+
4953
+
4954
+
4955
+
4956
+
4957
+
4958
+
4959
+
4960
+
4961
+
4962
+
4963
+
4964
+
4965
+
4966
+
4967
+
4968
+
4969
+
4970
+
4971
+
4972
+
4973
+
4974
+
4975
+
4976
+
4977
+
4978
+
4979
+
4980
+
4981
+
4982
+
4983
+
4984
+
4985
+
4986
+
4987
+
4988
+
4989
+
4990
+
4991
+
4992
+
4993
+
4994
+
4995
+
4996
+
4997
+
4998
+
4999
+
5000
+
5001
+
5002
+
5003
+
5004
+
5005
+
5006
+
5007
+
5008
+
5009
+
5010
+
5011
+
5012
+
5013
+
5014
+
5015
+
5016
+
5017
+
5018
+
5019
+
5020
+
5021
+
5022
+
5023
+
5024
+
5025
+
5026
+
5027
+
5028
+
5029
+
5030
+
5031
+ 稿
5032
+
5033
+
5034
+
5035
+
5036
+
5037
+
5038
+
5039
+
5040
+
5041
+
5042
+
5043
+
5044
+
5045
+ 穿
5046
+
5047
+
5048
+
5049
+
5050
+
5051
+
5052
+
5053
+
5054
+
5055
+
5056
+
5057
+
5058
+
5059
+
5060
+
5061
+
5062
+
5063
+
5064
+
5065
+
5066
+
5067
+
5068
+
5069
+
5070
+
5071
+
5072
+
5073
+
5074
+ 窿
5075
+
5076
+
5077
+
5078
+
5079
+
5080
+
5081
+
5082
+
5083
+
5084
+
5085
+
5086
+
5087
+
5088
+
5089
+
5090
+
5091
+
5092
+ 竿
5093
+
5094
+
5095
+
5096
+
5097
+
5098
+
5099
+
5100
+
5101
+
5102
+
5103
+
5104
+
5105
+
5106
+
5107
+
5108
+
5109
+
5110
+
5111
+
5112
+
5113
+
5114
+
5115
+
5116
+
5117
+
5118
+
5119
+
5120
+
5121
+
5122
+
5123
+
5124
+
5125
+
5126
+
5127
+
5128
+
5129
+
5130
+
5131
+
5132
+
5133
+
5134
+
5135
+
5136
+
5137
+
5138
+
5139
+
5140
+
5141
+
5142
+
5143
+
5144
+
5145
+
5146
+
5147
+
5148
+
5149
+
5150
+
5151
+
5152
+
5153
+
5154
+
5155
+
5156
+
5157
+
5158
+
5159
+
5160
+
5161
+
5162
+
5163
+
5164
+
5165
+
5166
+
5167
+
5168
+
5169
+
5170
+
5171
+
5172
+
5173
+
5174
+
5175
+
5176
+
5177
+
5178
+
5179
+
5180
+
5181
+
5182
+
5183
+
5184
+
5185
+
5186
+
5187
+
5188
+
5189
+
5190
+
5191
+
5192
+
5193
+
5194
+
5195
+
5196
+
5197
+
5198
+
5199
+
5200
+
5201
+
5202
+
5203
+
5204
+
5205
+
5206
+
5207
+ 簿
5208
+
5209
+
5210
+
5211
+
5212
+
5213
+
5214
+
5215
+
5216
+
5217
+
5218
+
5219
+
5220
+
5221
+
5222
+
5223
+
5224
+
5225
+
5226
+
5227
+
5228
+
5229
+
5230
+
5231
+
5232
+
5233
+
5234
+
5235
+
5236
+
5237
+
5238
+
5239
+
5240
+
5241
+
5242
+
5243
+
5244
+
5245
+ 粿
5246
+
5247
+
5248
+
5249
+
5250
+
5251
+
5252
+
5253
+
5254
+
5255
+
5256
+
5257
+
5258
+
5259
+
5260
+
5261
+
5262
+
5263
+
5264
+
5265
+
5266
+
5267
+
5268
+
5269
+
5270
+
5271
+
5272
+
5273
+
5274
+
5275
+
5276
+
5277
+
5278
+
5279
+
5280
+
5281
+
5282
+
5283
+
5284
+
5285
+
5286
+
5287
+
5288
+
5289
+
5290
+
5291
+
5292
+
5293
+
5294
+
5295
+
5296
+
5297
+
5298
+
5299
+
5300
+
5301
+
5302
+
5303
+
5304
+
5305
+
5306
+
5307
+
5308
+
5309
+
5310
+
5311
+
5312
+
5313
+
5314
+
5315
+
5316
+
5317
+
5318
+
5319
+
5320
+
5321
+
5322
+
5323
+
5324
+
5325
+
5326
+
5327
+
5328
+
5329
+
5330
+
5331
+
5332
+
5333
+
5334
+
5335
+ 线
5336
+
5337
+
5338
+
5339
+
5340
+
5341
+
5342
+
5343
+
5344
+
5345
+
5346
+
5347
+
5348
+
5349
+
5350
+
5351
+
5352
+
5353
+
5354
+
5355
+
5356
+
5357
+
5358
+
5359
+
5360
+
5361
+
5362
+
5363
+
5364
+
5365
+
5366
+
5367
+
5368
+
5369
+
5370
+
5371
+
5372
+
5373
+
5374
+
5375
+
5376
+
5377
+
5378
+
5379
+
5380
+
5381
+
5382
+
5383
+
5384
+
5385
+
5386
+
5387
+
5388
+
5389
+
5390
+
5391
+
5392
+
5393
+
5394
+
5395
+ 绿
5396
+
5397
+
5398
+
5399
+
5400
+
5401
+
5402
+
5403
+
5404
+
5405
+
5406
+
5407
+
5408
+
5409
+
5410
+
5411
+
5412
+
5413
+
5414
+
5415
+
5416
+
5417
+
5418
+
5419
+
5420
+
5421
+
5422
+
5423
+
5424
+
5425
+
5426
+
5427
+
5428
+
5429
+
5430
+
5431
+
5432
+
5433
+
5434
+
5435
+
5436
+
5437
+
5438
+
5439
+
5440
+
5441
+
5442
+
5443
+
5444
+
5445
+
5446
+
5447
+
5448
+
5449
+
5450
+
5451
+
5452
+
5453
+
5454
+
5455
+
5456
+
5457
+
5458
+
5459
+
5460
+
5461
+
5462
+
5463
+
5464
+
5465
+
5466
+
5467
+
5468
+
5469
+
5470
+
5471
+
5472
+
5473
+
5474
+
5475
+
5476
+
5477
+
5478
+
5479
+
5480
+
5481
+
5482
+
5483
+
5484
+
5485
+
5486
+
5487
+
5488
+
5489
+
5490
+
5491
+
5492
+
5493
+
5494
+
5495
+
5496
+
5497
+
5498
+
5499
+
5500
+
5501
+
5502
+
5503
+
5504
+ 羿
5505
+
5506
+
5507
+
5508
+
5509
+
5510
+
5511
+
5512
+
5513
+
5514
+
5515
+
5516
+
5517
+
5518
+
5519
+
5520
+
5521
+
5522
+
5523
+
5524
+
5525
+
5526
+
5527
+
5528
+
5529
+
5530
+
5531
+
5532
+
5533
+ 耀
5534
+
5535
+
5536
+
5537
+
5538
+
5539
+
5540
+
5541
+
5542
+
5543
+
5544
+
5545
+
5546
+
5547
+
5548
+
5549
+
5550
+
5551
+
5552
+
5553
+
5554
+
5555
+
5556
+
5557
+
5558
+
5559
+
5560
+
5561
+
5562
+
5563
+
5564
+
5565
+
5566
+
5567
+
5568
+
5569
+
5570
+
5571
+
5572
+
5573
+
5574
+
5575
+
5576
+
5577
+
5578
+
5579
+
5580
+
5581
+
5582
+
5583
+
5584
+
5585
+
5586
+
5587
+
5588
+
5589
+
5590
+
5591
+
5592
+
5593
+
5594
+
5595
+
5596
+
5597
+
5598
+
5599
+
5600
+
5601
+
5602
+
5603
+
5604
+
5605
+
5606
+
5607
+
5608
+
5609
+
5610
+
5611
+
5612
+
5613
+
5614
+
5615
+
5616
+
5617
+
5618
+
5619
+
5620
+
5621
+
5622
+
5623
+
5624
+
5625
+
5626
+
5627
+
5628
+
5629
+
5630
+
5631
+
5632
+
5633
+
5634
+
5635
+
5636
+
5637
+
5638
+
5639
+
5640
+
5641
+
5642
+
5643
+
5644
+
5645
+
5646
+
5647
+
5648
+
5649
+
5650
+
5651
+
5652
+
5653
+
5654
+
5655
+
5656
+
5657
+
5658
+
5659
+
5660
+
5661
+
5662
+
5663
+
5664
+
5665
+
5666
+
5667
+
5668
+
5669
+
5670
+
5671
+
5672
+
5673
+
5674
+
5675
+
5676
+
5677
+
5678
+
5679
+
5680
+
5681
+
5682
+
5683
+
5684
+
5685
+
5686
+
5687
+
5688
+
5689
+
5690
+
5691
+
5692
+
5693
+
5694
+
5695
+
5696
+
5697
+
5698
+
5699
+
5700
+
5701
+
5702
+
5703
+
5704
+
5705
+
5706
+
5707
+
5708
+
5709
+
5710
+
5711
+
5712
+
5713
+
5714
+
5715
+
5716
+
5717
+
5718
+
5719
+
5720
+
5721
+
5722
+
5723
+
5724
+
5725
+
5726
+
5727
+
5728
+
5729
+
5730
+
5731
+
5732
+
5733
+
5734
+
5735
+
5736
+
5737
+
5738
+
5739
+
5740
+
5741
+
5742
+
5743
+
5744
+
5745
+
5746
+
5747
+
5748
+
5749
+
5750
+
5751
+
5752
+
5753
+
5754
+
5755
+
5756
+
5757
+
5758
+
5759
+
5760
+
5761
+
5762
+
5763
+
5764
+
5765
+
5766
+
5767
+
5768
+
5769
+
5770
+
5771
+
5772
+
5773
+
5774
+
5775
+
5776
+
5777
+
5778
+
5779
+
5780
+
5781
+
5782
+
5783
+
5784
+
5785
+
5786
+
5787
+
5788
+
5789
+
5790
+
5791
+
5792
+
5793
+
5794
+
5795
+
5796
+
5797
+
5798
+
5799
+
5800
+
5801
+
5802
+
5803
+
5804
+
5805
+
5806
+
5807
+
5808
+
5809
+
5810
+
5811
+
5812
+
5813
+
5814
+
5815
+
5816
+
5817
+
5818
+
5819
+
5820
+
5821
+
5822
+
5823
+
5824
+
5825
+
5826
+
5827
+
5828
+
5829
+
5830
+
5831
+
5832
+
5833
+
5834
+
5835
+
5836
+
5837
+
5838
+
5839
+
5840
+
5841
+
5842
+
5843
+
5844
+
5845
+
5846
+
5847
+
5848
+
5849
+
5850
+
5851
+
5852
+
5853
+
5854
+
5855
+
5856
+
5857
+
5858
+
5859
+
5860
+
5861
+
5862
+
5863
+
5864
+
5865
+
5866
+
5867
+
5868
+
5869
+
5870
+
5871
+
5872
+
5873
+
5874
+
5875
+
5876
+
5877
+
5878
+
5879
+
5880
+
5881
+
5882
+
5883
+
5884
+
5885
+
5886
+
5887
+
5888
+
5889
+
5890
+
5891
+
5892
+
5893
+
5894
+
5895
+
5896
+
5897
+
5898
+
5899
+
5900
+
5901
+
5902
+
5903
+
5904
+
5905
+
5906
+
5907
+
5908
+
5909
+
5910
+
5911
+
5912
+
5913
+
5914
+
5915
+
5916
+
5917
+
5918
+
5919
+
5920
+
5921
+
5922
+
5923
+
5924
+
5925
+
5926
+
5927
+
5928
+
5929
+
5930
+
5931
+
5932
+
5933
+
5934
+
5935
+
5936
+
5937
+
5938
+
5939
+
5940
+
5941
+
5942
+
5943
+
5944
+
5945
+
5946
+
5947
+
5948
+
5949
+
5950
+
5951
+
5952
+
5953
+
5954
+
5955
+
5956
+
5957
+
5958
+
5959
+
5960
+
5961
+
5962
+
5963
+
5964
+
5965
+
5966
+
5967
+
5968
+
5969
+
5970
+
5971
+
5972
+
5973
+
5974
+
5975
+
5976
+
5977
+
5978
+
5979
+
5980
+
5981
+
5982
+
5983
+
5984
+
5985
+
5986
+
5987
+
5988
+
5989
+
5990
+
5991
+
5992
+
5993
+
5994
+
5995
+
5996
+
5997
+
5998
+
5999
+
6000
+
6001
+
6002
+
6003
+
6004
+
6005
+
6006
+
6007
+
6008
+
6009
+
6010
+
6011
+
6012
+
6013
+
6014
+
6015
+
6016
+
6017
+
6018
+
6019
+
6020
+
6021
+
6022
+
6023
+
6024
+
6025
+
6026
+
6027
+
6028
+
6029
+
6030
+
6031
+
6032
+
6033
+
6034
+
6035
+
6036
+
6037
+
6038
+
6039
+
6040
+
6041
+
6042
+
6043
+
6044
+
6045
+
6046
+
6047
+
6048
+
6049
+
6050
+
6051
+
6052
+
6053
+
6054
+
6055
+
6056
+
6057
+
6058
+
6059
+
6060
+
6061
+
6062
+
6063
+
6064
+
6065
+
6066
+
6067
+
6068
+
6069
+
6070
+
6071
+
6072
+
6073
+
6074
+
6075
+
6076
+
6077
+
6078
+
6079
+
6080
+
6081
+
6082
+
6083
+
6084
+
6085
+
6086
+
6087
+
6088
+
6089
+
6090
+
6091
+
6092
+
6093
+
6094
+
6095
+
6096
+
6097
+
6098
+
6099
+
6100
+
6101
+
6102
+
6103
+
6104
+
6105
+
6106
+
6107
+
6108
+
6109
+
6110
+
6111
+
6112
+
6113
+
6114
+
6115
+
6116
+
6117
+
6118
+
6119
+
6120
+
6121
+
6122
+
6123
+
6124
+
6125
+
6126
+
6127
+
6128
+
6129
+
6130
+
6131
+
6132
+
6133
+
6134
+
6135
+
6136
+
6137
+
6138
+
6139
+
6140
+
6141
+
6142
+
6143
+
6144
+
6145
+
6146
+
6147
+
6148
+
6149
+
6150
+
6151
+
6152
+
6153
+
6154
+
6155
+
6156
+
6157
+
6158
+
6159
+
6160
+
6161
+
6162
+
6163
+
6164
+
6165
+
6166
+
6167
+
6168
+
6169
+
6170
+
6171
+
6172
+
6173
+
6174
+
6175
+
6176
+
6177
+
6178
+
6179
+
6180
+
6181
+
6182
+
6183
+
6184
+
6185
+
6186
+
6187
+
6188
+
6189
+
6190
+
6191
+
6192
+
6193
+
6194
+
6195
+
6196
+
6197
+
6198
+
6199
+
6200
+
6201
+
6202
+
6203
+
6204
+
6205
+
6206
+
6207
+
6208
+
6209
+
6210
+
6211
+
6212
+
6213
+
6214
+
6215
+
6216
+
6217
+
6218
+
6219
+
6220
+
6221
+
6222
+
6223
+
6224
+
6225
+
6226
+
6227
+
6228
+
6229
+
6230
+
6231
+
6232
+
6233
+
6234
+
6235
+
6236
+
6237
+
6238
+
6239
+
6240
+
6241
+
6242
+
6243
+
6244
+
6245
+
6246
+
6247
+
6248
+
6249
+
6250
+
6251
+
6252
+
6253
+
6254
+
6255
+
6256
+
6257
+
6258
+
6259
+
6260
+
6261
+
6262
+
6263
+
6264
+
6265
+
6266
+
6267
+
6268
+
6269
+
6270
+
6271
+
6272
+
6273
+
6274
+
6275
+
6276
+
6277
+
6278
+
6279
+
6280
+
6281
+
6282
+
6283
+
6284
+
6285
+
6286
+
6287
+
6288
+
6289
+
6290
+
6291
+
6292
+
6293
+
6294
+
6295
+
6296
+
6297
+
6298
+
6299
+
6300
+
6301
+
6302
+
6303
+
6304
+
6305
+
6306
+
6307
+
6308
+
6309
+
6310
+
6311
+
6312
+
6313
+
6314
+
6315
+
6316
+
6317
+
6318
+
6319
+
6320
+
6321
+
6322
+
6323
+
6324
+
6325
+
6326
+
6327
+
6328
+
6329
+
6330
+
6331
+
6332
+
6333
+
6334
+
6335
+
6336
+
6337
+
6338
+
6339
+
6340
+
6341
+
6342
+
6343
+
6344
+
6345
+
6346
+
6347
+
6348
+
6349
+
6350
+
6351
+
6352
+
6353
+
6354
+
6355
+
6356
+
6357
+
6358
+
6359
+
6360
+
6361
+
6362
+
6363
+
6364
+
6365
+
6366
+
6367
+
6368
+
6369
+
6370
+
6371
+
6372
+
6373
+
6374
+
6375
+
6376
+
6377
+
6378
+
6379
+
6380
+
6381
+
6382
+
6383
+
6384
+
6385
+
6386
+
6387
+
6388
+
6389
+
6390
+
6391
+
6392
+
6393
+
6394
+
6395
+
6396
+
6397
+
6398
+
6399
+
6400
+
6401
+
6402
+
6403
+
6404
+
6405
+
6406
+
6407
+
6408
+
6409
+
6410
+
6411
+
6412
+
6413
+
6414
+
6415
+
6416
+
6417
+
6418
+
6419
+
6420
+
6421
+
6422
+
6423
+
6424
+
6425
+
6426
+
6427
+
6428
+
6429
+
6430
+
6431
+
6432
+
6433
+
6434
+
6435
+
6436
+
6437
+
6438
+
6439
+
6440
+
6441
+
6442
+
6443
+
6444
+
6445
+
6446
+
6447
+
6448
+
6449
+
6450
+
6451
+
6452
+
6453
+
6454
+
6455
+
6456
+
6457
+
6458
+
6459
+ 西
6460
+
6461
+
6462
+
6463
+
6464
+
6465
+
6466
+
6467
+
6468
+
6469
+
6470
+
6471
+
6472
+
6473
+
6474
+
6475
+
6476
+
6477
+
6478
+
6479
+
6480
+
6481
+
6482
+
6483
+
6484
+
6485
+
6486
+
6487
+
6488
+
6489
+
6490
+
6491
+
6492
+
6493
+ 觿
6494
+
6495
+
6496
+
6497
+
6498
+
6499
+
6500
+
6501
+
6502
+
6503
+
6504
+
6505
+
6506
+
6507
+
6508
+
6509
+
6510
+
6511
+
6512
+
6513
+
6514
+
6515
+
6516
+
6517
+
6518
+
6519
+
6520
+
6521
+
6522
+
6523
+
6524
+
6525
+
6526
+
6527
+
6528
+
6529
+
6530
+
6531
+
6532
+
6533
+
6534
+
6535
+
6536
+
6537
+
6538
+
6539
+
6540
+
6541
+
6542
+
6543
+
6544
+
6545
+
6546
+
6547
+
6548
+
6549
+
6550
+
6551
+ 访
6552
+
6553
+
6554
+
6555
+
6556
+
6557
+
6558
+
6559
+
6560
+
6561
+
6562
+
6563
+
6564
+
6565
+
6566
+
6567
+
6568
+
6569
+
6570
+
6571
+
6572
+
6573
+
6574
+
6575
+
6576
+
6577
+
6578
+
6579
+
6580
+
6581
+
6582
+
6583
+
6584
+
6585
+
6586
+
6587
+
6588
+
6589
+
6590
+
6591
+
6592
+
6593
+
6594
+
6595
+
6596
+
6597
+
6598
+
6599
+
6600
+
6601
+
6602
+
6603
+
6604
+
6605
+
6606
+
6607
+
6608
+
6609
+
6610
+
6611
+
6612
+ 诿
6613
+
6614
+
6615
+
6616
+
6617
+
6618
+
6619
+
6620
+
6621
+
6622
+
6623
+
6624
+
6625
+
6626
+
6627
+
6628
+
6629
+
6630
+
6631
+
6632
+
6633
+
6634
+
6635
+
6636
+
6637
+
6638
+
6639
+
6640
+
6641
+
6642
+
6643
+
6644
+
6645
+
6646
+
6647
+
6648
+
6649
+
6650
+
6651
+
6652
+
6653
+
6654
+
6655
+
6656
+
6657
+
6658
+
6659
+
6660
+
6661
+
6662
+
6663
+
6664
+
6665
+
6666
+
6667
+
6668
+ 谿
6669
+
6670
+
6671
+
6672
+
6673
+
6674
+
6675
+
6676
+
6677
+
6678
+
6679
+
6680
+
6681
+
6682
+
6683
+
6684
+
6685
+
6686
+
6687
+
6688
+
6689
+
6690
+
6691
+
6692
+
6693
+
6694
+
6695
+
6696
+
6697
+
6698
+
6699
+
6700
+
6701
+
6702
+
6703
+
6704
+
6705
+
6706
+
6707
+
6708
+
6709
+
6710
+
6711
+
6712
+
6713
+
6714
+
6715
+
6716
+
6717
+
6718
+
6719
+
6720
+
6721
+
6722
+
6723
+
6724
+
6725
+
6726
+
6727
+
6728
+
6729
+
6730
+
6731
+ 贿
6732
+
6733
+
6734
+
6735
+
6736
+
6737
+
6738
+
6739
+
6740
+
6741
+
6742
+
6743
+
6744
+
6745
+
6746
+
6747
+
6748
+
6749
+
6750
+
6751
+
6752
+
6753
+
6754
+
6755
+
6756
+
6757
+
6758
+
6759
+
6760
+
6761
+
6762
+
6763
+
6764
+
6765
+
6766
+
6767
+
6768
+
6769
+
6770
+
6771
+
6772
+
6773
+
6774
+
6775
+
6776
+
6777
+
6778
+
6779
+
6780
+
6781
+
6782
+
6783
+
6784
+
6785
+
6786
+
6787
+
6788
+
6789
+
6790
+
6791
+
6792
+
6793
+
6794
+ 趿
6795
+
6796
+
6797
+
6798
+
6799
+
6800
+
6801
+
6802
+
6803
+
6804
+
6805
+
6806
+
6807
+
6808
+
6809
+
6810
+
6811
+
6812
+
6813
+
6814
+
6815
+
6816
+
6817
+
6818
+
6819
+
6820
+
6821
+
6822
+
6823
+
6824
+
6825
+
6826
+
6827
+
6828
+
6829
+
6830
+
6831
+
6832
+
6833
+
6834
+
6835
+
6836
+
6837
+
6838
+
6839
+
6840
+
6841
+
6842
+
6843
+
6844
+
6845
+
6846
+
6847
+
6848
+
6849
+
6850
+
6851
+
6852
+
6853
+
6854
+
6855
+
6856
+
6857
+
6858
+
6859
+
6860
+
6861
+
6862
+
6863
+
6864
+
6865
+
6866
+
6867
+
6868
+
6869
+
6870
+
6871
+
6872
+
6873
+
6874
+
6875
+ 蹿
6876
+
6877
+
6878
+
6879
+
6880
+
6881
+
6882
+
6883
+
6884
+
6885
+
6886
+
6887
+
6888
+
6889
+
6890
+
6891
+
6892
+
6893
+
6894
+
6895
+
6896
+
6897
+
6898
+
6899
+
6900
+
6901
+
6902
+
6903
+
6904
+
6905
+
6906
+
6907
+
6908
+
6909
+
6910
+
6911
+
6912
+
6913
+
6914
+
6915
+
6916
+
6917
+ 轿
6918
+
6919
+
6920
+
6921
+
6922
+
6923
+
6924
+
6925
+
6926
+
6927
+
6928
+
6929
+
6930
+
6931
+
6932
+
6933
+
6934
+
6935
+
6936
+
6937
+
6938
+
6939
+
6940
+
6941
+
6942
+
6943
+
6944
+
6945
+
6946
+
6947
+
6948
+
6949
+
6950
+
6951
+
6952
+
6953
+
6954
+
6955
+
6956
+
6957
+
6958
+ 辿
6959
+
6960
+
6961
+
6962
+
6963
+
6964
+
6965
+
6966
+
6967
+
6968
+
6969
+
6970
+
6971
+
6972
+
6973
+
6974
+
6975
+
6976
+
6977
+
6978
+
6979
+
6980
+
6981
+
6982
+
6983
+
6984
+
6985
+
6986
+
6987
+
6988
+
6989
+
6990
+
6991
+
6992
+
6993
+
6994
+
6995
+ 退
6996
+
6997
+
6998
+
6999
+
7000
+
7001
+
7002
+
7003
+
7004
+
7005
+
7006
+
7007
+
7008
+
7009
+
7010
+
7011
+
7012
+
7013
+
7014
+
7015
+
7016
+
7017
+
7018
+
7019
+
7020
+
7021
+
7022
+
7023
+
7024
+
7025
+
7026
+
7027
+
7028
+
7029
+
7030
+
7031
+
7032
+
7033
+
7034
+
7035
+
7036
+
7037
+
7038
+
7039
+
7040
+
7041
+
7042
+
7043
+
7044
+
7045
+
7046
+
7047
+
7048
+
7049
+
7050
+
7051
+
7052
+
7053
+
7054
+
7055
+
7056
+
7057
+
7058
+
7059
+
7060
+
7061
+
7062
+
7063
+
7064
+
7065
+
7066
+
7067
+
7068
+
7069
+
7070
+
7071
+
7072
+
7073
+
7074
+
7075
+
7076
+
7077
+
7078
+
7079
+
7080
+
7081
+
7082
+
7083
+
7084
+
7085
+
7086
+
7087
+
7088
+
7089
+
7090
+
7091
+
7092
+
7093
+
7094
+
7095
+
7096
+
7097
+
7098
+
7099
+
7100
+
7101
+
7102
+
7103
+
7104
+
7105
+
7106
+
7107
+
7108
+
7109
+
7110
+
7111
+
7112
+
7113
+
7114
+
7115
+
7116
+
7117
+
7118
+
7119
+
7120
+
7121
+
7122
+
7123
+
7124
+
7125
+
7126
+
7127
+
7128
+
7129
+
7130
+
7131
+
7132
+
7133
+
7134
+
7135
+
7136
+
7137
+
7138
+
7139
+
7140
+
7141
+
7142
+
7143
+
7144
+
7145
+
7146
+
7147
+
7148
+
7149
+
7150
+
7151
+
7152
+
7153
+
7154
+
7155
+
7156
+
7157
+
7158
+
7159
+
7160
+
7161
+
7162
+
7163
+
7164
+
7165
+
7166
+
7167
+
7168
+
7169
+
7170
+
7171
+
7172
+
7173
+
7174
+
7175
+
7176
+
7177
+
7178
+
7179
+
7180
+
7181
+
7182
+
7183
+
7184
+
7185
+
7186
+
7187
+
7188
+
7189
+
7190
+
7191
+
7192
+
7193
+
7194
+
7195
+
7196
+
7197
+
7198
+
7199
+
7200
+
7201
+
7202
+
7203
+
7204
+
7205
+
7206
+
7207
+
7208
+
7209
+
7210
+
7211
+
7212
+
7213
+
7214
+
7215
+
7216
+
7217
+
7218
+
7219
+
7220
+
7221
+
7222
+
7223
+
7224
+
7225
+
7226
+
7227
+
7228
+
7229
+
7230
+
7231
+
7232
+
7233
+
7234
+
7235
+
7236
+
7237
+
7238
+
7239
+
7240
+
7241
+
7242
+
7243
+
7244
+
7245
+
7246
+
7247
+
7248
+
7249
+
7250
+
7251
+
7252
+
7253
+
7254
+
7255
+
7256
+
7257
+
7258
+
7259
+
7260
+
7261
+
7262
+
7263
+
7264
+
7265
+
7266
+
7267
+
7268
+
7269
+
7270
+
7271
+
7272
+
7273
+
7274
+
7275
+
7276
+
7277
+
7278
+
7279
+
7280
+
7281
+
7282
+
7283
+
7284
+
7285
+
7286
+
7287
+
7288
+
7289
+
7290
+
7291
+
7292
+
7293
+
7294
+
7295
+
7296
+
7297
+
7298
+
7299
+
7300
+
7301
+
7302
+
7303
+
7304
+
7305
+
7306
+
7307
+
7308
+
7309
+
7310
+
7311
+
7312
+
7313
+
7314
+
7315
+
7316
+
7317
+
7318
+
7319
+
7320
+
7321
+
7322
+
7323
+
7324
+
7325
+
7326
+
7327
+
7328
+
7329
+
7330
+
7331
+
7332
+
7333
+
7334
+
7335
+
7336
+
7337
+
7338
+
7339
+
7340
+
7341
+
7342
+
7343
+
7344
+
7345
+
7346
+
7347
+
7348
+
7349
+
7350
+
7351
+
7352
+
7353
+
7354
+
7355
+
7356
+
7357
+
7358
+
7359
+
7360
+
7361
+
7362
+
7363
+
7364
+
7365
+
7366
+
7367
+
7368
+
7369
+
7370
+
7371
+
7372
+
7373
+
7374
+
7375
+
7376
+
7377
+
7378
+
7379
+
7380
+
7381
+
7382
+
7383
+
7384
+
7385
+
7386
+
7387
+
7388
+
7389
+
7390
+
7391
+
7392
+
7393
+
7394
+
7395
+
7396
+
7397
+
7398
+
7399
+
7400
+
7401
+
7402
+
7403
+
7404
+
7405
+
7406
+
7407
+
7408
+
7409
+
7410
+
7411
+
7412
+
7413
+
7414
+
7415
+
7416
+
7417
+
7418
+
7419
+
7420
+
7421
+
7422
+
7423
+
7424
+
7425
+
7426
+
7427
+
7428
+
7429
+
7430
+
7431
+
7432
+
7433
+
7434
+
7435
+
7436
+
7437
+
7438
+
7439
+
7440
+
7441
+
7442
+
7443
+
7444
+
7445
+
7446
+
7447
+
7448
+
7449
+
7450
+
7451
+
7452
+
7453
+
7454
+
7455
+
7456
+
7457
+
7458
+
7459
+
7460
+
7461
+
7462
+
7463
+
7464
+
7465
+
7466
+
7467
+
7468
+
7469
+
7470
+
7471
+
7472
+
7473
+
7474
+
7475
+
7476
+
7477
+
7478
+
7479
+
7480
+
7481
+
7482
+
7483
+
7484
+
7485
+
7486
+
7487
+
7488
+
7489
+
7490
+
7491
+
7492
+
7493
+
7494
+
7495
+
7496
+
7497
+
7498
+
7499
+
7500
+
7501
+
7502
+
7503
+
7504
+
7505
+
7506
+
7507
+
7508
+
7509
+
7510
+
7511
+
7512
+
7513
+
7514
+
7515
+
7516
+
7517
+
7518
+
7519
+
7520
+
7521
+
7522
+
7523
+
7524
+
7525
+
7526
+
7527
+
7528
+
7529
+
7530
+
7531
+
7532
+
7533
+
7534
+
7535
+
7536
+
7537
+
7538
+
7539
+
7540
+
7541
+
7542
+
7543
+
7544
+
7545
+
7546
+
7547
+
7548
+
7549
+
7550
+
7551
+
7552
+
7553
+
7554
+
7555
+
7556
+
7557
+
7558
+
7559
+
7560
+
7561
+
7562
+
7563
+
7564
+
7565
+
7566
+
7567
+
7568
+
7569
+
7570
+
7571
+
7572
+
7573
+
7574
+
7575
+
7576
+
7577
+
7578
+
7579
+
7580
+
7581
+
7582
+
7583
+
7584
+
7585
+
7586
+
7587
+
7588
+
7589
+
7590
+
7591
+
7592
+
7593
+
7594
+
7595
+
7596
+
7597
+
7598
+
7599
+
7600
+
7601
+
7602
+
7603
+
7604
+
7605
+
7606
+
7607
+
7608
+
7609
+
7610
+
7611
+
7612
+
7613
+
7614
+
7615
+
7616
+
7617
+
7618
+
7619
+
7620
+
7621
+
7622
+
7623
+
7624
+
7625
+
7626
+
7627
+
7628
+
7629
+
7630
+
7631
+
7632
+
7633
+
7634
+
7635
+
7636
+
7637
+
7638
+
7639
+
7640
+
7641
+
7642
+
7643
+
7644
+
7645
+
7646
+
7647
+
7648
+
7649
+
7650
+
7651
+
7652
+
7653
+
7654
+
7655
+
7656
+
7657
+
7658
+
7659
+
7660
+
7661
+
7662
+
7663
+
7664
+
7665
+
7666
+
7667
+
7668
+
7669
+
7670
+
7671
+
7672
+
7673
+
7674
+
7675
+
7676
+
7677
+
7678
+
7679
+
7680
+
7681
+
7682
+
7683
+
7684
+
7685
+
7686
+
7687
+
7688
+
7689
+
7690
+
7691
+
7692
+
7693
+
7694
+
7695
+
7696
+
7697
+
7698
+
7699
+
7700
+
7701
+
7702
+
7703
+
7704
+
7705
+
7706
+
7707
+
7708
+
7709
+
7710
+
7711
+
7712
+
7713
+
7714
+
7715
+
7716
+
7717
+
7718
+
7719
+
7720
+
7721
+
7722
+
7723
+
7724
+
7725
+
7726
+
7727
+
7728
+
7729
+
7730
+
7731
+
7732
+
7733
+
7734
+
7735
+
7736
+
7737
+
7738
+
7739
+
7740
+
7741
+
7742
+
7743
+
7744
+
7745
+
7746
+
7747
+
7748
+
7749
+
7750
+
7751
+
7752
+
7753
+
7754
+
7755
+
7756
+
7757
+
7758
+
7759
+
7760
+
7761
+
7762
+
7763
+
7764
+
7765
+
7766
+
7767
+
7768
+
7769
+
7770
+
7771
+
7772
+
7773
+
7774
+
7775
+
7776
+
7777
+
7778
+
7779
+
7780
+
7781
+
7782
+
7783
+
7784
+
7785
+
7786
+
7787
+
7788
+
7789
+
7790
+
7791
+
7792
+
7793
+
7794
+
7795
+
7796
+
7797
+
7798
+
7799
+
7800
+
7801
+
7802
+
7803
+ 饿
7804
+
7805
+
7806
+
7807
+
7808
+
7809
+
7810
+
7811
+
7812
+
7813
+
7814
+
7815
+
7816
+
7817
+
7818
+
7819
+
7820
+
7821
+
7822
+
7823
+
7824
+
7825
+
7826
+
7827
+
7828
+
7829
+
7830
+
7831
+
7832
+
7833
+
7834
+
7835
+
7836
+
7837
+
7838
+
7839
+
7840
+
7841
+
7842
+
7843
+
7844
+
7845
+
7846
+
7847
+
7848
+
7849
+
7850
+
7851
+
7852
+
7853
+
7854
+
7855
+ 驿
7856
+
7857
+
7858
+
7859
+
7860
+
7861
+
7862
+
7863
+
7864
+
7865
+
7866
+
7867
+
7868
+
7869
+
7870
+
7871
+
7872
+
7873
+
7874
+
7875
+
7876
+
7877
+
7878
+
7879
+
7880
+
7881
+
7882
+
7883
+
7884
+
7885
+
7886
+
7887
+
7888
+
7889
+
7890
+
7891
+
7892
+
7893
+
7894
+
7895
+
7896
+
7897
+
7898
+
7899
+
7900
+
7901
+
7902
+
7903
+
7904
+
7905
+
7906
+
7907
+
7908
+
7909
+
7910
+
7911
+
7912
+
7913
+
7914
+
7915
+
7916
+
7917
+
7918
+
7919
+
7920
+
7921
+
7922
+
7923
+
7924
+
7925
+
7926
+
7927
+
7928
+
7929
+
7930
+
7931
+
7932
+
7933
+
7934
+
7935
+
7936
+
7937
+
7938
+
7939
+
7940
+
7941
+
7942
+
7943
+
7944
+
7945
+
7946
+
7947
+
7948
+
7949
+
7950
+
7951
+
7952
+
7953
+
7954
+
7955
+
7956
+
7957
+
7958
+
7959
+
7960
+
7961
+
7962
+
7963
+
7964
+ 鱿
7965
+
7966
+
7967
+
7968
+
7969
+
7970
+
7971
+
7972
+
7973
+
7974
+
7975
+
7976
+
7977
+
7978
+
7979
+
7980
+
7981
+
7982
+
7983
+
7984
+
7985
+
7986
+
7987
+
7988
+
7989
+
7990
+
7991
+
7992
+
7993
+
7994
+
7995
+
7996
+
7997
+
7998
+
7999
+
8000
+
8001
+
8002
+
8003
+
8004
+
8005
+
8006
+
8007
+
8008
+
8009
+
8010
+
8011
+
8012
+
8013
+
8014
+
8015
+
8016
+
8017
+
8018
+ 鲿
8019
+
8020
+
8021
+
8022
+
8023
+
8024
+
8025
+
8026
+
8027
+
8028
+
8029
+
8030
+
8031
+
8032
+
8033
+
8034
+
8035
+
8036
+
8037
+
8038
+
8039
+
8040
+
8041
+
8042
+
8043
+
8044
+
8045
+
8046
+
8047
+
8048
+
8049
+
8050
+
8051
+
8052
+
8053
+
8054
+
8055
+
8056
+
8057
+
8058
+
8059
+
8060
+
8061
+
8062
+
8063
+
8064
+
8065
+
8066
+
8067
+
8068
+
8069
+
8070
+
8071
+
8072
+
8073
+
8074
+
8075
+
8076
+
8077
+
8078
+
8079
+
8080
+
8081
+
8082
+
8083
+
8084
+
8085
+
8086
+
8087
+
8088
+
8089
+
8090
+
8091
+
8092
+ 鸿
8093
+
8094
+
8095
+
8096
+
8097
+
8098
+
8099
+
8100
+
8101
+
8102
+
8103
+
8104
+
8105
+
8106
+
8107
+
8108
+
8109
+
8110
+
8111
+
8112
+
8113
+
8114
+
8115
+
8116
+
8117
+
8118
+
8119
+
8120
+
8121
+
8122
+
8123
+
8124
+
8125
+
8126
+
8127
+
8128
+
8129
+
8130
+
8131
+
8132
+
8133
+
8134
+
8135
+
8136
+
8137
+
8138
+ 鹿
8139
+
8140
+
8141
+
8142
+
8143
+
8144
+
8145
+
8146
+
8147
+
8148
+
8149
+
8150
+
8151
+
8152
+
8153
+
8154
+
8155
+
8156
+
8157
+ 麿
8158
+
8159
+
8160
+
8161
+
8162
+
8163
+
8164
+
8165
+
8166
+
8167
+
8168
+
8169
+
8170
+
8171
+
8172
+
8173
+
8174
+
8175
+
8176
+
8177
+
8178
+
8179
+
8180
+
8181
+
8182
+
8183
+
8184
+
8185
+
8186
+
8187
+
8188
+
8189
+
8190
+
8191
+
8192
+
8193
+
8194
+
8195
+
8196
+
8197
+
8198
+
8199
+
8200
+
8201
+
8202
+
8203
+
8204
+
8205
+
8206
+ 齿
8207
+
8208
+
8209
+
8210
+
8211
+
8212
+
8213
+
8214
+
8215
+
8216
+
8217
+
8218
+
8219
+
8220
+
8221
+
8222
+
8223
+
8224
+
8225
+
8226
+
8227
+ A
8228
+ B
8229
+ C
8230
+ D
8231
+ E
8232
+ F
8233
+ G
8234
+ H
8235
+ I
8236
+ J
8237
+ K
8238
+ L
8239
+ M
8240
+ N
8241
+ O
8242
+ P
8243
+ Q
8244
+ R
8245
+ S
8246
+ T
8247
+ U
8248
+ V
8249
+ W
8250
+ X
8251
+ Y
8252
+ Z
8253
+ a
8254
+ b
8255
+ c
8256
+ d
8257
+ e
8258
+ f
8259
+ g
8260
+ h
8261
+ i
8262
+ j
8263
+ k
8264
+ l
8265
+ m
8266
+ n
8267
+ o
8268
+ p
8269
+ q
8270
+ r
8271
+ s
8272
+ t
8273
+ u
8274
+ v
8275
+ w
8276
+ x
8277
+ y
8278
+ z
8279
+ AA
8280
+ AB
8281
+ AC
8282
+ AD
8283
+ AE
8284
+ AF
8285
+ AG
8286
+ AH
8287
+ AI
8288
+ AJ
8289
+ AK
8290
+ AL
8291
+ AM
8292
+ AN
8293
+ AP
8294
+ AQ
8295
+ AR
8296
+ AS
8297
+ AT
8298
+ AU
8299
+ AV
8300
+ AW
8301
+ AX
8302
+ AZ
8303
+ Al
8304
+ An
8305
+ Au
8306
+ Aw
8307
+ BA
8308
+ BB
8309
+ BC
8310
+ BD
8311
+ BE
8312
+ BF
8313
+ BG
8314
+ BH
8315
+ BI
8316
+ BJ
8317
+ BK
8318
+ BL
8319
+ BM
8320
+ BN
8321
+ BO
8322
+ BP
8323
+ BQ
8324
+ BR
8325
+ BS
8326
+ BT
8327
+ BU
8328
+ BV
8329
+ BW
8330
+ BY
8331
+ Bo
8332
+ Br
8333
+ Bu
8334
+ CA
8335
+ CB
8336
+ CC
8337
+ CD
8338
+ CE
8339
+ CF
8340
+ CG
8341
+ CH
8342
+ CI
8343
+ CJ
8344
+ CK
8345
+ CL
8346
+ CM
8347
+ CN
8348
+ CO
8349
+ CP
8350
+ CQ
8351
+ CR
8352
+ CS
8353
+ CT
8354
+ CU
8355
+ CV
8356
+ CW
8357
+ CX
8358
+ CY
8359
+ CZ
8360
+ Ca
8361
+ Ch
8362
+ Cl
8363
+ Co
8364
+ Cu
8365
+ DA
8366
+ DB
8367
+ DC
8368
+ DD
8369
+ DE
8370
+ DF
8371
+ DG
8372
+ DH
8373
+ DI
8374
+ DJ
8375
+ DK
8376
+ DL
8377
+ DM
8378
+ DN
8379
+ DO
8380
+ DQ
8381
+ DR
8382
+ DS
8383
+ DT
8384
+ DV
8385
+ DW
8386
+ DX
8387
+ DY
8388
+ DZ
8389
+ Da
8390
+ De
8391
+ Di
8392
+ Do
8393
+ Dr
8394
+ Du
8395
+ EA
8396
+ EB
8397
+ EC
8398
+ ED
8399
+ EE
8400
+ EF
8401
+ EG
8402
+ EH
8403
+ EI
8404
+ EK
8405
+ EL
8406
+ EM
8407
+ EN
8408
+ EP
8409
+ EQ
8410
+ ER
8411
+ ES
8412
+ ET
8413
+ EU
8414
+ EV
8415
+ EW
8416
+ EX
8417
+ EZ
8418
+ Ed
8419
+ En
8420
+ Ev
8421
+ Ex
8422
+ FA
8423
+ FB
8424
+ FC
8425
+ FD
8426
+ FE
8427
+ FF
8428
+ FG
8429
+ FH
8430
+ FI
8431
+ FJ
8432
+ FL
8433
+ FM
8434
+ FN
8435
+ FO
8436
+ FP
8437
+ FR
8438
+ FS
8439
+ FT
8440
+ FU
8441
+ FW
8442
+ FX
8443
+ FY
8444
+ FZ
8445
+ Fa
8446
+ Fi
8447
+ Fl
8448
+ Fo
8449
+ Fr
8450
+ Fu
8451
+ GA
8452
+ GB
8453
+ GC
8454
+ GD
8455
+ GE
8456
+ GF
8457
+ GG
8458
+ GH
8459
+ GI
8460
+ GJ
8461
+ GK
8462
+ GL
8463
+ GM
8464
+ GN
8465
+ GO
8466
+ GP
8467
+ GQ
8468
+ GR
8469
+ GS
8470
+ GT
8471
+ GU
8472
+ GW
8473
+ GX
8474
+ GY
8475
+ GZ
8476
+ Ga
8477
+ Go
8478
+ Gr
8479
+ Gu
8480
+ HA
8481
+ HB
8482
+ HC
8483
+ HD
8484
+ HE
8485
+ HF
8486
+ HG
8487
+ HH
8488
+ HI
8489
+ HJ
8490
+ HK
8491
+ HL
8492
+ HO
8493
+ HP
8494
+ HQ
8495
+ HR
8496
+ HS
8497
+ HT
8498
+ HU
8499
+ HV
8500
+ HW
8501
+ HX
8502
+ HY
8503
+ HZ
8504
+ Ha
8505
+ He
8506
+ Hi
8507
+ Ho
8508
+ Hu
8509
+ Hz
8510
+ IB
8511
+ IC
8512
+ ID
8513
+ IE
8514
+ IF
8515
+ IG
8516
+ IH
8517
+ II
8518
+ IK
8519
+ IL
8520
+ IM
8521
+ IN
8522
+ IO
8523
+ IP
8524
+ IQ
8525
+ IR
8526
+ IS
8527
+ IT
8528
+ IU
8529
+ IV
8530
+ IX
8531
+ If
8532
+ In
8533
+ JA
8534
+ JB
8535
+ JC
8536
+ JD
8537
+ JF
8538
+ JG
8539
+ JH
8540
+ JI
8541
+ JJ
8542
+ JK
8543
+ JL
8544
+ JM
8545
+ JO
8546
+ JP
8547
+ JQ
8548
+ JR
8549
+ JS
8550
+ JT
8551
+ JU
8552
+ JW
8553
+ JX
8554
+ JY
8555
+ JZ
8556
+ Ja
8557
+ Ji
8558
+ Jo
8559
+ Ju
8560
+ KA
8561
+ KB
8562
+ KC
8563
+ KD
8564
+ KE
8565
+ KF
8566
+ KG
8567
+ KH
8568
+ KI
8569
+ KJ
8570
+ KK
8571
+ KL
8572
+ KM
8573
+ KN
8574
+ KO
8575
+ KP
8576
+ KR
8577
+ KS
8578
+ KT
8579
+ KV
8580
+ KW
8581
+ KX
8582
+ KY
8583
+ KZ
8584
+ LA
8585
+ LB
8586
+ LC
8587
+ LD
8588
+ LE
8589
+ LF
8590
+ LG
8591
+ LH
8592
+ LI
8593
+ LJ
8594
+ LK
8595
+ LL
8596
+ LM
8597
+ LN
8598
+ LO
8599
+ LP
8600
+ LQ
8601
+ LR
8602
+ LS
8603
+ LT
8604
+ LU
8605
+ LV
8606
+ LW
8607
+ LX
8608
+ LY
8609
+ LZ
8610
+ La
8611
+ Le
8612
+ Li
8613
+ Lo
8614
+ Lu
8615
+ MA
8616
+ MB
8617
+ MC
8618
+ MD
8619
+ ME
8620
+ MF
8621
+ MG
8622
+ MH
8623
+ MI
8624
+ MJ
8625
+ MK
8626
+ ML
8627
+ MM
8628
+ MN
8629
+ MO
8630
+ MP
8631
+ MQ
8632
+ MR
8633
+ MS
8634
+ MT
8635
+ MU
8636
+ MV
8637
+ MW
8638
+ MX
8639
+ MY
8640
+ Ma
8641
+ Me
8642
+ Mi
8643
+ Mo
8644
+ Mu
8645
+ My
8646
+ NA
8647
+ NB
8648
+ NC
8649
+ ND
8650
+ NE
8651
+ NF
8652
+ NG
8653
+ NH
8654
+ NI
8655
+ NJ
8656
+ NK
8657
+ NL
8658
+ NN
8659
+ NO
8660
+ NP
8661
+ NR
8662
+ NS
8663
+ NT
8664
+ NU
8665
+ NV
8666
+ NW
8667
+ NX
8668
+ NY
8669
+ NZ
8670
+ Na
8671
+ Ne
8672
+ No
8673
+ Nu
8674
+ OA
8675
+ OB
8676
+ OC
8677
+ OD
8678
+ OE
8679
+ OF
8680
+ OG
8681
+ OH
8682
+ OK
8683
+ OL
8684
+ OM
8685
+ ON
8686
+ OO
8687
+ OP
8688
+ OR
8689
+ OS
8690
+ OT
8691
+ OU
8692
+ OV
8693
+ OZ
8694
+ Of
8695
+ Oh
8696
+ On
8697
+ Op
8698
+ Or
8699
+ Ou
8700
+ Ox
8701
+ PA
8702
+ PB
8703
+ PC
8704
+ PD
8705
+ PE
8706
+ PF
8707
+ PG
8708
+ PH
8709
+ PI
8710
+ PJ
8711
+ PK
8712
+ PL
8713
+ PM
8714
+ PN
8715
+ PO
8716
+ PP
8717
+ PQ
8718
+ PR
8719
+ PS
8720
+ PT
8721
+ PU
8722
+ PV
8723
+ PW
8724
+ PX
8725
+ Pa
8726
+ Ph
8727
+ Pl
8728
+ Po
8729
+ Pr
8730
+ Pu
8731
+ QA
8732
+ QB
8733
+ QC
8734
+ QE
8735
+ QF
8736
+ QG
8737
+ QJ
8738
+ QL
8739
+ QQ
8740
+ QR
8741
+ QS
8742
+ QT
8743
+ QU
8744
+ QW
8745
+ QY
8746
+ Qi
8747
+ Qu
8748
+ RA
8749
+ RB
8750
+ RC
8751
+ RE
8752
+ RF
8753
+ RG
8754
+ RH
8755
+ RI
8756
+ RJ
8757
+ RK
8758
+ RL
8759
+ RM
8760
+ RN
8761
+ RO
8762
+ RP
8763
+ RQ
8764
+ RR
8765
+ RS
8766
+ RT
8767
+ RV
8768
+ RW
8769
+ RX
8770
+ RZ
8771
+ Ra
8772
+ Re
8773
+ Ro
8774
+ Ru
8775
+ SA
8776
+ SB
8777
+ SC
8778
+ SD
8779
+ SE
8780
+ SF
8781
+ SG
8782
+ SH
8783
+ SI
8784
+ SJ
8785
+ SK
8786
+ SL
8787
+ SM
8788
+ SN
8789
+ SO
8790
+ SP
8791
+ SQ
8792
+ SR
8793
+ SS
8794
+ ST
8795
+ SU
8796
+ SV
8797
+ SW
8798
+ SX
8799
+ SY
8800
+ SZ
8801
+ Sc
8802
+ Sh
8803
+ So
8804
+ Sp
8805
+ St
8806
+ Su
8807
+ Sw
8808
+ Sy
8809
+ TA
8810
+ TB
8811
+ TC
8812
+ TD
8813
+ TE
8814
+ TF
8815
+ TG
8816
+ TH
8817
+ TI
8818
+ TJ
8819
+ TK
8820
+ TL
8821
+ TM
8822
+ TN
8823
+ TO
8824
+ TP
8825
+ TQ
8826
+ TR
8827
+ TS
8828
+ TT
8829
+ TU
8830
+ TV
8831
+ TW
8832
+ TX
8833
+ TY
8834
+ TZ
8835
+ Th
8836
+ To
8837
+ Tr
8838
+ Tw
8839
+ UA
8840
+ UC
8841
+ UD
8842
+ UE
8843
+ UF
8844
+ UG
8845
+ UH
8846
+ UI
8847
+ UK
8848
+ UL
8849
+ UM
8850
+ UN
8851
+ UP
8852
+ UR
8853
+ US
8854
+ UT
8855
+ UU
8856
+ UV
8857
+ UW
8858
+ UX
8859
+ Ub
8860
+ Un
8861
+ Up
8862
+ VA
8863
+ VB
8864
+ VC
8865
+ VE
8866
+ VF
8867
+ VG
8868
+ VH
8869
+ VI
8870
+ VJ
8871
+ VK
8872
+ VL
8873
+ VM
8874
+ VN
8875
+ VO
8876
+ VP
8877
+ VR
8878
+ VS
8879
+ VT
8880
+ VU
8881
+ VV
8882
+ VX
8883
+ Vi
8884
+ Vo
8885
+ WA
8886
+ WB
8887
+ WC
8888
+ WE
8889
+ WH
8890
+ WI
8891
+ WJ
8892
+ WL
8893
+ WM
8894
+ WN
8895
+ WO
8896
+ WQ
8897
+ WR
8898
+ WS
8899
+ WT
8900
+ WU
8901
+ WW
8902
+ WX
8903
+ WZ
8904
+ Wa
8905
+ We
8906
+ Wi
8907
+ Wo
8908
+ Wu
8909
+ XB
8910
+ XC
8911
+ XD
8912
+ XF
8913
+ XG
8914
+ XH
8915
+ XI
8916
+ XJ
8917
+ XK
8918
+ XL
8919
+ XM
8920
+ XO
8921
+ XP
8922
+ XQ
8923
+ XR
8924
+ XS
8925
+ XT
8926
+ XU
8927
+ XV
8928
+ XW
8929
+ XX
8930
+ XY
8931
+ XZ
8932
+ Xi
8933
+ Xu
8934
+ YA
8935
+ YB
8936
+ YC
8937
+ YD
8938
+ YE
8939
+ YF
8940
+ YG
8941
+ YH
8942
+ YJ
8943
+ YL
8944
+ YM
8945
+ YO
8946
+ YP
8947
+ YS
8948
+ YT
8949
+ YU
8950
+ YX
8951
+ YY
8952
+ YZ
8953
+ Ya
8954
+ Yo
8955
+ Yu
8956
+ ZA
8957
+ ZB
8958
+ ZC
8959
+ ZD
8960
+ ZE
8961
+ ZF
8962
+ ZG
8963
+ ZH
8964
+ ZI
8965
+ ZJ
8966
+ ZL
8967
+ ZM
8968
+ ZN
8969
+ ZO
8970
+ ZQ
8971
+ ZR
8972
+ ZS
8973
+ ZU
8974
+ ZW
8975
+ ZX
8976
+ ZY
8977
+ ZZ
8978
+ Zh
8979
+ ab
8980
+ aj
8981
+ an
8982
+ ap
8983
+ ar
8984
+ bb
8985
+ be
8986
+ bj
8987
+ bo
8988
+ bu
8989
+ by
8990
+ ca
8991
+ cb
8992
+ cf
8993
+ ch
8994
+ cl
8995
+ cm
8996
+ co
8997
+ cp
8998
+ cv
8999
+ dB
9000
+ da
9001
+ de
9002
+ di
9003
+ dj
9004
+ dn
9005
+ do
9006
+ dr
9007
+ dv
9008
+ ed
9009
+ em
9010
+ en
9011
+ ep
9012
+ eq
9013
+ ev
9014
+ ex
9015
+ ez
9016
+ fa
9017
+ fe
9018
+ ff
9019
+ fi
9020
+ fl
9021
+ fo
9022
+ fr
9023
+ fu
9024
+ gb
9025
+ gd
9026
+ gh
9027
+ gi
9028
+ go
9029
+ gp
9030
+ gr
9031
+ gu
9032
+ gz
9033
+ ha
9034
+ he
9035
+ hi
9036
+ ho
9037
+ hp
9038
+ hz
9039
+ iP
9040
+ iT
9041
+ ib
9042
+ ic
9043
+ id
9044
+ if
9045
+ ig
9046
+ im
9047
+ in
9048
+ io
9049
+ ip
9050
+ iq
9051
+ is
9052
+ it
9053
+ jQ
9054
+ ja
9055
+ ji
9056
+ jj
9057
+ jo
9058
+ jq
9059
+ ju
9060
+ kJ
9061
+ kN
9062
+ kW
9063
+ kg
9064
+ kn
9065
+ kz
9066
+ la
9067
+ ld
9068
+ le
9069
+ lg
9070
+ li
9071
+ ll
9072
+ lo
9073
+ lp
9074
+ lz
9075
+ ma
9076
+ mb
9077
+ me
9078
+ mi
9079
+ mm
9080
+ mo
9081
+ mp
9082
+ mq
9083
+ mu
9084
+ mv
9085
+ my
9086
+ na
9087
+ nb
9088
+ ng
9089
+ no
9090
+ nv
9091
+ ob
9092
+ of
9093
+ oh
9094
+ ok
9095
+ ol
9096
+ on
9097
+ op
9098
+ or
9099
+ ou
9100
+ ow
9101
+ oz
9102
+ pH
9103
+ pa
9104
+ pc
9105
+ ph
9106
+ pk
9107
+ pl
9108
+ po
9109
+ pp
9110
+ pr
9111
+ pu
9112
+ pv
9113
+ qf
9114
+ qq
9115
+ qu
9116
+ qz
9117
+ ra
9118
+ re
9119
+ rn
9120
+ ro
9121
+ rq
9122
+ se
9123
+ sh
9124
+ sk
9125
+ so
9126
+ sp
9127
+ sq
9128
+ st
9129
+ su
9130
+ sw
9131
+ sz
9132
+ th
9133
+ ti
9134
+ to
9135
+ tr
9136
+ tv
9137
+ tw
9138
+ ub
9139
+ uc
9140
+ uf
9141
+ ui
9142
+ uk
9143
+ un
9144
+ up
9145
+ us
9146
+ uv
9147
+ ux
9148
+ uz
9149
+ vc
9150
+ vi
9151
+ vo
9152
+ vr
9153
+ wa
9154
+ we
9155
+ wh
9156
+ wi
9157
+ wo
9158
+ wr
9159
+ ww
9160
+ xj
9161
+ xq
9162
+ xx
9163
+ ya
9164
+ ye
9165
+ yj
9166
+ yo
9167
+ yu
9168
+ yy
9169
+ yz
9170
+ zf
9171
+ zh
9172
+ zi
9173
+ zj
9174
+ zq
9175
+ zu
9176
+ zz
9177
+ AAA
9178
+ AAC
9179
+ ABA
9180
+ ABB
9181
+ ABC
9182
+ ABO
9183
+ ABS
9184
+ ABT
9185
+ ACA
9186
+ ACC
9187
+ ACD
9188
+ ACE
9189
+ ACG
9190
+ ACK
9191
+ ACL
9192
+ ACM
9193
+ ACP
9194
+ ACR
9195
+ ACS
9196
+ ACT
9197
+ ADA
9198
+ ADC
9199
+ ADD
9200
+ ADF
9201
+ ADI
9202
+ ADO
9203
+ ADP
9204
+ ADR
9205
+ ADS
9206
+ ADV
9207
+ AED
9208
+ AES
9209
+ AFC
9210
+ AFP
9211
+ AFS
9212
+ AGB
9213
+ AGC
9214
+ AGE
9215
+ AGM
9216
+ AGP
9217
+ AGV
9218
+ AIA
9219
+ AIC
9220
+ AIG
9221
+ AIM
9222
+ AIP
9223
+ AIR
9224
+ AIS
9225
+ AIX
9226
+ AKB
9227
+ AKM
9228
+ ALA
9229
+ ALL
9230
+ ALT
9231
+ AMA
9232
+ AMC
9233
+ AMD
9234
+ AMG
9235
+ AMI
9236
+ AML
9237
+ AMP
9238
+ AMR
9239
+ AMS
9240
+ AMT
9241
+ AMX
9242
+ AND
9243
+ AOC
9244
+ AOE
9245
+ AOL
9246
+ APA
9247
+ APC
9248
+ APE
9249
+ APG
9250
+ API
9251
+ APK
9252
+ APL
9253
+ APM
9254
+ APP
9255
+ APS
9256
+ APT
9257
+ APU
9258
+ ARA
9259
+ ARC
9260
+ ARE
9261
+ ARM
9262
+ ARP
9263
+ ART
9264
+ ASA
9265
+ ASC
9266
+ ASF
9267
+ ASM
9268
+ ASP
9269
+ ASR
9270
+ AST
9271
+ ATA
9272
+ ATC
9273
+ ATF
9274
+ ATI
9275
+ ATK
9276
+ ATM
9277
+ ATP
9278
+ ATS
9279
+ ATV
9280
+ ATX
9281
+ AUC
9282
+ AUG
9283
+ AUX
9284
+ AVC
9285
+ AVG
9286
+ AVI
9287
+ AVR
9288
+ AVS
9289
+ AVX
9290
+ AWM
9291
+ AWS
9292
+ All
9293
+ And
9294
+ Ang
9295
+ App
9296
+ Aqu
9297
+ BAC
9298
+ BAD
9299
+ BAE
9300
+ BAR
9301
+ BAT
9302
+ BAU
9303
+ BBA
9304
+ BBB
9305
+ BBC
9306
+ BBE
9307
+ BBQ
9308
+ BBS
9309
+ BBT
9310
+ BCD
9311
+ BEA
9312
+ BEC
9313
+ BEI
9314
+ BET
9315
+ BGA
9316
+ BGM
9317
+ BGP
9318
+ BIG
9319
+ BIM
9320
+ BIS
9321
+ BLG
9322
+ BMC
9323
+ BMD
9324
+ BMG
9325
+ BMI
9326
+ BMP
9327
+ BMW
9328
+ BMX
9329
+ BNC
9330
+ BOD
9331
+ BOM
9332
+ BOT
9333
+ BOX
9334
+ BOY
9335
+ BPM
9336
+ BPO
9337
+ BRN
9338
+ BRT
9339
+ BSA
9340
+ BSC
9341
+ BSD
9342
+ BSI
9343
+ BSM
9344
+ BSP
9345
+ BSS
9346
+ BTC
9347
+ BTR
9348
+ BTS
9349
+ BTV
9350
+ BUG
9351
+ BUN
9352
+ BUS
9353
+ BWV
9354
+ Bur
9355
+ Bus
9356
+ But
9357
+ CAA
9358
+ CAC
9359
+ CAD
9360
+ CAE
9361
+ CAI
9362
+ CAJ
9363
+ CAM
9364
+ CAN
9365
+ CAP
9366
+ CAR
9367
+ CAS
9368
+ CAT
9369
+ CBA
9370
+ CBC
9371
+ CBD
9372
+ CBN
9373
+ CBR
9374
+ CBS
9375
+ CCA
9376
+ CCC
9377
+ CCD
9378
+ CCF
9379
+ CCG
9380
+ CCI
9381
+ CCK
9382
+ CCM
9383
+ CCN
9384
+ CCP
9385
+ CCS
9386
+ CDC
9387
+ CDM
9388
+ CDN
9389
+ CDO
9390
+ CDP
9391
+ CDR
9392
+ CDS
9393
+ CEA
9394
+ CEC
9395
+ CEO
9396
+ CES
9397
+ CET
9398
+ CFA
9399
+ CFC
9400
+ CFD
9401
+ CFO
9402
+ CFR
9403
+ CGI
9404
+ CHA
9405
+ CHM
9406
+ CHO
9407
+ CIA
9408
+ CIC
9409
+ CID
9410
+ CIE
9411
+ CIF
9412
+ CIK
9413
+ CIO
9414
+ CIP
9415
+ CIS
9416
+ CLA
9417
+ CLI
9418
+ CLM
9419
+ CLS
9420
+ CMA
9421
+ CMC
9422
+ CME
9423
+ CML
9424
+ CMM
9425
+ CMO
9426
+ CMP
9427
+ CMS
9428
+ CMV
9429
+ CNC
9430
+ CNG
9431
+ CNN
9432
+ CNS
9433
+ COB
9434
+ COC
9435
+ COD
9436
+ COM
9437
+ CON
9438
+ COO
9439
+ COP
9440
+ COS
9441
+ COX
9442
+ CPA
9443
+ CPC
9444
+ CPE
9445
+ CPI
9446
+ CPL
9447
+ CPM
9448
+ CPP
9449
+ CPR
9450
+ CPS
9451
+ CPU
9452
+ CQC
9453
+ CRC
9454
+ CRM
9455
+ CRP
9456
+ CRS
9457
+ CRT
9458
+ CSA
9459
+ CSF
9460
+ CSI
9461
+ CSM
9462
+ CSP
9463
+ CSR
9464
+ CSS
9465
+ CST
9466
+ CTA
9467
+ CTC
9468
+ CTI
9469
+ CTO
9470
+ CTP
9471
+ CTS
9472
+ CUB
9473
+ CUT
9474
+ CVD
9475
+ CVN
9476
+ CVS
9477
+ CVT
9478
+ CXW
9479
+ CYP
9480
+ Car
9481
+ Cha
9482
+ Chr
9483
+ Chu
9484
+ Com
9485
+ Con
9486
+ Cou
9487
+ Cur
9488
+ DAB
9489
+ DAC
9490
+ DAO
9491
+ DAS
9492
+ DAT
9493
+ DAY
9494
+ DBA
9495
+ DBM
9496
+ DCD
9497
+ DCE
9498
+ DCF
9499
+ DCS
9500
+ DCT
9501
+ DDC
9502
+ DDD
9503
+ DDG
9504
+ DDN
9505
+ DDR
9506
+ DDS
9507
+ DDT
9508
+ DEA
9509
+ DEC
9510
+ DEM
9511
+ DES
9512
+ DFS
9513
+ DFT
9514
+ DHA
9515
+ DHL
9516
+ DIC
9517
+ DID
9518
+ DIF
9519
+ DIN
9520
+ DIP
9521
+ DIV
9522
+ DIY
9523
+ DLC
9524
+ DLL
9525
+ DLP
9526
+ DLT
9527
+ DMA
9528
+ DMC
9529
+ DMD
9530
+ DMF
9531
+ DMI
9532
+ DMO
9533
+ DMZ
9534
+ DNA
9535
+ DNF
9536
+ DNS
9537
+ DNV
9538
+ DOC
9539
+ DOI
9540
+ DOM
9541
+ DON
9542
+ DOS
9543
+ DOT
9544
+ DPI
9545
+ DPP
9546
+ DPS
9547
+ DRM
9548
+ DRX
9549
+ DSA
9550
+ DSC
9551
+ DSG
9552
+ DSL
9553
+ DSM
9554
+ DSP
9555
+ DSS
9556
+ DTC
9557
+ DTE
9558
+ DTM
9559
+ DTS
9560
+ DTU
9561
+ DVB
9562
+ DVD
9563
+ DVI
9564
+ DVR
9565
+ DWG
9566
+ DYG
9567
+ Day
9568
+ Div
9569
+ Don
9570
+ Dou
9571
+ Dow
9572
+ EAN
9573
+ EAP
9574
+ EBD
9575
+ EBS
9576
+ ECC
9577
+ ECM
9578
+ ECO
9579
+ ECT
9580
+ ECU
9581
+ ECW
9582
+ EDA
9583
+ EDG
9584
+ EDI
9585
+ EDM
9586
+ EDP
9587
+ EDR
9588
+ EEG
9589
+ EEP
9590
+ EFR
9591
+ EGF
9592
+ EHS
9593
+ EIA
9594
+ EJB
9595
+ EMA
9596
+ EMC
9597
+ EMI
9598
+ EMP
9599
+ EMS
9600
+ END
9601
+ EOS
9602
+ EPA
9603
+ EPC
9604
+ EPO
9605
+ EPR
9606
+ EPS
9607
+ ERP
9608
+ ESC
9609
+ ESD
9610
+ ESI
9611
+ ESL
9612
+ ESP
9613
+ ESR
9614
+ EST
9615
+ ETC
9616
+ ETF
9617
+ ETH
9618
+ ETL
9619
+ ETS
9620
+ EVA
9621
+ EVE
9622
+ EVO
9623
+ EXE
9624
+ EXO
9625
+ EXP
9626
+ EYE
9627
+ Eff
9628
+ Ell
9629
+ Emb
9630
+ Emp
9631
+ End
9632
+ Eng
9633
+ Equ
9634
+ Eur
9635
+ Eva
9636
+ Exc
9637
+ Exp
9638
+ FAA
9639
+ FAB
9640
+ FAG
9641
+ FAL
9642
+ FAN
9643
+ FAO
9644
+ FAQ
9645
+ FAT
9646
+ FBI
9647
+ FCA
9648
+ FCC
9649
+ FCI
9650
+ FCS
9651
+ FDA
9652
+ FDD
9653
+ FDI
9654
+ FEM
9655
+ FES
9656
+ FET
9657
+ FFT
9658
+ FGO
9659
+ FHD
9660
+ FIA
9661
+ FLV
9662
+ FLY
9663
+ FMS
9664
+ FNC
9665
+ FOB
9666
+ FOF
9667
+ FOR
9668
+ FOX
9669
+ FPC
9670
+ FPS
9671
+ FPX
9672
+ FRP
9673
+ FSA
9674
+ FSB
9675
+ FSC
9676
+ FSH
9677
+ FTA
9678
+ FTC
9679
+ FTP
9680
+ FUE
9681
+ FUN
9682
+ Fin
9683
+ Fiv
9684
+ Fly
9685
+ For
9686
+ Fou
9687
+ Fuj
9688
+ Fun
9689
+ Fut
9690
+ GAP
9691
+ GAT
9692
+ GAY
9693
+ GBA
9694
+ GBK
9695
+ GBT
9696
+ GBU
9697
+ GCC
9698
+ GCS
9699
+ GCT
9700
+ GDI
9701
+ GDP
9702
+ GEN
9703
+ GEO
9704
+ GET
9705
+ GFP
9706
+ GHz
9707
+ GIA
9708
+ GIF
9709
+ GIS
9710
+ GLA
9711
+ GLC
9712
+ GLP
9713
+ GLS
9714
+ GMA
9715
+ GMC
9716
+ GMP
9717
+ GMS
9718
+ GMT
9719
+ GMV
9720
+ GND
9721
+ GNP
9722
+ GNU
9723
+ GOD
9724
+ GOT
9725
+ GPA
9726
+ GPL
9727
+ GPS
9728
+ GPT
9729
+ GPU
9730
+ GRC
9731
+ GRE
9732
+ GRF
9733
+ GSH
9734
+ GSM
9735
+ GSP
9736
+ GTA
9737
+ GTI
9738
+ GTO
9739
+ GTP
9740
+ GTR
9741
+ GTS
9742
+ GTX
9743
+ GUI
9744
+ Giv
9745
+ Gmb
9746
+ Gua
9747
+ Gui
9748
+ Gun
9749
+ Guo
9750
+ Guy
9751
+ HAD
9752
+ HAL
9753
+ HBA
9754
+ HBO
9755
+ HBV
9756
+ HBs
9757
+ HCG
9758
+ HCI
9759
+ HCV
9760
+ HCl
9761
+ HDD
9762
+ HDL
9763
+ HDR
9764
+ HDV
9765
+ HEY
9766
+ HFC
9767
+ HGH
9768
+ HGT
9769
+ HID
9770
+ HIP
9771
+ HIS
9772
+ HIT
9773
+ HIV
9774
+ HLA
9775
+ HMG
9776
+ HMI
9777
+ HMS
9778
+ HOP
9779
+ HOT
9780
+ HOW
9781
+ HPC
9782
+ HPV
9783
+ HRC
9784
+ HRT
9785
+ HSE
9786
+ HSK
9787
+ HSV
9788
+ HTC
9789
+ HUB
9790
+ HUD
9791
+ HVG
9792
+ Haz
9793
+ Her
9794
+ Hom
9795
+ Hon
9796
+ Hou
9797
+ How
9798
+ Hua
9799
+ Hub
9800
+ Hum
9801
+ Hun
9802
+ IAI
9803
+ IAS
9804
+ IAT
9805
+ IBC
9806
+ IBF
9807
+ IBM
9808
+ ICA
9809
+ ICC
9810
+ ICD
9811
+ ICE
9812
+ ICO
9813
+ ICP
9814
+ ICQ
9815
+ ICS
9816
+ ICT
9817
+ ICU
9818
+ IDC
9819
+ IDD
9820
+ IDE
9821
+ IDF
9822
+ IDG
9823
+ IDS
9824
+ IEC
9825
+ IET
9826
+ IFA
9827
+ IFC
9828
+ IFI
9829
+ IFN
9830
+ IGF
9831
+ IGN
9832
+ IIA
9833
+ III
9834
+ IIS
9835
+ IKO
9836
+ IMA
9837
+ IMC
9838
+ IMD
9839
+ IME
9840
+ IMF
9841
+ IMG
9842
+ IMO
9843
+ IMS
9844
+ IMT
9845
+ INA
9846
+ INC
9847
+ INF
9848
+ ING
9849
+ INS
9850
+ INT
9851
+ IOS
9852
+ IPA
9853
+ IPC
9854
+ IPO
9855
+ IPS
9856
+ IPX
9857
+ IRC
9858
+ IRI
9859
+ ISA
9860
+ ISI
9861
+ ISM
9862
+ ISO
9863
+ ISP
9864
+ ITC
9865
+ ITF
9866
+ ITO
9867
+ ITS
9868
+ ITT
9869
+ ITU
9870
+ ITV
9871
+ IVR
9872
+ Imp
9873
+ InC
9874
+ Inf
9875
+ Inj
9876
+ Int
9877
+ JAR
9878
+ JBL
9879
+ JBT
9880
+ JCB
9881
+ JCR
9882
+ JDB
9883
+ JDG
9884
+ JET
9885
+ JGJ
9886
+ JIS
9887
+ JIT
9888
+ JKL
9889
+ JOE
9890
+ JPG
9891
+ JSF
9892
+ JSP
9893
+ JST
9894
+ JTA
9895
+ JVC
9896
+ JVM
9897
+ JYJ
9898
+ JYP
9899
+ Jac
9900
+ Jam
9901
+ Jan
9902
+ Jap
9903
+ Jav
9904
+ Jay
9905
+ Jin
9906
+ Joh
9907
+ Jon
9908
+ Jul
9909
+ Jun
9910
+ Jus
9911
+ KAB
9912
+ KAT
9913
+ KBS
9914
+ KDF
9915
+ KDJ
9916
+ KEY
9917
+ KFC
9918
+ KFR
9919
+ KID
9920
+ KIS
9921
+ KJm
9922
+ KOF
9923
+ KOH
9924
+ KOL
9925
+ KPI
9926
+ KPL
9927
+ KTV
9928
+ KVM
9929
+ Kin
9930
+ Kon
9931
+ Kur
9932
+ LAB
9933
+ LAN
9934
+ LBS
9935
+ LCA
9936
+ LCD
9937
+ LCK
9938
+ LCS
9939
+ LDA
9940
+ LDH
9941
+ LDL
9942
+ LDP
9943
+ LED
9944
+ LEE
9945
+ LEO
9946
+ LES
9947
+ LET
9948
+ LGA
9949
+ LGD
9950
+ LIN
9951
+ LIU
9952
+ LLC
9953
+ LME
9954
+ LMS
9955
+ LNG
9956
+ LOF
9957
+ LOL
9958
+ LOW
9959
+ LPG
9960
+ LPL
9961
+ LPR
9962
+ LRC
9963
+ LSA
9964
+ LSD
9965
+ LSI
9966
+ LSP
9967
+ LTD
9968
+ LTE
9969
+ LUC
9970
+ LUN
9971
+ LVM
9972
+ Laz
9973
+ Lib
9974
+ Lif
9975
+ Lin
9976
+ Liu
9977
+ Liz
9978
+ Lon
9979
+ Lou
9980
+ Low
9981
+ Luc
9982
+ Lum
9983
+ Luo
9984
+ Lux
9985
+ MAC
9986
+ MAD
9987
+ MAG
9988
+ MAN
9989
+ MAO
9990
+ MAP
9991
+ MAR
9992
+ MAS
9993
+ MAT
9994
+ MAX
9995
+ MAY
9996
+ MBA
9997
+ MBC
9998
+ MBO
9999
+ MBR
10000
+ MBS
10001
+ MCA
10002
+ MCC
10003
+ MCM
10004
+ MCN
10005
+ MCP
10006
+ MCS
10007
+ MCU
10008
+ MDA
10009
+ MDI
10010
+ MDL
10011
+ MDR
10012
+ MDS
10013
+ MEN
10014
+ MES
10015
+ MFA
10016
+ MFC
10017
+ MHC
10018
+ MHz
10019
+ MIB
10020
+ MIC
10021
+ MID
10022
+ MIL
10023
+ MIN
10024
+ MIS
10025
+ MIT
10026
+ MIX
10027
+ MKV
10028
+ MLC
10029
+ MLF
10030
+ MMA
10031
+ MMC
10032
+ MMI
10033
+ MMO
10034
+ MMS
10035
+ MMX
10036
+ MOD
10037
+ MOM
10038
+ MOS
10039
+ MOV
10040
+ MPA
10041
+ MPC
10042
+ MPG
10043
+ MPI
10044
+ MPS
10045
+ MPV
10046
+ MPa
10047
+ MRC
10048
+ MRI
10049
+ MRO
10050
+ MRP
10051
+ MSA
10052
+ MSC
10053
+ MSI
10054
+ MSN
10055
+ MTI
10056
+ MTK
10057
+ MTS
10058
+ MTU
10059
+ MTV
10060
+ MVC
10061
+ MVP
10062
+ Mac
10063
+ Mag
10064
+ Maj
10065
+ Man
10066
+ Mar
10067
+ Max
10068
+ May
10069
+ Mic
10070
+ Min
10071
+ Mon
10072
+ Mou
10073
+ Mur
10074
+ NAD
10075
+ NAS
10076
+ NAT
10077
+ NBA
10078
+ NBC
10079
+ NBL
10080
+ NCT
10081
+ NDS
10082
+ NEC
10083
+ NEO
10084
+ NES
10085
+ NET
10086
+ NEW
10087
+ NEX
10088
+ NFA
10089
+ NFC
10090
+ NFL
10091
+ NFS
10092
+ NGC
10093
+ NGN
10094
+ NGO
10095
+ NHK
10096
+ NHL
10097
+ NIC
10098
+ NIH
10099
+ NLP
10100
+ NME
10101
+ NMR
10102
+ NOT
10103
+ NOW
10104
+ NOX
10105
+ NOx
10106
+ NPC
10107
+ NPN
10108
+ NPR
10109
+ NSA
10110
+ NSC
10111
+ NSF
10112
+ NSK
10113
+ NTN
10114
+ NTP
10115
+ NTT
10116
+ NTV
10117
+ NVH
10118
+ NWA
10119
+ NXT
10120
+ NYT
10121
+ Nic
10122
+ Nob
10123
+ Nor
10124
+ Nov
10125
+ Now
10126
+ Nur
10127
+ OAD
10128
+ OBD
10129
+ OCG
10130
+ OCP
10131
+ OCR
10132
+ OCT
10133
+ ODM
10134
+ OEM
10135
+ OFF
10136
+ OGG
10137
+ OLE
10138
+ OMG
10139
+ ONE
10140
+ ONU
10141
+ OOO
10142
+ OPC
10143
+ OPP
10144
+ ORC
10145
+ OSD
10146
+ OSI
10147
+ OSS
10148
+ OST
10149
+ OTA
10150
+ OTC
10151
+ OTG
10152
+ OTT
10153
+ OUT
10154
+ OVA
10155
+ OVP
10156
+ Obj
10157
+ Off
10158
+ Oly
10159
+ Ope
10160
+ Oph
10161
+ Opt
10162
+ Our
10163
+ Out
10164
+ Ove
10165
+ PAC
10166
+ PAD
10167
+ PAH
10168
+ PAL
10169
+ PAM
10170
+ PAN
10171
+ PAS
10172
+ PBS
10173
+ PBT
10174
+ PCA
10175
+ PCB
10176
+ PCD
10177
+ PCI
10178
+ PCL
10179
+ PCM
10180
+ PCR
10181
+ PCS
10182
+ PCT
10183
+ PDA
10184
+ PDB
10185
+ PDC
10186
+ PDD
10187
+ PDF
10188
+ PDM
10189
+ PDP
10190
+ PDU
10191
+ PEG
10192
+ PEP
10193
+ PER
10194
+ PES
10195
+ PET
10196
+ PFA
10197
+ PFC
10198
+ PGA
10199
+ PGC
10200
+ PHP
10201
+ PHS
10202
+ PIC
10203
+ PID
10204
+ PIM
10205
+ PIN
10206
+ PKI
10207
+ PLA
10208
+ PLC
10209
+ PLD
10210
+ PLL
10211
+ PLM
10212
+ PMC
10213
+ PMI
10214
+ PMP
10215
+ PND
10216
+ PNG
10217
+ PNP
10218
+ POE
10219
+ POM
10220
+ PON
10221
+ POP
10222
+ POS
10223
+ PPA
10224
+ PPC
10225
+ PPG
10226
+ PPH
10227
+ PPI
10228
+ PPM
10229
+ PPP
10230
+ PPR
10231
+ PPS
10232
+ PPT
10233
+ PPV
10234
+ PRL
10235
+ PRO
10236
+ PSA
10237
+ PSD
10238
+ PSE
10239
+ PSG
10240
+ PSI
10241
+ PSK
10242
+ PSP
10243
+ PSS
10244
+ PSV
10245
+ PSW
10246
+ PSY
10247
+ PTA
10248
+ PTC
10249
+ PTH
10250
+ PTT
10251
+ PUB
10252
+ PVA
10253
+ PVC
10254
+ PVE
10255
+ PVP
10256
+ PWM
10257
+ Par
10258
+ Per
10259
+ Pic
10260
+ Pow
10261
+ Pro
10262
+ Pur
10263
+ QAM
10264
+ QDI
10265
+ QFP
10266
+ QGh
10267
+ QOS
10268
+ QPI
10269
+ QPS
10270
+ QRS
10271
+ QTL
10272
+ Qin
10273
+ Qua
10274
+ Que
10275
+ RAM
10276
+ RAP
10277
+ RAR
10278
+ RAS
10279
+ RAW
10280
+ RBC
10281
+ RCA
10282
+ RCS
10283
+ RDF
10284
+ RDS
10285
+ RED
10286
+ REF
10287
+ REG
10288
+ REM
10289
+ REX
10290
+ RFC
10291
+ RGB
10292
+ RIA
10293
+ RIM
10294
+ RIP
10295
+ RMB
10296
+ RMS
10297
+ RNA
10298
+ RNG
10299
+ ROC
10300
+ ROE
10301
+ ROI
10302
+ ROM
10303
+ RPC
10304
+ RPG
10305
+ RPM
10306
+ RRW
10307
+ RSA
10308
+ RSC
10309
+ RSI
10310
+ RSS
10311
+ RTA
10312
+ RTC
10313
+ RTK
10314
+ RTP
10315
+ RTS
10316
+ RTU
10317
+ RTX
10318
+ RUN
10319
+ RUS
10320
+ Ray
10321
+ Raz
10322
+ Ric
10323
+ Riv
10324
+ Rom
10325
+ Rou
10326
+ Rub
10327
+ Run
10328
+ Rus
10329
+ SAC
10330
+ SAE
10331
+ SAM
10332
+ SAN
10333
+ SAO
10334
+ SAP
10335
+ SAR
10336
+ SAS
10337
+ SAT
10338
+ SAY
10339
+ SBR
10340
+ SBS
10341
+ SCE
10342
+ SCH
10343
+ SCI
10344
+ SCM
10345
+ SCP
10346
+ SCR
10347
+ SDH
10348
+ SDI
10349
+ SDK
10350
+ SDR
10351
+ SDS
10352
+ SEA
10353
+ SEC
10354
+ SEE
10355
+ SEM
10356
+ SEO
10357
+ SER
10358
+ SET
10359
+ SFC
10360
+ SFP
10361
+ SGH
10362
+ SGI
10363
+ SGS
10364
+ SHA
10365
+ SHE
10366
+ SID
10367
+ SIG
10368
+ SIM
10369
+ SIP
10370
+ SIR
10371
+ SIS
10372
+ SKF
10373
+ SKT
10374
+ SKU
10375
+ SKY
10376
+ SLA
10377
+ SLC
10378
+ SLE
10379
+ SLG
10380
+ SLI
10381
+ SLR
10382
+ SLS
10383
+ SMA
10384
+ SMB
10385
+ SMC
10386
+ SMD
10387
+ SMG
10388
+ SMI
10389
+ SMP
10390
+ SMS
10391
+ SMT
10392
+ SNK
10393
+ SNP
10394
+ SNR
10395
+ SNS
10396
+ SOA
10397
+ SOC
10398
+ SOD
10399
+ SOI
10400
+ SOP
10401
+ SOS
10402
+ SPA
10403
+ SPC
10404
+ SPD
10405
+ SPE
10406
+ SPF
10407
+ SPI
10408
+ SPR
10409
+ SPS
10410
+ SPT
10411
+ SPV
10412
+ SQL
10413
+ SQU
10414
+ SRS
10415
+ SRT
10416
+ SSA
10417
+ SSC
10418
+ SSD
10419
+ SSE
10420
+ SSH
10421
+ SSL
10422
+ SSR
10423
+ SSS
10424
+ SST
10425
+ STC
10426
+ STD
10427
+ STK
10428
+ STL
10429
+ STM
10430
+ STN
10431
+ STP
10432
+ STR
10433
+ STS
10434
+ SUB
10435
+ SUN
10436
+ SUV
10437
+ SVC
10438
+ SVD
10439
+ SVG
10440
+ SVM
10441
+ SWF
10442
+ SXG
10443
+ SYN
10444
+ SYS
10445
+ Sch
10446
+ Ser
10447
+ She
10448
+ Siz
10449
+ Som
10450
+ Sou
10451
+ Squ
10452
+ Sub
10453
+ Sum
10454
+ Sun
10455
+ Sup
10456
+ Suz
10457
+ TAB
10458
+ TAC
10459
+ TAG
10460
+ TAO
10461
+ TBC
10462
+ TBM
10463
+ TBS
10464
+ TCG
10465
+ TCL
10466
+ TCM
10467
+ TCO
10468
+ TCP
10469
+ TCR
10470
+ TCS
10471
+ TCT
10472
+ TDD
10473
+ TDI
10474
+ TDM
10475
+ TDP
10476
+ TDS
10477
+ TEC
10478
+ TED
10479
+ TEL
10480
+ TEM
10481
+ TES
10482
+ TEU
10483
+ TEX
10484
+ TFT
10485
+ TGA
10486
+ TGF
10487
+ TGV
10488
+ THD
10489
+ THE
10490
+ TIA
10491
+ TIF
10492
+ TKO
10493
+ TLC
10494
+ TLS
10495
+ TMD
10496
+ TMP
10497
+ TMS
10498
+ TMT
10499
+ TNA
10500
+ TNF
10501
+ TNT
10502
+ TOC
10503
+ TOD
10504
+ TOE
10505
+ TOM
10506
+ TOP
10507
+ TPC
10508
+ TPE
10509
+ TPM
10510
+ TPO
10511
+ TPP
10512
+ TPR
10513
+ TPS
10514
+ TPU
10515
+ TQM
10516
+ TSC
10517
+ TSH
10518
+ TSI
10519
+ TSP
10520
+ TTL
10521
+ TTS
10522
+ TTT
10523
+ TUV
10524
+ TVB
10525
+ TVC
10526
+ TVP
10527
+ TVS
10528
+ TWO
10529
+ TXT
10530
+ Tay
10531
+ The
10532
+ Tom
10533
+ Tou
10534
+ Tow
10535
+ Tur
10536
+ UAR
10537
+ UBC
10538
+ UCC
10539
+ UCL
10540
+ UDP
10541
+ UFC
10542
+ UFO
10543
+ UGC
10544
+ UHF
10545
+ UIP
10546
+ UMD
10547
+ UML
10548
+ UNI
10549
+ UPC
10550
+ UPS
10551
+ URL
10552
+ USA
10553
+ USB
10554
+ USD
10555
+ USM
10556
+ USP
10557
+ USS
10558
+ UTC
10559
+ UTF
10560
+ UTP
10561
+ UTR
10562
+ UVA
10563
+ UVB
10564
+ UWB
10565
+ UZI
10566
+ Umb
10567
+ Uni
10568
+ Upp
10569
+ Uzi
10570
+ VAC
10571
+ VAR
10572
+ VBA
10573
+ VBR
10574
+ VBS
10575
+ VCC
10576
+ VCD
10577
+ VCR
10578
+ VDC
10579
+ VDE
10580
+ VGA
10581
+ VHF
10582
+ VHS
10583
+ VIA
10584
+ VII
10585
+ VIP
10586
+ VIS
10587
+ VMw
10588
+ VOA
10589
+ VOB
10590
+ VOC
10591
+ VOD
10592
+ VOL
10593
+ VPN
10594
+ VPS
10595
+ VRP
10596
+ VSS
10597
+ VTE
10598
+ VVT
10599
+ Ver
10600
+ Vic
10601
+ Vid
10602
+ Vis
10603
+ Viv
10604
+ WAN
10605
+ WAP
10606
+ WAV
10607
+ WAY
10608
+ WBA
10609
+ WBC
10610
+ WBO
10611
+ WBS
10612
+ WCG
10613
+ WCW
10614
+ WDM
10615
+ WDS
10616
+ WEB
10617
+ WEP
10618
+ WEY
10619
+ WGK
10620
+ WHO
10621
+ WIN
10622
+ WMA
10623
+ WMS
10624
+ WMV
10625
+ WOW
10626
+ WPA
10627
+ WPF
10628
+ WPS
10629
+ WRC
10630
+ WSA
10631
+ WTA
10632
+ WTI
10633
+ WTO
10634
+ WVG
10635
+ WWE
10636
+ WWF
10637
+ WWW
10638
+ Way
10639
+ Wha
10640
+ Whe
10641
+ Whi
10642
+ Who
10643
+ Why
10644
+ WiF
10645
+ Win
10646
+ Wiz
10647
+ Wom
10648
+ Wor
10649
+ Wou
10650
+ XGA
10651
+ XII
10652
+ XML
10653
+ XPS
10654
+ XXX
10655
+ XYZ
10656
+ YAG
10657
+ YES
10658
+ YOU
10659
+ YZB
10660
+ Yin
10661
+ You
10662
+ Yua
10663
+ Yuk
10664
+ Yun
10665
+ ZIP
10666
+ ZOL
10667
+ Zer
10668
+ Zha
10669
+ Zhu
10670
+ Zom
10671
+ Zon
10672
+ Zou
10673
+ abb
10674
+ abc
10675
+ abo
10676
+ abs
10677
+ act
10678
+ adj
10679
+ aff
10680
+ all
10681
+ and
10682
+ ang
10683
+ any
10684
+ app
10685
+ aws
10686
+ bbb
10687
+ bbc
10688
+ bbq
10689
+ bbs
10690
+ but
10691
+ cAM
10692
+ cDN
10693
+ cGM
10694
+ can
10695
+ car
10696
+ cba
10697
+ cha
10698
+ chi
10699
+ col
10700
+ com
10701
+ con
10702
+ cor
10703
+ cou
10704
+ cpi
10705
+ cpu
10706
+ dan
10707
+ day
10708
+ des
10709
+ did
10710
+ dif
10711
+ dis
10712
+ div
10713
+ diy
10714
+ doc
10715
+ don
10716
+ dow
10717
+ eAA
10718
+ eSA
10719
+ ech
10720
+ eff
10721
+ emb
10722
+ emp
10723
+ end
10724
+ eng
10725
+ eqc
10726
+ equ
10727
+ euv
10728
+ eve
10729
+ exc
10730
+ exe
10731
+ exp
10732
+ fac
10733
+ fil
10734
+ fin
10735
+ fir
10736
+ fiv
10737
+ fla
10738
+ fly
10739
+ for
10740
+ fox
10741
+ fre
10742
+ fri
10743
+ gAS
10744
+ gdp
10745
+ gen
10746
+ giv
10747
+ gmp
10748
+ gon
10749
+ goo
10750
+ got
10751
+ gps
10752
+ gra
10753
+ gre
10754
+ gro
10755
+ had
10756
+ har
10757
+ has
10758
+ hav
10759
+ haz
10760
+ her
10761
+ his
10762
+ hiv
10763
+ hol
10764
+ hom
10765
+ hou
10766
+ how
10767
+ iBT
10768
+ iOS
10769
+ iPa
10770
+ iPh
10771
+ iPo
10772
+ iSC
10773
+ ima
10774
+ imp
10775
+ inc
10776
+ inf
10777
+ inj
10778
+ int
10779
+ ipa
10780
+ iph
10781
+ ipo
10782
+ isb
10783
+ iso
10784
+ jam
10785
+ jap
10786
+ jav
10787
+ jay
10788
+ jus
10789
+ kHz
10790
+ kJm
10791
+ kdj
10792
+ kin
10793
+ lay
10794
+ laz
10795
+ lck
10796
+ lea
10797
+ led
10798
+ let
10799
+ lib
10800
+ lif
10801
+ lin
10802
+ liq
10803
+ lis
10804
+ lit
10805
+ liv
10806
+ liz
10807
+ lly
10808
+ lng
10809
+ loc
10810
+ lof
10811
+ log
10812
+ loo
10813
+ los
10814
+ low
10815
+ mRN
10816
+ mac
10817
+ mad
10818
+ maj
10819
+ man
10820
+ mar
10821
+ mat
10822
+ max
10823
+ may
10824
+ maz
10825
+ mba
10826
+ men
10827
+ mic
10828
+ min
10829
+ mmH
10830
+ mod
10831
+ mon
10832
+ mor
10833
+ mys
10834
+ nVI
10835
+ nba
10836
+ nex
10837
+ nic
10838
+ not
10839
+ nov
10840
+ now
10841
+ nxp
10842
+ obj
10843
+ off
10844
+ one
10845
+ ope
10846
+ opp
10847
+ our
10848
+ out
10849
+ ove
10850
+ par
10851
+ pay
10852
+ per
10853
+ phe
10854
+ php
10855
+ piz
10856
+ pla
10857
+ pow
10858
+ ppp
10859
+ pre
10860
+ pro
10861
+ pvc
10862
+ qHD
10863
+ qgh
10864
+ qua
10865
+ que
10866
+ qui
10867
+ rRN
10868
+ ray
10869
+ raz
10870
+ rea
10871
+ rec
10872
+ red
10873
+ ref
10874
+ reg
10875
+ rem
10876
+ rep
10877
+ req
10878
+ res
10879
+ rev
10880
+ ric
10881
+ riv
10882
+ rmb
10883
+ rng
10884
+ rom
10885
+ rou
10886
+ say
10887
+ sch
10888
+ sha
10889
+ she
10890
+ shi
10891
+ sho
10892
+ sim
10893
+ sin
10894
+ siz
10895
+ som
10896
+ sou
10897
+ spa
10898
+ spe
10899
+ sql
10900
+ squ
10901
+ sta
10902
+ ste
10903
+ sto
10904
+ str
10905
+ sty
10906
+ sub
10907
+ suv
10908
+ tRN
10909
+ tha
10910
+ the
10911
+ thi
10912
+ thr
10913
+ tim
10914
+ tip
10915
+ top
10916
+ tow
10917
+ tpp
10918
+ tra
10919
+ tur
10920
+ tuv
10921
+ two
10922
+ ubc
10923
+ uiv
10924
+ unc
10925
+ und
10926
+ uni
10927
+ unk
10928
+ ups
10929
+ usb
10930
+ uva
10931
+ uvb
10932
+ uzi
10933
+ val
10934
+ var
10935
+ ver
10936
+ vie
10937
+ vip
10938
+ vis
10939
+ viv
10940
+ wan
10941
+ was
10942
+ way
10943
+ web
10944
+ wer
10945
+ wha
10946
+ whi
10947
+ who
10948
+ why
10949
+ wif
10950
+ wit
10951
+ wom
10952
+ won
10953
+ wor
10954
+ wou
10955
+ www
10956
+ xin
10957
+ xxx
10958
+ yin
10959
+ you
10960
+ zha
10961
+ zhi
10962
+ zho
10963
+ zhu
10964
+ zon
10965
+ zzf
10966
+ zzy
10967
+ AAAA
10968
+ AACS
10969
+ ABCD
10970
+ ACCA
10971
+ ACCE
10972
+ ACCP
10973
+ ACDC
10974
+ ACGN
10975
+ ACID
10976
+ ACPI
10977
+ ACTH
10978
+ ADHD
10979
+ ADPC
10980
+ ADSL
10981
+ AIDS
10982
+ AJAX
10983
+ ALPH
10984
+ AMEX
10985
+ AMOL
10986
+ ANGE
10987
+ ANSI
10988
+ ANSY
10989
+ APEC
10990
+ APPL
10991
+ APTE
10992
+ ARDS
10993
+ ARPA
10994
+ ARPG
10995
+ ASCE
10996
+ ASCI
10997
+ ASIA
10998
+ ASIC
10999
+ ASIN
11000
+ ASME
11001
+ ASSO
11002
+ ASTM
11003
+ ASUS
11004
+ AUDI
11005
+ AUTO
11006
+ AVCH
11007
+ AWAR
11008
+ Andr
11009
+ BABY
11010
+ BACK
11011
+ BAND
11012
+ BANG
11013
+ BANK
11014
+ BASI
11015
+ BASS
11016
+ BATT
11017
+ BEAS
11018
+ BEAT
11019
+ BEST
11020
+ BEYO
11021
+ BIGB
11022
+ BIOS
11023
+ BLAC
11024
+ BLEA
11025
+ BLOG
11026
+ BLOO
11027
+ BLUE
11028
+ BOBO
11029
+ BOOK
11030
+ BOOL
11031
+ BOOM
11032
+ BOPP
11033
+ BOSS
11034
+ BOYS
11035
+ BRAV
11036
+ BREA
11037
+ BUFF
11038
+ Buck
11039
+ Buff
11040
+ Bull
11041
+ Bung
11042
+ Buzz
11043
+ CADC
11044
+ CALL
11045
+ CAPC
11046
+ CAPP
11047
+ CARD
11048
+ CASE
11049
+ CASI
11050
+ CAST
11051
+ CATI
11052
+ CATV
11053
+ CAXA
11054
+ CCFL
11055
+ CCIE
11056
+ CCNA
11057
+ CCTV
11058
+ CDMA
11059
+ CEPA
11060
+ CERN
11061
+ CHAN
11062
+ CHAP
11063
+ CHAR
11064
+ CHEN
11065
+ CHIN
11066
+ CHOR
11067
+ CIMS
11068
+ CIPA
11069
+ CISC
11070
+ CITE
11071
+ CITY
11072
+ CLAM
11073
+ CLAN
11074
+ CLAS
11075
+ CLOS
11076
+ CLUB
11077
+ CMMB
11078
+ CMMI
11079
+ CMOS
11080
+ CMYK
11081
+ CNAS
11082
+ CNBC
11083
+ CNBL
11084
+ CNKI
11085
+ CNNI
11086
+ COCO
11087
+ CODE
11088
+ COLL
11089
+ COLO
11090
+ COMB
11091
+ COME
11092
+ COMI
11093
+ COMP
11094
+ CONT
11095
+ COOL
11096
+ CORB
11097
+ CORE
11098
+ COSM
11099
+ COSP
11100
+ COST
11101
+ COUN
11102
+ COVI
11103
+ CPLD
11104
+ CREA
11105
+ CROS
11106
+ CSCD
11107
+ CSDN
11108
+ CSMA
11109
+ CSOL
11110
+ CSSC
11111
+ CSTN
11112
+ CTRL
11113
+ CUBA
11114
+ CUDA
11115
+ CURR
11116
+ CVBS
11117
+ Chin
11118
+ Chur
11119
+ DANC
11120
+ DARK
11121
+ DARP
11122
+ DASH
11123
+ DATA
11124
+ DAYS
11125
+ DCDC
11126
+ DDNS
11127
+ DDOS
11128
+ DDRI
11129
+ DELL
11130
+ DEMO
11131
+ DESI
11132
+ DEST
11133
+ DHCP
11134
+ DIGI
11135
+ DIMM
11136
+ DISC
11137
+ DIVX
11138
+ DLNA
11139
+ DOHC
11140
+ DOTA
11141
+ DOWN
11142
+ DRAG
11143
+ DRAM
11144
+ DREA
11145
+ DRIV
11146
+ DSLR
11147
+ DVDC
11148
+ DVGA
11149
+ DWDM
11150
+ DWOR
11151
+ EAST
11152
+ EASY
11153
+ EBIT
11154
+ ECMO
11155
+ EDGE
11156
+ EDIT
11157
+ EDTA
11158
+ EGFR
11159
+ EINE
11160
+ ELIS
11161
+ ELLE
11162
+ EMBA
11163
+ ENER
11164
+ ENGI
11165
+ ENTE
11166
+ EPDM
11167
+ EPIS
11168
+ EPON
11169
+ EPSO
11170
+ EPUB
11171
+ ERCP
11172
+ ERRO
11173
+ ESET
11174
+ ESPN
11175
+ ETSI
11176
+ EVDO
11177
+ EVER
11178
+ EXCE
11179
+ EXIL
11180
+ EXPO
11181
+ Ever
11182
+ Exch
11183
+ Exer
11184
+ FACE
11185
+ FALS
11186
+ FANS
11187
+ FANU
11188
+ FAST
11189
+ FDDI
11190
+ FIBA
11191
+ FIDI
11192
+ FIFA
11193
+ FIFO
11194
+ FILE
11195
+ FINA
11196
+ FIRE
11197
+ FIRS
11198
+ FISH
11199
+ FIVE
11200
+ FLAC
11201
+ FLAS
11202
+ FLOW
11203
+ FMVP
11204
+ FORT
11205
+ FPGA
11206
+ FREE
11207
+ FROM
11208
+ FTTH
11209
+ FULL
11210
+ FWVG
11211
+ FXCM
11212
+ Fuck
11213
+ Full
11214
+ Fund
11215
+ Fung
11216
+ Fuzz
11217
+ GABA
11218
+ GALA
11219
+ GAME
11220
+ GANK
11221
+ GATT
11222
+ GEAR
11223
+ GENE
11224
+ GHOS
11225
+ GIRL
11226
+ GLON
11227
+ GMAT
11228
+ GNSS
11229
+ GOLD
11230
+ GOOD
11231
+ GOOG
11232
+ GPRS
11233
+ GREE
11234
+ GROU
11235
+ GSMG
11236
+ GUCC
11237
+ GUND
11238
+ GUTS
11239
+ Gund
11240
+ HACC
11241
+ HAPP
11242
+ HARD
11243
+ HART
11244
+ HDCP
11245
+ HDMI
11246
+ HDPE
11247
+ HDTV
11248
+ HEAD
11249
+ HEAR
11250
+ HELL
11251
+ HEPA
11252
+ HERO
11253
+ HIFI
11254
+ HIGH
11255
+ HIPH
11256
+ HKEY
11257
+ HOLD
11258
+ HOME
11259
+ HOST
11260
+ HOUS
11261
+ HPLC
11262
+ HSDP
11263
+ HSPA
11264
+ HTML
11265
+ HTTP
11266
+ HUNT
11267
+ Hugh
11268
+ Hung
11269
+ ICAN
11270
+ ICMP
11271
+ ICON
11272
+ IDEA
11273
+ IDOL
11274
+ IEEE
11275
+ IELT
11276
+ IETF
11277
+ IFPI
11278
+ IGBT
11279
+ IGMP
11280
+ IMAX
11281
+ IMDB
11282
+ INFO
11283
+ INTE
11284
+ IPAD
11285
+ IPTV
11286
+ ISBN
11287
+ ISDN
11288
+ ISIS
11289
+ ISOI
11290
+ ISRC
11291
+ ISSN
11292
+ ISTP
11293
+ ITER
11294
+ ITIL
11295
+ IUCN
11296
+ Inte
11297
+ Inve
11298
+ JACK
11299
+ JAPA
11300
+ JAVA
11301
+ JAZZ
11302
+ JBOD
11303
+ JOHN
11304
+ JOJO
11305
+ JOKE
11306
+ JOUR
11307
+ JPEG
11308
+ JUMP
11309
+ JUST
11310
+ Jack
11311
+ Jake
11312
+ Jazz
11313
+ John
11314
+ Joke
11315
+ July
11316
+ Jump
11317
+ Jung
11318
+ KING
11319
+ KISS
11320
+ KONA
11321
+ KOYO
11322
+ LASI
11323
+ LAST
11324
+ LEED
11325
+ LEEP
11326
+ LESS
11327
+ LEVE
11328
+ LEXU
11329
+ LIFE
11330
+ LIKE
11331
+ LIMI
11332
+ LINE
11333
+ LINK
11334
+ LINU
11335
+ LIST
11336
+ LIVE
11337
+ LLDP
11338
+ LOCA
11339
+ LOFT
11340
+ LOGO
11341
+ LOLI
11342
+ LONG
11343
+ LOOK
11344
+ LOVE
11345
+ LPGA
11346
+ LTPS
11347
+ LVDS
11348
+ Ligh
11349
+ Like
11350
+ Lily
11351
+ Lind
11352
+ Ling
11353
+ Liqu
11354
+ Live
11355
+ Luck
11356
+ Luke
11357
+ MACD
11358
+ MACH
11359
+ MAGI
11360
+ MALL
11361
+ MAMA
11362
+ MARK
11363
+ MAST
11364
+ MATL
11365
+ MATX
11366
+ MAYA
11367
+ MBLA
11368
+ MEDI
11369
+ MEGA
11370
+ MEMS
11371
+ MERS
11372
+ META
11373
+ MIDI
11374
+ MIDP
11375
+ MIMO
11376
+ MINI
11377
+ MIPS
11378
+ MISS
11379
+ MIUI
11380
+ MMOR
11381
+ MOBA
11382
+ MODB
11383
+ MODE
11384
+ MOMO
11385
+ MOOC
11386
+ MOON
11387
+ MORE
11388
+ MOSF
11389
+ MOTO
11390
+ MOVI
11391
+ MPEG
11392
+ MPLS
11393
+ MSCI
11394
+ MSDS
11395
+ MTBF
11396
+ MUSI
11397
+ Mach
11398
+ Make
11399
+ Maur
11400
+ Mazz
11401
+ NACH
11402
+ NADH
11403
+ NADP
11404
+ NAMC
11405
+ NAME
11406
+ NANA
11407
+ NAND
11408
+ NASA
11409
+ NASD
11410
+ NATO
11411
+ NAVE
11412
+ NCAA
11413
+ NCAP
11414
+ NCIS
11415
+ NEDC
11416
+ NEOP
11417
+ NERV
11418
+ NEST
11419
+ NEWS
11420
+ NEXT
11421
+ NICO
11422
+ NIGH
11423
+ NIKE
11424
+ NINE
11425
+ NOKI
11426
+ NOTE
11427
+ NOVA
11428
+ NSAI
11429
+ NTFS
11430
+ NTSC
11431
+ NULL
11432
+ NURB
11433
+ NVID
11434
+ NYSE
11435
+ Nove
11436
+ ODBC
11437
+ OECD
11438
+ OFDM
11439
+ OFFI
11440
+ OLAP
11441
+ OLED
11442
+ ONLI
11443
+ ONLY
11444
+ OPEC
11445
+ OPEN
11446
+ OPPO
11447
+ ORAC
11448
+ ORIC
11449
+ ORIG
11450
+ OSPF
11451
+ OVER
11452
+ Oper
11453
+ PACS
11454
+ PAGE
11455
+ PARK
11456
+ PART
11457
+ PASS
11458
+ PCMC
11459
+ PDCA
11460
+ PEEK
11461
+ PERC
11462
+ PERF
11463
+ PETS
11464
+ PHEV
11465
+ PHIL
11466
+ PHOT
11467
+ PICC
11468
+ PIEC
11469
+ PLAN
11470
+ PLAY
11471
+ PLUS
11472
+ PMMA
11473
+ PNAS
11474
+ POLO
11475
+ POSE
11476
+ POST
11477
+ POWE
11478
+ PPTP
11479
+ PPTV
11480
+ PRAD
11481
+ PROD
11482
+ PROF
11483
+ PROJ
11484
+ PSTN
11485
+ PTFE
11486
+ PUNK
11487
+ PVDF
11488
+ Pric
11489
+ Prin
11490
+ Priv
11491
+ Priz
11492
+ Prom
11493
+ QFII
11494
+ QVGA
11495
+ QVOD
11496
+ QWER
11497
+ Quic
11498
+ Quin
11499
+ Quiz
11500
+ RADI
11501
+ RAID
11502
+ RAIN
11503
+ REAC
11504
+ READ
11505
+ REAL
11506
+ REIT
11507
+ RESE
11508
+ RFID
11509
+ RIDE
11510
+ RISC
11511
+ RMON
11512
+ RMRM
11513
+ RMVB
11514
+ ROAD
11515
+ ROCK
11516
+ ROHS
11517
+ ROOT
11518
+ ROSE
11519
+ RTEC
11520
+ RWBY
11521
+ Ruby
11522
+ SAAS
11523
+ SAMS
11524
+ SARS
11525
+ SATA
11526
+ SCAD
11527
+ SCAR
11528
+ SCDM
11529
+ SCHO
11530
+ SCIE
11531
+ SCSI
11532
+ SDHC
11533
+ SDMM
11534
+ SDRA
11535
+ SDSD
11536
+ SDXC
11537
+ SECA
11538
+ SECC
11539
+ SECT
11540
+ SEED
11541
+ SEGA
11542
+ SELE
11543
+ SERV
11544
+ SEVE
11545
+ SFDA
11546
+ SHIF
11547
+ SHIN
11548
+ SHOC
11549
+ SHOP
11550
+ SHOW
11551
+ SIDE
11552
+ SIEM
11553
+ SING
11554
+ SIZE
11555
+ SKIP
11556
+ SMAP
11557
+ SMAR
11558
+ SMIL
11559
+ SMTP
11560
+ SNMP
11561
+ SOAP
11562
+ SOCK
11563
+ SOHO
11564
+ SOLO
11565
+ SONG
11566
+ SONY
11567
+ SOSO
11568
+ SOUL
11569
+ SPAC
11570
+ SPCC
11571
+ SPDI
11572
+ SPEC
11573
+ SPEE
11574
+ SPIE
11575
+ SPOR
11576
+ SPSS
11577
+ SRAM
11578
+ SSCI
11579
+ STAF
11580
+ STAG
11581
+ STAR
11582
+ STAT
11583
+ STEM
11584
+ STEP
11585
+ STER
11586
+ STOP
11587
+ STOR
11588
+ STUD
11589
+ STYL
11590
+ SUMM
11591
+ SUPE
11592
+ SUSE
11593
+ SWAT
11594
+ SWIF
11595
+ SWOT
11596
+ SYST
11597
+ Subj
11598
+ Sull
11599
+ Sund
11600
+ Sung
11601
+ Supp
11602
+ TABL
11603
+ TANK
11604
+ TCPI
11605
+ TDMA
11606
+ TEAM
11607
+ TECH
11608
+ TEST
11609
+ TEXT
11610
+ TFBO
11611
+ TFSI
11612
+ TFTP
11613
+ THIS
11614
+ THRE
11615
+ TIFF
11616
+ TIME
11617
+ TIMK
11618
+ TIPS
11619
+ TOEF
11620
+ TOKY
11621
+ TOSH
11622
+ TOUC
11623
+ TOUR
11624
+ TOWN
11625
+ TRAC
11626
+ TRIP
11627
+ TRIZ
11628
+ TRUE
11629
+ TVBS
11630
+ TVOC
11631
+ TWIC
11632
+ TYPE
11633
+ Ther
11634
+ Thin
11635
+ Thom
11636
+ Thou
11637
+ UCLA
11638
+ UHMW
11639
+ ULTR
11640
+ UMTS
11641
+ UNES
11642
+ UNIT
11643
+ UNIV
11644
+ UNIX
11645
+ Unic
11646
+ Unit
11647
+ Univ
11648
+ VAIO
11649
+ VCCI
11650
+ VEGF
11651
+ VERS
11652
+ VHDL
11653
+ VIDE
11654
+ VIER
11655
+ VIII
11656
+ VISA
11657
+ VISI
11658
+ VIST
11659
+ VIVO
11660
+ VLAN
11661
+ VLSI
11662
+ VOCA
11663
+ VOGU
11664
+ VOIP
11665
+ VRay
11666
+ VSAT
11667
+ Vick
11668
+ Vill
11669
+ WANG
11670
+ WAPI
11671
+ WASD
11672
+ WAVE
11673
+ WCBA
11674
+ WCDM
11675
+ WEEK
11676
+ WEST
11677
+ WHAT
11678
+ WHIT
11679
+ WIFI
11680
+ WIND
11681
+ WITH
11682
+ WLAN
11683
+ WORD
11684
+ WORK
11685
+ WORL
11686
+ WQVG
11687
+ WXGA
11688
+ Wang
11689
+ Wher
11690
+ WiMA
11691
+ Will
11692
+ Wind
11693
+ Wing
11694
+ XBOX
11695
+ XBRL
11696
+ XHTM
11697
+ XVID
11698
+ XXXX
11699
+ YAMA
11700
+ YANG
11701
+ YEAH
11702
+ YONE
11703
+ YOUN
11704
+ YOUR
11705
+ YOYO
11706
+ Yong
11707
+ Your
11708
+ ZAFT
11709
+ ZARA
11710
+ ZERO
11711
+ ZGMF
11712
+ ZHAN
11713
+ ZONE
11714
+ Zhon
11715
+ Zhou
11716
+ abby
11717
+ abou
11718
+ andr
11719
+ appl
11720
+ baby
11721
+ back
11722
+ blic
11723
+ call
11724
+ char
11725
+ chic
11726
+ chin
11727
+ coff
11728
+ coll
11729
+ comb
11730
+ comm
11731
+ comp
11732
+ cond
11733
+ cons
11734
+ cont
11735
+ dick
11736
+ diff
11737
+ ding
11738
+ dock
11739
+ doin
11740
+ dong
11741
+ down
11742
+ ever
11743
+ exch
11744
+ find
11745
+ foll
11746
+ four
11747
+ from
11748
+ fron
11749
+ goin
11750
+ good
11751
+ goog
11752
+ gove
11753
+ hack
11754
+ hall
11755
+ hand
11756
+ hang
11757
+ happ
11758
+ have
11759
+ here
11760
+ high
11761
+ home
11762
+ into
11763
+ inve
11764
+ jack
11765
+ java
11766
+ jazz
11767
+ jump
11768
+ jung
11769
+ just
11770
+ know
11771
+ life
11772
+ ligh
11773
+ like
11774
+ lily
11775
+ ling
11776
+ liqu
11777
+ live
11778
+ lock
11779
+ logo
11780
+ lond
11781
+ long
11782
+ look
11783
+ love
11784
+ macd
11785
+ mach
11786
+ make
11787
+ mapp
11788
+ mmer
11789
+ nove
11790
+ okay
11791
+ only
11792
+ oper
11793
+ oppo
11794
+ othe
11795
+ over
11796
+ play
11797
+ pray
11798
+ pric
11799
+ prin
11800
+ priv
11801
+ priz
11802
+ prod
11803
+ prom
11804
+ quic
11805
+ real
11806
+ requ
11807
+ righ
11808
+ scho
11809
+ shou
11810
+ show
11811
+ some
11812
+ star
11813
+ stat
11814
+ stay
11815
+ stom
11816
+ subj
11817
+ such
11818
+ suff
11819
+ supp
11820
+ take
11821
+ than
11822
+ they
11823
+ thin
11824
+ thou
11825
+ toke
11826
+ uber
11827
+ unic
11828
+ univ
11829
+ upon
11830
+ usdj
11831
+ user
11832
+ usin
11833
+ vill
11834
+ vivo
11835
+ wake
11836
+ wall
11837
+ wang
11838
+ want
11839
+ wave
11840
+ were
11841
+ what
11842
+ when
11843
+ wifi
11844
+ will
11845
+ wind
11846
+ wing
11847
+ with
11848
+ work
11849
+ xing
11850
+ xxxx
11851
+ year
11852
+ your
11853
+ zhon
11854
+ China
11855
+ Inter
11856
+ Journ
11857
+ china
11858
+ every
11859
+ inter
11860
+ iphon
11861
+ thing
11862
+ think
11863
+ where
11864
+ which
11865
+ Univer
11866
+ univer
11867
+ Windows
11868
+ windows
11869
+ ##A
11870
+ ##B
11871
+ ##C
11872
+ ##D
11873
+ ##E
11874
+ ##F
11875
+ ##G
11876
+ ##H
11877
+ ##I
11878
+ ##J
11879
+ ##K
11880
+ ##L
11881
+ ##M
11882
+ ##N
11883
+ ##O
11884
+ ##P
11885
+ ##Q
11886
+ ##R
11887
+ ##S
11888
+ ##T
11889
+ ##U
11890
+ ##V
11891
+ ##W
11892
+ ##X
11893
+ ##Y
11894
+ ##Z
11895
+ ##a
11896
+ ##b
11897
+ ##c
11898
+ ##d
11899
+ ##e
11900
+ ##f
11901
+ ##g
11902
+ ##h
11903
+ ##i
11904
+ ##j
11905
+ ##k
11906
+ ##l
11907
+ ##m
11908
+ ##n
11909
+ ##o
11910
+ ##p
11911
+ ##q
11912
+ ##r
11913
+ ##s
11914
+ ##t
11915
+ ##u
11916
+ ##v
11917
+ ##w
11918
+ ##x
11919
+ ##y
11920
+ ##z
11921
+ ##AA
11922
+ ##AB
11923
+ ##AC
11924
+ ##AD
11925
+ ##AE
11926
+ ##AF
11927
+ ##AG
11928
+ ##AH
11929
+ ##AI
11930
+ ##AK
11931
+ ##AL
11932
+ ##AM
11933
+ ##AN
11934
+ ##AO
11935
+ ##AP
11936
+ ##AQ
11937
+ ##AR
11938
+ ##AS
11939
+ ##AT
11940
+ ##AV
11941
+ ##AW
11942
+ ##AX
11943
+ ##AY
11944
+ ##AZ
11945
+ ##BA
11946
+ ##BB
11947
+ ##BC
11948
+ ##BE
11949
+ ##BG
11950
+ ##BI
11951
+ ##BM
11952
+ ##BN
11953
+ ##BO
11954
+ ##BP
11955
+ ##BR
11956
+ ##BS
11957
+ ##BT
11958
+ ##BU
11959
+ ##BY
11960
+ ##CA
11961
+ ##CB
11962
+ ##CC
11963
+ ##CD
11964
+ ##CE
11965
+ ##CF
11966
+ ##CG
11967
+ ##CH
11968
+ ##CI
11969
+ ##CK
11970
+ ##CL
11971
+ ##CM
11972
+ ##CN
11973
+ ##CO
11974
+ ##CP
11975
+ ##CR
11976
+ ##CS
11977
+ ##CT
11978
+ ##CU
11979
+ ##DA
11980
+ ##DB
11981
+ ##DC
11982
+ ##DD
11983
+ ##DE
11984
+ ##DI
11985
+ ##DL
11986
+ ##DM
11987
+ ##DN
11988
+ ##DO
11989
+ ##DP
11990
+ ##DR
11991
+ ##DS
11992
+ ##DT
11993
+ ##DU
11994
+ ##DX
11995
+ ##DY
11996
+ ##EA
11997
+ ##EB
11998
+ ##EC
11999
+ ##ED
12000
+ ##EE
12001
+ ##EF
12002
+ ##EG
12003
+ ##EI
12004
+ ##EK
12005
+ ##EL
12006
+ ##EM
12007
+ ##EN
12008
+ ##EO
12009
+ ##EP
12010
+ ##ER
12011
+ ##ES
12012
+ ##ET
12013
+ ##EV
12014
+ ##EW
12015
+ ##EX
12016
+ ##EY
12017
+ ##FA
12018
+ ##FC
12019
+ ##FD
12020
+ ##FE
12021
+ ##FF
12022
+ ##FI
12023
+ ##FL
12024
+ ##FO
12025
+ ##FP
12026
+ ##FR
12027
+ ##FS
12028
+ ##FT
12029
+ ##FU
12030
+ ##FX
12031
+ ##Fi
12032
+ ##GA
12033
+ ##GC
12034
+ ##GE
12035
+ ##GF
12036
+ ##GH
12037
+ ##GI
12038
+ ##GL
12039
+ ##GN
12040
+ ##GO
12041
+ ##GP
12042
+ ##GR
12043
+ ##GS
12044
+ ##GU
12045
+ ##GY
12046
+ ##HA
12047
+ ##HC
12048
+ ##HD
12049
+ ##HE
12050
+ ##HG
12051
+ ##HI
12052
+ ##HM
12053
+ ##HN
12054
+ ##HO
12055
+ ##HP
12056
+ ##HR
12057
+ ##HS
12058
+ ##HT
12059
+ ##IA
12060
+ ##IB
12061
+ ##IC
12062
+ ##ID
12063
+ ##IE
12064
+ ##IF
12065
+ ##IG
12066
+ ##II
12067
+ ##IK
12068
+ ##IL
12069
+ ##IM
12070
+ ##IN
12071
+ ##IO
12072
+ ##IP
12073
+ ##IR
12074
+ ##IS
12075
+ ##IT
12076
+ ##IU
12077
+ ##IV
12078
+ ##IX
12079
+ ##IZ
12080
+ ##JI
12081
+ ##JO
12082
+ ##Jo
12083
+ ##Ju
12084
+ ##KA
12085
+ ##KE
12086
+ ##KI
12087
+ ##KK
12088
+ ##KO
12089
+ ##KU
12090
+ ##KY
12091
+ ##LA
12092
+ ##LC
12093
+ ##LD
12094
+ ##LE
12095
+ ##LF
12096
+ ##LG
12097
+ ##LI
12098
+ ##LK
12099
+ ##LL
12100
+ ##LM
12101
+ ##LO
12102
+ ##LP
12103
+ ##LS
12104
+ ##LT
12105
+ ##LU
12106
+ ##LV
12107
+ ##LY
12108
+ ##MA
12109
+ ##MB
12110
+ ##MC
12111
+ ##MD
12112
+ ##ME
12113
+ ##MF
12114
+ ##MI
12115
+ ##ML
12116
+ ##MM
12117
+ ##MN
12118
+ ##MO
12119
+ ##MP
12120
+ ##MR
12121
+ ##MS
12122
+ ##MT
12123
+ ##MV
12124
+ ##MY
12125
+ ##NA
12126
+ ##NC
12127
+ ##ND
12128
+ ##NE
12129
+ ##NG
12130
+ ##NI
12131
+ ##NJ
12132
+ ##NK
12133
+ ##NN
12134
+ ##NO
12135
+ ##NP
12136
+ ##NS
12137
+ ##NT
12138
+ ##NU
12139
+ ##NX
12140
+ ##NY
12141
+ ##NZ
12142
+ ##OB
12143
+ ##OC
12144
+ ##OD
12145
+ ##OE
12146
+ ##OF
12147
+ ##OG
12148
+ ##OH
12149
+ ##OI
12150
+ ##OK
12151
+ ##OL
12152
+ ##OM
12153
+ ##ON
12154
+ ##OO
12155
+ ##OP
12156
+ ##OR
12157
+ ##OS
12158
+ ##OT
12159
+ ##OU
12160
+ ##OV
12161
+ ##OW
12162
+ ##OX
12163
+ ##PA
12164
+ ##PC
12165
+ ##PD
12166
+ ##PE
12167
+ ##PF
12168
+ ##PG
12169
+ ##PH
12170
+ ##PI
12171
+ ##PL
12172
+ ##PM
12173
+ ##PO
12174
+ ##PP
12175
+ ##PR
12176
+ ##PS
12177
+ ##PT
12178
+ ##PU
12179
+ ##QU
12180
+ ##Qu
12181
+ ##RA
12182
+ ##RB
12183
+ ##RC
12184
+ ##RD
12185
+ ##RE
12186
+ ##RF
12187
+ ##RG
12188
+ ##RH
12189
+ ##RI
12190
+ ##RK
12191
+ ##RL
12192
+ ##RM
12193
+ ##RN
12194
+ ##RO
12195
+ ##RP
12196
+ ##RR
12197
+ ##RS
12198
+ ##RT
12199
+ ##RU
12200
+ ##RY
12201
+ ##SA
12202
+ ##SB
12203
+ ##SC
12204
+ ##SD
12205
+ ##SE
12206
+ ##SF
12207
+ ##SH
12208
+ ##SI
12209
+ ##SK
12210
+ ##SL
12211
+ ##SM
12212
+ ##SN
12213
+ ##SO
12214
+ ##SP
12215
+ ##SS
12216
+ ##ST
12217
+ ##SU
12218
+ ##SY
12219
+ ##TA
12220
+ ##TC
12221
+ ##TD
12222
+ ##TE
12223
+ ##TH
12224
+ ##TI
12225
+ ##TM
12226
+ ##TO
12227
+ ##TP
12228
+ ##TR
12229
+ ##TS
12230
+ ##TT
12231
+ ##TU
12232
+ ##TV
12233
+ ##TY
12234
+ ##Tu
12235
+ ##UB
12236
+ ##UC
12237
+ ##UD
12238
+ ##UE
12239
+ ##UF
12240
+ ##UG
12241
+ ##UI
12242
+ ##UK
12243
+ ##UL
12244
+ ##UM
12245
+ ##UN
12246
+ ##UP
12247
+ ##UR
12248
+ ##US
12249
+ ##UT
12250
+ ##VA
12251
+ ##VB
12252
+ ##VC
12253
+ ##VD
12254
+ ##VE
12255
+ ##VI
12256
+ ##VO
12257
+ ##VP
12258
+ ##VR
12259
+ ##VT
12260
+ ##WA
12261
+ ##WC
12262
+ ##WE
12263
+ ##WF
12264
+ ##WI
12265
+ ##WL
12266
+ ##WM
12267
+ ##WO
12268
+ ##WS
12269
+ ##XA
12270
+ ##XC
12271
+ ##XE
12272
+ ##XG
12273
+ ##XO
12274
+ ##XP
12275
+ ##XT
12276
+ ##XX
12277
+ ##XY
12278
+ ##YA
12279
+ ##YE
12280
+ ##YL
12281
+ ##YO
12282
+ ##YP
12283
+ ##YS
12284
+ ##YT
12285
+ ##ZA
12286
+ ##ZB
12287
+ ##ZE
12288
+ ##ZI
12289
+ ##ZO
12290
+ ##ZR
12291
+ ##ZU
12292
+ ##ZX
12293
+ ##ZZ
12294
+ ##ab
12295
+ ##ag
12296
+ ##al
12297
+ ##am
12298
+ ##an
12299
+ ##ar
12300
+ ##as
12301
+ ##at
12302
+ ##ax
12303
+ ##ay
12304
+ ##az
12305
+ ##bi
12306
+ ##bj
12307
+ ##bl
12308
+ ##bo
12309
+ ##by
12310
+ ##ce
12311
+ ##ch
12312
+ ##ci
12313
+ ##ck
12314
+ ##cq
12315
+ ##ct
12316
+ ##dj
12317
+ ##ed
12318
+ ##en
12319
+ ##er
12320
+ ##ew
12321
+ ##ex
12322
+ ##ff
12323
+ ##fi
12324
+ ##gh
12325
+ ##gn
12326
+ ##ha
12327
+ ##he
12328
+ ##ho
12329
+ ##hz
12330
+ ##ic
12331
+ ##id
12332
+ ##im
12333
+ ##in
12334
+ ##is
12335
+ ##it
12336
+ ##iv
12337
+ ##ix
12338
+ ##iz
12339
+ ##jj
12340
+ ##jo
12341
+ ##ke
12342
+ ##ky
12343
+ ##kz
12344
+ ##ld
12345
+ ##le
12346
+ ##lf
12347
+ ##ll
12348
+ ##ly
12349
+ ##mb
12350
+ ##mp
12351
+ ##na
12352
+ ##nc
12353
+ ##nd
12354
+ ##ng
12355
+ ##nj
12356
+ ##nk
12357
+ ##nn
12358
+ ##nt
12359
+ ##nz
12360
+ ##ob
12361
+ ##oj
12362
+ ##ok
12363
+ ##ol
12364
+ ##om
12365
+ ##on
12366
+ ##op
12367
+ ##or
12368
+ ##ou
12369
+ ##ow
12370
+ ##ox
12371
+ ##ph
12372
+ ##pp
12373
+ ##pu
12374
+ ##pv
12375
+ ##qf
12376
+ ##ql
12377
+ ##qq
12378
+ ##qu
12379
+ ##re
12380
+ ##rk
12381
+ ##ro
12382
+ ##ry
12383
+ ##sh
12384
+ ##sq
12385
+ ##st
12386
+ ##th
12387
+ ##ty
12388
+ ##ub
12389
+ ##ul
12390
+ ##um
12391
+ ##un
12392
+ ##ur
12393
+ ##us
12394
+ ##uv
12395
+ ##ux
12396
+ ##uz
12397
+ ##ve
12398
+ ##vi
12399
+ ##wn
12400
+ ##ws
12401
+ ##ww
12402
+ ##xp
12403
+ ##xx
12404
+ ##xy
12405
+ ##zh
12406
+ ##zy
12407
+ ##zz
12408
+ ##ACE
12409
+ ##ACH
12410
+ ##ACT
12411
+ ##ADE
12412
+ ##AGE
12413
+ ##AIN
12414
+ ##AME
12415
+ ##AND
12416
+ ##ANG
12417
+ ##ANO
12418
+ ##ANT
12419
+ ##ARD
12420
+ ##ARE
12421
+ ##ASS
12422
+ ##AST
12423
+ ##ATE
12424
+ ##BER
12425
+ ##BLE
12426
+ ##BOX
12427
+ ##BSD
12428
+ ##Bay
12429
+ ##CAD
12430
+ ##CAL
12431
+ ##CAM
12432
+ ##COM
12433
+ ##CSE
12434
+ ##DEO
12435
+ ##DER
12436
+ ##DIA
12437
+ ##DNA
12438
+ ##DSL
12439
+ ##DVD
12440
+ ##EAM
12441
+ ##EAR
12442
+ ##ECT
12443
+ ##EEN
12444
+ ##ENS
12445
+ ##ENT
12446
+ ##ERA
12447
+ ##ERS
12448
+ ##ESE
12449
+ ##ESS
12450
+ ##FTA
12451
+ ##GER
12452
+ ##GHT
12453
+ ##GIS
12454
+ ##IAL
12455
+ ##IBA
12456
+ ##IBU
12457
+ ##ICE
12458
+ ##ICS
12459
+ ##IDE
12460
+ ##INA
12461
+ ##INE
12462
+ ##ING
12463
+ ##INT
12464
+ ##INY
12465
+ ##ION
12466
+ ##IPS
12467
+ ##ITE
12468
+ ##IVE
12469
+ ##KER
12470
+ ##KON
12471
+ ##LAY
12472
+ ##LLA
12473
+ ##LOR
12474
+ ##MAN
12475
+ ##MAS
12476
+ ##MAX
12477
+ ##MES
12478
+ ##NAD
12479
+ ##NAL
12480
+ ##NCE
12481
+ ##NET
12482
+ ##NEY
12483
+ ##NIC
12484
+ ##NNA
12485
+ ##OCK
12486
+ ##ODE
12487
+ ##OME
12488
+ ##ONE
12489
+ ##ORA
12490
+ ##OWS
12491
+ ##Off
12492
+ ##PAC
12493
+ ##PER
12494
+ ##PRS
12495
+ ##RAN
12496
+ ##RIS
12497
+ ##RNA
12498
+ ##ROM
12499
+ ##RON
12500
+ ##ROR
12501
+ ##SCO
12502
+ ##SHI
12503
+ ##SIC
12504
+ ##SOL
12505
+ ##SON
12506
+ ##SQL
12507
+ ##TAL
12508
+ ##TED
12509
+ ##TER
12510
+ ##TML
12511
+ ##TON
12512
+ ##TRA
12513
+ ##UND
12514
+ ##UNG
12515
+ ##UPA
12516
+ ##USB
12517
+ ##USE
12518
+ ##VEL
12519
+ ##VER
12520
+ ##VGA
12521
+ ##VID
12522
+ ##WER
12523
+ ##You
12524
+ ##abl
12525
+ ##aby
12526
+ ##ach
12527
+ ##ack
12528
+ ##act
12529
+ ##ain
12530
+ ##ake
12531
+ ##all
12532
+ ##aly
12533
+ ##anc
12534
+ ##and
12535
+ ##ang
12536
+ ##ank
12537
+ ##app
12538
+ ##ard
12539
+ ##ark
12540
+ ##art
12541
+ ##ary
12542
+ ##ash
12543
+ ##ath
12544
+ ##auv
12545
+ ##ave
12546
+ ##avi
12547
+ ##azi
12548
+ ##azy
12549
+ ##azz
12550
+ ##bVI
12551
+ ##bby
12552
+ ##ber
12553
+ ##bje
12554
+ ##ble
12555
+ ##cGI
12556
+ ##cho
12557
+ ##com
12558
+ ##cqu
12559
+ ##day
12560
+ ##der
12561
+ ##ebo
12562
+ ##ect
12563
+ ##ell
12564
+ ##emb
12565
+ ##enc
12566
+ ##eng
12567
+ ##ent
12568
+ ##erJ
12569
+ ##ern
12570
+ ##erv
12571
+ ##ery
12572
+ ##eve
12573
+ ##ews
12574
+ ##exp
12575
+ ##ext
12576
+ ##ezy
12577
+ ##fer
12578
+ ##ffe
12579
+ ##fic
12580
+ ##for
12581
+ ##gaz
12582
+ ##ger
12583
+ ##ght
12584
+ ##gin
12585
+ ##hen
12586
+ ##her
12587
+ ##hev
12588
+ ##hin
12589
+ ##hon
12590
+ ##hou
12591
+ ##iRF
12592
+ ##ial
12593
+ ##ica
12594
+ ##ice
12595
+ ##ich
12596
+ ##ick
12597
+ ##iff
12598
+ ##igh
12599
+ ##ike
12600
+ ##ill
12601
+ ##ily
12602
+ ##ime
12603
+ ##ine
12604
+ ##ing
12605
+ ##ink
12606
+ ##ion
12607
+ ##iqu
12608
+ ##ish
12609
+ ##ith
12610
+ ##ive
12611
+ ##iza
12612
+ ##ize
12613
+ ##izz
12614
+ ##jin
12615
+ ##ker
12616
+ ##kin
12617
+ ##lDR
12618
+ ##lay
12619
+ ##laz
12620
+ ##lex
12621
+ ##lic
12622
+ ##lin
12623
+ ##liz
12624
+ ##llo
12625
+ ##lly
12626
+ ##man
12627
+ ##maz
12628
+ ##men
12629
+ ##mer
12630
+ ##min
12631
+ ##mpl
12632
+ ##mpo
12633
+ ##nGL
12634
+ ##nRH
12635
+ ##nal
12636
+ ##ner
12637
+ ##ngz
12638
+ ##niz
12639
+ ##now
12640
+ ##nxp
12641
+ ##oCA
12642
+ ##obj
12643
+ ##ock
12644
+ ##oll
12645
+ ##omb
12646
+ ##ome
12647
+ ##omm
12648
+ ##omp
12649
+ ##one
12650
+ ##ong
12651
+ ##ook
12652
+ ##ork
12653
+ ##orm
12654
+ ##ort
12655
+ ##ory
12656
+ ##oul
12657
+ ##oup
12658
+ ##our
12659
+ ##ous
12660
+ ##out
12661
+ ##ove
12662
+ ##own
12663
+ ##ows
12664
+ ##per
12665
+ ##phe
12666
+ ##ply
12667
+ ##por
12668
+ ##ppl
12669
+ ##ppy
12670
+ ##qqu
12671
+ ##qua
12672
+ ##que
12673
+ ##qui
12674
+ ##raz
12675
+ ##rch
12676
+ ##ric
12677
+ ##rou
12678
+ ##son
12679
+ ##tBI
12680
+ ##tch
12681
+ ##ter
12682
+ ##the
12683
+ ##tic
12684
+ ##tim
12685
+ ##tiv
12686
+ ##tur
12687
+ ##uch
12688
+ ##uck
12689
+ ##uct
12690
+ ##uff
12691
+ ##ugh
12692
+ ##umb
12693
+ ##ung
12694
+ ##ure
12695
+ ##urn
12696
+ ##vel
12697
+ ##ven
12698
+ ##ver
12699
+ ##vic
12700
+ ##vid
12701
+ ##vin
12702
+ ##war
12703
+ ##way
12704
+ ##whe
12705
+ ##wor
12706
+ ##www
12707
+ ##xxx
12708
+ ##ymb
12709
+ ##yth
12710
+ ##zhe
12711
+ ##zym
12712
+ ##zzy
12713
+ ##ATIO
12714
+ ##CESS
12715
+ ##CIAT
12716
+ ##CTIO
12717
+ ##CTOR
12718
+ ##ENGI
12719
+ ##ERSI
12720
+ ##HCSD
12721
+ ##INES
12722
+ ##INUE
12723
+ ##IONA
12724
+ ##LOID
12725
+ ##MENT
12726
+ ##NEER
12727
+ ##NOLO
12728
+ ##NTER
12729
+ ##NTSC
12730
+ ##ORMA
12731
+ ##OSHO
12732
+ ##RISE
12733
+ ##RNAT
12734
+ ##RNET
12735
+ ##SATA
12736
+ ##SION
12737
+ ##TION
12738
+ ##TTLE
12739
+ ##VERS
12740
+ ##ally
12741
+ ##arch
12742
+ ##ayer
12743
+ ##azer
12744
+ ##azin
12745
+ ##bert
12746
+ ##book
12747
+ ##chin
12748
+ ##ctor
12749
+ ##ding
12750
+ ##echn
12751
+ ##erPC
12752
+ ##erVR
12753
+ ##eriz
12754
+ ##erve
12755
+ ##ever
12756
+ ##ffer
12757
+ ##ffff
12758
+ ##ffic
12759
+ ##fter
12760
+ ##ghly
12761
+ ##hell
12762
+ ##ical
12763
+ ##iche
12764
+ ##icke
12765
+ ##ific
12766
+ ##ight
12767
+ ##iver
12768
+ ##izon
12769
+ ##izzy
12770
+ ##king
12771
+ ##lack
12772
+ ##land
12773
+ ##llow
12774
+ ##mber
12775
+ ##ngin
12776
+ ##ning
12777
+ ##omic
12778
+ ##onom
12779
+ ##othe
12780
+ ##ouch
12781
+ ##ough
12782
+ ##ound
12783
+ ##ower
12784
+ ##pper
12785
+ ##ppin
12786
+ ##pter
12787
+ ##ster
12788
+ ##ther
12789
+ ##tion
12790
+ ##tive
12791
+ ##tter
12792
+ ##ture
12793
+ ##urch
12794
+ ##vely
12795
+ ##ction
12796
+ ##ctive
12797
+ ##enter
12798
+ ##erica
12799
+ ##ional
12800
+ ##thing
bert/Erlangshen-MegatronBert-1.3B-Chinese/config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"vocab_size": 21248, "hidden_size": 2048, "num_hidden_layers": 24, "num_attention_heads": 8, "hidden_act": "gelu_new", "intermediate_size": 8192, "hidden_dropout_prob": 0.1, "attention_probs_dropout_prob": 0.1, "max_position_embeddings": 512, "type_vocab_size": 2, "initializer_range": 0.02, "layer_norm_eps": 1e-12, "gradient_checkpointing": false, "position_embedding_type": "absolute", "use_cache": false, "model_type": "megatron-bert"}
bert/Erlangshen-MegatronBert-1.3B-Chinese/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
bert/Erlangshen-MegatronBert-3.9B-Chinese/config.json ADDED
@@ -0,0 +1,21 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "MegatronBertForMaskedLM"
4
+ ],
5
+ "vocab_size": 21248,
6
+ "hidden_size": 2560,
7
+ "num_hidden_layers": 48,
8
+ "num_attention_heads": 40,
9
+ "hidden_act": "gelu",
10
+ "intermediate_size": 10240,
11
+ "hidden_dropout_prob": 0.1,
12
+ "attention_probs_dropout_prob": 0.1,
13
+ "max_position_embeddings": 512,
14
+ "type_vocab_size": 2,
15
+ "initializer_range": 0.02,
16
+ "layer_norm_eps": 1e-12,
17
+ "gradient_checkpointing": false,
18
+ "position_embedding_type": "absolute",
19
+ "use_cache": false,
20
+ "model_type": "megatron-bert"
21
+ }
bert/Erlangshen-MegatronBert-3.9B-Chinese/special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[PAD]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
bert/Erlangshen-MegatronBert-3.9B-Chinese/tokenizer_config.json ADDED
@@ -0,0 +1,16 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+
3
+ "cls_token": "[CLS]",
4
+ "do_basic_tokenize": true,
5
+ "do_lower_case": true,
6
+ "mask_token": "[MASK]",
7
+ "name_or_path": "/cognitive_comp/gaoxinyu/hf_hub/Erlangshen-MegatronBert-3.9B",
8
+ "never_split": null,
9
+ "pad_token": "[PAD]",
10
+ "sep_token": "[SEP]",
11
+ "special_tokens_map_file": null,
12
+ "strip_accents": null,
13
+ "tokenize_chinese_chars": true,
14
+ "tokenizer_class": "BertTokenizer",
15
+ "unk_token": "[UNK]"
16
+ }
bert/Erlangshen-MegatronBert-3.9B-Chinese/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
bert/bert-base-japanese-v3/.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
bert/bert-base-japanese-v3/README.md ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ datasets:
4
+ - cc100
5
+ - wikipedia
6
+ language:
7
+ - ja
8
+ widget:
9
+ - text: 東北大学で[MASK]の研究をしています。
10
+ ---
11
+
12
+ # BERT base Japanese (unidic-lite with whole word masking, CC-100 and jawiki-20230102)
13
+
14
+ This is a [BERT](https://github.com/google-research/bert) model pretrained on texts in the Japanese language.
15
+
16
+ This version of the model processes input texts with word-level tokenization based on the Unidic 2.1.2 dictionary (available in [unidic-lite](https://pypi.org/project/unidic-lite/) package), followed by the WordPiece subword tokenization.
17
+ Additionally, the model is trained with the whole word masking enabled for the masked language modeling (MLM) objective.
18
+
19
+ The codes for the pretraining are available at [cl-tohoku/bert-japanese](https://github.com/cl-tohoku/bert-japanese/).
20
+
21
+ ## Model architecture
22
+
23
+ The model architecture is the same as the original BERT base model; 12 layers, 768 dimensions of hidden states, and 12 attention heads.
24
+
25
+ ## Training Data
26
+
27
+ The model is trained on the Japanese portion of [CC-100 dataset](https://data.statmt.org/cc-100/) and the Japanese version of Wikipedia.
28
+ For Wikipedia, we generated a text corpus from the [Wikipedia Cirrussearch dump file](https://dumps.wikimedia.org/other/cirrussearch/) as of January 2, 2023.
29
+ The corpus files generated from CC-100 and Wikipedia are 74.3GB and 4.9GB in size and consist of approximately 392M and 34M sentences, respectively.
30
+
31
+ For the purpose of splitting texts into sentences, we used [fugashi](https://github.com/polm/fugashi) with [mecab-ipadic-NEologd](https://github.com/neologd/mecab-ipadic-neologd) dictionary (v0.0.7).
32
+
33
+ ## Tokenization
34
+
35
+ The texts are first tokenized by MeCab with the Unidic 2.1.2 dictionary and then split into subwords by the WordPiece algorithm.
36
+ The vocabulary size is 32768.
37
+
38
+ We used [fugashi](https://github.com/polm/fugashi) and [unidic-lite](https://github.com/polm/unidic-lite) packages for the tokenization.
39
+
40
+ ## Training
41
+
42
+ We trained the model first on the CC-100 corpus for 1M steps and then on the Wikipedia corpus for another 1M steps.
43
+ For training of the MLM (masked language modeling) objective, we introduced whole word masking in which all of the subword tokens corresponding to a single word (tokenized by MeCab) are masked at once.
44
+
45
+ For training of each model, we used a v3-8 instance of Cloud TPUs provided by [TPU Research Cloud](https://sites.research.google/trc/about/).
46
+
47
+ ## Licenses
48
+
49
+ The pretrained models are distributed under the Apache License 2.0.
50
+
51
+ ## Acknowledgments
52
+
53
+ This model is trained with Cloud TPUs provided by [TPU Research Cloud](https://sites.research.google/trc/about/) program.
bert/bert-base-japanese-v3/config.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BertForPreTraining"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.1,
6
+ "hidden_act": "gelu",
7
+ "hidden_dropout_prob": 0.1,
8
+ "hidden_size": 768,
9
+ "initializer_range": 0.02,
10
+ "intermediate_size": 3072,
11
+ "layer_norm_eps": 1e-12,
12
+ "max_position_embeddings": 512,
13
+ "model_type": "bert",
14
+ "num_attention_heads": 12,
15
+ "num_hidden_layers": 12,
16
+ "pad_token_id": 0,
17
+ "type_vocab_size": 2,
18
+ "vocab_size": 32768
19
+ }
bert/bert-base-japanese-v3/tokenizer_config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "tokenizer_class": "BertJapaneseTokenizer",
3
+ "model_max_length": 512,
4
+ "do_lower_case": false,
5
+ "word_tokenizer_type": "mecab",
6
+ "subword_tokenizer_type": "wordpiece",
7
+ "mecab_kwargs": {
8
+ "mecab_dic": "unidic_lite"
9
+ }
10
+ }
bert/bert-base-japanese-v3/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
bert/bert-large-japanese-v2/.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
bert/bert-large-japanese-v2/README.md ADDED
@@ -0,0 +1,53 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ license: apache-2.0
3
+ datasets:
4
+ - cc100
5
+ - wikipedia
6
+ language:
7
+ - ja
8
+ widget:
9
+ - text: 東北大学で[MASK]の研究をしています。
10
+ ---
11
+
12
+ # BERT large Japanese (unidic-lite with whole word masking, CC-100 and jawiki-20230102)
13
+
14
+ This is a [BERT](https://github.com/google-research/bert) model pretrained on texts in the Japanese language.
15
+
16
+ This version of the model processes input texts with word-level tokenization based on the Unidic 2.1.2 dictionary (available in [unidic-lite](https://pypi.org/project/unidic-lite/) package), followed by the WordPiece subword tokenization.
17
+ Additionally, the model is trained with the whole word masking enabled for the masked language modeling (MLM) objective.
18
+
19
+ The codes for the pretraining are available at [cl-tohoku/bert-japanese](https://github.com/cl-tohoku/bert-japanese/).
20
+
21
+ ## Model architecture
22
+
23
+ The model architecture is the same as the original BERT large model; 24 layers, 1024 dimensions of hidden states, and 16 attention heads.
24
+
25
+ ## Training Data
26
+
27
+ The model is trained on the Japanese portion of [CC-100 dataset](https://data.statmt.org/cc-100/) and the Japanese version of Wikipedia.
28
+ For Wikipedia, we generated a text corpus from the [Wikipedia Cirrussearch dump file](https://dumps.wikimedia.org/other/cirrussearch/) as of January 2, 2023.
29
+ The corpus files generated from CC-100 and Wikipedia are 74.3GB and 4.9GB in size and consist of approximately 392M and 34M sentences, respectively.
30
+
31
+ For the purpose of splitting texts into sentences, we used [fugashi](https://github.com/polm/fugashi) with [mecab-ipadic-NEologd](https://github.com/neologd/mecab-ipadic-neologd) dictionary (v0.0.7).
32
+
33
+ ## Tokenization
34
+
35
+ The texts are first tokenized by MeCab with the Unidic 2.1.2 dictionary and then split into subwords by the WordPiece algorithm.
36
+ The vocabulary size is 32768.
37
+
38
+ We used [fugashi](https://github.com/polm/fugashi) and [unidic-lite](https://github.com/polm/unidic-lite) packages for the tokenization.
39
+
40
+ ## Training
41
+
42
+ We trained the model first on the CC-100 corpus for 1M steps and then on the Wikipedia corpus for another 1M steps.
43
+ For training of the MLM (masked language modeling) objective, we introduced whole word masking in which all of the subword tokens corresponding to a single word (tokenized by MeCab) are masked at once.
44
+
45
+ For training of each model, we used a v3-8 instance of Cloud TPUs provided by [TPU Research Cloud](https://sites.research.google/trc/about/).
46
+
47
+ ## Licenses
48
+
49
+ The pretrained models are distributed under the Apache License 2.0.
50
+
51
+ ## Acknowledgments
52
+
53
+ This model is trained with Cloud TPUs provided by [TPU Research Cloud](https://sites.research.google/trc/about/) program.
bert/bert-large-japanese-v2/config.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BertForPreTraining"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.1,
6
+ "hidden_act": "gelu",
7
+ "hidden_dropout_prob": 0.1,
8
+ "hidden_size": 1024,
9
+ "initializer_range": 0.02,
10
+ "intermediate_size": 4096,
11
+ "layer_norm_eps": 1e-12,
12
+ "max_position_embeddings": 512,
13
+ "model_type": "bert",
14
+ "num_attention_heads": 16,
15
+ "num_hidden_layers": 24,
16
+ "pad_token_id": 0,
17
+ "type_vocab_size": 2,
18
+ "vocab_size": 32768
19
+ }
bert/bert-large-japanese-v2/tokenizer_config.json ADDED
@@ -0,0 +1,10 @@
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "tokenizer_class": "BertJapaneseTokenizer",
3
+ "model_max_length": 512,
4
+ "do_lower_case": false,
5
+ "word_tokenizer_type": "mecab",
6
+ "subword_tokenizer_type": "wordpiece",
7
+ "mecab_kwargs": {
8
+ "mecab_dic": "unidic_lite"
9
+ }
10
+ }
bert/bert-large-japanese-v2/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
bert/bert_models.json ADDED
@@ -0,0 +1,14 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "deberta-v2-large-japanese-char-wwm": {
3
+ "repo_id": "ku-nlp/deberta-v2-large-japanese-char-wwm",
4
+ "files": ["pytorch_model.bin"]
5
+ },
6
+ "chinese-roberta-wwm-ext-large": {
7
+ "repo_id": "hfl/chinese-roberta-wwm-ext-large",
8
+ "files": ["pytorch_model.bin"]
9
+ },
10
+ "deberta-v3-large": {
11
+ "repo_id": "microsoft/deberta-v3-large",
12
+ "files": ["spm.model", "pytorch_model.bin"]
13
+ }
14
+ }
bert/chinese-roberta-wwm-ext-large/.gitattributes ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
2
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.h5 filter=lfs diff=lfs merge=lfs -text
5
+ *.tflite filter=lfs diff=lfs merge=lfs -text
6
+ *.tar.gz filter=lfs diff=lfs merge=lfs -text
7
+ *.ot filter=lfs diff=lfs merge=lfs -text
8
+ *.onnx filter=lfs diff=lfs merge=lfs -text
9
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
bert/chinese-roberta-wwm-ext-large/README.md ADDED
@@ -0,0 +1,57 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language:
3
+ - zh
4
+ tags:
5
+ - bert
6
+ license: "apache-2.0"
7
+ ---
8
+
9
+ # Please use 'Bert' related functions to load this model!
10
+
11
+ ## Chinese BERT with Whole Word Masking
12
+ For further accelerating Chinese natural language processing, we provide **Chinese pre-trained BERT with Whole Word Masking**.
13
+
14
+ **[Pre-Training with Whole Word Masking for Chinese BERT](https://arxiv.org/abs/1906.08101)**
15
+ Yiming Cui, Wanxiang Che, Ting Liu, Bing Qin, Ziqing Yang, Shijin Wang, Guoping Hu
16
+
17
+ This repository is developed based on:https://github.com/google-research/bert
18
+
19
+ You may also interested in,
20
+ - Chinese BERT series: https://github.com/ymcui/Chinese-BERT-wwm
21
+ - Chinese MacBERT: https://github.com/ymcui/MacBERT
22
+ - Chinese ELECTRA: https://github.com/ymcui/Chinese-ELECTRA
23
+ - Chinese XLNet: https://github.com/ymcui/Chinese-XLNet
24
+ - Knowledge Distillation Toolkit - TextBrewer: https://github.com/airaria/TextBrewer
25
+
26
+ More resources by HFL: https://github.com/ymcui/HFL-Anthology
27
+
28
+ ## Citation
29
+ If you find the technical report or resource is useful, please cite the following technical report in your paper.
30
+ - Primary: https://arxiv.org/abs/2004.13922
31
+ ```
32
+ @inproceedings{cui-etal-2020-revisiting,
33
+ title = "Revisiting Pre-Trained Models for {C}hinese Natural Language Processing",
34
+ author = "Cui, Yiming and
35
+ Che, Wanxiang and
36
+ Liu, Ting and
37
+ Qin, Bing and
38
+ Wang, Shijin and
39
+ Hu, Guoping",
40
+ booktitle = "Proceedings of the 2020 Conference on Empirical Methods in Natural Language Processing: Findings",
41
+ month = nov,
42
+ year = "2020",
43
+ address = "Online",
44
+ publisher = "Association for Computational Linguistics",
45
+ url = "https://www.aclweb.org/anthology/2020.findings-emnlp.58",
46
+ pages = "657--668",
47
+ }
48
+ ```
49
+ - Secondary: https://arxiv.org/abs/1906.08101
50
+ ```
51
+ @article{chinese-bert-wwm,
52
+ title={Pre-Training with Whole Word Masking for Chinese BERT},
53
+ author={Cui, Yiming and Che, Wanxiang and Liu, Ting and Qin, Bing and Yang, Ziqing and Wang, Shijin and Hu, Guoping},
54
+ journal={arXiv preprint arXiv:1906.08101},
55
+ year={2019}
56
+ }
57
+ ```
bert/chinese-roberta-wwm-ext-large/added_tokens.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {}
bert/chinese-roberta-wwm-ext-large/config.json ADDED
@@ -0,0 +1,28 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "BertForMaskedLM"
4
+ ],
5
+ "attention_probs_dropout_prob": 0.1,
6
+ "bos_token_id": 0,
7
+ "directionality": "bidi",
8
+ "eos_token_id": 2,
9
+ "hidden_act": "gelu",
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_size": 1024,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 4096,
14
+ "layer_norm_eps": 1e-12,
15
+ "max_position_embeddings": 512,
16
+ "model_type": "bert",
17
+ "num_attention_heads": 16,
18
+ "num_hidden_layers": 24,
19
+ "output_past": true,
20
+ "pad_token_id": 0,
21
+ "pooler_fc_size": 768,
22
+ "pooler_num_attention_heads": 12,
23
+ "pooler_num_fc_layers": 3,
24
+ "pooler_size_per_head": 128,
25
+ "pooler_type": "first_token_transform",
26
+ "type_vocab_size": 2,
27
+ "vocab_size": 21128
28
+ }
bert/chinese-roberta-wwm-ext-large/special_tokens_map.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"unk_token": "[UNK]", "sep_token": "[SEP]", "pad_token": "[PAD]", "cls_token": "[CLS]", "mask_token": "[MASK]"}
bert/chinese-roberta-wwm-ext-large/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
bert/chinese-roberta-wwm-ext-large/tokenizer_config.json ADDED
@@ -0,0 +1 @@
 
 
1
+ {"init_inputs": []}
bert/chinese-roberta-wwm-ext-large/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
bert/deberta-v2-large-japanese-char-wwm/.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
bert/deberta-v2-large-japanese-char-wwm/README.md ADDED
@@ -0,0 +1,89 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: ja
3
+ license: cc-by-sa-4.0
4
+ library_name: transformers
5
+ tags:
6
+ - deberta
7
+ - deberta-v2
8
+ - fill-mask
9
+ - character
10
+ - wwm
11
+ datasets:
12
+ - wikipedia
13
+ - cc100
14
+ - oscar
15
+ metrics:
16
+ - accuracy
17
+ mask_token: "[MASK]"
18
+ widget:
19
+ - text: "京都大学で自然言語処理を[MASK][MASK]する。"
20
+ ---
21
+
22
+ # Model Card for Japanese character-level DeBERTa V2 large
23
+
24
+ ## Model description
25
+
26
+ This is a Japanese DeBERTa V2 large model pre-trained on Japanese Wikipedia, the Japanese portion of CC-100, and the Japanese portion of OSCAR.
27
+ This model is trained with character-level tokenization and whole word masking.
28
+
29
+ ## How to use
30
+
31
+ You can use this model for masked language modeling as follows:
32
+
33
+ ```python
34
+ from transformers import AutoTokenizer, AutoModelForMaskedLM
35
+ tokenizer = AutoTokenizer.from_pretrained('ku-nlp/deberta-v2-large-japanese-char-wwm')
36
+ model = AutoModelForMaskedLM.from_pretrained('ku-nlp/deberta-v2-large-japanese-char-wwm')
37
+
38
+ sentence = '京都大学で自然言語処理を[MASK][MASK]する。'
39
+ encoding = tokenizer(sentence, return_tensors='pt')
40
+ ...
41
+ ```
42
+
43
+ You can also fine-tune this model on downstream tasks.
44
+
45
+ ## Tokenization
46
+
47
+ There is no need to tokenize texts in advance, and you can give raw texts to the tokenizer.
48
+ The texts are tokenized into character-level tokens by [sentencepiece](https://github.com/google/sentencepiece).
49
+
50
+ ## Training data
51
+
52
+ We used the following corpora for pre-training:
53
+
54
+ - Japanese Wikipedia (as of 20221020, 3.2GB, 27M sentences, 1.3M documents)
55
+ - Japanese portion of CC-100 (85GB, 619M sentences, 66M documents)
56
+ - Japanese portion of OSCAR (54GB, 326M sentences, 25M documents)
57
+
58
+ Note that we filtered out documents annotated with "header", "footer", or "noisy" tags in OSCAR.
59
+ Also note that Japanese Wikipedia was duplicated 10 times to make the total size of the corpus comparable to that of CC-100 and OSCAR. As a result, the total size of the training data is 171GB.
60
+
61
+ ## Training procedure
62
+
63
+ We first segmented texts in the corpora into words using [Juman++ 2.0.0-rc3](https://github.com/ku-nlp/jumanpp/releases/tag/v2.0.0-rc3) for whole word masking.
64
+ Then, we built a sentencepiece model with 22,012 tokens including all characters that appear in the training corpus.
65
+
66
+ We tokenized raw corpora into character-level subwords using the sentencepiece model and trained the Japanese DeBERTa model using [transformers](https://github.com/huggingface/transformers) library.
67
+ The training took 26 days using 16 NVIDIA A100-SXM4-40GB GPUs.
68
+
69
+ The following hyperparameters were used during pre-training:
70
+
71
+ - learning_rate: 1e-4
72
+ - per_device_train_batch_size: 26
73
+ - distributed_type: multi-GPU
74
+ - num_devices: 16
75
+ - gradient_accumulation_steps: 8
76
+ - total_train_batch_size: 3,328
77
+ - max_seq_length: 512
78
+ - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-06
79
+ - lr_scheduler_type: linear schedule with warmup (lr = 0 at 300k steps)
80
+ - training_steps: 260,000
81
+ - warmup_steps: 10,000
82
+
83
+ The accuracy of the trained model on the masked language modeling task was 0.795.
84
+ The evaluation set consists of 5,000 randomly sampled documents from each of the training corpora.
85
+
86
+ ## Acknowledgments
87
+
88
+ This work was supported by Joint Usage/Research Center for Interdisciplinary Large-scale Information Infrastructures (JHPCN) through General Collaboration Project no. jh221004, "Developing a Platform for Constructing and Sharing of Large-Scale Japanese Language Models".
89
+ For training models, we used the mdx: a platform for the data-driven future.
bert/deberta-v2-large-japanese-char-wwm/config.json ADDED
@@ -0,0 +1,37 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "architectures": [
3
+ "DebertaV2ForMaskedLM"
4
+ ],
5
+ "attention_head_size": 64,
6
+ "attention_probs_dropout_prob": 0.1,
7
+ "conv_act": "gelu",
8
+ "conv_kernel_size": 3,
9
+ "hidden_act": "gelu",
10
+ "hidden_dropout_prob": 0.1,
11
+ "hidden_size": 1024,
12
+ "initializer_range": 0.02,
13
+ "intermediate_size": 4096,
14
+ "layer_norm_eps": 1e-07,
15
+ "max_position_embeddings": 512,
16
+ "max_relative_positions": -1,
17
+ "model_type": "deberta-v2",
18
+ "norm_rel_ebd": "layer_norm",
19
+ "num_attention_heads": 16,
20
+ "num_hidden_layers": 24,
21
+ "pad_token_id": 0,
22
+ "pooler_dropout": 0,
23
+ "pooler_hidden_act": "gelu",
24
+ "pooler_hidden_size": 1024,
25
+ "pos_att_type": [
26
+ "p2c",
27
+ "c2p"
28
+ ],
29
+ "position_biased_input": false,
30
+ "position_buckets": 256,
31
+ "relative_attention": true,
32
+ "share_att_key": true,
33
+ "torch_dtype": "float16",
34
+ "transformers_version": "4.25.1",
35
+ "type_vocab_size": 0,
36
+ "vocab_size": 22012
37
+ }
bert/deberta-v2-large-japanese-char-wwm/pytorch_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:bf0dab8ad87bd7c22e85ec71e04f2240804fda6d33196157d6b5923af6ea1201
3
+ size 1318456639
bert/deberta-v2-large-japanese-char-wwm/special_tokens_map.json ADDED
@@ -0,0 +1,7 @@
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "mask_token": "[MASK]",
4
+ "pad_token": "[PAD]",
5
+ "sep_token": "[SEP]",
6
+ "unk_token": "[UNK]"
7
+ }
bert/deberta-v2-large-japanese-char-wwm/tokenizer_config.json ADDED
@@ -0,0 +1,19 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "cls_token": "[CLS]",
3
+ "do_lower_case": false,
4
+ "do_subword_tokenize": true,
5
+ "do_word_tokenize": true,
6
+ "jumanpp_kwargs": null,
7
+ "mask_token": "[MASK]",
8
+ "mecab_kwargs": null,
9
+ "model_max_length": 1000000000000000019884624838656,
10
+ "never_split": null,
11
+ "pad_token": "[PAD]",
12
+ "sep_token": "[SEP]",
13
+ "special_tokens_map_file": null,
14
+ "subword_tokenizer_type": "character",
15
+ "sudachi_kwargs": null,
16
+ "tokenizer_class": "BertJapaneseTokenizer",
17
+ "unk_token": "[UNK]",
18
+ "word_tokenizer_type": "basic"
19
+ }
bert/deberta-v2-large-japanese-char-wwm/vocab.txt ADDED
The diff for this file is too large to render. See raw diff
 
bert/deberta-v2-large-japanese/.gitattributes ADDED
@@ -0,0 +1,34 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
5
+ *.ckpt filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.mlmodel filter=lfs diff=lfs merge=lfs -text
12
+ *.model filter=lfs diff=lfs merge=lfs -text
13
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
14
+ *.npy filter=lfs diff=lfs merge=lfs -text
15
+ *.npz filter=lfs diff=lfs merge=lfs -text
16
+ *.onnx filter=lfs diff=lfs merge=lfs -text
17
+ *.ot filter=lfs diff=lfs merge=lfs -text
18
+ *.parquet filter=lfs diff=lfs merge=lfs -text
19
+ *.pb filter=lfs diff=lfs merge=lfs -text
20
+ *.pickle filter=lfs diff=lfs merge=lfs -text
21
+ *.pkl filter=lfs diff=lfs merge=lfs -text
22
+ *.pt filter=lfs diff=lfs merge=lfs -text
23
+ *.pth filter=lfs diff=lfs merge=lfs -text
24
+ *.rar filter=lfs diff=lfs merge=lfs -text
25
+ *.safetensors filter=lfs diff=lfs merge=lfs -text
26
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
27
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
28
+ *.tflite filter=lfs diff=lfs merge=lfs -text
29
+ *.tgz filter=lfs diff=lfs merge=lfs -text
30
+ *.wasm filter=lfs diff=lfs merge=lfs -text
31
+ *.xz filter=lfs diff=lfs merge=lfs -text
32
+ *.zip filter=lfs diff=lfs merge=lfs -text
33
+ *.zst filter=lfs diff=lfs merge=lfs -text
34
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
bert/deberta-v2-large-japanese/README.md ADDED
@@ -0,0 +1,111 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: ja
3
+ license: cc-by-sa-4.0
4
+ library_name: transformers
5
+ tags:
6
+ - deberta
7
+ - deberta-v2
8
+ - fill-mask
9
+ datasets:
10
+ - wikipedia
11
+ - cc100
12
+ - oscar
13
+ metrics:
14
+ - accuracy
15
+ mask_token: "[MASK]"
16
+ widget:
17
+ - text: "京都 大学 で 自然 言語 処理 を [MASK] する 。"
18
+ ---
19
+
20
+ # Model Card for Japanese DeBERTa V2 large
21
+
22
+ ## Model description
23
+
24
+ This is a Japanese DeBERTa V2 large model pre-trained on Japanese Wikipedia, the Japanese portion of CC-100, and the
25
+ Japanese portion of OSCAR.
26
+
27
+ ## How to use
28
+
29
+ You can use this model for masked language modeling as follows:
30
+
31
+ ```python
32
+ from transformers import AutoTokenizer, AutoModelForMaskedLM
33
+
34
+ tokenizer = AutoTokenizer.from_pretrained('ku-nlp/deberta-v2-large-japanese')
35
+ model = AutoModelForMaskedLM.from_pretrained('ku-nlp/deberta-v2-large-japanese')
36
+
37
+ sentence = '京都 大学 で 自然 言語 処理 を [MASK] する 。' # input should be segmented into words by Juman++ in advance
38
+ encoding = tokenizer(sentence, return_tensors='pt')
39
+ ...
40
+ ```
41
+
42
+ You can also fine-tune this model on downstream tasks.
43
+
44
+ ## Tokenization
45
+
46
+ The input text should be segmented into words by [Juman++](https://github.com/ku-nlp/jumanpp) in
47
+ advance. [Juman++ 2.0.0-rc3](https://github.com/ku-nlp/jumanpp/releases/tag/v2.0.0-rc3) was used for pre-training. Each
48
+ word is tokenized into subwords by [sentencepiece](https://github.com/google/sentencepiece).
49
+
50
+ ## Training data
51
+
52
+ We used the following corpora for pre-training:
53
+
54
+ - Japanese Wikipedia (as of 20221020, 3.2GB, 27M sentences, 1.3M documents)
55
+ - Japanese portion of CC-100 (85GB, 619M sentences, 66M documents)
56
+ - Japanese portion of OSCAR (54GB, 326M sentences, 25M documents)
57
+
58
+ Note that we filtered out documents annotated with "header", "footer", or "noisy" tags in OSCAR.
59
+ Also note that Japanese Wikipedia was duplicated 10 times to make the total size of the corpus comparable to that of
60
+ CC-100 and OSCAR. As a result, the total size of the training data is 171GB.
61
+
62
+ ## Training procedure
63
+
64
+ We first segmented texts in the corpora into words using [Juman++](https://github.com/ku-nlp/jumanpp).
65
+ Then, we built a sentencepiece model with 32000 tokens including words ([JumanDIC](https://github.com/ku-nlp/JumanDIC))
66
+ and subwords induced by the unigram language model of [sentencepiece](https://github.com/google/sentencepiece).
67
+
68
+ We tokenized the segmented corpora into subwords using the sentencepiece model and trained the Japanese DeBERTa model
69
+ using [transformers](https://github.com/huggingface/transformers) library.
70
+ The training took 36 days using 8 NVIDIA A100-SXM4-40GB GPUs.
71
+
72
+ The following hyperparameters were used during pre-training:
73
+
74
+ - learning_rate: 1e-4
75
+ - per_device_train_batch_size: 18
76
+ - distributed_type: multi-GPU
77
+ - num_devices: 8
78
+ - gradient_accumulation_steps: 16
79
+ - total_train_batch_size: 2,304
80
+ - max_seq_length: 512
81
+ - optimizer: Adam with betas=(0.9,0.999) and epsilon=1e-06
82
+ - lr_scheduler_type: linear schedule with warmup
83
+ - training_steps: 300,000
84
+ - warmup_steps: 10,000
85
+
86
+ The accuracy of the trained model on the masked language modeling task was 0.799.
87
+ The evaluation set consists of 5,000 randomly sampled documents from each of the training corpora.
88
+
89
+ ## Fine-tuning on NLU tasks
90
+
91
+ We fine-tuned the following models and evaluated them on the dev set of JGLUE.
92
+ We tuned learning rate and training epochs for each model and task
93
+ following [the JGLUE paper](https://www.jstage.jst.go.jp/article/jnlp/30/1/30_63/_pdf/-char/ja).
94
+
95
+ | Model | MARC-ja/acc | JSTS/pearson | JSTS/spearman | JNLI/acc | JSQuAD/EM | JSQuAD/F1 | JComQA/acc |
96
+ |-------------------------------|-------------|--------------|---------------|----------|-----------|-----------|------------|
97
+ | Waseda RoBERTa base | 0.965 | 0.913 | 0.876 | 0.905 | 0.853 | 0.916 | 0.853 |
98
+ | Waseda RoBERTa large (seq512) | 0.969 | 0.925 | 0.890 | 0.928 | 0.910 | 0.955 | 0.900 |
99
+ | LUKE Japanese base* | 0.965 | 0.916 | 0.877 | 0.912 | - | - | 0.842 |
100
+ | LUKE Japanese large* | 0.965 | 0.932 | 0.902 | 0.927 | - | - | 0.893 |
101
+ | DeBERTaV2 base | 0.970 | 0.922 | 0.886 | 0.922 | 0.899 | 0.951 | 0.873 |
102
+ | DeBERTaV2 large | 0.968 | 0.925 | 0.892 | 0.924 | 0.912 | 0.959 | 0.890 |
103
+
104
+ *The scores of LUKE are from [the official repository](https://github.com/studio-ousia/luke).
105
+
106
+ ## Acknowledgments
107
+
108
+ This work was supported by Joint Usage/Research Center for Interdisciplinary Large-scale Information Infrastructures (
109
+ JHPCN) through General Collaboration Project no. jh221004, "Developing a Platform for Constructing and Sharing of
110
+ Large-Scale Japanese Language Models".
111
+ For training models, we used the mdx: a platform for the data-driven future.
bert/deberta-v2-large-japanese/config.json ADDED
@@ -0,0 +1,38 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "_name_or_path": "configs/deberta_v2_large.json",
3
+ "architectures": [
4
+ "DebertaV2ForMaskedLM"
5
+ ],
6
+ "attention_head_size": 64,
7
+ "attention_probs_dropout_prob": 0.1,
8
+ "conv_act": "gelu",
9
+ "conv_kernel_size": 3,
10
+ "hidden_act": "gelu",
11
+ "hidden_dropout_prob": 0.1,
12
+ "hidden_size": 1024,
13
+ "initializer_range": 0.02,
14
+ "intermediate_size": 4096,
15
+ "layer_norm_eps": 1e-07,
16
+ "max_position_embeddings": 512,
17
+ "max_relative_positions": -1,
18
+ "model_type": "deberta-v2",
19
+ "norm_rel_ebd": "layer_norm",
20
+ "num_attention_heads": 16,
21
+ "num_hidden_layers": 24,
22
+ "pad_token_id": 0,
23
+ "pooler_dropout": 0,
24
+ "pooler_hidden_act": "gelu",
25
+ "pooler_hidden_size": 1024,
26
+ "pos_att_type": [
27
+ "p2c",
28
+ "c2p"
29
+ ],
30
+ "position_biased_input": false,
31
+ "position_buckets": 256,
32
+ "relative_attention": true,
33
+ "share_att_key": true,
34
+ "torch_dtype": "float32",
35
+ "transformers_version": "4.23.1",
36
+ "type_vocab_size": 0,
37
+ "vocab_size": 32000
38
+ }
bert/deberta-v2-large-japanese/special_tokens_map.json ADDED
@@ -0,0 +1,9 @@
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "[CLS]",
3
+ "cls_token": "[CLS]",
4
+ "eos_token": "[SEP]",
5
+ "mask_token": "[MASK]",
6
+ "pad_token": "[PAD]",
7
+ "sep_token": "[SEP]",
8
+ "unk_token": "[UNK]"
9
+ }
bert/deberta-v2-large-japanese/tokenizer.json ADDED
The diff for this file is too large to render. See raw diff
 
bert/deberta-v2-large-japanese/tokenizer_config.json ADDED
@@ -0,0 +1,15 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "bos_token": "[CLS]",
3
+ "cls_token": "[CLS]",
4
+ "do_lower_case": false,
5
+ "eos_token": "[SEP]",
6
+ "keep_accents": true,
7
+ "mask_token": "[MASK]",
8
+ "pad_token": "[PAD]",
9
+ "sep_token": "[SEP]",
10
+ "sp_model_kwargs": {},
11
+ "special_tokens_map_file": null,
12
+ "split_by_punct": false,
13
+ "tokenizer_class": "DebertaV2Tokenizer",
14
+ "unk_token": "[UNK]"
15
+ }
bert/deberta-v3-large/.gitattributes ADDED
@@ -0,0 +1,27 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ *.7z filter=lfs diff=lfs merge=lfs -text
2
+ *.arrow filter=lfs diff=lfs merge=lfs -text
3
+ *.bin filter=lfs diff=lfs merge=lfs -text
4
+ *.bin.* filter=lfs diff=lfs merge=lfs -text
5
+ *.bz2 filter=lfs diff=lfs merge=lfs -text
6
+ *.ftz filter=lfs diff=lfs merge=lfs -text
7
+ *.gz filter=lfs diff=lfs merge=lfs -text
8
+ *.h5 filter=lfs diff=lfs merge=lfs -text
9
+ *.joblib filter=lfs diff=lfs merge=lfs -text
10
+ *.lfs.* filter=lfs diff=lfs merge=lfs -text
11
+ *.model filter=lfs diff=lfs merge=lfs -text
12
+ *.msgpack filter=lfs diff=lfs merge=lfs -text
13
+ *.onnx filter=lfs diff=lfs merge=lfs -text
14
+ *.ot filter=lfs diff=lfs merge=lfs -text
15
+ *.parquet filter=lfs diff=lfs merge=lfs -text
16
+ *.pb filter=lfs diff=lfs merge=lfs -text
17
+ *.pt filter=lfs diff=lfs merge=lfs -text
18
+ *.pth filter=lfs diff=lfs merge=lfs -text
19
+ *.rar filter=lfs diff=lfs merge=lfs -text
20
+ saved_model/**/* filter=lfs diff=lfs merge=lfs -text
21
+ *.tar.* filter=lfs diff=lfs merge=lfs -text
22
+ *.tflite filter=lfs diff=lfs merge=lfs -text
23
+ *.tgz filter=lfs diff=lfs merge=lfs -text
24
+ *.xz filter=lfs diff=lfs merge=lfs -text
25
+ *.zip filter=lfs diff=lfs merge=lfs -text
26
+ *.zstandard filter=lfs diff=lfs merge=lfs -text
27
+ *tfevents* filter=lfs diff=lfs merge=lfs -text
bert/deberta-v3-large/README.md ADDED
@@ -0,0 +1,93 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ ---
2
+ language: en
3
+ tags:
4
+ - deberta
5
+ - deberta-v3
6
+ - fill-mask
7
+ thumbnail: https://huggingface.co/front/thumbnails/microsoft.png
8
+ license: mit
9
+ ---
10
+
11
+ ## DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training with Gradient-Disentangled Embedding Sharing
12
+
13
+ [DeBERTa](https://arxiv.org/abs/2006.03654) improves the BERT and RoBERTa models using disentangled attention and enhanced mask decoder. With those two improvements, DeBERTa out perform RoBERTa on a majority of NLU tasks with 80GB training data.
14
+
15
+ In [DeBERTa V3](https://arxiv.org/abs/2111.09543), we further improved the efficiency of DeBERTa using ELECTRA-Style pre-training with Gradient Disentangled Embedding Sharing. Compared to DeBERTa, our V3 version significantly improves the model performance on downstream tasks. You can find more technique details about the new model from our [paper](https://arxiv.org/abs/2111.09543).
16
+
17
+ Please check the [official repository](https://github.com/microsoft/DeBERTa) for more implementation details and updates.
18
+
19
+ The DeBERTa V3 large model comes with 24 layers and a hidden size of 1024. It has 304M backbone parameters with a vocabulary containing 128K tokens which introduces 131M parameters in the Embedding layer. This model was trained using the 160GB data as DeBERTa V2.
20
+
21
+
22
+ #### Fine-tuning on NLU tasks
23
+
24
+ We present the dev results on SQuAD 2.0 and MNLI tasks.
25
+
26
+ | Model |Vocabulary(K)|Backbone #Params(M)| SQuAD 2.0(F1/EM) | MNLI-m/mm(ACC)|
27
+ |-------------------|----------|-------------------|-----------|----------|
28
+ | RoBERTa-large |50 |304 | 89.4/86.5 | 90.2 |
29
+ | XLNet-large |32 |- | 90.6/87.9 | 90.8 |
30
+ | DeBERTa-large |50 |- | 90.7/88.0 | 91.3 |
31
+ | **DeBERTa-v3-large**|128|304 | **91.5/89.0**| **91.8/91.9**|
32
+
33
+
34
+ #### Fine-tuning with HF transformers
35
+
36
+ ```bash
37
+ #!/bin/bash
38
+
39
+ cd transformers/examples/pytorch/text-classification/
40
+
41
+ pip install datasets
42
+ export TASK_NAME=mnli
43
+
44
+ output_dir="ds_results"
45
+
46
+ num_gpus=8
47
+
48
+ batch_size=8
49
+
50
+ python -m torch.distributed.launch --nproc_per_node=${num_gpus} \
51
+ run_glue.py \
52
+ --model_name_or_path microsoft/deberta-v3-large \
53
+ --task_name $TASK_NAME \
54
+ --do_train \
55
+ --do_eval \
56
+ --evaluation_strategy steps \
57
+ --max_seq_length 256 \
58
+ --warmup_steps 50 \
59
+ --per_device_train_batch_size ${batch_size} \
60
+ --learning_rate 6e-6 \
61
+ --num_train_epochs 2 \
62
+ --output_dir $output_dir \
63
+ --overwrite_output_dir \
64
+ --logging_steps 1000 \
65
+ --logging_dir $output_dir
66
+
67
+ ```
68
+
69
+ ### Citation
70
+
71
+ If you find DeBERTa useful for your work, please cite the following papers:
72
+
73
+ ``` latex
74
+ @misc{he2021debertav3,
75
+ title={DeBERTaV3: Improving DeBERTa using ELECTRA-Style Pre-Training with Gradient-Disentangled Embedding Sharing},
76
+ author={Pengcheng He and Jianfeng Gao and Weizhu Chen},
77
+ year={2021},
78
+ eprint={2111.09543},
79
+ archivePrefix={arXiv},
80
+ primaryClass={cs.CL}
81
+ }
82
+ ```
83
+
84
+ ``` latex
85
+ @inproceedings{
86
+ he2021deberta,
87
+ title={DEBERTA: DECODING-ENHANCED BERT WITH DISENTANGLED ATTENTION},
88
+ author={Pengcheng He and Xiaodong Liu and Jianfeng Gao and Weizhu Chen},
89
+ booktitle={International Conference on Learning Representations},
90
+ year={2021},
91
+ url={https://openreview.net/forum?id=XPZIaotutsD}
92
+ }
93
+ ```
bert/deberta-v3-large/config.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "deberta-v2",
3
+ "attention_probs_dropout_prob": 0.1,
4
+ "hidden_act": "gelu",
5
+ "hidden_dropout_prob": 0.1,
6
+ "hidden_size": 1024,
7
+ "initializer_range": 0.02,
8
+ "intermediate_size": 4096,
9
+ "max_position_embeddings": 512,
10
+ "relative_attention": true,
11
+ "position_buckets": 256,
12
+ "norm_rel_ebd": "layer_norm",
13
+ "share_att_key": true,
14
+ "pos_att_type": "p2c|c2p",
15
+ "layer_norm_eps": 1e-7,
16
+ "max_relative_positions": -1,
17
+ "position_biased_input": false,
18
+ "num_attention_heads": 16,
19
+ "num_hidden_layers": 24,
20
+ "type_vocab_size": 0,
21
+ "vocab_size": 128100
22
+ }
bert/deberta-v3-large/generator_config.json ADDED
@@ -0,0 +1,22 @@
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
+ {
2
+ "model_type": "deberta-v2",
3
+ "attention_probs_dropout_prob": 0.1,
4
+ "hidden_act": "gelu",
5
+ "hidden_dropout_prob": 0.1,
6
+ "hidden_size": 1024,
7
+ "initializer_range": 0.02,
8
+ "intermediate_size": 4096,
9
+ "max_position_embeddings": 512,
10
+ "relative_attention": true,
11
+ "position_buckets": 256,
12
+ "norm_rel_ebd": "layer_norm",
13
+ "share_att_key": true,
14
+ "pos_att_type": "p2c|c2p",
15
+ "layer_norm_eps": 1e-7,
16
+ "max_relative_positions": -1,
17
+ "position_biased_input": false,
18
+ "num_attention_heads": 16,
19
+ "num_hidden_layers": 12,
20
+ "type_vocab_size": 0,
21
+ "vocab_size": 128100
22
+ }