@kalisio/kdk 2.6.3 → 2.6.4
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.
- package/.vscode/settings.json +5 -0
- package/coverage/core/api/application.js.html +398 -392
- package/coverage/core/api/authentication.js.html +187 -352
- package/coverage/core/api/db.js.html +126 -165
- package/coverage/core/api/hooks/hooks.authentication.js.html +196 -22
- package/coverage/core/api/hooks/hooks.authorisations.js.html +662 -383
- package/coverage/{lcov-report/core/api/hooks/hooks.tags.js.html → core/api/hooks/hooks.groups.js.html} +76 -100
- package/coverage/core/api/hooks/hooks.logger.js.html +41 -41
- package/coverage/core/api/hooks/hooks.model.js.html +101 -113
- package/coverage/core/api/hooks/hooks.organisations.js.html +541 -0
- package/coverage/core/api/hooks/hooks.push.js.html +97 -112
- package/coverage/core/api/hooks/hooks.query.js.html +222 -270
- package/coverage/core/api/hooks/hooks.schemas.js.html +123 -123
- package/coverage/core/api/hooks/hooks.service.js.html +1 -1
- package/coverage/core/api/hooks/hooks.storage.js.html +1 -1
- package/coverage/core/api/hooks/hooks.users.js.html +447 -255
- package/coverage/core/api/hooks/index.html +122 -107
- package/coverage/core/api/hooks/index.js.html +10 -4
- package/coverage/core/api/index.html +61 -46
- package/coverage/core/api/index.js.html +9 -9
- package/coverage/core/api/marshall.js.html +9 -9
- package/coverage/{lcov-report/map/api/models/styles.model.mongodb.js.html → core/api/models/groups.model.mongodb.js.html} +7 -10
- package/coverage/core/api/models/index.html +50 -35
- package/coverage/core/api/models/messages.model.mongodb.js.html +27 -39
- package/coverage/{lcov-report/core/api/models/configurations.model.mongodb.js.html → core/api/models/organisations.model.mongodb.js.html} +7 -10
- package/coverage/core/api/models/tags.model.mongodb.js.html +32 -26
- package/coverage/core/api/models/users.model.mongodb.js.html +10 -10
- package/coverage/core/api/services/account/account.hooks.js.html +5 -5
- package/coverage/core/api/services/account/account.service.js.html +127 -127
- package/coverage/core/api/services/account/index.html +22 -22
- package/coverage/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/core/api/services/authorisations/authorisations.service.js.html +222 -213
- package/coverage/core/api/services/authorisations/index.html +21 -21
- package/coverage/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/core/api/services/databases/index.html +1 -1
- package/coverage/{lcov-report/core/api/services/configurations/configurations.hooks.js.html → core/api/services/groups/groups.hooks.js.html} +10 -16
- package/coverage/core/api/services/{configurations → groups}/index.html +8 -8
- package/coverage/core/api/services/import-export/import-export.hooks.js.html +76 -76
- package/coverage/core/api/services/import-export/import-export.service.js.html +32 -32
- package/coverage/core/api/services/import-export/index.html +32 -32
- package/coverage/core/api/services/index.html +21 -21
- package/coverage/core/api/services/index.js.html +142 -313
- package/coverage/core/api/services/mailer/index.html +32 -32
- package/coverage/core/api/services/mailer/mailer.hooks.js.html +80 -80
- package/coverage/core/api/services/mailer/mailer.service.js.html +32 -32
- package/coverage/core/api/services/messages/index.html +21 -21
- package/coverage/core/api/services/messages/messages.hooks.js.html +76 -112
- package/coverage/{lcov-report/map/api/services/styles → core/api/services/organisations}/index.html +25 -10
- package/coverage/core/api/services/{configurations/configurations.hooks.js.html → organisations/organisations.hooks.js.html} +10 -16
- package/coverage/core/api/services/organisations/organisations.service.js.html +343 -0
- package/coverage/core/api/services/push/index.html +32 -32
- package/coverage/core/api/services/push/push.hooks.js.html +80 -80
- package/coverage/core/api/services/push/push.service.js.html +34 -34
- package/coverage/core/api/services/storage/index.html +29 -29
- package/coverage/core/api/services/storage/storage.hooks.js.html +80 -80
- package/coverage/core/api/services/storage/storage.service.js.html +29 -29
- package/coverage/core/api/services/tags/index.html +21 -21
- package/coverage/core/api/services/tags/tags.hooks.js.html +71 -119
- package/coverage/core/api/services/users/index.html +12 -27
- package/coverage/core/api/services/users/users.hooks.js.html +11 -14
- package/coverage/core/api/utils.js.html +118 -0
- package/coverage/core/common/errors.js.html +1 -1
- package/coverage/core/common/index.html +27 -42
- package/coverage/core/common/index.js.html +1 -1
- package/coverage/core/common/permissions.js.html +472 -166
- package/coverage/core/common/schema.js.html +4 -4
- package/coverage/core/common/utils.js.html +25 -31
- package/coverage/index.html +192 -192
- package/coverage/lcov-report/core/api/application.js.html +398 -392
- package/coverage/lcov-report/core/api/authentication.js.html +187 -352
- package/coverage/lcov-report/core/api/db.js.html +126 -165
- package/coverage/lcov-report/core/api/hooks/hooks.authentication.js.html +196 -22
- package/coverage/lcov-report/core/api/hooks/hooks.authorisations.js.html +662 -383
- package/coverage/{core/api/hooks/hooks.tags.js.html → lcov-report/core/api/hooks/hooks.groups.js.html} +76 -100
- package/coverage/lcov-report/core/api/hooks/hooks.logger.js.html +41 -41
- package/coverage/lcov-report/core/api/hooks/hooks.model.js.html +101 -113
- package/coverage/lcov-report/core/api/hooks/hooks.organisations.js.html +541 -0
- package/coverage/lcov-report/core/api/hooks/hooks.push.js.html +97 -112
- package/coverage/lcov-report/core/api/hooks/hooks.query.js.html +222 -270
- package/coverage/lcov-report/core/api/hooks/hooks.schemas.js.html +123 -123
- package/coverage/lcov-report/core/api/hooks/hooks.service.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.storage.js.html +1 -1
- package/coverage/lcov-report/core/api/hooks/hooks.users.js.html +447 -255
- package/coverage/lcov-report/core/api/hooks/index.html +122 -107
- package/coverage/lcov-report/core/api/hooks/index.js.html +10 -4
- package/coverage/lcov-report/core/api/index.html +61 -46
- package/coverage/lcov-report/core/api/index.js.html +9 -9
- package/coverage/lcov-report/core/api/marshall.js.html +9 -9
- package/coverage/{map/api/models/styles.model.mongodb.js.html → lcov-report/core/api/models/groups.model.mongodb.js.html} +7 -10
- package/coverage/lcov-report/core/api/models/index.html +50 -35
- package/coverage/lcov-report/core/api/models/messages.model.mongodb.js.html +27 -39
- package/coverage/{core/api/models/configurations.model.mongodb.js.html → lcov-report/core/api/models/organisations.model.mongodb.js.html} +7 -10
- package/coverage/lcov-report/core/api/models/tags.model.mongodb.js.html +32 -26
- package/coverage/lcov-report/core/api/models/users.model.mongodb.js.html +10 -10
- package/coverage/lcov-report/core/api/services/account/account.hooks.js.html +5 -5
- package/coverage/lcov-report/core/api/services/account/account.service.js.html +127 -127
- package/coverage/lcov-report/core/api/services/account/index.html +22 -22
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/authorisations/authorisations.service.js.html +222 -213
- package/coverage/lcov-report/core/api/services/authorisations/index.html +21 -21
- package/coverage/lcov-report/core/api/services/databases/databases.hooks.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/databases.service.js.html +1 -1
- package/coverage/lcov-report/core/api/services/databases/index.html +1 -1
- package/coverage/lcov-report/{map/api/services/styles/styles.hooks.js.html → core/api/services/groups/groups.hooks.js.html} +12 -45
- package/coverage/lcov-report/core/api/services/{configurations → groups}/index.html +8 -8
- package/coverage/lcov-report/core/api/services/import-export/import-export.hooks.js.html +76 -76
- package/coverage/lcov-report/core/api/services/import-export/import-export.service.js.html +32 -32
- package/coverage/lcov-report/core/api/services/import-export/index.html +32 -32
- package/coverage/lcov-report/core/api/services/index.html +21 -21
- package/coverage/lcov-report/core/api/services/index.js.html +142 -313
- package/coverage/lcov-report/core/api/services/mailer/index.html +32 -32
- package/coverage/lcov-report/core/api/services/mailer/mailer.hooks.js.html +80 -80
- package/coverage/lcov-report/core/api/services/mailer/mailer.service.js.html +32 -32
- package/coverage/lcov-report/core/api/services/messages/index.html +21 -21
- package/coverage/lcov-report/core/api/services/messages/messages.hooks.js.html +76 -112
- package/coverage/{map/api/services/styles → lcov-report/core/api/services/organisations}/index.html +25 -10
- package/coverage/{map/api/services/styles/styles.hooks.js.html → lcov-report/core/api/services/organisations/organisations.hooks.js.html} +12 -45
- package/coverage/lcov-report/core/api/services/organisations/organisations.service.js.html +343 -0
- package/coverage/lcov-report/core/api/services/push/index.html +32 -32
- package/coverage/lcov-report/core/api/services/push/push.hooks.js.html +80 -80
- package/coverage/lcov-report/core/api/services/push/push.service.js.html +34 -34
- package/coverage/lcov-report/core/api/services/storage/index.html +29 -29
- package/coverage/lcov-report/core/api/services/storage/storage.hooks.js.html +80 -80
- package/coverage/lcov-report/core/api/services/storage/storage.service.js.html +29 -29
- package/coverage/lcov-report/core/api/services/tags/index.html +21 -21
- package/coverage/lcov-report/core/api/services/tags/tags.hooks.js.html +71 -119
- package/coverage/lcov-report/core/api/services/users/index.html +12 -27
- package/coverage/lcov-report/core/api/services/users/users.hooks.js.html +11 -14
- package/coverage/lcov-report/core/api/utils.js.html +118 -0
- package/coverage/lcov-report/core/common/errors.js.html +1 -1
- package/coverage/lcov-report/core/common/index.html +27 -42
- package/coverage/lcov-report/core/common/index.js.html +1 -1
- package/coverage/lcov-report/core/common/permissions.js.html +472 -166
- package/coverage/lcov-report/core/common/schema.js.html +4 -4
- package/coverage/lcov-report/core/common/utils.js.html +25 -31
- package/coverage/lcov-report/index.html +192 -192
- package/coverage/lcov-report/map/api/hooks/hooks.catalog.js.html +31 -169
- package/coverage/lcov-report/map/api/hooks/hooks.features.js.html +1 -1
- package/coverage/lcov-report/map/api/hooks/hooks.query.js.html +32 -32
- package/coverage/lcov-report/map/api/hooks/index.html +5 -5
- package/coverage/lcov-report/map/api/hooks/index.js.html +1 -1
- package/coverage/lcov-report/map/api/index.html +1 -1
- package/coverage/lcov-report/map/api/index.js.html +1 -1
- package/coverage/lcov-report/map/api/marshall.js.html +1 -1
- package/coverage/lcov-report/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/catalog.model.mongodb.js.html +7 -82
- package/coverage/lcov-report/map/api/models/features.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/models/index.html +7 -22
- package/coverage/lcov-report/map/api/models/projects.model.mongodb.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/alerts/index.html +1 -1
- package/coverage/lcov-report/map/api/services/catalog/catalog.hooks.js.html +12 -39
- package/coverage/lcov-report/map/api/services/catalog/index.html +5 -5
- package/coverage/lcov-report/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/lcov-report/map/api/services/daptiles/index.html +1 -1
- package/coverage/lcov-report/map/api/services/features/features.hooks.js.html +11 -86
- package/coverage/lcov-report/map/api/services/features/features.service.js.html +4 -307
- package/coverage/lcov-report/map/api/services/features/index.html +7 -7
- package/coverage/lcov-report/map/api/services/index.html +5 -5
- package/coverage/lcov-report/map/api/services/index.js.html +50 -326
- package/coverage/lcov-report/map/api/services/projects/index.html +1 -1
- package/coverage/lcov-report/map/api/services/projects/projects.hooks.js.html +1 -1
- package/coverage/lcov-report/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/errors.js.html +1 -1
- package/coverage/lcov-report/map/common/geotiff-grid-source.js.html +10 -7
- package/coverage/lcov-report/map/common/grid.js.html +1 -1
- package/coverage/lcov-report/map/common/index.html +19 -19
- package/coverage/lcov-report/map/common/index.js.html +1 -1
- package/coverage/lcov-report/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/moment-utils.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/opendap-utils.js.html +7 -4
- package/coverage/lcov-report/map/common/permissions.js.html +4 -10
- package/coverage/lcov-report/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/lcov-report/map/common/tms-utils.js.html +12 -9
- package/coverage/lcov-report/map/common/wcs-grid-source.js.html +3 -3
- package/coverage/lcov-report/map/common/wcs-utils.js.html +15 -12
- package/coverage/lcov-report/map/common/weacast-grid-source.js.html +2 -2
- package/coverage/lcov-report/map/common/wfs-utils.js.html +17 -14
- package/coverage/lcov-report/map/common/wms-utils.js.html +12 -30
- package/coverage/lcov-report/map/common/wmts-utils.js.html +13 -10
- package/coverage/lcov.info +4096 -4359
- package/coverage/map/api/hooks/hooks.catalog.js.html +31 -169
- package/coverage/map/api/hooks/hooks.features.js.html +1 -1
- package/coverage/map/api/hooks/hooks.query.js.html +32 -32
- package/coverage/map/api/hooks/index.html +5 -5
- package/coverage/map/api/hooks/index.js.html +1 -1
- package/coverage/map/api/index.html +1 -1
- package/coverage/map/api/index.js.html +1 -1
- package/coverage/map/api/marshall.js.html +1 -1
- package/coverage/map/api/models/alerts.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/catalog.model.mongodb.js.html +7 -82
- package/coverage/map/api/models/features.model.mongodb.js.html +1 -1
- package/coverage/map/api/models/index.html +7 -22
- package/coverage/map/api/models/projects.model.mongodb.js.html +1 -1
- package/coverage/map/api/services/alerts/alerts.hooks.js.html +1 -1
- package/coverage/map/api/services/alerts/alerts.service.js.html +1 -1
- package/coverage/map/api/services/alerts/index.html +1 -1
- package/coverage/map/api/services/catalog/catalog.hooks.js.html +12 -39
- package/coverage/map/api/services/catalog/index.html +5 -5
- package/coverage/map/api/services/daptiles/daptiles.service.js.html +1 -1
- package/coverage/map/api/services/daptiles/index.html +1 -1
- package/coverage/map/api/services/features/features.hooks.js.html +11 -86
- package/coverage/map/api/services/features/features.service.js.html +4 -307
- package/coverage/map/api/services/features/index.html +7 -7
- package/coverage/map/api/services/index.html +5 -5
- package/coverage/map/api/services/index.js.html +50 -326
- package/coverage/map/api/services/projects/index.html +1 -1
- package/coverage/map/api/services/projects/projects.hooks.js.html +1 -1
- package/coverage/map/common/dynamic-grid-source.js.html +1 -1
- package/coverage/map/common/errors.js.html +1 -1
- package/coverage/map/common/geotiff-grid-source.js.html +10 -7
- package/coverage/map/common/grid.js.html +1 -1
- package/coverage/map/common/index.html +19 -19
- package/coverage/map/common/index.js.html +1 -1
- package/coverage/map/common/meteo-model-grid-source.js.html +1 -1
- package/coverage/map/common/moment-utils.js.html +1 -1
- package/coverage/map/common/opendap-grid-source.js.html +1 -1
- package/coverage/map/common/opendap-utils.js.html +7 -4
- package/coverage/map/common/permissions.js.html +4 -10
- package/coverage/map/common/time-based-grid-source.js.html +1 -1
- package/coverage/map/common/tms-utils.js.html +12 -9
- package/coverage/map/common/wcs-grid-source.js.html +3 -3
- package/coverage/map/common/wcs-utils.js.html +15 -12
- package/coverage/map/common/weacast-grid-source.js.html +2 -2
- package/coverage/map/common/wfs-utils.js.html +17 -14
- package/coverage/map/common/wms-utils.js.html +12 -30
- package/coverage/map/common/wmts-utils.js.html +13 -10
- package/coverage/tmp/coverage-151166-1723543324307-0.json +1 -0
- package/coverage/tmp/coverage-151178-1723543324283-0.json +1 -0
- package/coverage/tmp/coverage-151189-1723543324271-0.json +1 -0
- package/coverage/tmp/coverage-151201-1723543324248-0.json +1 -0
- package/coverage/tmp/coverage-151208-1723543324227-0.json +1 -0
- package/extras/tours/pane.top.js +9 -0
- package/map/client/i18n/map_en.json +2 -1
- package/map/client/i18n/map_fr.json +2 -1
- package/package.json +1 -1
- package/test/api/core/test-log-2024-04-22.log +84 -0
- package/test/api/core/{test-log-2025-10-03.log → test-log-2024-04-23.log} +9 -4
- package/test/api/core/test-log-2024-08-13.log +3 -0
- package/client/css/core.variables.scss +0 -72
- package/client/i18n/core_en.json +0 -744
- package/client/i18n/core_fr.json +0 -744
- package/client/i18n/map_en.json +0 -800
- package/client/i18n/map_fr.json +0 -800
- package/client/kdk.client.css +0 -47
- package/client/kdk.client.js +0 -41097
- package/client/kdk.client.map.css +0 -47
- package/client/kdk.client.map.js +0 -38182
- package/client/kdk.client.map.min.css +0 -1
- package/client/kdk.client.map.min.js +0 -27032
- package/client/kdk.client.min.css +0 -1
- package/client/kdk.client.min.js +0 -29074
- package/client/schemas/capture.create.json +0 -132
- package/client/schemas/catalog.update.json +0 -44
- package/client/schemas/messages.update.json +0 -16
- package/client/schemas/projects.create.json +0 -52
- package/client/schemas/projects.update.json +0 -52
- package/client/schemas/settings.update.json +0 -286
- package/client/schemas/tags.update.json +0 -35
- package/client/schemas/users.update-profile.json +0 -34
- package/coverage/core/api/services/users/users.service.js.html +0 -100
- package/coverage/core/common/utils.offline.js.html +0 -199
- package/coverage/lcov-report/core/api/services/users/users.service.js.html +0 -100
- package/coverage/lcov-report/core/common/utils.offline.js.html +0 -199
- package/coverage/tmp/coverage-222524-1765963609350-0.json +0 -1
- package/coverage/tmp/coverage-222536-1765963609335-0.json +0 -1
- package/coverage/tmp/coverage-222547-1765963609324-0.json +0 -1
- package/coverage/tmp/coverage-222559-1765963609309-0.json +0 -1
- package/coverage/tmp/coverage-222566-1765963609278-0.json +0 -1
- package/test/api/core/test-log-2025-07-31.log +0 -15
- package/test/api/core/test-log-2025-11-12.log +0 -117
- package/test/api/core/test-log-2025-11-27.log +0 -0
- package/test/api/core/test-log-2025-11-28.log +0 -17
- package/test/api/core/test-log-2025-12-09.log +0 -148
- package/test/api/core/test-log-2025-12-17.log +0 -58
- package/test/api/core/test-log-2026-01-29.log +0 -17
- package/test/api/map/test-log-2025-07-23.log +0 -1
- package/test/api/map/test-log-2025-11-28.log +0 -33
- package/test/api/map/test-log-2025-12-10.log +0 -2
- package/test/api/map/test-log-2026-01-06.log +0 -26
- /package/test/api/{core/test-log-2025-11-10.log → map/test-log-2025-03-08.log} +0 -0
|
@@ -23,30 +23,30 @@
|
|
|
23
23
|
<div class='clearfix'>
|
|
24
24
|
|
|
25
25
|
<div class='fl pad1y space-right2'>
|
|
26
|
-
<span class="strong">
|
|
26
|
+
<span class="strong">49.74% </span>
|
|
27
27
|
<span class="quiet">Statements</span>
|
|
28
|
-
<span class='fraction'>
|
|
28
|
+
<span class='fraction'>296/595</span>
|
|
29
29
|
</div>
|
|
30
30
|
|
|
31
31
|
|
|
32
32
|
<div class='fl pad1y space-right2'>
|
|
33
|
-
<span class="strong">
|
|
33
|
+
<span class="strong">54.71% </span>
|
|
34
34
|
<span class="quiet">Branches</span>
|
|
35
|
-
<span class='fraction'>
|
|
35
|
+
<span class='fraction'>29/53</span>
|
|
36
36
|
</div>
|
|
37
37
|
|
|
38
38
|
|
|
39
39
|
<div class='fl pad1y space-right2'>
|
|
40
|
-
<span class="strong">
|
|
40
|
+
<span class="strong">56.52% </span>
|
|
41
41
|
<span class="quiet">Functions</span>
|
|
42
|
-
<span class='fraction'>
|
|
42
|
+
<span class='fraction'>13/23</span>
|
|
43
43
|
</div>
|
|
44
44
|
|
|
45
45
|
|
|
46
46
|
<div class='fl pad1y space-right2'>
|
|
47
|
-
<span class="strong">
|
|
47
|
+
<span class="strong">49.74% </span>
|
|
48
48
|
<span class="quiet">Lines</span>
|
|
49
|
-
<span class='fraction'>
|
|
49
|
+
<span class='fraction'>296/595</span>
|
|
50
50
|
</div>
|
|
51
51
|
|
|
52
52
|
|
|
@@ -61,7 +61,7 @@
|
|
|
61
61
|
</div>
|
|
62
62
|
</template>
|
|
63
63
|
</div>
|
|
64
|
-
<div class='status-line
|
|
64
|
+
<div class='status-line low'></div>
|
|
65
65
|
<pre><table class="coverage">
|
|
66
66
|
<tr><td class="line-count quiet"><a name='L1'></a><a href='#L1'>1</a>
|
|
67
67
|
<a name='L2'></a><a href='#L2'>2</a>
|
|
@@ -656,7 +656,11 @@
|
|
|
656
656
|
<a name='L591'></a><a href='#L591'>591</a>
|
|
657
657
|
<a name='L592'></a><a href='#L592'>592</a>
|
|
658
658
|
<a name='L593'></a><a href='#L593'>593</a>
|
|
659
|
-
<a name='L594'></a><a href='#L594'>594</a
|
|
659
|
+
<a name='L594'></a><a href='#L594'>594</a>
|
|
660
|
+
<a name='L595'></a><a href='#L595'>595</a>
|
|
661
|
+
<a name='L596'></a><a href='#L596'>596</a></td><td class="line-coverage quiet"><span class="cline-any cline-yes">1x</span>
|
|
662
|
+
<span class="cline-any cline-yes">1x</span>
|
|
663
|
+
<span class="cline-any cline-yes">1x</span>
|
|
660
664
|
<span class="cline-any cline-yes">1x</span>
|
|
661
665
|
<span class="cline-any cline-yes">1x</span>
|
|
662
666
|
<span class="cline-any cline-yes">1x</span>
|
|
@@ -695,65 +699,65 @@
|
|
|
695
699
|
<span class="cline-any cline-no"> </span>
|
|
696
700
|
<span class="cline-any cline-yes">1x</span>
|
|
697
701
|
<span class="cline-any cline-yes">1x</span>
|
|
698
|
-
<span class="cline-any cline-yes">
|
|
699
|
-
<span class="cline-any cline-yes">
|
|
700
|
-
<span class="cline-any cline-yes">
|
|
701
|
-
<span class="cline-any cline-no"> </span>
|
|
702
|
-
<span class="cline-any cline-no"> </span>
|
|
703
|
-
<span class="cline-any cline-no"> </span>
|
|
704
|
-
<span class="cline-any cline-yes">
|
|
705
|
-
<span class="cline-any cline-yes">
|
|
706
|
-
<span class="cline-any cline-yes">
|
|
707
|
-
<span class="cline-any cline-yes">
|
|
708
|
-
<span class="cline-any cline-yes">
|
|
709
|
-
<span class="cline-any cline-yes">
|
|
710
|
-
<span class="cline-any cline-yes">
|
|
711
|
-
<span class="cline-any cline-yes">
|
|
712
|
-
<span class="cline-any cline-yes">
|
|
713
|
-
<span class="cline-any cline-yes">
|
|
714
|
-
<span class="cline-any cline-yes">
|
|
715
|
-
<span class="cline-any cline-yes">
|
|
716
|
-
<span class="cline-any cline-yes">
|
|
717
|
-
<span class="cline-any cline-yes">
|
|
718
|
-
<span class="cline-any cline-yes">
|
|
719
|
-
<span class="cline-any cline-yes">
|
|
720
|
-
<span class="cline-any cline-yes">
|
|
721
|
-
<span class="cline-any cline-yes">
|
|
722
|
-
<span class="cline-any cline-yes">
|
|
723
|
-
<span class="cline-any cline-yes">
|
|
724
|
-
<span class="cline-any cline-yes">
|
|
725
|
-
<span class="cline-any cline-yes">
|
|
726
|
-
<span class="cline-any cline-yes">
|
|
727
|
-
<span class="cline-any cline-yes">
|
|
728
|
-
<span class="cline-any cline-yes">
|
|
729
|
-
<span class="cline-any cline-yes">
|
|
730
|
-
<span class="cline-any cline-yes">
|
|
731
|
-
<span class="cline-any cline-yes">
|
|
732
|
-
<span class="cline-any cline-yes">
|
|
733
|
-
<span class="cline-any cline-yes">
|
|
734
|
-
<span class="cline-any cline-yes">
|
|
735
|
-
<span class="cline-any cline-yes">
|
|
736
|
-
<span class="cline-any cline-yes">
|
|
737
|
-
<span class="cline-any cline-yes">
|
|
738
|
-
<span class="cline-any cline-yes">
|
|
739
|
-
<span class="cline-any cline-yes">
|
|
740
|
-
<span class="cline-any cline-yes">
|
|
741
|
-
<span class="cline-any cline-no"> </span>
|
|
742
|
-
<span class="cline-any cline-no"> </span>
|
|
743
|
-
<span class="cline-any cline-yes">
|
|
744
|
-
<span class="cline-any cline-yes">
|
|
745
|
-
<span class="cline-any cline-yes">
|
|
702
|
+
<span class="cline-any cline-yes">21x</span>
|
|
703
|
+
<span class="cline-any cline-yes">21x</span>
|
|
704
|
+
<span class="cline-any cline-yes">21x</span>
|
|
705
|
+
<span class="cline-any cline-no"> </span>
|
|
706
|
+
<span class="cline-any cline-no"> </span>
|
|
707
|
+
<span class="cline-any cline-no"> </span>
|
|
708
|
+
<span class="cline-any cline-yes">21x</span>
|
|
709
|
+
<span class="cline-any cline-yes">21x</span>
|
|
710
|
+
<span class="cline-any cline-yes">21x</span>
|
|
711
|
+
<span class="cline-any cline-yes">21x</span>
|
|
712
|
+
<span class="cline-any cline-yes">21x</span>
|
|
713
|
+
<span class="cline-any cline-yes">21x</span>
|
|
714
|
+
<span class="cline-any cline-yes">21x</span>
|
|
715
|
+
<span class="cline-any cline-yes">21x</span>
|
|
716
|
+
<span class="cline-any cline-yes">21x</span>
|
|
717
|
+
<span class="cline-any cline-yes">21x</span>
|
|
718
|
+
<span class="cline-any cline-yes">21x</span>
|
|
719
|
+
<span class="cline-any cline-yes">21x</span>
|
|
720
|
+
<span class="cline-any cline-yes">21x</span>
|
|
721
|
+
<span class="cline-any cline-yes">21x</span>
|
|
722
|
+
<span class="cline-any cline-yes">21x</span>
|
|
723
|
+
<span class="cline-any cline-yes">21x</span>
|
|
724
|
+
<span class="cline-any cline-yes">21x</span>
|
|
725
|
+
<span class="cline-any cline-yes">21x</span>
|
|
726
|
+
<span class="cline-any cline-yes">21x</span>
|
|
727
|
+
<span class="cline-any cline-yes">21x</span>
|
|
728
|
+
<span class="cline-any cline-yes">21x</span>
|
|
729
|
+
<span class="cline-any cline-yes">21x</span>
|
|
730
|
+
<span class="cline-any cline-yes">21x</span>
|
|
731
|
+
<span class="cline-any cline-yes">21x</span>
|
|
732
|
+
<span class="cline-any cline-yes">14x</span>
|
|
733
|
+
<span class="cline-any cline-yes">21x</span>
|
|
734
|
+
<span class="cline-any cline-yes">21x</span>
|
|
735
|
+
<span class="cline-any cline-yes">21x</span>
|
|
736
|
+
<span class="cline-any cline-yes">21x</span>
|
|
737
|
+
<span class="cline-any cline-yes">21x</span>
|
|
738
|
+
<span class="cline-any cline-yes">7x</span>
|
|
739
|
+
<span class="cline-any cline-yes">7x</span>
|
|
740
|
+
<span class="cline-any cline-yes">7x</span>
|
|
741
|
+
<span class="cline-any cline-yes">7x</span>
|
|
742
|
+
<span class="cline-any cline-yes">7x</span>
|
|
743
|
+
<span class="cline-any cline-yes">7x</span>
|
|
744
|
+
<span class="cline-any cline-yes">21x</span>
|
|
745
|
+
<span class="cline-any cline-no"> </span>
|
|
746
|
+
<span class="cline-any cline-no"> </span>
|
|
747
|
+
<span class="cline-any cline-yes">21x</span>
|
|
748
|
+
<span class="cline-any cline-yes">21x</span>
|
|
749
|
+
<span class="cline-any cline-yes">21x</span>
|
|
746
750
|
<span class="cline-any cline-yes">1x</span>
|
|
747
751
|
<span class="cline-any cline-yes">1x</span>
|
|
748
|
-
<span class="cline-any cline-yes">
|
|
749
|
-
<span class="cline-any cline-yes">
|
|
750
|
-
<span class="cline-any cline-yes">
|
|
751
|
-
<span class="cline-any cline-yes">
|
|
752
|
-
<span class="cline-any cline-yes">
|
|
753
|
-
<span class="cline-any cline-yes">
|
|
754
|
-
<span class="cline-any cline-yes">
|
|
755
|
-
<span class="cline-any cline-yes">
|
|
756
|
-
<span class="cline-any cline-yes">
|
|
752
|
+
<span class="cline-any cline-yes">21x</span>
|
|
753
|
+
<span class="cline-any cline-yes">21x</span>
|
|
754
|
+
<span class="cline-any cline-yes">21x</span>
|
|
755
|
+
<span class="cline-any cline-yes">21x</span>
|
|
756
|
+
<span class="cline-any cline-yes">21x</span>
|
|
757
|
+
<span class="cline-any cline-yes">21x</span>
|
|
758
|
+
<span class="cline-any cline-yes">21x</span>
|
|
759
|
+
<span class="cline-any cline-yes">21x</span>
|
|
760
|
+
<span class="cline-any cline-yes">21x</span>
|
|
757
761
|
<span class="cline-any cline-no"> </span>
|
|
758
762
|
<span class="cline-any cline-no"> </span>
|
|
759
763
|
<span class="cline-any cline-no"> </span>
|
|
@@ -761,11 +765,11 @@
|
|
|
761
765
|
<span class="cline-any cline-no"> </span>
|
|
762
766
|
<span class="cline-any cline-no"> </span>
|
|
763
767
|
<span class="cline-any cline-no"> </span>
|
|
764
|
-
<span class="cline-any cline-yes">
|
|
765
|
-
<span class="cline-any cline-yes">
|
|
766
|
-
<span class="cline-any cline-yes">
|
|
767
|
-
<span class="cline-any cline-yes">
|
|
768
|
-
<span class="cline-any cline-yes">
|
|
768
|
+
<span class="cline-any cline-yes">21x</span>
|
|
769
|
+
<span class="cline-any cline-yes">21x</span>
|
|
770
|
+
<span class="cline-any cline-yes">21x</span>
|
|
771
|
+
<span class="cline-any cline-yes">21x</span>
|
|
772
|
+
<span class="cline-any cline-yes">21x</span>
|
|
769
773
|
<span class="cline-any cline-no"> </span>
|
|
770
774
|
<span class="cline-any cline-no"> </span>
|
|
771
775
|
<span class="cline-any cline-no"> </span>
|
|
@@ -773,7 +777,7 @@
|
|
|
773
777
|
<span class="cline-any cline-no"> </span>
|
|
774
778
|
<span class="cline-any cline-no"> </span>
|
|
775
779
|
<span class="cline-any cline-no"> </span>
|
|
776
|
-
<span class="cline-any cline-yes">
|
|
780
|
+
<span class="cline-any cline-yes">21x</span>
|
|
777
781
|
<span class="cline-any cline-no"> </span>
|
|
778
782
|
<span class="cline-any cline-no"> </span>
|
|
779
783
|
<span class="cline-any cline-no"> </span>
|
|
@@ -781,9 +785,9 @@
|
|
|
781
785
|
<span class="cline-any cline-no"> </span>
|
|
782
786
|
<span class="cline-any cline-no"> </span>
|
|
783
787
|
<span class="cline-any cline-no"> </span>
|
|
784
|
-
<span class="cline-any cline-yes">
|
|
785
|
-
<span class="cline-any cline-yes">
|
|
786
|
-
<span class="cline-any cline-yes">
|
|
788
|
+
<span class="cline-any cline-yes">21x</span>
|
|
789
|
+
<span class="cline-any cline-yes">21x</span>
|
|
790
|
+
<span class="cline-any cline-yes">21x</span>
|
|
787
791
|
<span class="cline-any cline-yes">1x</span>
|
|
788
792
|
<span class="cline-any cline-yes">1x</span>
|
|
789
793
|
<span class="cline-any cline-no"> </span>
|
|
@@ -820,39 +824,39 @@
|
|
|
820
824
|
<span class="cline-any cline-no"> </span>
|
|
821
825
|
<span class="cline-any cline-no"> </span>
|
|
822
826
|
<span class="cline-any cline-yes">1x</span>
|
|
823
|
-
<span class="cline-any cline-yes">73x</span>
|
|
824
|
-
<span class="cline-any cline-yes">73x</span>
|
|
825
|
-
<span class="cline-any cline-yes">73x</span>
|
|
826
|
-
<span class="cline-any cline-yes">73x</span>
|
|
827
|
-
<span class="cline-any cline-yes">73x</span>
|
|
828
|
-
<span class="cline-any cline-yes">73x</span>
|
|
829
|
-
<span class="cline-any cline-yes">73x</span>
|
|
830
|
-
<span class="cline-any cline-yes">73x</span>
|
|
831
|
-
<span class="cline-any cline-yes">73x</span>
|
|
832
|
-
<span class="cline-any cline-yes">73x</span>
|
|
833
|
-
<span class="cline-any cline-yes">73x</span>
|
|
834
|
-
<span class="cline-any cline-yes">73x</span>
|
|
835
|
-
<span class="cline-any cline-yes">73x</span>
|
|
836
|
-
<span class="cline-any cline-yes">73x</span>
|
|
837
|
-
<span class="cline-any cline-yes">73x</span>
|
|
838
|
-
<span class="cline-any cline-yes">73x</span>
|
|
839
|
-
<span class="cline-any cline-yes">73x</span>
|
|
840
|
-
<span class="cline-any cline-yes">73x</span>
|
|
841
|
-
<span class="cline-any cline-yes">73x</span>
|
|
842
|
-
<span class="cline-any cline-yes">73x</span>
|
|
843
|
-
<span class="cline-any cline-yes">73x</span>
|
|
844
|
-
<span class="cline-any cline-yes">73x</span>
|
|
845
|
-
<span class="cline-any cline-yes">73x</span>
|
|
846
827
|
<span class="cline-any cline-yes">28x</span>
|
|
847
828
|
<span class="cline-any cline-yes">28x</span>
|
|
848
829
|
<span class="cline-any cline-yes">28x</span>
|
|
849
|
-
<span class="cline-any cline-yes">19x</span>
|
|
850
|
-
<span class="cline-any cline-yes">19x</span>
|
|
851
|
-
<span class="cline-any cline-yes">19x</span>
|
|
852
|
-
<span class="cline-any cline-yes">19x</span>
|
|
853
|
-
<span class="cline-any cline-yes">19x</span>
|
|
854
830
|
<span class="cline-any cline-yes">28x</span>
|
|
855
|
-
<span class="cline-any cline-yes">
|
|
831
|
+
<span class="cline-any cline-yes">28x</span>
|
|
832
|
+
<span class="cline-any cline-yes">28x</span>
|
|
833
|
+
<span class="cline-any cline-yes">28x</span>
|
|
834
|
+
<span class="cline-any cline-yes">28x</span>
|
|
835
|
+
<span class="cline-any cline-yes">28x</span>
|
|
836
|
+
<span class="cline-any cline-yes">28x</span>
|
|
837
|
+
<span class="cline-any cline-yes">28x</span>
|
|
838
|
+
<span class="cline-any cline-yes">28x</span>
|
|
839
|
+
<span class="cline-any cline-yes">28x</span>
|
|
840
|
+
<span class="cline-any cline-yes">28x</span>
|
|
841
|
+
<span class="cline-any cline-yes">28x</span>
|
|
842
|
+
<span class="cline-any cline-yes">28x</span>
|
|
843
|
+
<span class="cline-any cline-yes">28x</span>
|
|
844
|
+
<span class="cline-any cline-yes">28x</span>
|
|
845
|
+
<span class="cline-any cline-yes">28x</span>
|
|
846
|
+
<span class="cline-any cline-yes">28x</span>
|
|
847
|
+
<span class="cline-any cline-yes">28x</span>
|
|
848
|
+
<span class="cline-any cline-yes">28x</span>
|
|
849
|
+
<span class="cline-any cline-yes">28x</span>
|
|
850
|
+
<span class="cline-any cline-yes">14x</span>
|
|
851
|
+
<span class="cline-any cline-yes">14x</span>
|
|
852
|
+
<span class="cline-any cline-yes">14x</span>
|
|
853
|
+
<span class="cline-any cline-yes">7x</span>
|
|
854
|
+
<span class="cline-any cline-yes">7x</span>
|
|
855
|
+
<span class="cline-any cline-yes">7x</span>
|
|
856
|
+
<span class="cline-any cline-yes">7x</span>
|
|
857
|
+
<span class="cline-any cline-yes">7x</span>
|
|
858
|
+
<span class="cline-any cline-yes">14x</span>
|
|
859
|
+
<span class="cline-any cline-yes">28x</span>
|
|
856
860
|
<span class="cline-any cline-no"> </span>
|
|
857
861
|
<span class="cline-any cline-no"> </span>
|
|
858
862
|
<span class="cline-any cline-no"> </span>
|
|
@@ -860,58 +864,58 @@
|
|
|
860
864
|
<span class="cline-any cline-no"> </span>
|
|
861
865
|
<span class="cline-any cline-no"> </span>
|
|
862
866
|
<span class="cline-any cline-no"> </span>
|
|
863
|
-
<span class="cline-any cline-yes">
|
|
864
|
-
<span class="cline-any cline-yes">
|
|
865
|
-
<span class="cline-any cline-yes">
|
|
866
|
-
<span class="cline-any cline-yes">
|
|
867
|
-
<span class="cline-any cline-yes">
|
|
868
|
-
<span class="cline-any cline-yes">
|
|
869
|
-
<span class="cline-any cline-yes">
|
|
867
|
+
<span class="cline-any cline-yes">28x</span>
|
|
868
|
+
<span class="cline-any cline-yes">28x</span>
|
|
869
|
+
<span class="cline-any cline-yes">28x</span>
|
|
870
|
+
<span class="cline-any cline-yes">28x</span>
|
|
871
|
+
<span class="cline-any cline-yes">7x</span>
|
|
872
|
+
<span class="cline-any cline-yes">7x</span>
|
|
873
|
+
<span class="cline-any cline-yes">28x</span>
|
|
874
|
+
<span class="cline-any cline-no"> </span>
|
|
875
|
+
<span class="cline-any cline-yes">21x</span>
|
|
876
|
+
<span class="cline-any cline-yes">21x</span>
|
|
877
|
+
<span class="cline-any cline-yes">21x</span>
|
|
878
|
+
<span class="cline-any cline-yes">21x</span>
|
|
879
|
+
<span class="cline-any cline-yes">21x</span>
|
|
880
|
+
<span class="cline-any cline-yes">21x</span>
|
|
881
|
+
<span class="cline-any cline-yes">14x</span>
|
|
882
|
+
<span class="cline-any cline-yes">14x</span>
|
|
883
|
+
<span class="cline-any cline-yes">14x</span>
|
|
884
|
+
<span class="cline-any cline-yes">21x</span>
|
|
885
|
+
<span class="cline-any cline-yes">21x</span>
|
|
886
|
+
<span class="cline-any cline-yes">21x</span>
|
|
887
|
+
<span class="cline-any cline-yes">28x</span>
|
|
888
|
+
<span class="cline-any cline-yes">7x</span>
|
|
889
|
+
<span class="cline-any cline-yes">7x</span>
|
|
890
|
+
<span class="cline-any cline-yes">7x</span>
|
|
891
|
+
<span class="cline-any cline-yes">7x</span>
|
|
892
|
+
<span class="cline-any cline-no"> </span>
|
|
893
|
+
<span class="cline-any cline-no"> </span>
|
|
870
894
|
<span class="cline-any cline-no"> </span>
|
|
871
|
-
<span class="cline-any cline-yes">54x</span>
|
|
872
|
-
<span class="cline-any cline-yes">54x</span>
|
|
873
|
-
<span class="cline-any cline-yes">54x</span>
|
|
874
|
-
<span class="cline-any cline-yes">54x</span>
|
|
875
|
-
<span class="cline-any cline-yes">54x</span>
|
|
876
|
-
<span class="cline-any cline-yes">54x</span>
|
|
877
|
-
<span class="cline-any cline-yes">45x</span>
|
|
878
|
-
<span class="cline-any cline-yes">45x</span>
|
|
879
|
-
<span class="cline-any cline-yes">54x</span>
|
|
880
|
-
<span class="cline-any cline-yes">54x</span>
|
|
881
|
-
<span class="cline-any cline-yes">54x</span>
|
|
882
|
-
<span class="cline-any cline-yes">73x</span>
|
|
883
|
-
<span class="cline-any cline-yes">73x</span>
|
|
884
|
-
<span class="cline-any cline-yes">19x</span>
|
|
885
|
-
<span class="cline-any cline-yes">19x</span>
|
|
886
|
-
<span class="cline-any cline-yes">19x</span>
|
|
887
|
-
<span class="cline-any cline-yes">19x</span>
|
|
888
|
-
<span class="cline-any cline-yes">9x</span>
|
|
889
|
-
<span class="cline-any cline-yes">9x</span>
|
|
890
|
-
<span class="cline-any cline-yes">9x</span>
|
|
891
895
|
<span class="cline-any cline-no"> </span>
|
|
892
896
|
<span class="cline-any cline-no"> </span>
|
|
893
|
-
<span class="cline-any cline-yes">9x</span>
|
|
894
|
-
<span class="cline-any cline-yes">9x</span>
|
|
895
|
-
<span class="cline-any cline-yes">9x</span>
|
|
896
|
-
<span class="cline-any cline-yes">19x</span>
|
|
897
897
|
<span class="cline-any cline-no"> </span>
|
|
898
898
|
<span class="cline-any cline-no"> </span>
|
|
899
899
|
<span class="cline-any cline-no"> </span>
|
|
900
|
+
<span class="cline-any cline-yes">7x</span>
|
|
900
901
|
<span class="cline-any cline-no"> </span>
|
|
901
902
|
<span class="cline-any cline-no"> </span>
|
|
902
903
|
<span class="cline-any cline-no"> </span>
|
|
903
904
|
<span class="cline-any cline-no"> </span>
|
|
904
|
-
<span class="cline-any cline-
|
|
905
|
-
<span class="cline-any cline-
|
|
906
|
-
<span class="cline-any cline-
|
|
907
|
-
<span class="cline-any cline-yes">
|
|
908
|
-
<span class="cline-any cline-yes">
|
|
909
|
-
<span class="cline-any cline-yes">
|
|
910
|
-
<span class="cline-any cline-yes">
|
|
911
|
-
<span class="cline-any cline-yes">
|
|
912
|
-
<span class="cline-any cline-yes">
|
|
913
|
-
<span class="cline-any cline-yes">
|
|
914
|
-
<span class="cline-any cline-yes">
|
|
905
|
+
<span class="cline-any cline-no"> </span>
|
|
906
|
+
<span class="cline-any cline-no"> </span>
|
|
907
|
+
<span class="cline-any cline-no"> </span>
|
|
908
|
+
<span class="cline-any cline-yes">7x</span>
|
|
909
|
+
<span class="cline-any cline-yes">21x</span>
|
|
910
|
+
<span class="cline-any cline-yes">21x</span>
|
|
911
|
+
<span class="cline-any cline-yes">21x</span>
|
|
912
|
+
<span class="cline-any cline-yes">21x</span>
|
|
913
|
+
<span class="cline-any cline-yes">21x</span>
|
|
914
|
+
<span class="cline-any cline-yes">21x</span>
|
|
915
|
+
<span class="cline-any cline-yes">21x</span>
|
|
916
|
+
<span class="cline-any cline-yes">21x</span>
|
|
917
|
+
<span class="cline-any cline-yes">21x</span>
|
|
918
|
+
<span class="cline-any cline-yes">28x</span>
|
|
915
919
|
<span class="cline-any cline-yes">1x</span>
|
|
916
920
|
<span class="cline-any cline-no"> </span>
|
|
917
921
|
<span class="cline-any cline-no"> </span>
|
|
@@ -933,114 +937,107 @@
|
|
|
933
937
|
<span class="cline-any cline-no"> </span>
|
|
934
938
|
<span class="cline-any cline-no"> </span>
|
|
935
939
|
<span class="cline-any cline-yes">1x</span>
|
|
936
|
-
<span class="cline-any cline-yes">3x</span>
|
|
937
|
-
<span class="cline-any cline-yes">3x</span>
|
|
938
|
-
<span class="cline-any cline-yes">3x</span>
|
|
939
|
-
<span class="cline-any cline-yes">3x</span>
|
|
940
|
-
<span class="cline-any cline-yes">3x</span>
|
|
941
|
-
<span class="cline-any cline-yes">1x</span>
|
|
942
|
-
<span class="cline-any cline-yes">1x</span>
|
|
943
|
-
<span class="cline-any cline-yes">3x</span>
|
|
944
|
-
<span class="cline-any cline-yes">3x</span>
|
|
945
|
-
<span class="cline-any cline-yes">3x</span>
|
|
946
|
-
<span class="cline-any cline-yes">3x</span>
|
|
947
|
-
<span class="cline-any cline-yes">3x</span>
|
|
948
|
-
<span class="cline-any cline-yes">3x</span>
|
|
949
940
|
<span class="cline-any cline-no"> </span>
|
|
950
941
|
<span class="cline-any cline-no"> </span>
|
|
951
|
-
<span class="cline-any cline-yes">3x</span>
|
|
952
|
-
<span class="cline-any cline-yes">3x</span>
|
|
953
|
-
<span class="cline-any cline-yes">3x</span>
|
|
954
|
-
<span class="cline-any cline-yes">3x</span>
|
|
955
|
-
<span class="cline-any cline-yes">3x</span>
|
|
956
942
|
<span class="cline-any cline-no"> </span>
|
|
957
943
|
<span class="cline-any cline-no"> </span>
|
|
958
|
-
<span class="cline-any cline-
|
|
959
|
-
<span class="cline-any cline-yes">3x</span>
|
|
960
|
-
<span class="cline-any cline-yes">3x</span>
|
|
961
|
-
<span class="cline-any cline-yes">3x</span>
|
|
962
|
-
<span class="cline-any cline-yes">1x</span>
|
|
963
|
-
<span class="cline-any cline-yes">1x</span>
|
|
964
|
-
<span class="cline-any cline-yes">1x</span>
|
|
965
|
-
<span class="cline-any cline-yes">1x</span>
|
|
966
|
-
<span class="cline-any cline-yes">1x</span>
|
|
967
|
-
<span class="cline-any cline-yes">1x</span>
|
|
968
|
-
<span class="cline-any cline-yes">1x</span>
|
|
944
|
+
<span class="cline-any cline-no"> </span>
|
|
969
945
|
<span class="cline-any cline-yes">1x</span>
|
|
970
946
|
<span class="cline-any cline-yes">1x</span>
|
|
971
|
-
<span class="cline-any cline-yes">3x</span>
|
|
972
947
|
<span class="cline-any cline-no"> </span>
|
|
973
948
|
<span class="cline-any cline-no"> </span>
|
|
974
949
|
<span class="cline-any cline-no"> </span>
|
|
975
|
-
<span class="cline-any cline-yes">1x</span>
|
|
976
|
-
<span class="cline-any cline-yes">1x</span>
|
|
977
|
-
<span class="cline-any cline-yes">3x</span>
|
|
978
950
|
<span class="cline-any cline-no"> </span>
|
|
979
951
|
<span class="cline-any cline-no"> </span>
|
|
980
|
-
<span class="cline-any cline-yes">1x</span>
|
|
981
|
-
<span class="cline-any cline-yes">1x</span>
|
|
982
|
-
<span class="cline-any cline-yes">1x</span>
|
|
983
|
-
<span class="cline-any cline-yes">1x</span>
|
|
984
|
-
<span class="cline-any cline-yes">1x</span>
|
|
985
|
-
<span class="cline-any cline-yes">3x</span>
|
|
986
952
|
<span class="cline-any cline-no"> </span>
|
|
987
953
|
<span class="cline-any cline-no"> </span>
|
|
988
|
-
<span class="cline-any cline-
|
|
989
|
-
<span class="cline-any cline-
|
|
990
|
-
<span class="cline-any cline-
|
|
991
|
-
<span class="cline-any cline-
|
|
992
|
-
<span class="cline-any cline-
|
|
954
|
+
<span class="cline-any cline-no"> </span>
|
|
955
|
+
<span class="cline-any cline-no"> </span>
|
|
956
|
+
<span class="cline-any cline-no"> </span>
|
|
957
|
+
<span class="cline-any cline-no"> </span>
|
|
958
|
+
<span class="cline-any cline-no"> </span>
|
|
959
|
+
<span class="cline-any cline-no"> </span>
|
|
960
|
+
<span class="cline-any cline-no"> </span>
|
|
961
|
+
<span class="cline-any cline-no"> </span>
|
|
962
|
+
<span class="cline-any cline-no"> </span>
|
|
963
|
+
<span class="cline-any cline-no"> </span>
|
|
964
|
+
<span class="cline-any cline-no"> </span>
|
|
965
|
+
<span class="cline-any cline-no"> </span>
|
|
966
|
+
<span class="cline-any cline-no"> </span>
|
|
967
|
+
<span class="cline-any cline-no"> </span>
|
|
968
|
+
<span class="cline-any cline-no"> </span>
|
|
969
|
+
<span class="cline-any cline-no"> </span>
|
|
970
|
+
<span class="cline-any cline-no"> </span>
|
|
971
|
+
<span class="cline-any cline-no"> </span>
|
|
972
|
+
<span class="cline-any cline-no"> </span>
|
|
973
|
+
<span class="cline-any cline-no"> </span>
|
|
974
|
+
<span class="cline-any cline-no"> </span>
|
|
975
|
+
<span class="cline-any cline-no"> </span>
|
|
976
|
+
<span class="cline-any cline-no"> </span>
|
|
977
|
+
<span class="cline-any cline-no"> </span>
|
|
978
|
+
<span class="cline-any cline-no"> </span>
|
|
979
|
+
<span class="cline-any cline-no"> </span>
|
|
980
|
+
<span class="cline-any cline-no"> </span>
|
|
981
|
+
<span class="cline-any cline-no"> </span>
|
|
982
|
+
<span class="cline-any cline-no"> </span>
|
|
983
|
+
<span class="cline-any cline-no"> </span>
|
|
984
|
+
<span class="cline-any cline-no"> </span>
|
|
985
|
+
<span class="cline-any cline-no"> </span>
|
|
986
|
+
<span class="cline-any cline-no"> </span>
|
|
987
|
+
<span class="cline-any cline-no"> </span>
|
|
988
|
+
<span class="cline-any cline-no"> </span>
|
|
989
|
+
<span class="cline-any cline-no"> </span>
|
|
990
|
+
<span class="cline-any cline-no"> </span>
|
|
991
|
+
<span class="cline-any cline-no"> </span>
|
|
992
|
+
<span class="cline-any cline-no"> </span>
|
|
993
|
+
<span class="cline-any cline-no"> </span>
|
|
994
|
+
<span class="cline-any cline-no"> </span>
|
|
995
|
+
<span class="cline-any cline-no"> </span>
|
|
996
|
+
<span class="cline-any cline-no"> </span>
|
|
993
997
|
<span class="cline-any cline-yes">1x</span>
|
|
994
998
|
<span class="cline-any cline-yes">1x</span>
|
|
995
999
|
<span class="cline-any cline-yes">1x</span>
|
|
996
1000
|
<span class="cline-any cline-yes">1x</span>
|
|
997
1001
|
<span class="cline-any cline-yes">1x</span>
|
|
998
|
-
<span class="cline-any cline-yes">
|
|
999
|
-
<span class="cline-any cline-yes">
|
|
1000
|
-
<span class="cline-any cline-yes">
|
|
1001
|
-
<span class="cline-any cline-yes">
|
|
1002
|
-
<span class="cline-any cline-yes">
|
|
1003
|
-
<span class="cline-any cline-yes">
|
|
1004
|
-
<span class="cline-any cline-yes">
|
|
1005
|
-
<span class="cline-any cline-yes">
|
|
1006
|
-
<span class="cline-any cline-yes">
|
|
1007
|
-
<span class="cline-any cline-yes">
|
|
1008
|
-
<span class="cline-any cline-yes">
|
|
1002
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1003
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1004
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1005
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1006
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1007
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1008
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1009
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1010
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1011
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1012
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1009
1013
|
<span class="cline-any cline-no"> </span>
|
|
1010
1014
|
<span class="cline-any cline-no"> </span>
|
|
1011
1015
|
<span class="cline-any cline-no"> </span>
|
|
1012
|
-
<span class="cline-any cline-yes">
|
|
1013
|
-
<span class="cline-any cline-yes">
|
|
1014
|
-
<span class="cline-any cline-yes">
|
|
1015
|
-
<span class="cline-any cline-yes">
|
|
1016
|
-
<span class="cline-any cline-yes">
|
|
1017
|
-
<span class="cline-any cline-yes">
|
|
1018
|
-
<span class="cline-any cline-yes">
|
|
1019
|
-
<span class="cline-any cline-yes">
|
|
1020
|
-
<span class="cline-any cline-yes">
|
|
1021
|
-
<span class="cline-any cline-yes">
|
|
1016
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1017
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1018
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1019
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1020
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1021
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1022
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1023
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1024
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1025
|
+
<span class="cline-any cline-yes">18x</span>
|
|
1022
1026
|
<span class="cline-any cline-no"> </span>
|
|
1023
1027
|
<span class="cline-any cline-no"> </span>
|
|
1024
1028
|
<span class="cline-any cline-no"> </span>
|
|
1025
|
-
<span class="cline-any cline-yes">
|
|
1026
|
-
<span class="cline-any cline-yes">
|
|
1027
|
-
<span class="cline-any cline-yes">
|
|
1028
|
-
<span class="cline-any cline-yes">
|
|
1029
|
-
<span class="cline-any cline-yes">
|
|
1029
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1030
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1031
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1032
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1033
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1030
1034
|
<span class="cline-any cline-yes">1x</span>
|
|
1031
|
-
<span class="cline-any cline-yes">
|
|
1032
|
-
<span class="cline-any cline-yes">
|
|
1033
|
-
<span class="cline-any cline-yes">
|
|
1034
|
-
<span class="cline-any cline-yes">
|
|
1035
|
-
<span class="cline-any cline-yes">
|
|
1036
|
-
<span class="cline-any cline-yes">
|
|
1037
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1038
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1039
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1040
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1041
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1042
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1043
|
-
<span class="cline-any cline-yes">8x</span>
|
|
1035
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1036
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1037
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1038
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1039
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1040
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1044
1041
|
<span class="cline-any cline-no"> </span>
|
|
1045
1042
|
<span class="cline-any cline-no"> </span>
|
|
1046
1043
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1118,93 +1115,100 @@
|
|
|
1118
1115
|
<span class="cline-any cline-no"> </span>
|
|
1119
1116
|
<span class="cline-any cline-no"> </span>
|
|
1120
1117
|
<span class="cline-any cline-no"> </span>
|
|
1121
|
-
<span class="cline-any cline-
|
|
1122
|
-
<span class="cline-any cline-
|
|
1123
|
-
<span class="cline-any cline-
|
|
1124
|
-
<span class="cline-any cline-
|
|
1125
|
-
<span class="cline-any cline-
|
|
1126
|
-
<span class="cline-any cline-
|
|
1127
|
-
<span class="cline-any cline-
|
|
1128
|
-
<span class="cline-any cline-
|
|
1129
|
-
<span class="cline-any cline-
|
|
1118
|
+
<span class="cline-any cline-no"> </span>
|
|
1119
|
+
<span class="cline-any cline-no"> </span>
|
|
1120
|
+
<span class="cline-any cline-no"> </span>
|
|
1121
|
+
<span class="cline-any cline-no"> </span>
|
|
1122
|
+
<span class="cline-any cline-no"> </span>
|
|
1123
|
+
<span class="cline-any cline-no"> </span>
|
|
1124
|
+
<span class="cline-any cline-no"> </span>
|
|
1125
|
+
<span class="cline-any cline-no"> </span>
|
|
1126
|
+
<span class="cline-any cline-no"> </span>
|
|
1127
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1130
1128
|
<span class="cline-any cline-yes">1x</span>
|
|
1131
|
-
<span class="cline-any cline-yes">
|
|
1132
|
-
<span class="cline-any cline-yes">
|
|
1129
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1130
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1131
|
+
<span class="cline-any cline-no"> </span>
|
|
1132
|
+
<span class="cline-any cline-no"> </span>
|
|
1133
|
+
<span class="cline-any cline-no"> </span>
|
|
1134
|
+
<span class="cline-any cline-no"> </span>
|
|
1135
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1136
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1133
1137
|
<span class="cline-any cline-yes">1x</span>
|
|
1134
1138
|
<span class="cline-any cline-yes">1x</span>
|
|
1135
|
-
<span class="cline-any cline-yes">
|
|
1136
|
-
<span class="cline-any cline-yes">
|
|
1137
|
-
<span class="cline-any cline-yes">
|
|
1138
|
-
<span class="cline-any cline-yes">
|
|
1139
|
-
<span class="cline-any cline-yes">
|
|
1140
|
-
<span class="cline-any cline-yes">
|
|
1141
|
-
<span class="cline-any cline-yes">
|
|
1142
|
-
<span class="cline-any cline-yes">
|
|
1143
|
-
<span class="cline-any cline-yes">
|
|
1144
|
-
<span class="cline-any cline-yes">
|
|
1145
|
-
<span class="cline-any cline-yes">
|
|
1146
|
-
<span class="cline-any cline-yes">
|
|
1139
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1140
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1141
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1142
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1143
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1144
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1145
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1146
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1147
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1148
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1149
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1150
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1147
1151
|
<span class="cline-any cline-yes">2x</span>
|
|
1148
1152
|
<span class="cline-any cline-yes">2x</span>
|
|
1149
1153
|
<span class="cline-any cline-yes">2x</span>
|
|
1150
|
-
<span class="cline-any cline-yes">
|
|
1151
|
-
<span class="cline-any cline-yes">
|
|
1152
|
-
<span class="cline-any cline-yes">
|
|
1153
|
-
<span class="cline-any cline-yes">
|
|
1154
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1155
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1156
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1157
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1154
1158
|
<span class="cline-any cline-no"> </span>
|
|
1155
1159
|
<span class="cline-any cline-no"> </span>
|
|
1156
1160
|
<span class="cline-any cline-no"> </span>
|
|
1157
1161
|
<span class="cline-any cline-no"> </span>
|
|
1162
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1163
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1164
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1158
1165
|
<span class="cline-any cline-yes">11x</span>
|
|
1159
1166
|
<span class="cline-any cline-yes">11x</span>
|
|
1160
|
-
<span class="cline-any cline-yes">119x</span>
|
|
1161
|
-
<span class="cline-any cline-yes">119x</span>
|
|
1162
|
-
<span class="cline-any cline-yes">119x</span>
|
|
1163
1167
|
<span class="cline-any cline-no"> </span>
|
|
1164
|
-
<span class="cline-any cline-yes">
|
|
1168
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1165
1169
|
<span class="cline-any cline-no"> </span>
|
|
1166
1170
|
<span class="cline-any cline-no"> </span>
|
|
1167
1171
|
<span class="cline-any cline-no"> </span>
|
|
1168
|
-
<span class="cline-any cline-yes">
|
|
1169
|
-
<span class="cline-any cline-yes">
|
|
1170
|
-
<span class="cline-any cline-yes">119x</span>
|
|
1171
|
-
<span class="cline-any cline-yes">119x</span>
|
|
1172
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1173
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1174
|
-
<span class="cline-any cline-yes">2x</span>
|
|
1175
|
-
<span class="cline-any cline-yes">119x</span>
|
|
1172
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1173
|
+
<span class="cline-any cline-yes">11x</span>
|
|
1176
1174
|
<span class="cline-any cline-yes">11x</span>
|
|
1177
1175
|
<span class="cline-any cline-yes">11x</span>
|
|
1178
1176
|
<span class="cline-any cline-no"> </span>
|
|
1179
1177
|
<span class="cline-any cline-no"> </span>
|
|
1180
1178
|
<span class="cline-any cline-no"> </span>
|
|
1181
1179
|
<span class="cline-any cline-yes">11x</span>
|
|
1182
|
-
<span class="cline-any cline-yes">
|
|
1180
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1181
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1183
1182
|
<span class="cline-any cline-no"> </span>
|
|
1184
1183
|
<span class="cline-any cline-no"> </span>
|
|
1185
1184
|
<span class="cline-any cline-no"> </span>
|
|
1186
|
-
<span class="cline-any cline-yes">
|
|
1187
|
-
<span class="cline-any cline-yes">
|
|
1188
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1189
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1190
|
-
<span class="cline-any cline-yes">73x</span>
|
|
1191
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1192
|
-
<span class="cline-any cline-yes">11x</span>
|
|
1185
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1186
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1193
1187
|
<span class="cline-any cline-no"> </span>
|
|
1194
1188
|
<span class="cline-any cline-no"> </span>
|
|
1195
1189
|
<span class="cline-any cline-no"> </span>
|
|
1196
|
-
<span class="cline-any cline-yes">
|
|
1197
|
-
<span class="cline-any cline-yes">
|
|
1190
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1191
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1192
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1193
|
+
<span class="cline-any cline-yes">21x</span>
|
|
1194
|
+
<span class="cline-any cline-yes">28x</span>
|
|
1195
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1196
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1197
|
+
<span class="cline-any cline-no"> </span>
|
|
1198
|
+
<span class="cline-any cline-no"> </span>
|
|
1199
|
+
<span class="cline-any cline-no"> </span>
|
|
1200
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1201
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1198
1202
|
<span class="cline-any cline-yes">1x</span>
|
|
1199
1203
|
<span class="cline-any cline-yes">1x</span>
|
|
1200
|
-
<span class="cline-any cline-yes">
|
|
1201
|
-
<span class="cline-any cline-yes">
|
|
1202
|
-
<span class="cline-any cline-yes">
|
|
1203
|
-
<span class="cline-any cline-yes">
|
|
1204
|
-
<span class="cline-any cline-yes">
|
|
1205
|
-
<span class="cline-any cline-yes">
|
|
1206
|
-
<span class="cline-any cline-yes">
|
|
1207
|
-
<span class="cline-any cline-yes">
|
|
1204
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1205
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1206
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1207
|
+
<span class="cline-any cline-yes">77x</span>
|
|
1208
|
+
<span class="cline-any cline-yes">63x</span>
|
|
1209
|
+
<span class="cline-any cline-yes">77x</span>
|
|
1210
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1211
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1208
1212
|
<span class="cline-any cline-no"> </span>
|
|
1209
1213
|
<span class="cline-any cline-no"> </span>
|
|
1210
1214
|
<span class="cline-any cline-no"> </span>
|
|
@@ -1229,26 +1233,26 @@
|
|
|
1229
1233
|
<span class="cline-any cline-no"> </span>
|
|
1230
1234
|
<span class="cline-any cline-no"> </span>
|
|
1231
1235
|
<span class="cline-any cline-no"> </span>
|
|
1232
|
-
<span class="cline-any cline-yes">
|
|
1233
|
-
<span class="cline-any cline-yes">
|
|
1234
|
-
<span class="cline-any cline-yes">
|
|
1235
|
-
<span class="cline-any cline-yes">
|
|
1236
|
-
<span class="cline-any cline-yes">
|
|
1237
|
-
<span class="cline-any cline-yes">
|
|
1238
|
-
<span class="cline-any cline-yes">
|
|
1239
|
-
<span class="cline-any cline-yes">
|
|
1240
|
-
<span class="cline-any cline-yes">
|
|
1241
|
-
<span class="cline-any cline-yes">
|
|
1242
|
-
<span class="cline-any cline-yes">
|
|
1243
|
-
<span class="cline-any cline-yes">
|
|
1244
|
-
<span class="cline-any cline-yes">
|
|
1245
|
-
<span class="cline-any cline-yes">
|
|
1246
|
-
<span class="cline-any cline-yes">
|
|
1247
|
-
<span class="cline-any cline-yes">
|
|
1248
|
-
<span class="cline-any cline-yes">
|
|
1249
|
-
<span class="cline-any cline-yes">
|
|
1250
|
-
<span class="cline-any cline-yes">
|
|
1251
|
-
<span class="cline-any cline-yes">
|
|
1236
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1237
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1238
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1239
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1240
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1241
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1242
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1243
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1244
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1245
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1246
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1247
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1248
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1249
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1250
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1251
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1252
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1253
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1254
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1255
|
+
<span class="cline-any cline-yes">9x</span>
|
|
1252
1256
|
<span class="cline-any cline-neutral"> </span></td><td class="text"><pre class="prettyprint lang-js">import path from 'path'
|
|
1253
1257
|
import url from 'url'
|
|
1254
1258
|
import fs from 'fs-extra'
|
|
@@ -1267,12 +1271,14 @@ import configuration from '@feathersjs/configuration'
|
|
|
1267
1271
|
import errors from '@feathersjs/errors'
|
|
1268
1272
|
import express, { authenticate } from '@feathersjs/express'
|
|
1269
1273
|
import socketio from '@feathersjs/socketio'
|
|
1270
|
-
import
|
|
1274
|
+
import mongodb from 'mongodb'
|
|
1275
|
+
import { Database, idToString } from './db.js'
|
|
1271
1276
|
import auth from './authentication.js'
|
|
1272
1277
|
|
|
1273
1278
|
const debug = makeDebug('kdk:core:application')
|
|
1274
1279
|
const debugLimiter = makeDebug('kdk:core:application:limiter')
|
|
1275
1280
|
const { TooManyRequests, Forbidden, BadRequest } = errors
|
|
1281
|
+
const { ObjectID } = mongodb
|
|
1276
1282
|
const { rest } = express
|
|
1277
1283
|
const sift = siftModule.default
|
|
1278
1284
|
|
|
@@ -1348,10 +1354,10 @@ export async function configureService (name, service, servicesPath) {
|
|
|
1348
1354
|
}
|
|
1349
1355
|
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
1350
1356
|
<span class="cstat-no" title="statement not covered" > debug('No ' + name + ' service hooks configured on path ' + servicesPath)</span>
|
|
1351
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1352
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1353
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1354
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1357
|
+
<span class="cstat-no" title="statement not covered" > if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
|
|
1358
|
+
<span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
|
|
1359
|
+
<span class="cstat-no" title="statement not covered" > debug(filepath, error)</span>
|
|
1360
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1355
1361
|
<span class="cstat-no" title="statement not covered" > // As this is optionnal this require has to fail silently</span>
|
|
1356
1362
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1357
1363
|
|
|
@@ -1368,10 +1374,10 @@ export async function configureService (name, service, servicesPath) {
|
|
|
1368
1374
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1369
1375
|
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
1370
1376
|
<span class="cstat-no" title="statement not covered" > debug('No ' + name + ' service channels configured on path ' + servicesPath)</span>
|
|
1371
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1372
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1373
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1374
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1377
|
+
<span class="cstat-no" title="statement not covered" > if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
|
|
1378
|
+
<span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
|
|
1379
|
+
<span class="cstat-no" title="statement not covered" > debug(filepath, error)</span>
|
|
1380
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1375
1381
|
<span class="cstat-no" title="statement not covered" > // As this is optionnal this require has to fail silently</span>
|
|
1376
1382
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1377
1383
|
|
|
@@ -1447,10 +1453,10 @@ async function createService (name, app, options = {}) {
|
|
|
1447
1453
|
}
|
|
1448
1454
|
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
1449
1455
|
<span class="cstat-no" title="statement not covered" > debug('No ' + fileName + ' service model configured on path ' + serviceOptions.modelsPath)</span>
|
|
1450
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1451
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1452
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1453
|
-
<span class="cstat-no" title="statement not covered" >
|
|
1456
|
+
<span class="cstat-no" title="statement not covered" > if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
|
|
1457
|
+
<span class="cstat-no" title="statement not covered" > // Log error in this case as this might be linked to a syntax error in required file</span>
|
|
1458
|
+
<span class="cstat-no" title="statement not covered" > debug(fileName, error)</span>
|
|
1459
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1454
1460
|
<span class="cstat-no" title="statement not covered" > // As this is optionnal this require has to fail silently</span>
|
|
1455
1461
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1456
1462
|
|
|
@@ -1470,22 +1476,22 @@ async function createService (name, app, options = {}) {
|
|
|
1470
1476
|
service = service(name, app, serviceOptions)
|
|
1471
1477
|
}
|
|
1472
1478
|
// Need to set this manually for services not using class inheritance or default adapters
|
|
1473
|
-
if (serviceOptions.events) service.events = serviceOptions.events
|
|
1479
|
+
if (serviceOptions.events) <span class="branch-0 cbranch-no" title="branch not covered" >service.events = serviceOptions.events</span>
|
|
1474
1480
|
}
|
|
1475
1481
|
// Optionnally a specific service mixin can be provided, apply it
|
|
1476
1482
|
if (dbService && serviceOptions.servicesPath) {
|
|
1477
1483
|
const filepath = path.join(serviceOptions.servicesPath, fileName, `${fileName}.service.js`)
|
|
1478
1484
|
try {
|
|
1479
1485
|
const fileExists = await fs.pathExists(filepath)
|
|
1480
|
-
if (fileExists) {
|
|
1481
|
-
let serviceMixin = (await import(url.pathToFileURL(filepath))).default
|
|
1482
|
-
// If we get a function try to call it assuming it will return the mixin object
|
|
1483
|
-
|
|
1486
|
+
if (fileExists) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1487
|
+
<span class="cstat-no" title="statement not covered" > let serviceMixin = (await import(url.pathToFileURL(filepath))).default</span>
|
|
1488
|
+
<span class="cstat-no" title="statement not covered" > // If we get a function try to call it assuming it will return the mixin object</span>
|
|
1489
|
+
<span class="cstat-no" title="statement not covered" > if (typeof serviceMixin === 'function') {</span>
|
|
1484
1490
|
<span class="cstat-no" title="statement not covered" > serviceMixin = await serviceMixin.bind(dbService)(fileName, app, serviceOptions)</span>
|
|
1485
1491
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1486
|
-
Object.assign(service, serviceMixin)
|
|
1487
|
-
debug(name + ' service mixin configured on path ' + serviceOptions.servicesPath)
|
|
1488
|
-
}
|
|
1492
|
+
<span class="cstat-no" title="statement not covered" > Object.assign(service, serviceMixin)</span>
|
|
1493
|
+
<span class="cstat-no" title="statement not covered" > debug(name + ' service mixin configured on path ' + serviceOptions.servicesPath)</span>
|
|
1494
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1489
1495
|
} <span class="branch-0 cbranch-no" title="branch not covered" >catch (error) {</span>
|
|
1490
1496
|
<span class="cstat-no" title="statement not covered" > debug('No ' + fileName + ' service mixin configured on path ' + serviceOptions.servicesPath)</span>
|
|
1491
1497
|
<span class="cstat-no" title="statement not covered" > // if (error.code !== 'ERR_MODULE_NOT_FOUND') {</span>
|
|
@@ -1525,64 +1531,64 @@ export function createWebhook (path, app, options = {}) {
|
|
|
1525
1531
|
if (options.context) <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1526
1532
|
<span class="cstat-no" title="statement not covered" > webhookPath = idToString(options.context) + '/' + webhookPath</span>
|
|
1527
1533
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1528
|
-
const isAllowed = (payload) => {
|
|
1529
|
-
// Default is to expose all services/operations
|
|
1530
|
-
|
|
1531
|
-
const result = [payload].filter(sift(options.filter))
|
|
1532
|
-
return result.length > 0
|
|
1533
|
-
}
|
|
1534
|
+
const isAllowed = <span class="fstat-no" title="function not covered" >(payload) => {</span>
|
|
1535
|
+
<span class="cstat-no" title="statement not covered" > // Default is to expose all services/operations</span>
|
|
1536
|
+
<span class="cstat-no" title="statement not covered" > if (!options.filter) return true</span>
|
|
1537
|
+
<span class="cstat-no" title="statement not covered" > const result = [payload].filter(sift(options.filter))</span>
|
|
1538
|
+
<span class="cstat-no" title="statement not covered" > return result.length > 0</span>
|
|
1539
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1534
1540
|
|
|
1535
1541
|
app.post(app.get('apiPath') + '/webhooks/' + webhookPath, authenticate('jwt'), async (req, res, next) => {
|
|
1536
|
-
const payload = req.body
|
|
1537
|
-
const config = app.get('authentication')
|
|
1538
|
-
res.set('content-type', 'application/json')
|
|
1539
|
-
const params = _.get(req, 'feathers', {})
|
|
1540
|
-
try {
|
|
1541
|
-
|
|
1542
|
+
<span class="cstat-no" title="statement not covered" > const payload = req.body</span>
|
|
1543
|
+
<span class="cstat-no" title="statement not covered" > const config = app.get('authentication')</span>
|
|
1544
|
+
<span class="cstat-no" title="statement not covered" > res.set('content-type', 'application/json')</span>
|
|
1545
|
+
<span class="cstat-no" title="statement not covered" > const params = _.get(req, 'feathers', {})</span>
|
|
1546
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1547
|
+
<span class="cstat-no" title="statement not covered" > if (options.preprocessor) {</span>
|
|
1542
1548
|
<span class="cstat-no" title="statement not covered" > await options.preprocessor(req, res, payload)</span>
|
|
1543
1549
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1544
|
-
// Authenticate when required
|
|
1545
|
-
if (config) {
|
|
1546
|
-
params.checkAuthorisation = true
|
|
1547
|
-
}
|
|
1548
|
-
if (req.headers['content-type'] !== 'application/json')
|
|
1550
|
+
<span class="cstat-no" title="statement not covered" > // Authenticate when required</span>
|
|
1551
|
+
<span class="cstat-no" title="statement not covered" > if (config) {</span>
|
|
1552
|
+
<span class="cstat-no" title="statement not covered" > params.checkAuthorisation = true</span>
|
|
1553
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1554
|
+
<span class="cstat-no" title="statement not covered" > if (req.headers['content-type'] !== 'application/json') {</span>
|
|
1549
1555
|
<span class="cstat-no" title="statement not covered" > throw new BadRequest('Webhooks expect application/json content type')</span>
|
|
1550
1556
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1551
|
-
if (!isAllowed(payload)) throw new Forbidden('Service or operation not allowed for webhook')
|
|
1552
|
-
const service = app.getService(payload.service, options.context || payload.context)
|
|
1553
|
-
|
|
1554
|
-
if (typeof service[payload.operation] !== 'function')
|
|
1555
|
-
const args = []
|
|
1556
|
-
// Get/Update/Patch/Remove
|
|
1557
|
-
const operationsWithId = ['get', 'update', 'patch', 'remove']
|
|
1558
|
-
if (operationsWithId.includes(payload.operation)) {
|
|
1559
|
-
|
|
1560
|
-
args.push(_.get(payload, 'id'))
|
|
1561
|
-
}
|
|
1562
|
-
// Create/Update/Patch
|
|
1563
|
-
const operationsWithData = ['create', 'update', 'patch']
|
|
1564
|
-
|
|
1557
|
+
<span class="cstat-no" title="statement not covered" > if (!isAllowed(payload)) throw new Forbidden('Service or operation not allowed for webhook')</span>
|
|
1558
|
+
<span class="cstat-no" title="statement not covered" > const service = app.getService(payload.service, options.context || payload.context)</span>
|
|
1559
|
+
<span class="cstat-no" title="statement not covered" > if (!service) throw new BadRequest('Service could not be found')</span>
|
|
1560
|
+
<span class="cstat-no" title="statement not covered" > if (typeof service[payload.operation] !== 'function') throw new BadRequest('Service operation could not be found')</span>
|
|
1561
|
+
<span class="cstat-no" title="statement not covered" > const args = []</span>
|
|
1562
|
+
<span class="cstat-no" title="statement not covered" > // Get/Update/Patch/Remove</span>
|
|
1563
|
+
<span class="cstat-no" title="statement not covered" > const operationsWithId = ['get', 'update', 'patch', 'remove']</span>
|
|
1564
|
+
<span class="cstat-no" title="statement not covered" > if (operationsWithId.includes(payload.operation)) {</span>
|
|
1565
|
+
<span class="cstat-no" title="statement not covered" > if (!_.has(payload, 'id')) throw new BadRequest('Missing id for operation')</span>
|
|
1566
|
+
<span class="cstat-no" title="statement not covered" > args.push(_.get(payload, 'id'))</span>
|
|
1567
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1568
|
+
<span class="cstat-no" title="statement not covered" > // Create/Update/Patch</span>
|
|
1569
|
+
<span class="cstat-no" title="statement not covered" > const operationsWithData = ['create', 'update', 'patch']</span>
|
|
1570
|
+
<span class="cstat-no" title="statement not covered" > if (operationsWithData.includes(payload.operation)) {</span>
|
|
1565
1571
|
<span class="cstat-no" title="statement not covered" > if (!_.has(payload, 'data')) throw new BadRequest('Missing data for operation')</span>
|
|
1566
1572
|
<span class="cstat-no" title="statement not covered" > args.push(_.get(payload, 'data'))</span>
|
|
1567
1573
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1568
|
-
// Params
|
|
1569
|
-
args.push(params)
|
|
1570
|
-
|
|
1574
|
+
<span class="cstat-no" title="statement not covered" > // Params</span>
|
|
1575
|
+
<span class="cstat-no" title="statement not covered" > args.push(params)</span>
|
|
1576
|
+
<span class="cstat-no" title="statement not covered" > if (options.postprocessor) {</span>
|
|
1571
1577
|
<span class="cstat-no" title="statement not covered" > await options.postprocessor(service, args, payload)</span>
|
|
1572
1578
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1573
|
-
try {
|
|
1574
|
-
debug(`Performing ${payload.service} service ${payload.operation} operation through webhook ${webhookPath} with args:`, args)
|
|
1575
|
-
const result = await service[payload.operation].apply(service, args)
|
|
1576
|
-
// Send back result
|
|
1577
|
-
res.json(result)
|
|
1578
|
-
|
|
1579
|
+
<span class="cstat-no" title="statement not covered" > try {</span>
|
|
1580
|
+
<span class="cstat-no" title="statement not covered" > debug(`Performing ${payload.service} service ${payload.operation} operation through webhook ${webhookPath} with args:`, args)</span>
|
|
1581
|
+
<span class="cstat-no" title="statement not covered" > const result = await service[payload.operation].apply(service, args)</span>
|
|
1582
|
+
<span class="cstat-no" title="statement not covered" > // Send back result</span>
|
|
1583
|
+
<span class="cstat-no" title="statement not covered" > res.json(result)</span>
|
|
1584
|
+
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
1579
1585
|
<span class="cstat-no" title="statement not covered" > throw new BadRequest('Service operation could not be performed')</span>
|
|
1580
1586
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1581
|
-
} catch (error) {
|
|
1582
|
-
debug(`Webhook ${webhookPath} error:`, error)
|
|
1583
|
-
// Send back error
|
|
1584
|
-
|
|
1585
|
-
}
|
|
1587
|
+
<span class="cstat-no" title="statement not covered" > } catch (error) {</span>
|
|
1588
|
+
<span class="cstat-no" title="statement not covered" > debug(`Webhook ${webhookPath} error:`, error)</span>
|
|
1589
|
+
<span class="cstat-no" title="statement not covered" > // Send back error</span>
|
|
1590
|
+
<span class="cstat-no" title="statement not covered" > res.status(error.code || 500).json(error.toJSON())</span>
|
|
1591
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1586
1592
|
})
|
|
1587
1593
|
|
|
1588
1594
|
debug(`Webhook ${webhookPath} registration completed`)
|
|
@@ -1627,13 +1633,13 @@ function setupSockets (app) {
|
|
|
1627
1633
|
let nbConnections = 0
|
|
1628
1634
|
|
|
1629
1635
|
return io => {
|
|
1630
|
-
// By default EventEmitters will print a warning if more than 10 listeners are added for a particular event
|
|
1631
|
-
// The value can be set to Infinity (or 0) to indicate an unlimited number of listeners
|
|
1632
|
-
io.sockets.setMaxListeners(0)
|
|
1633
|
-
const maxConnections = _.get(apiLimiter, 'websocket.maxConcurrency', 0)
|
|
1634
|
-
const maxIpConnections = _.get(apiLimiter, 'websocket.concurrency', 0)
|
|
1635
|
-
|
|
1636
|
-
io.on('connection', socket => {
|
|
1636
|
+
<span class="cstat-no" title="statement not covered" > // By default EventEmitters will print a warning if more than 10 listeners are added for a particular event.</span>
|
|
1637
|
+
<span class="cstat-no" title="statement not covered" > // The value can be set to Infinity (or 0) to indicate an unlimited number of listeners.</span>
|
|
1638
|
+
<span class="cstat-no" title="statement not covered" > io.sockets.setMaxListeners(0)</span>
|
|
1639
|
+
<span class="cstat-no" title="statement not covered" > const maxConnections = _.get(apiLimiter, 'websocket.maxConcurrency', 0)</span>
|
|
1640
|
+
<span class="cstat-no" title="statement not covered" > const maxIpConnections = _.get(apiLimiter, 'websocket.concurrency', 0)</span>
|
|
1641
|
+
<span class="cstat-no" title="statement not covered" ></span>
|
|
1642
|
+
<span class="cstat-no" title="statement not covered" > io.on('connection', socket => {</span>
|
|
1637
1643
|
<span class="cstat-no" title="statement not covered" > nbConnections++</span>
|
|
1638
1644
|
<span class="cstat-no" title="statement not covered" > debug(`New socket connection on server with pid ${process.pid}`, socket.id, socket.conn.remoteAddress, nbConnections)</span>
|
|
1639
1645
|
<span class="cstat-no" title="statement not covered" > // Setup disconnect handler first</span>
|
|
@@ -1711,16 +1717,16 @@ function setupSockets (app) {
|
|
|
1711
1717
|
<span class="cstat-no" title="statement not covered" > next()</span>
|
|
1712
1718
|
<span class="cstat-no" title="statement not covered" > })</span>
|
|
1713
1719
|
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1714
|
-
})
|
|
1715
|
-
}
|
|
1720
|
+
<span class="cstat-no" title="statement not covered" > })</span>
|
|
1721
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1716
1722
|
}
|
|
1717
1723
|
|
|
1718
1724
|
function setupHealthcheck (app) {
|
|
1719
1725
|
app.get('/healthcheck', async (req, res) => {
|
|
1720
|
-
res.set('Content-Type', 'application/json')
|
|
1721
|
-
const result = await app.db.healthcheck()
|
|
1722
|
-
|
|
1723
|
-
return res.status(status).json({ isRunning: true, isDatabaseRunning: result })
|
|
1726
|
+
<span class="cstat-no" title="statement not covered" > res.set('Content-Type', 'application/json')</span>
|
|
1727
|
+
<span class="cstat-no" title="statement not covered" > const result = await app.db.healthcheck()</span>
|
|
1728
|
+
<span class="cstat-no" title="statement not covered" > const status = (result ? 200 : 500)</span>
|
|
1729
|
+
<span class="cstat-no" title="statement not covered" > return res.status(status).json({ isRunning: true, isDatabaseRunning: result })</span>
|
|
1724
1730
|
})
|
|
1725
1731
|
}
|
|
1726
1732
|
|
|
@@ -1756,15 +1762,15 @@ export function kdk (config = {}) {
|
|
|
1756
1762
|
<span class="cstat-no" title="statement not covered" > return app.service(app.get('apiPath') + '/' + context + '/' + path)</span>
|
|
1757
1763
|
} else if (context <span class="branch-0 cbranch-no" title="branch not covered" >&& typeof context === 'object')</span> <span class="branch-0 cbranch-no" title="branch not covered" >{</span>
|
|
1758
1764
|
<span class="cstat-no" title="statement not covered" > // Could be Object ID or raw object</span>
|
|
1759
|
-
<span class="cstat-no" title="statement not covered" > if (
|
|
1765
|
+
<span class="cstat-no" title="statement not covered" > if (ObjectID.isValid(context)) return app.service(app.get('apiPath') + '/' + context.toString() + '/' + path)</span>
|
|
1760
1766
|
<span class="cstat-no" title="statement not covered" > else return app.service(app.get('apiPath') + '/' + context._id.toString() + '/' + path)</span>
|
|
1761
1767
|
} else {
|
|
1762
1768
|
return app.service(app.get('apiPath') + '/' + path)
|
|
1763
1769
|
}
|
|
1764
|
-
} catch {
|
|
1765
|
-
// We return a false-y value in case the service wasn't found
|
|
1766
|
-
return null
|
|
1767
|
-
}
|
|
1770
|
+
} <span class="branch-0 cbranch-no" title="branch not covered" >catch {</span>
|
|
1771
|
+
<span class="cstat-no" title="statement not covered" > // We return a false-y value in case the service wasn't found</span>
|
|
1772
|
+
<span class="cstat-no" title="statement not covered" > return null</span>
|
|
1773
|
+
<span class="cstat-no" title="statement not covered" > }</span>
|
|
1768
1774
|
}
|
|
1769
1775
|
// This is used to add hooks/filters to services
|
|
1770
1776
|
app.configureService = <span class="fstat-no" title="function not covered" >async function (name, service, servicesPath) {</span>
|
|
@@ -1849,7 +1855,7 @@ export function kdk (config = {}) {
|
|
|
1849
1855
|
<div class='footer quiet pad2 space-top1 center small'>
|
|
1850
1856
|
Code coverage generated by
|
|
1851
1857
|
<a href="https://istanbul.js.org/" target="_blank" rel="noopener noreferrer">istanbul</a>
|
|
1852
|
-
at
|
|
1858
|
+
at 2024-08-13T10:02:04.872Z
|
|
1853
1859
|
</div>
|
|
1854
1860
|
<script src="../../prettify.js"></script>
|
|
1855
1861
|
<script>
|