decidim-debates 0.27.6 → 0.27.7
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/controllers/decidim/debates/debates_controller.rb +1 -0
- data/app/models/decidim/debates/debate.rb +6 -0
- data/app/presenters/decidim/debates/admin_log/debate_presenter.rb +0 -4
- data/app/presenters/decidim/debates/admin_log/value_types/debate_title_description_presenter.rb +1 -1
- data/config/locales/bg.yml +198 -0
- data/config/locales/pl.yml +7 -0
- data/config/locales/tr-TR.yml +3 -0
- data/lib/decidim/debates/version.rb +1 -1
- metadata +14 -15
- data/app/presenters/decidim/debates/log/resource_presenter.rb +0 -18
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: e63a2ec7593738e1d36f4707d905660c29aed6af6db97f6afbddb00e2bf557ad
|
4
|
+
data.tar.gz: de0633c7b1142b8167885643cb03e6118ee1be26f8ee269fbb43557af2348512
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ecde664045e57d1f029d68db5501c1fa0b7a07170f1a308f1b32d7bcf84a3618158a6bdb9d5b11de785015afeec12ad1925b622bfb4885260da7dfe9991908eb
|
7
|
+
data.tar.gz: a7f72091f9a0c0a0c2e7cdb005f749e8559a015cd09764b3fe155e1102c260186750226ccc184f8cc4e366e1d4922b071d72b99db514d7e04652d579eb30e242
|
@@ -14,6 +14,7 @@ module Decidim
|
|
14
14
|
include Decidim::Debates::Orderable
|
15
15
|
|
16
16
|
helper_method :debates, :debate, :form_presenter, :paginated_debates, :close_debate_form
|
17
|
+
before_action :authenticate_user!, only: [:new, :create]
|
17
18
|
|
18
19
|
def new
|
19
20
|
enforce_permission_to :create, :debate
|
@@ -56,6 +56,12 @@ module Decidim
|
|
56
56
|
}
|
57
57
|
scope_search_multi :with_any_state, [:open, :closed]
|
58
58
|
|
59
|
+
# Returns the presenter for this debate, to be used in the views.
|
60
|
+
# Required by ResourceRenderer.
|
61
|
+
def presenter
|
62
|
+
Decidim::Debates::DebatePresenter.new(self)
|
63
|
+
end
|
64
|
+
|
59
65
|
def self.log_presenter_class_for(_log)
|
60
66
|
Decidim::Debates::AdminLog::DebatePresenter
|
61
67
|
end
|
@@ -15,10 +15,6 @@ module Decidim
|
|
15
15
|
class DebatePresenter < Decidim::Log::BasePresenter
|
16
16
|
private
|
17
17
|
|
18
|
-
def resource_presenter
|
19
|
-
@resource_presenter ||= Decidim::Debates::Log::ResourcePresenter.new(action_log.resource, h, action_log.extra["resource"])
|
20
|
-
end
|
21
|
-
|
22
18
|
def diff_fields_mapping
|
23
19
|
{
|
24
20
|
description: "Decidim::Debates::AdminLog::ValueTypes::DebateTitleDescriptionPresenter",
|
data/app/presenters/decidim/debates/admin_log/value_types/debate_title_description_presenter.rb
CHANGED
@@ -10,7 +10,7 @@ module Decidim
|
|
10
10
|
def present
|
11
11
|
return unless value
|
12
12
|
|
13
|
-
renderer = Decidim::ContentRenderers::HashtagRenderer.new(h.
|
13
|
+
renderer = Decidim::ContentRenderers::HashtagRenderer.new(h.decidim_escape_translated(value))
|
14
14
|
renderer.render(links: false).html_safe
|
15
15
|
end
|
16
16
|
end
|
data/config/locales/bg.yml
CHANGED
@@ -4,29 +4,171 @@ bg:
|
|
4
4
|
attributes:
|
5
5
|
debate:
|
6
6
|
category_id: Категория
|
7
|
+
closed_at: Затворено на
|
8
|
+
conclusions: Заключения
|
7
9
|
decidim_category_id: Категория
|
8
10
|
description: Описание
|
11
|
+
end_time: Завършва на
|
12
|
+
information_updates: Актуализации на информацията
|
13
|
+
instructions: Инструкции за участие
|
14
|
+
scope_id: Обхват
|
15
|
+
start_time: Започва в
|
16
|
+
title: Заглавие
|
17
|
+
user_group_id: Създаване на дебат като
|
18
|
+
models:
|
19
|
+
decidim/debates/close_debate_event: Дебатът е затворен
|
20
|
+
decidim/debates/create_debate_event: Дебат
|
21
|
+
decidim/debates/creation_disabled_event: Дебатите са неактивни
|
22
|
+
decidim/debates/creation_enabled_event: Създаването на дебати е активирано
|
23
|
+
activerecord:
|
24
|
+
models:
|
25
|
+
decidim/debates/debate:
|
26
|
+
one: Дебат
|
27
|
+
other: Дебати
|
9
28
|
decidim:
|
29
|
+
components:
|
30
|
+
debates:
|
31
|
+
actions:
|
32
|
+
comment: Коментар
|
33
|
+
create: Създаване
|
34
|
+
endorse: Одобрявам
|
35
|
+
name: Дебати
|
36
|
+
settings:
|
37
|
+
global:
|
38
|
+
announcement: Обявление
|
39
|
+
comments_enabled: Коментарите са активирани
|
40
|
+
comments_max_length: Максимална дължина на коментарите (Оставете 0 за стойност по подразбиране)
|
41
|
+
scope_id: Обхват
|
42
|
+
scopes_enabled: Обхватите са активирани
|
43
|
+
step:
|
44
|
+
announcement: Обявление
|
45
|
+
comments_blocked: Коментарите са блокирани
|
46
|
+
creation_enabled: Участниците могат да създават дебати
|
47
|
+
endorsements_blocked: Одобренията са блокирани
|
48
|
+
endorsements_enabled: Одобренията са активирани
|
10
49
|
debates:
|
11
50
|
actions:
|
51
|
+
close: Затвори
|
52
|
+
confirm_destroy: Сигурни ли сте?
|
53
|
+
destroy: Изтрий
|
54
|
+
edit: Редактирай
|
12
55
|
new: Ново %{name}
|
56
|
+
title: Активности
|
57
|
+
admin:
|
58
|
+
debate_closes:
|
59
|
+
edit:
|
60
|
+
close: Затвори
|
61
|
+
title: Затваряне на дебата
|
62
|
+
debates:
|
63
|
+
create:
|
64
|
+
invalid: Възникна проблем при създаването на дебата.
|
65
|
+
success: Дебатът беше създаден успешно.
|
66
|
+
destroy:
|
67
|
+
success: Дебатът беше изтрит успешно.
|
68
|
+
edit:
|
69
|
+
title: Редактиране на дебата
|
70
|
+
update: Актуализиране на дебата
|
71
|
+
form:
|
72
|
+
debate_type: Тип на дебата
|
73
|
+
finite: Краен (с начален и краен час)
|
74
|
+
open: Отворено (без начален или краен час)
|
75
|
+
index:
|
76
|
+
title: Дебати
|
77
|
+
new:
|
78
|
+
create: Създаване на дебат
|
79
|
+
title: Нов дебат
|
80
|
+
update:
|
81
|
+
invalid: Възникна проблем при актуализирането на този дебат.
|
82
|
+
success: Дебатът беше актуализиран успешно.
|
83
|
+
exports:
|
84
|
+
comments: Коментари
|
85
|
+
models:
|
86
|
+
debate:
|
87
|
+
name: Дебат
|
88
|
+
admin_log:
|
89
|
+
debate:
|
90
|
+
close: "%{user_name} затвори дебата %{resource_name} в пространството %{space_name}"
|
91
|
+
create: "%{user_name} създаде дебата %{resource_name} в пространството %{space_name}"
|
92
|
+
update: "%{user_name} актуализира дебата %{resource_name} в пространството %{space_name}"
|
93
|
+
debate_m:
|
94
|
+
commented_time_ago: Коментирано преди %{time}
|
13
95
|
debates:
|
96
|
+
close:
|
97
|
+
invalid: Възникна проблем при затварянето на дебата.
|
98
|
+
success: Дебатът беше затворен успешно.
|
99
|
+
close_debate_modal:
|
100
|
+
close: Затвори
|
101
|
+
description: Какво е обобщението или заключението на този дебат?
|
102
|
+
send: Затваряне на дебата
|
103
|
+
closed: Затворен
|
104
|
+
count:
|
105
|
+
debates_count:
|
106
|
+
one: "%{count} дебат"
|
107
|
+
other: "%{count} дебата"
|
108
|
+
create:
|
109
|
+
invalid: Възникна проблем при създаването на дебата.
|
110
|
+
success: Дебатът беше създаден успешно.
|
14
111
|
debate:
|
15
112
|
participate: Участвайте
|
113
|
+
debates:
|
114
|
+
empty: Все още няма дебати.
|
115
|
+
empty_filters: Няма дебати с този критерий.
|
116
|
+
edit:
|
117
|
+
back: Назад
|
118
|
+
save: Запази промените
|
119
|
+
title: Редактиране на дебата
|
16
120
|
filters:
|
121
|
+
activity: Моята дейност
|
122
|
+
all: Всички
|
123
|
+
category: Категория
|
124
|
+
category_prompt: Изберете категория
|
125
|
+
commented: Коментирано
|
126
|
+
my_debates: Моите дебати
|
127
|
+
official: Официални
|
128
|
+
origin: Произход
|
129
|
+
participants: Участници
|
130
|
+
scope: Обхват
|
131
|
+
search: Търсене
|
132
|
+
state: Статус
|
133
|
+
state_values:
|
134
|
+
closed: Затворен
|
135
|
+
open: Отворен
|
17
136
|
user_groups: Групи
|
18
137
|
filters_small_view:
|
19
138
|
close_modal: Затвори прозореца
|
20
139
|
filter: Филтър
|
21
140
|
filter_by: Филтрирай по
|
22
141
|
unfold: Разгъване
|
142
|
+
form:
|
143
|
+
select_a_category: Моля, изберете категория
|
144
|
+
index:
|
145
|
+
new_debate: Нов дебат
|
146
|
+
new:
|
147
|
+
back: Назад
|
148
|
+
create: Създаване
|
149
|
+
title: Нов дебат
|
150
|
+
orders:
|
151
|
+
commented: Най-коментирани
|
152
|
+
label: Подреждане на дебатите по
|
153
|
+
random: Случаен ред
|
154
|
+
recent: Най-скорошни
|
155
|
+
updated: Скоро обновени
|
23
156
|
show:
|
24
157
|
back: Назад към списъка
|
158
|
+
close_debate: Затваряне на дебата
|
25
159
|
date: Дата
|
160
|
+
debate_closed: Затворен
|
161
|
+
debate_conclusions_are: 'Дебатът беше затворен на %{date} със следните заключения:'
|
162
|
+
edit_conclusions: Редактиране на заключенията
|
163
|
+
edit_debate: Редактиране на дебата
|
26
164
|
groups_count: Групи
|
27
165
|
last_comment_by: Последен коментар от
|
28
166
|
no_comments_yet: Все още няма коментари
|
167
|
+
open: Отворен дебат
|
29
168
|
participants_count: Участници
|
169
|
+
update:
|
170
|
+
invalid: Възникна проблем при актуализирането на дебата.
|
171
|
+
success: Дебатът беше актуализиран успешно.
|
30
172
|
versions:
|
31
173
|
debates:
|
32
174
|
back_to_resource: Назад към дебата
|
@@ -37,11 +179,67 @@ bg:
|
|
37
179
|
last_activity:
|
38
180
|
debate_updated_at_html: "<span>Дебатът беше актуализиран на: %{link}</span>"
|
39
181
|
new_debate_at_html: "<span>Нов дебат на адрес: %{link}</span>"
|
182
|
+
models:
|
183
|
+
debate:
|
184
|
+
fields:
|
185
|
+
end_time: Крайна дата
|
186
|
+
official_debate: Официален дебат
|
187
|
+
start_time: Начална дата
|
188
|
+
title: Заглавие
|
40
189
|
events:
|
41
190
|
debates:
|
191
|
+
create_debate_event:
|
192
|
+
space_followers:
|
193
|
+
email_intro: |-
|
194
|
+
Здравейте
|
195
|
+
Нов дебат „%{resource_title}“ е създаден в пространството за участие %{participatory_space_title}, разгледайте го и допринесете:
|
196
|
+
email_outro: Получихте това известие, защото следвате %{participatory_space_title} пространство за участие. Можете да спрете да получавате известия, като следвате предишната връзка.
|
197
|
+
email_subject: Нов дебат „%{resource_title}“ на %{participatory_space_title}
|
198
|
+
notification_title: Дебатът <a href="%{resource_path}">%{resource_title}</a> беше създаден на <a href="%{participatory_space_url}">%{participatory_space_title}</a>.
|
199
|
+
user_followers:
|
200
|
+
email_intro: |-
|
201
|
+
Здравейте,
|
202
|
+
участниът %{author_name} %{author_nickname}, когото следвате, създаде нов дебат „%{resource_title}“. Вижте го и допринесете:
|
203
|
+
email_outro: Получихте това известие, защото следвате %{author_nickname}. Можете да спрете да получавате известия, като последвате предходния линк.
|
204
|
+
email_subject: Нов дебат „%{resource_title}“ от %{author_nickname}
|
205
|
+
notification_title: <a href="%{author_path}">%{author_name} %{author_nickname}</a> създаде дебата <a href="%{resource_path}">%{resource_title}</a>.
|
206
|
+
creation_disabled:
|
207
|
+
email_intro: 'Създаването на дебати вече не е активно в(ъв) %{participatory_space_title}. Все още можете да участвате в отворени дебати от следната страница:'
|
208
|
+
email_outro: Получавате това известие, защото следвате %{participatory_space_title}. Може да прекратите известията чрез предходния линк.
|
209
|
+
email_subject: Създаването на дебати е деактивирано в(ъв) %{participatory_space_title}
|
210
|
+
notification_title: Създаването на дебати вече е деактивирано в(ъв) <a href="%{participatory_space_url}">%{participatory_space_title}</a>
|
42
211
|
creation_enabled:
|
212
|
+
email_intro: 'Вече можете да създавате нови дебати в(ъв) %{participatory_space_title}! Започнете да участвате на следната страница:'
|
213
|
+
email_outro: Получавате това известие, защото следвате %{participatory_space_title}. Може да прекратите известията чрез предходния линк.
|
214
|
+
email_subject: Дебатите вече са налице в(ъв) %{participatory_space_title}
|
43
215
|
notification_title: Вече можете да създавате <a href="%{resource_path}">нови дебати</a> в(ъв) <a href="%{participatory_space_url}">%{participatory_space_title}</a>
|
216
|
+
debate_closed:
|
217
|
+
affected_user:
|
218
|
+
email_intro: 'Дебатът „%{resource_title}“ беше затворен. Можете да прочетете заключенията на страницата за него:'
|
219
|
+
email_outro: Получавате това известие, защото следвате дебата „%{resource_title}“. Можете да прекратите следването от предходната връзка.
|
220
|
+
email_subject: Дебатът „%{resource_title}“ беше затворен
|
221
|
+
notification_title: Дебатът <a href="%{resource_path}">%{resource_title}</a> беше затворен.
|
222
|
+
follower:
|
223
|
+
email_intro: 'Дебатът „%{resource_title}“ беше затворен. Можете да прочетете заключенията на неговата страница:'
|
224
|
+
email_outro: Получавате това известие, защото следвате дебата „%{resource_title}“. Можете да прекратите следването от предходния линк.
|
225
|
+
email_subject: Дебатът „%{resource_title}“ беше затворен
|
226
|
+
notification_title: Дебатът <a href="%{resource_path}">%{resource_title}</a> беше затворен.
|
44
227
|
gamification:
|
45
228
|
badges:
|
46
229
|
commented_debates:
|
230
|
+
conditions:
|
231
|
+
- Изберете отворен дебат и участвайте в него
|
232
|
+
description: Тази значка се предоставя, когато участвате активно в различни дебати, като оставяте коментари.
|
233
|
+
description_another: Този участник се е включил в %{score} дебата.
|
234
|
+
description_own: Участвали сте в %{score} дебата.
|
235
|
+
name: Дебати
|
236
|
+
next_level_in: Участвайте в още %{score} дебата, за да достигнете следващото ниво!
|
237
|
+
unearned_another: Този участник все още не е участвал в нито един дебат.
|
47
238
|
unearned_own: Все още не сте участвали в нито един дебат.
|
239
|
+
metrics:
|
240
|
+
debates:
|
241
|
+
description: Брой създадени дебати
|
242
|
+
object: дебати
|
243
|
+
title: Дебати
|
244
|
+
statistics:
|
245
|
+
debates_count: Дебати
|
data/config/locales/pl.yml
CHANGED
@@ -193,6 +193,13 @@ pl:
|
|
193
193
|
events:
|
194
194
|
debates:
|
195
195
|
create_debate_event:
|
196
|
+
space_followers:
|
197
|
+
email_intro: |-
|
198
|
+
Cześć,
|
199
|
+
Nowa debata "%{resource_title}" została utworzona na przestrzeni partycypacyjnej %{participatory_space_title}, sprawdź ją i pomóż:
|
200
|
+
email_outro: Otrzymujesz to powiadomienie, ponieważ obserwujesz przestrzeń partycypacyjną %{participatory_space_title}. Możesz wyłączyć powiadomienia, klikając poprzedni link.
|
201
|
+
email_subject: Nowa debata "%{resource_title}" w %{participatory_space_title}
|
202
|
+
notification_title: Debata <a href="%{resource_path}">%{resource_title}</a> została utworzona w <a href="%{participatory_space_url}">%{participatory_space_title}</a>.
|
196
203
|
user_followers:
|
197
204
|
email_intro: |-
|
198
205
|
Cześć,
|
data/config/locales/tr-TR.yml
CHANGED
@@ -106,6 +106,9 @@ tr:
|
|
106
106
|
success: Tartışma başarıyla oluşturuldu.
|
107
107
|
debate:
|
108
108
|
participate: Katıl
|
109
|
+
debates:
|
110
|
+
empty: Henüz herhangi bir tartışma yok.
|
111
|
+
empty_filters: Bu kritere uyan bir tartışma yok.
|
109
112
|
edit:
|
110
113
|
back: Geri
|
111
114
|
save: Değişiklikleri kaydet
|
metadata
CHANGED
@@ -1,17 +1,17 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: decidim-debates
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.27.
|
4
|
+
version: 0.27.7
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Josep Jaume Rey Peroy
|
8
8
|
- Marc Riera Casals
|
9
9
|
- Oriol Gual Oliva
|
10
10
|
- Genis Matutes Pujol
|
11
|
-
autorequire:
|
11
|
+
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2024-
|
14
|
+
date: 2024-07-16 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: decidim-comments
|
@@ -19,56 +19,56 @@ dependencies:
|
|
19
19
|
requirements:
|
20
20
|
- - '='
|
21
21
|
- !ruby/object:Gem::Version
|
22
|
-
version: 0.27.
|
22
|
+
version: 0.27.7
|
23
23
|
type: :runtime
|
24
24
|
prerelease: false
|
25
25
|
version_requirements: !ruby/object:Gem::Requirement
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.27.
|
29
|
+
version: 0.27.7
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: decidim-core
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|
33
33
|
requirements:
|
34
34
|
- - '='
|
35
35
|
- !ruby/object:Gem::Version
|
36
|
-
version: 0.27.
|
36
|
+
version: 0.27.7
|
37
37
|
type: :runtime
|
38
38
|
prerelease: false
|
39
39
|
version_requirements: !ruby/object:Gem::Requirement
|
40
40
|
requirements:
|
41
41
|
- - '='
|
42
42
|
- !ruby/object:Gem::Version
|
43
|
-
version: 0.27.
|
43
|
+
version: 0.27.7
|
44
44
|
- !ruby/object:Gem::Dependency
|
45
45
|
name: decidim-admin
|
46
46
|
requirement: !ruby/object:Gem::Requirement
|
47
47
|
requirements:
|
48
48
|
- - '='
|
49
49
|
- !ruby/object:Gem::Version
|
50
|
-
version: 0.27.
|
50
|
+
version: 0.27.7
|
51
51
|
type: :development
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
55
|
- - '='
|
56
56
|
- !ruby/object:Gem::Version
|
57
|
-
version: 0.27.
|
57
|
+
version: 0.27.7
|
58
58
|
- !ruby/object:Gem::Dependency
|
59
59
|
name: decidim-dev
|
60
60
|
requirement: !ruby/object:Gem::Requirement
|
61
61
|
requirements:
|
62
62
|
- - '='
|
63
63
|
- !ruby/object:Gem::Version
|
64
|
-
version: 0.27.
|
64
|
+
version: 0.27.7
|
65
65
|
type: :development
|
66
66
|
prerelease: false
|
67
67
|
version_requirements: !ruby/object:Gem::Requirement
|
68
68
|
requirements:
|
69
69
|
- - '='
|
70
70
|
- !ruby/object:Gem::Version
|
71
|
-
version: 0.27.
|
71
|
+
version: 0.27.7
|
72
72
|
description: A debates component for decidim's participatory spaces.
|
73
73
|
email:
|
74
74
|
- josepjaume@gmail.com
|
@@ -129,7 +129,6 @@ files:
|
|
129
129
|
- app/presenters/decidim/debates/admin_log/debate_presenter.rb
|
130
130
|
- app/presenters/decidim/debates/admin_log/value_types/debate_title_description_presenter.rb
|
131
131
|
- app/presenters/decidim/debates/debate_presenter.rb
|
132
|
-
- app/presenters/decidim/debates/log/resource_presenter.rb
|
133
132
|
- app/presenters/decidim/debates/official_author_presenter.rb
|
134
133
|
- app/queries/decidim/debates/metrics/debate_followers_metric_measure.rb
|
135
134
|
- app/queries/decidim/debates/metrics/debate_participants_metric_measure.rb
|
@@ -272,7 +271,7 @@ homepage: https://github.com/decidim/decidim
|
|
272
271
|
licenses:
|
273
272
|
- AGPL-3.0
|
274
273
|
metadata: {}
|
275
|
-
post_install_message:
|
274
|
+
post_install_message:
|
276
275
|
rdoc_options: []
|
277
276
|
require_paths:
|
278
277
|
- lib
|
@@ -287,8 +286,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
287
286
|
- !ruby/object:Gem::Version
|
288
287
|
version: '0'
|
289
288
|
requirements: []
|
290
|
-
rubygems_version: 3.
|
291
|
-
signing_key:
|
289
|
+
rubygems_version: 3.5.14
|
290
|
+
signing_key:
|
292
291
|
specification_version: 4
|
293
292
|
summary: Decidim debates module
|
294
293
|
test_files: []
|
@@ -1,18 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Decidim
|
4
|
-
module Debates
|
5
|
-
module Log
|
6
|
-
class ResourcePresenter < Decidim::Log::ResourcePresenter
|
7
|
-
private
|
8
|
-
|
9
|
-
# Private: Presents resource name.
|
10
|
-
#
|
11
|
-
# Returns an HTML-safe String.
|
12
|
-
def present_resource_name
|
13
|
-
Decidim::Debates::DebatePresenter.new(resource).title
|
14
|
-
end
|
15
|
-
end
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|