@artel/ru-artel-system 0.6.25229 → 0.6.25231

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (24) hide show
  1. package/package.json +1 -1
  2. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/220/321/200/321/202/320/265/320/273/321/214./320/260/321/200/321/202 +1 -1
  3. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/234/320/260/321/201/321/201/320/270/320/262./320/260/321/200/321/202 +3 -4
  4. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/234/320/260/321/202/321/200/320/270/321/206/320/260./320/260/321/200/321/202 +2 -2
  5. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/234/320/275/320/276/320/266/320/265/321/201/321/202/320/262/320/276./320/260/321/200/321/202 +1 -1
  6. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/236/320/261/321/212/320/265/320/272/321/202./320/260/321/200/321/202 +1 -1
  7. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/236/321/207/320/265/321/200/320/265/320/264/321/214./320/260/321/200/321/202 +1 -1
  8. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/237/320/265/321/200/320/265/320/262/320/276/320/264/321/213./320/260/321/200/321/202 +2 -2
  9. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/237/320/276/321/201/321/200/320/265/320/264/320/275/320/270/320/272/320/270./320/260/321/200/321/202 +32 -44
  10. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/241/320/273/320/276/320/262/320/260/321/200/321/214./320/260/321/200/321/202 +2 -2
  11. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/241/320/277/320/270/321/201/320/276/320/272./320/260/321/200/321/202 +2 -3
  12. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/241/321/202/320/265/320/272./320/260/321/200/321/202 +1 -1
  13. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/242/320/265/320/263./320/260/321/200/321/202 +2 -2
  14. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/242/320/265/320/272/321/201/321/202./320/260/321/200/321/202 +5 -5
  15. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214//320/242/320/265/320/272/321/201/321/202/320/276/320/262/320/270/320/272./320/260/321/200/321/202 +1 -1
  16. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/220/321/200/321/202/320/265/320/273/321/214./320/260/321/200/321/202 +1 -1
  17. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/234/320/260/321/201/321/201/320/270/320/262./320/260/321/200/321/202 +1 -6
  18. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/234/320/260/321/202/321/200/320/270/321/206/320/260./320/260/321/200/321/202 +1 -1
  19. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/236/321/207/320/265/321/200/320/265/320/264/321/214./320/260/321/200/321/202 +1 -1
  20. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/237/320/265/321/200/320/265/320/262/320/276/320/264/321/213./320/260/321/200/321/202 +1 -1
  21. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/241/320/277/320/270/321/201/320/276/320/272./320/260/321/200/321/202 +0 -5
  22. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/242/320/265/320/263./320/260/321/200/321/202 +2 -2
  23. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/242/320/265/320/272/321/201/321/202./320/260/321/200/321/202 +4 -4
  24. package//320/230/321/201/321/205/320/276/320/264/320/275/320/270/320/272/320/270//320/220/321/200/321/202/320/265/320/273/321/214./320/240/320/265/320/260/320/273/320/270/320/267/320/260/321/206/320/270/321/217./320/224/320/266/320/260/320/262/320/260/320/241/320/272/321/200/320/270/320/277/321/202//320/242/320/265/320/272/321/201/321/202/320/276/320/262/320/270/320/272./320/260/321/200/321/202 +1 -1
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@artel/ru-artel-system",
3
- "version": "0.6.25229",
3
+ "version": "0.6.25231",
4
4
  "description": "*А* Артель (RU)",
5
5
  "author": "Nezaboodka Team <contact@nezaboodka.com>",
6
6
  "license": "LGPL-3.0-or-later",
@@ -38,5 +38,5 @@
38
38
  // < 0 - если объект меньше другого
39
39
  // 0 - если объект равен другому
40
40
  // > 0 - если объект больше другого
41
- абстрактная функция сравнить-с(другой: Т?): Целое
41
+ функция сравнить-с(другой: Т?): Целое
42
42
  }
@@ -24,7 +24,7 @@
24
24
  функция отфильтровать(предикат: Предикат<Т>): Массив<Т>?
25
25
  функция для-каждого(действие: Действие<Т>)
26
26
 
