tyzhu commited on
Commit
545f5b6
1 Parent(s): e611147

Training in progress, epoch 6, checkpoint

Browse files
checkpoint-1312/adapter_config.json CHANGED
@@ -1,6 +1,6 @@
1
  {
2
  "auto_mapping": null,
3
- "base_model_name_or_path": "Qwen/Qwen1.5-4B",
4
  "bias": "none",
5
  "fan_in_fan_out": false,
6
  "inference_mode": true,
 
1
  {
2
  "auto_mapping": null,
3
+ "base_model_name_or_path": "meta-llama/Llama-2-7b-hf",
4
  "bias": "none",
5
  "fan_in_fan_out": false,
6
  "inference_mode": true,
checkpoint-1312/adapter_model.bin ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:3f16f1fdfa0fcf97c56256b837792e6e6098e38ad8b7d67d8ddc048684287606
3
+ size 143269386
checkpoint-1312/added_tokens.json CHANGED
@@ -1,5 +1,5 @@
1
  {
2
- "<|endoftext|>": 151643,
3
- "<|im_end|>": 151645,
4
- "<|im_start|>": 151644
5
  }
 
1
  {
2
+ "</s>": 2,
3
+ "<s>": 1,
4
+ "<unk>": 0
5
  }
checkpoint-1312/optimizer.pt CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:04b869e66af7d7afeec69c0b49b3005c1a7f6a3fab26d6f8df383ecfed6e98ad
3
- size 224537202
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:cfcc4ab0007ea0d1340ec41a78050cf404802fab09f68ca66cfeaceef0120335
3
+ size 286585234
checkpoint-1312/rng_state_0.pth CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:a267ecf7d96164f89a8a11759976663bb2cdf5d947140b9f54d9e5e33c364627
3
  size 15024
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:673637d6f9be228678a509c7b5666590a8c9d04e7ccab584752427e997bd3d2a
3
  size 15024
checkpoint-1312/rng_state_1.pth CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:dbf90141974991c8b7238e50795b6310bbe06d0f3d05365a3344ea932a074ff8
3
  size 15024
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:fe3f6962ef0507f254af005b5a501a46bec78691385c7e14d0ea34c9ae9f73f3
3
  size 15024
checkpoint-1312/rng_state_2.pth CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:399f4e146057c80744b070e37fc648163981bc19e4df10e0664c473508c44c73
3
  size 15024
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:b983138ed2deae7ba7e0e85e2e8440ff0c5187cc02e9aa86639bf98078409666
3
  size 15024
checkpoint-1312/rng_state_3.pth CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:042246eb01b972f0413dfef4cbc1eb523bb9e01d51f3b6d1c15e3b0a1cbed4e6
3
  size 15024
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:c243574d3fcedd81f1eb18b2a12861db402bdbdbe12e1bdeb8d68bc1d7eefbad
3
  size 15024
checkpoint-1312/special_tokens_map.json CHANGED
@@ -1,14 +1,6 @@
1
  {
2
- "additional_special_tokens": [
3
- "<|im_start|>",
4
- "<|im_end|>"
5
- ],
6
- "eos_token": {
7
- "content": "<|endoftext|>",
8
- "lstrip": false,
9
- "normalized": false,
10
- "rstrip": false,
11
- "single_word": false
12
- },
13
- "pad_token": "<|endoftext|>"
14
  }
 
1
  {
2
+ "bos_token": "<s>",
3
+ "eos_token": "</s>",
4
+ "pad_token": "</s>",
5
+ "unk_token": "<unk>"
 
 
 
 
 
 
 
 
6
  }
checkpoint-1312/tokenizer.json CHANGED
The diff for this file is too large to render. See raw diff
 
checkpoint-1312/tokenizer.model ADDED
@@ -0,0 +1,3 @@
 
 
 
 
1
+ version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9e556afd44213b6bd1be2b850ebbbd98f5481437a8021afaf58ee7fb1818d347
3
+ size 499723
checkpoint-1312/tokenizer_config.json CHANGED
@@ -1,24 +1,23 @@
1
  {
2
- "add_prefix_space": false,
3
  "added_tokens_decoder": {
4
- "151643": {
5
- "content": "<|endoftext|>",
6
  "lstrip": false,
7
  "normalized": false,
8
  "rstrip": false,
9
  "single_word": false,
10
  "special": true
11
  },
12
- "151644": {
13
- "content": "<|im_start|>",
14
  "lstrip": false,
15
  "normalized": false,
16
  "rstrip": false,
17
  "single_word": false,
18
  "special": true
19
  },
20
- "151645": {
21
- "content": "<|im_end|>",
22
  "lstrip": false,
23
  "normalized": false,
24
  "rstrip": false,
@@ -26,18 +25,16 @@
26
  "special": true
27
  }
28
  },
29
- "additional_special_tokens": [
30
- "<|im_start|>",
31
- "<|im_end|>"
32
- ],
33
- "bos_token": null,
34
- "chat_template": "{% for message in messages %}{% if loop.first and messages[0]['role'] != 'system' %}{{ '<|im_start|>system\nYou are a helpful assistant<|im_end|>\n' }}{% endif %}{{'<|im_start|>' + message['role'] + '\n' + message['content'] + '<|im_end|>' + '\n'}}{% endfor %}{% if add_generation_prompt %}{{ '<|im_start|>assistant\n' }}{% endif %}",
35
  "clean_up_tokenization_spaces": false,
36
- "eos_token": "<|endoftext|>",
37
- "errors": "replace",
38
- "model_max_length": 32768,
39
- "pad_token": "<|endoftext|>",
40
- "split_special_tokens": false,
41
- "tokenizer_class": "Qwen2Tokenizer",
42
- "unk_token": null
 
 
43
  }
 
1
  {
 
2
  "added_tokens_decoder": {
3
+ "0": {
4
+ "content": "<unk>",
5
  "lstrip": false,
6
  "normalized": false,
7
  "rstrip": false,
8
  "single_word": false,
9
  "special": true
10
  },
11
+ "1": {
12
+ "content": "<s>",
13
  "lstrip": false,
14
  "normalized": false,
15
  "rstrip": false,
16
  "single_word": false,
17
  "special": true
18
  },
19
+ "2": {
20
+ "content": "</s>",
21
  "lstrip": false,
22
  "normalized": false,
23
  "rstrip": false,
 
25
  "special": true
26
  }
27
  },
28
+ "additional_special_tokens": [],
29
+ "bos_token": "<s>",
 
 
 
 
30
  "clean_up_tokenization_spaces": false,
31
+ "eos_token": "</s>",
32
+ "legacy": false,
33
+ "model_max_length": 1000000000000000019884624838656,
34
+ "pad_token": "</s>",
35
+ "padding_side": "left",
36
+ "sp_model_kwargs": {},
37
+ "tokenizer_class": "LlamaTokenizer",
38
+ "unk_token": "<unk>",
39
+ "use_default_system_prompt": true
40
  }
checkpoint-1312/trainer_state.json CHANGED
@@ -9,249 +9,222 @@
9
  "is_world_process_zero": true,
10
  "log_history": [
11
  {
12
- "epoch": 0.5333333333333333,
13
- "grad_norm": 0.275871217250824,
14
  "learning_rate": 3e-05,
15
- "loss": 1.8545,
16
  "step": 100
17
  },
18
  {
19
- "epoch": 0.9973333333333333,
20
- "eval_accuracy": 0.6037399103139014,
21
- "eval_loss": 1.7123007774353027,
22
- "eval_runtime": 6.2976,
23
- "eval_samples_per_second": 79.395,
24
- "eval_steps_per_second": 10.004,
25
  "step": 187
26
  },
27
  {
28
- "epoch": 0.9973333333333333,
29
- "eval_exact_match": 14.4,
30
- "eval_f1": 22.843015873015876,
31
- "eval_qa_bleu": 9.471299126615676,
32
- "eval_qa_exact_match": 0.112,
33
- "eval_recite_bleu": 12.267251092702137,
34
  "eval_recite_exact_match": 0.0,
35
  "step": 187
36
  },
37
  {
38
- "epoch": 1.0666666666666667,
39
- "grad_norm": 0.32765188813209534,
40
  "learning_rate": 3e-05,
41
- "loss": 1.7408,
42
  "step": 200
43
  },
44
  {
45
  "epoch": 1.6,
46
- "grad_norm": 0.3532409369945526,
47
  "learning_rate": 3e-05,
48
- "loss": 1.7063,
49
  "step": 300
50
  },
51
  {
52
  "epoch": 2.0,
53
- "eval_accuracy": 0.6058565022421525,
54
- "eval_loss": 1.69453763961792,
55
- "eval_runtime": 6.5928,
56
- "eval_samples_per_second": 75.841,
57
- "eval_steps_per_second": 9.556,
58
  "step": 375
59
  },
60
  {
61
  "epoch": 2.0,
62
- "eval_exact_match": 14.4,
63
- "eval_f1": 23.29731601731603,
64
- "eval_qa_bleu": 9.4408132575913,
65
- "eval_qa_exact_match": 0.11,
66
- "eval_recite_bleu": 13.027794116434837,
67
  "eval_recite_exact_match": 0.0,
68
  "step": 375
69
  },
70
  {
71
- "epoch": 2.1333333333333333,
72
- "grad_norm": 0.3777780532836914,
73
  "learning_rate": 3e-05,
74
- "loss": 1.7094,
75
  "step": 400
76
  },
77
  {
78
- "epoch": 2.6666666666666665,
79
- "grad_norm": 0.3971036374568939,
80
  "learning_rate": 3e-05,
81
- "loss": 1.6702,
82
  "step": 500
83
  },
84
  {
85
- "epoch": 2.997333333333333,
86
- "eval_accuracy": 0.6065919282511211,
87
- "eval_loss": 1.6851236820220947,
88
- "eval_runtime": 6.3104,
89
- "eval_samples_per_second": 79.234,
90
- "eval_steps_per_second": 9.984,
91
  "step": 562
92
  },
93
  {
94
- "epoch": 2.997333333333333,
95
- "eval_exact_match": 14.0,
96
- "eval_f1": 23.306825396825417,
97
- "eval_qa_bleu": 8.683248465366908,
98
- "eval_qa_exact_match": 0.11,
99
- "eval_recite_bleu": 12.39336052958371,
100
- "eval_recite_exact_match": 0.006,
101
  "step": 562
102
  },
103
  {
104
  "epoch": 3.2,
105
- "grad_norm": 0.4782978594303131,
106
  "learning_rate": 3e-05,
107
- "loss": 1.6574,
108
  "step": 600
109
  },
110
  {
111
- "epoch": 3.7333333333333334,
112
- "grad_norm": 0.52582186460495,
113
  "learning_rate": 3e-05,
114
- "loss": 1.6356,
115
  "step": 700
116
  },
117
  {
118
  "epoch": 4.0,
119
- "eval_accuracy": 0.6074977578475337,
120
- "eval_loss": 1.682567834854126,
121
- "eval_runtime": 6.65,
122
- "eval_samples_per_second": 75.188,
123
- "eval_steps_per_second": 9.474,
124
  "step": 750
125
  },
126
  {
127
  "epoch": 4.0,
128
- "eval_exact_match": 15.0,
129
- "eval_f1": 23.366825396825416,
130
- "eval_qa_bleu": 9.05994637010322,
131
- "eval_qa_exact_match": 0.114,
132
- "eval_recite_bleu": 13.060415058384661,
133
- "eval_recite_exact_match": 0.006,
134
  "step": 750
135
  },
136
  {
137
- "epoch": 4.266666666666667,
138
- "grad_norm": 0.6418241262435913,
139
  "learning_rate": 3e-05,
140
- "loss": 1.6005,
141
  "step": 800
142
  },
143
  {
144
  "epoch": 4.8,
145
- "grad_norm": 0.6805307269096375,
146
  "learning_rate": 3e-05,
147
- "loss": 1.5775,
148
  "step": 900
149
  },
150
  {
151
- "epoch": 4.997333333333334,
152
- "eval_accuracy": 0.6071031390134529,
153
- "eval_loss": 1.69106125831604,
154
- "eval_runtime": 5.6598,
155
- "eval_samples_per_second": 88.343,
156
- "eval_steps_per_second": 11.131,
157
  "step": 937
158
  },
159
  {
160
- "epoch": 4.997333333333334,
161
- "eval_exact_match": 15.2,
162
- "eval_f1": 23.38539682539684,
163
- "eval_qa_bleu": 11.854591678140883,
164
- "eval_qa_exact_match": 0.112,
165
- "eval_recite_bleu": 12.694062454678122,
166
- "eval_recite_exact_match": 0.004,
167
  "step": 937
168
  },
169
  {
170
- "epoch": 5.333333333333333,
171
- "grad_norm": 0.8362048864364624,
172
  "learning_rate": 3e-05,
173
- "loss": 1.5173,
174
  "step": 1000
175
  },
176
  {
177
- "epoch": 5.866666666666667,
178
- "grad_norm": 0.8521270155906677,
179
  "learning_rate": 3e-05,
180
- "loss": 1.529,
181
  "step": 1100
182
  },
183
  {
184
  "epoch": 6.0,
185
- "eval_accuracy": 0.6069417040358744,
186
- "eval_loss": 1.7066757678985596,
187
- "eval_runtime": 6.2922,
188
- "eval_samples_per_second": 79.464,
189
- "eval_steps_per_second": 10.012,
190
  "step": 1125
191
  },
192
  {
193
  "epoch": 6.0,
194
- "eval_exact_match": 15.2,
195
- "eval_f1": 24.04682539682541,
196
- "eval_qa_bleu": 12.150293484705452,
197
- "eval_qa_exact_match": 0.106,
198
- "eval_recite_bleu": 12.732083161926754,
199
- "eval_recite_exact_match": 0.002,
200
  "step": 1125
201
  },
202
  {
203
  "epoch": 6.4,
204
- "grad_norm": 0.9372308254241943,
205
  "learning_rate": 3e-05,
206
- "loss": 1.4613,
207
  "step": 1200
208
  },
209
  {
210
- "epoch": 6.933333333333334,
211
- "grad_norm": 1.0236693620681763,
212
  "learning_rate": 3e-05,
213
- "loss": 1.457,
214
  "step": 1300
215
  },
216
  {
217
- "epoch": 6.997333333333334,
218
- "eval_accuracy": 0.6055515695067265,
219
- "eval_loss": 1.72792649269104,
220
- "eval_runtime": 6.3278,
221
- "eval_samples_per_second": 79.016,
222
- "eval_steps_per_second": 9.956,
223
  "step": 1312
224
  },
225
  {
226
- "epoch": 6.997333333333334,
227
- "eval_exact_match": 15.0,
228
- "eval_f1": 23.28492063492065,
229
- "eval_qa_bleu": 9.849658422779212,
230
- "eval_qa_exact_match": 0.114,
231
- "eval_recite_bleu": 12.3997433702838,
232
- "eval_recite_exact_match": 0.006,
233
  "step": 1312
234
  }
235
  ],
236
  "logging_steps": 100,
237
  "max_steps": 9350,
238
- "num_input_tokens_seen": 0,
239
  "num_train_epochs": 50,
240
  "save_steps": 500,
241
- "stateful_callbacks": {
242
- "TrainerControl": {
243
- "args": {
244
- "should_epoch_stop": false,
245
- "should_evaluate": false,
246
- "should_log": false,
247
- "should_save": true,
248
- "should_training_stop": false
249
- },
250
- "attributes": {}
251
- }
252
- },
253
- "total_flos": 1.447730146621522e+17,
254
- "train_batch_size": 2,
255
  "trial_name": null,
256
  "trial_params": null
257
  }
 
9
  "is_world_process_zero": true,
10
  "log_history": [
11
  {
12
+ "epoch": 0.53,
 
13
  "learning_rate": 3e-05,
14
+ "loss": 1.4597,
15
  "step": 100
16
  },
17
  {
18
+ "epoch": 1.0,
19
+ "eval_accuracy": 0.6618980392156862,
20
+ "eval_loss": 1.2718806266784668,
21
+ "eval_runtime": 7.6194,
22
+ "eval_samples_per_second": 65.622,
23
+ "eval_steps_per_second": 8.268,
24
  "step": 187
25
  },
26
  {
27
+ "epoch": 1.0,
28
+ "eval_exact_match": 22.4,
29
+ "eval_f1": 30.941064425770318,
30
+ "eval_qa_bleu": 7.097403515221558,
31
+ "eval_qa_exact_match": 0.196,
32
+ "eval_recite_bleu": 13.258373740102225,
33
  "eval_recite_exact_match": 0.0,
34
  "step": 187
35
  },
36
  {
37
+ "epoch": 1.07,
 
38
  "learning_rate": 3e-05,
39
+ "loss": 1.2905,
40
  "step": 200
41
  },
42
  {
43
  "epoch": 1.6,
 
44
  "learning_rate": 3e-05,
45
+ "loss": 1.2157,
46
  "step": 300
47
  },
48
  {
49
  "epoch": 2.0,
50
+ "eval_accuracy": 0.6670039215686274,
51
+ "eval_loss": 1.206207036972046,
52
+ "eval_runtime": 7.6793,
53
+ "eval_samples_per_second": 65.11,
54
+ "eval_steps_per_second": 8.204,
55
  "step": 375
56
  },
57
  {
58
  "epoch": 2.0,
59
+ "eval_exact_match": 3.2,
60
+ "eval_f1": 3.96976236704394,
61
+ "eval_qa_bleu": 0.20484366294597936,
62
+ "eval_qa_exact_match": 0.026,
63
+ "eval_recite_bleu": 2.5778714769111824e-05,
64
  "eval_recite_exact_match": 0.0,
65
  "step": 375
66
  },
67
  {
68
+ "epoch": 2.13,
 
69
  "learning_rate": 3e-05,
70
+ "loss": 1.1852,
71
  "step": 400
72
  },
73
  {
74
+ "epoch": 2.67,
 
75
  "learning_rate": 3e-05,
76
+ "loss": 1.1861,
77
  "step": 500
78
  },
79
  {
80
+ "epoch": 3.0,
81
+ "eval_accuracy": 0.667513725490196,
82
+ "eval_loss": 1.19828462600708,
83
+ "eval_runtime": 7.1425,
84
+ "eval_samples_per_second": 70.004,
85
+ "eval_steps_per_second": 8.82,
86
  "step": 562
87
  },
88
  {
89
+ "epoch": 3.0,
90
+ "eval_exact_match": 4.4,
91
+ "eval_f1": 6.333660342551587,
92
+ "eval_qa_bleu": 0.522391008398391,
93
+ "eval_qa_exact_match": 0.028,
94
+ "eval_recite_bleu": 0.027569975851374308,
95
+ "eval_recite_exact_match": 0.0,
96
  "step": 562
97
  },
98
  {
99
  "epoch": 3.2,
 
100
  "learning_rate": 3e-05,
101
+ "loss": 1.1722,
102
  "step": 600
103
  },
104
  {
105
+ "epoch": 3.73,
 
106
  "learning_rate": 3e-05,
107
+ "loss": 1.1445,
108
  "step": 700
109
  },
110
  {
111
  "epoch": 4.0,
112
+ "eval_accuracy": 0.6672,
113
+ "eval_loss": 1.197709560394287,
114
+ "eval_runtime": 7.7427,
115
+ "eval_samples_per_second": 64.577,
116
+ "eval_steps_per_second": 8.137,
117
  "step": 750
118
  },
119
  {
120
  "epoch": 4.0,
121
+ "eval_exact_match": 7.4,
122
+ "eval_f1": 10.950016966795278,
123
+ "eval_qa_bleu": 0.6700083846206139,
124
+ "eval_qa_exact_match": 0.052,
125
+ "eval_recite_bleu": 1.259776140465531,
126
+ "eval_recite_exact_match": 0.0,
127
  "step": 750
128
  },
129
  {
130
+ "epoch": 4.27,
 
131
  "learning_rate": 3e-05,
132
+ "loss": 1.1018,
133
  "step": 800
134
  },
135
  {
136
  "epoch": 4.8,
 
137
  "learning_rate": 3e-05,
138
+ "loss": 1.1,
139
  "step": 900
140
  },
141
  {
142
+ "epoch": 5.0,
143
+ "eval_accuracy": 0.6664941176470588,
144
+ "eval_loss": 1.2078713178634644,
145
+ "eval_runtime": 7.7721,
146
+ "eval_samples_per_second": 64.333,
147
+ "eval_steps_per_second": 8.106,
148
  "step": 937
149
  },
150
  {
151
+ "epoch": 5.0,
152
+ "eval_exact_match": 6.6,
153
+ "eval_f1": 10.12048028049545,
154
+ "eval_qa_bleu": 0.8314625442591895,
155
+ "eval_qa_exact_match": 0.05,
156
+ "eval_recite_bleu": 0.8030246920772521,
157
+ "eval_recite_exact_match": 0.0,
158
  "step": 937
159
  },
160
  {
161
+ "epoch": 5.33,
 
162
  "learning_rate": 3e-05,
163
+ "loss": 1.0666,
164
  "step": 1000
165
  },
166
  {
167
+ "epoch": 5.87,
 
168
  "learning_rate": 3e-05,
169
+ "loss": 1.0439,
170
  "step": 1100
171
  },
172
  {
173
  "epoch": 6.0,
174
+ "eval_accuracy": 0.6649725490196079,
175
+ "eval_loss": 1.22383713722229,
176
+ "eval_runtime": 7.6639,
177
+ "eval_samples_per_second": 65.241,
178
+ "eval_steps_per_second": 8.22,
179
  "step": 1125
180
  },
181
  {
182
  "epoch": 6.0,
183
+ "eval_exact_match": 9.0,
184
+ "eval_f1": 14.19791549030679,
185
+ "eval_qa_bleu": 2.7960558519683327,
186
+ "eval_qa_exact_match": 0.07,
187
+ "eval_recite_bleu": 2.082318255561628,
188
+ "eval_recite_exact_match": 0.0,
189
  "step": 1125
190
  },
191
  {
192
  "epoch": 6.4,
 
193
  "learning_rate": 3e-05,
194
+ "loss": 1.0029,
195
  "step": 1200
196
  },
197
  {
198
+ "epoch": 6.93,
 
199
  "learning_rate": 3e-05,
200
+ "loss": 0.9888,
201
  "step": 1300
202
  },
203
  {
204
+ "epoch": 7.0,
205
+ "eval_accuracy": 0.6638117647058823,
206
+ "eval_loss": 1.2457345724105835,
207
+ "eval_runtime": 6.7577,
208
+ "eval_samples_per_second": 73.99,
209
+ "eval_steps_per_second": 9.323,
210
  "step": 1312
211
  },
212
  {
213
+ "epoch": 7.0,
214
+ "eval_exact_match": 10.6,
215
+ "eval_f1": 15.30586844512479,
216
+ "eval_qa_bleu": 0.94556412718174,
217
+ "eval_qa_exact_match": 0.086,
218
+ "eval_recite_bleu": 3.1558565534273777,
219
+ "eval_recite_exact_match": 0.0,
220
  "step": 1312
221
  }
222
  ],
223
  "logging_steps": 100,
224
  "max_steps": 9350,
 
225
  "num_train_epochs": 50,
226
  "save_steps": 500,
227
+ "total_flos": 3.041325183349555e+17,
 
 
 
 
 
 
 
 
 
 
 
 
 
228
  "trial_name": null,
229
  "trial_params": null
230
  }
checkpoint-1312/training_args.bin CHANGED
@@ -1,3 +1,3 @@
1
  version https://git-lfs.github.com/spec/v1
2
- oid sha256:9e9c21c8367f69c99b21b20aa3dbf722814d1b222850e23dacbe471b235b2dd4
3
- size 5304
 
1
  version https://git-lfs.github.com/spec/v1
2
+ oid sha256:9347580f7d2a7b3957c29c0f67ee2342d50aa99cfc14c2f59eba6127909f6932
3
+ size 4728