27
- исправленная функция перебор(): Перебор<Т>
27
+ расширенная функция перебор(): Перебор<Т>
28
28
  }
29
29
 
30
30
  тип Массив<Т> = объект МассивЧитаемый<Т>, Перебираемый<Т>
@@ -58,11 +58,10 @@
58
58
  функция заполнить(элемент: Т)
59
59
  функция заполнить(элемент: Т, начало: Целое)
60
60
  функция заполнить(элемент: Т, начало: Целое, количество`: Целое)
61
- функция заполнить(элемент: Т, начало: Целое, конец: Целое)
62
61
 
63
62
  функция отсортировать(сравнение: Сравнение<Т>): Массив<Т>
64
63
 
65
- исправленная функция перебор(): Перебор<Т>
64
+ расширенная функция перебор(): Перебор<Т>
66
65
  }
67
66
 
68
67
  тип ФрагментМассива<Т> = простой объект Перебираемый<Т>
@@ -85,5 +84,5 @@
85
84
  функция фрагмент(начало`: Целое, количество`: Целое): ФрагментМассива<Т>
86
85
  функция в-массив(): Массив<Т>
87
86
 
88
- исправленная функция перебор(): Перебор<Т>
87
+ расширенная функция перебор(): Перебор<Т>
89
88
  }
@@ -11,7 +11,7 @@
11
11
  функция элементы-строки(строка: Целое): Перебираемый<Т>
12
12
  функция элементы-столбца(столбец: Целое): Перебираемый<Т>
13
13
 
14
- исправленная функция перебор(): Перебор<Т>
14
+ расширенная функция перебор(): Перебор<Т>
15
15
  }
16
16
 
17
17
  тип Матрица<Т> = объект МатрицаЧитаемая<Т>, Перебираемый<Т>
@@ -32,7 +32,7 @@
32
32
  функция элементы-строки(строка: Целое): Перебираемый<Т>
33
33
  функция элементы-столбца(столбец: Целое): Перебираемый<Т>
34
34
 
35
- исправленная функция перебор(): Перебор<Т>
35
+ расширенная функция перебор(): Перебор<Т>
36
36
 
37
37
  функция заполнить(элемент: Т)
38
38
  }
@@ -17,5 +17,5 @@
17
17
  функция удалить(элемент: Т): ДаНет
18
18
  функция очистить()
19
19
 
20
- исправленная функция перебор(): Перебор<Т>
20
+ расширенная функция перебор(): Перебор<Т>
21
21
  }
@@ -1,5 +1,5 @@
1
1
 
2
- тип Объект = объект
2
+ базовый тип Объект = объект
3
3
  {
4
4
  создание()
5
5
 
@@ -11,5 +11,5 @@
11
11
  функция содержит(элемент: Т): ДаНет
12
12
  функция очистить()
13
13
 
14
- исправленная функция перебор(): Перебор<Т>
14
+ расширенная функция перебор(): Перебор<Т>
15
15
  }
@@ -1,7 +1,7 @@
1
1
 
2
2
  тип Переводчик = аспект
3
3
  {
4
- абстрактная функция перевести-в-текст(шаблон: ШаблонТекста): Текст
4
+ функция перевести-в-текст(шаблон: ШаблонТекста): Текст
5
5
  }
6
6
 
7
7
  тип ШаблонТекстаПереводимый = объект ШаблонТекста
@@ -10,5 +10,5 @@
10
10
 
11
11
  создание(фрагменты`: Массив<Текст>, значения`: Массив<Объект>, переводчик`: Переводчик? = пусто)
12
12
 
13
- исправленная функция в-текст(): Текст
13
+ расширенная функция в-текст(): Текст
14
14
  }
@@ -11,55 +11,46 @@
11
11
 
12
12
  тип ПосредникПеременнойПакета<Т> = аспект
13
13
  {
14
- абстрактное
15
- {
16
- создание(начальное-значение: Т)
17
-
18
- функция прочитать(
19
- обозначение: ОбозначениеПеременной<Т>,
20
- место-чтения: МестоположениеСинтаксическогоУзла?): Т
21
-
22
- функция записать(
23
- значение: Т,
24
- обозначение: ОбозначениеПеременной<Т>,
25
- место-записи: МестоположениеСинтаксическогоУзла?)
26
- }
14
+ создание(начальное-значение: Т)
15
+
16
+ функция прочитать(
17
+ обозначение: ОбозначениеПеременной<Т>,
18
+ место-чтения: МестоположениеСинтаксическогоУзла?): Т
19
+
20
+ функция записать(
21
+ значение: Т,
22
+ обозначение: ОбозначениеПеременной<Т>,
23
+ место-записи: МестоположениеСинтаксическогоУзла?)
27
24
  }
28
25
 
29
26
  тип ПосредникПеременнойОбъекта<Т, В> = аспект
30
27
  {
31
- абстрактное
32
- {
33
- создание(начальное-значение: Т?)
34
-
35
- функция прочитать(
36
- объект-владелец: В,
37
- имя: Текст, // обозначение: ОбозначениеПеременной<Т>
38
- место-чтения: МестоположениеСинтаксическогоУзла?): Т
39
-
40
- функция записать(
41
- значение: Т,
42
- объект-владелец: В,
43
- имя: Текст, // обозначение: ОбозначениеПеременной<Т>
44
- место-записи: МестоположениеСинтаксическогоУзла?)
45
- }
28
+ создание(начальное-значение: Т?)
29
+
30
+ функция прочитать(
31
+ объект-владелец: В,
32
+ имя: Текст, // обозначение: ОбозначениеПеременной<Т>
33
+ место-чтения: МестоположениеСинтаксическогоУзла?): Т
34
+
35
+ функция записать(
36
+ значение: Т,
37
+ объект-владелец: В,
38
+ имя: Текст, // обозначение: ОбозначениеПеременной<Т>
39
+ место-записи: МестоположениеСинтаксическогоУзла?)
46
40
  }
47
41
 
48
42
  тип ПосредникПеременнойПромежуточной<Т> = аспект
49
43
  {
50
- абстрактное
51
- {
52
- создание(начальное-значение: Т)
53
-
54
- функция прочитать(
55
- обозначение: ОбозначениеПеременной<Т>,
56
- место-чтения: МестоположениеСинтаксическогоУзла?): Т
57
-
58
- функция записать(
59
- значение: Т,
60
- обозначение: ОбозначениеПеременной<Т>,
61
- место-записи: МестоположениеСинтаксическогоУзла?)
62
- }
44
+ создание(начальное-значение: Т)
45
+
46
+ функция прочитать(
47
+ обозначение: ОбозначениеПеременной<Т>,
48
+ место-чтения: МестоположениеСинтаксическогоУзла?): Т
49
+
50
+ функция записать(
51
+ значение: Т,
52
+ обозначение: ОбозначениеПеременной<Т>,
53
+ место-записи: МестоположениеСинтаксическогоУзла?)
63
54
  }
64
55
 
65
56
  // Посредник функции
@@ -73,7 +64,6 @@
73
64
 
74
65
  тип ПосредникФункцииПакета<П, Р> = аспект
75
66
  {
76
- абстрактная
77
67
  функция 'выполнить'(
78
68
  параметры: П,
79
69
  обозначение: ОбозначениеФункции<П, Р>,
@@ -82,7 +72,6 @@
82
72
 
83
73
  тип ПосредникФункцииОбъекта<В, П, Р> = аспект
84
74
  {
85
- абстрактная
86
75
  функция 'выполнить'(
87
76
  параметры: П,
88
77
  объект-владелец: В,
@@ -92,7 +81,6 @@
92
81
 
93
82
  тип ПосредникФункцииВложенной<П, Р> = аспект
94
83
  {
95
- абстрактная
96
84
  функция 'выполнить'(
97
85
  параметры: П,
98
86
  обозначение: ОбозначениеФункции<П, Р>,
@@ -9,7 +9,7 @@
9
9
  функция ключи(): Перебираемый<К>
10
10
  функция значения(): Перебираемый<З>
11
11
 
12
- исправленная функция перебор(): Перебор<ЭлементСловаря<К, З>>
12
+ расширенная функция перебор(): Перебор<ЭлементСловаря<К, З>>
13
13
  }
14
14
 
15
15
  тип Словарь<К: Объект, З> = объект СловарьЧитаемый<К, З>, Перебираемый<ЭлементСловаря<К, З>>
@@ -30,7 +30,7 @@
30
30
  функция удалить(ключ: К): ДаНет
31
31
  функция очистить()
32
32
 
33
- исправленная функция перебор(): Перебор<ЭлементСловаря<К, З>>
33
+ расширенная функция перебор(): Перебор<ЭлементСловаря<К, З>>
34
34
  }
35
35
 
36
36
  тип ЭлементСловаря<К: Объект, З> = /*простой*/ объект
@@ -23,7 +23,7 @@
23
23
  функция отфильтровать(предикат: Предикат<Т>): Список<Т>?
24
24
  функция для-каждого(действие: Действие<Т>)
25
25
 
26
- исправленная функция перебор(): Перебор<Т>
26
+ расширенная функция перебор(): Перебор<Т>
27
27
  }
28
28
 
29
29
  тип Список<Т> = объект СписокЧитаемый<Т>, Перебираемый<Т>
@@ -68,9 +68,8 @@
68
68
  функция заполнить(элемент: Т)
69
69
  функция заполнить(элемент: Т, начало: Целое)
70
70
  функция заполнить(элемент: Т, начало: Целое, количество`: Целое)
71
- функция заполнить(элемент: Т, начало: Целое, конец: Целое)
72
71
 
73
72
  функция отсортировать(сравнение: Сравнение<Т>): Список<Т>
74
73
 
75
- исправленная функция перебор(): Перебор<Т>
74
+ расширенная функция перебор(): Перебор<Т>
76
75
  }
@@ -11,5 +11,5 @@
11
11
  функция содержит(элемент: Т): ДаНет
12
12
  функция очистить()
13
13
 
14
- исправленная функция перебор(): Перебор<Т>
14
+ расширенная функция перебор(): Перебор<Т>
15
15
  }
@@ -1,10 +1,10 @@
1
1
 
2
- тип Тег = объект Объект
2
+ базовый тип Тег = объект Объект
3
3
  {
4
4
  создание()
5
5
  }
6
6
 
7
- тип ТегКомпилятора = объект Тег
7
+ базовый тип ТегКомпилятора = объект Тег
8
8
  {
9
9
  создание()
10
10
  }
@@ -51,7 +51,7 @@
51
51
  функция обрезать-конец(): Текст
52
52
  функция заменить-все(искомый-текст: Текст, новый-текст: Текст): Текст
53
53
 
54
- исправленная функция перебор(): Перебор<Символ>
54
+ расширенная функция перебор(): Перебор<Символ>
55
55
 
56
56
  всеобщее конст пустой: Текст
57
57
 
@@ -84,18 +84,18 @@
84
84
  функция позиция-текста(текст: Текст, начальная-позиция: Целое): Целое
85
85
  функция фрагмент(начало`: Целое, длина`: Целое): ФрагментТекста
86
86
 
87
- исправленная функция в-текст(): Текст
88
- исправленная функция перебор(): Перебор<Символ>
87
+ расширенная функция в-текст(): Текст
88
+ расширенная функция перебор(): Перебор<Символ>
89
89
 
90
90
  всеобщее конст пустой: ФрагментТекста
91
91
  }
92
92
 
93
- тип ШаблонТекста = объект
93
+ базовый тип ШаблонТекста = объект
94
94
  {
95
95
  конст фрагменты: Массив<Текст>
96
96
  конст значения: Массив<Объект?>
97
97
 
98
98
  создание(фрагменты`: Массив<Текст>, значения`: Массив<Объект?>)
99
99
 
100
- исправленная функция в-текст(): Текст
100
+ расширенная функция в-текст(): Текст
101
101
  }
@@ -35,5 +35,5 @@
35
35
 
36
36
  функция очистить()
37
37
 
38
- исправленная функция в-текст(): Текст
38
+ расширенная функция в-текст(): Текст
39
39
  }
@@ -109,11 +109,6 @@
109
109
  основа.fill(элемент, начало, начало + количество`)
110
110
  }
111
111
 
112
- функция заполнить(элемент: Т, начало: А.Целое, конец: А.Целое)
113
- {
114
- основа.fill(элемент, начало, конец)
115
- }
116
-
117
112
  функция отсортировать(сравнение: А.Сравнение<Т>): А.Массив<Т>
118
113
  {
119
114
  основа.sort(сравнение) как А.Массив<Т>
@@ -174,7 +169,7 @@
174
169
  вернуть массив.скопировать(начало, количество)
175
170
  }
176
171
 
177
- исправленная функция перебор(): А.Перебор<Т>
172
+ расширенная функция перебор(): А.Перебор<Т>
178
173
  {
179
174
  пусть н = начало
180
175
  пока н < количество
@@ -64,7 +64,7 @@
64
64
  массив.fill(элемент)
65
65
  }
66
66
 
67
- исправленная функция перебор(): А.Перебор<Т>
67
+ расширенная функция перебор(): А.Перебор<Т>
68
68
  {
69
69
  вернуть массив.перебор()
70
70
  }
@@ -77,7 +77,7 @@
77
77
  количество = 0
78
78
  }
79
79
 
80
- исправленная функция перебор(): А.Перебор<Т>
80
+ расширенная функция перебор(): А.Перебор<Т>
81
81
  {
82
82
  если последний != пусто
83
83
  {
@@ -11,7 +11,7 @@
11
11
  переводчик = переводчик`
12
12
  }
13
13
 
14
- исправленная функция в-текст(): А.Текст
14
+ расширенная функция в-текст(): А.Текст
15
15
  {
16
16
  результат = переводчик?.перевести-в-текст(объект) ?? основа.в-текст()
17
17
  }
@@ -173,11 +173,6 @@
173
173
  основа.fill(элемент, начало, начало + количество`)
174
174
  }
175
175
 
176
- функция заполнить(элемент: Т, начало: А.Целое, конец: А.Целое)
177
- {
178
- основа.fill(элемент, начало, конец)
179
- }
180
-
181
176
  функция отсортировать(сравнение: А.Сравнение<Т>): А.Список<Т>
182
177
  {
183
178
  основа.sort(сравнение) как А.Список<Т>
@@ -1,11 +1,11 @@
1
1
  подключить А = Артель
2
2
 
3
3
  скрыто(в пакете)
4
- тип Тег = объект А.Объект
4
+ базовый тип Тег = объект А.Объект
5
5
  {
6
6
  }
7
7
 
8
8
  скрыто(в пакете)
9
- тип ТегКомпилятора = объект Тег
9
+ базовый тип ТегКомпилятора = объект Тег
10
10
  {
11
11
  }
@@ -278,12 +278,12 @@
278
278
  вернуть А.ФрагментТекста(текст, начало + начало`, длина`)
279
279
  }
280
280
 
281
- исправленная функция в-текст(): А.Текст
281
+ расширенная функция в-текст(): А.Текст
282
282
  {
283
283
  вернуть текст.скопировать(начало, длина)
284
284
  }
285
285
 
286
- исправленная функция перебор(): А.Перебор<А.Символ>
286
+ расширенная функция перебор(): А.Перебор<А.Символ>
287
287
  {
288
288
  пусть п = начало
289
289
  пока п < длина
@@ -294,7 +294,7 @@
294
294
  }
295
295
 
296
296
  скрыто(в пакете)
297
- тип ШаблонТекста = объект
297
+ базовый тип ШаблонТекста = объект
298
298
  {
299
299
  конст фрагменты: А.Массив<А.Текст>
300
300
  конст значения: А.Массив<А.Объект?>
@@ -305,7 +305,7 @@
305
305
  значения = значения`
306
306
  }
307
307
 
308
- исправленная функция в-текст(): А.Текст
308
+ расширенная функция в-текст(): А.Текст
309
309
  {
310
310
  результат = ""
311
311
  для ф, н из фрагменты