Commit Graph

63883 Commits

Author SHA1 Message Date
Houssem Dafdouf
63ee034e38
pwhm: upstep pwhm version to v7.6.7
This upstep will integrate the following tickets :

- Issue: PPM-3034 PWHM Wi-Fi hostap updated security configuration for
Wi-Fi 7
- Issue: PPW-384 Fix hex string to byte conversion issue
- Issue: PPM-2984 Add WiFi.AccessPoint.MLDConfig
- PPW-367: Assigning Toggle action to wps_state parameter to avoid all
three radios restart while changing security modethree...

Adapt obuspa.t cram test accordingly

Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2025-07-31 15:23:22 +00:00
Petr Štetiar
73ad93bbe8
ci: cdrouter: move CDRouter-Wireless tests into cdrouter smoke stage
We've a new 'cdrouter smoke' stage and since CDRouter-Wireless tests
should be run in this stage, lets move those tests there, to make the
test availability, execution etc. easier.

Closes: PCF-1645
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:21 +00:00
Petr Štetiar
b12d7cc424
ci: cdrouter: add prplWare Smoke Test Suite testing
Current CI testing pipeline is very comprehensive and unusable for
testing of more granular deliveries and thus a new prplWare Smoke Test
Suite is needed.

The idea behind this new prplWare Smoke Test Suite is, that the complete
test runtime should fit into the range of 60-90 minutes.

The new Smoke Test Suite should contain testing a bit of everything, so
we cover most of the areas, while being  able to finish a test within a
reasonable timeframe.

Thus this new test suite combines the current:

 * CDRouter TOP 100 IPv4 and IPv6 packages, minus:

   - the longest running TCP/UDP firewall port scan tests:

     * ipv6_firewall_100
     * ipv6_firewall_101
     * cdrouter_firewall_100
     * cdrouter_firewall_101
     * cdrouter_firewall_110

   - the failing tests on OSP boards:

     * cdrouter_nat_201 tracked in PCF-972
     * cdrouter_l2tppt_2 tracked in PCF-971

 * CDRouter TR-069 package, minus the reboot test od128_test_14.1

 * CDRouter USP certification test cases + USP basic test + prpl HL-API
   tests (minus the problematic and currently always failing prpl_hl-api.1.4 Set test)

 * cdrouter_dyndns_1 - DynDNS client sends an update request when the WAN IP address changes
 * cdrouter_dyndns_2 - DynDNS client does not update if the WAN reestablishes with the same IP address

So the package contains in total 310 CDRouter test cases.

Closes: PCF-1645
References: PCF-971, PCF-972
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:20 +00:00
Petr Štetiar
91811f9f0d
ci: cleanup obsolete and unused devices, tests and support bits
There is currently a lot of old and already very obsolete stuff in the
tree for the past devices like glinet-b1300, urx851-b0-dk, nec-wx3000hp.

So lets cleanup all those unused bits to make the tree more tidy and
easier to maintain.

Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:19 +00:00
Petr Štetiar
3e060477f5
ci: cdrouter: configurations: smoke-test: sync DynDNS settings with generic config
We're going to use single smoke-test config to test bit of everything in
single test suite, so lets sync the DynDNS config from the generic
config.

References: PCF-1645
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:18 +00:00
Petr Štetiar
9debef340d
ci: cdrouter: configurations: smoke-test: sync dhcpLeaseTime with generic config
We're going to use single config for both IPv4 and IPv6 testing, so lets
sync the dhcpLeaseTime of 180 seconds from generic config, currently
being used for IPv4 based tests only.

References: PCF-1645
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:17 +00:00
Petr Štetiar
01d61b2878
ci: testbed: cdrouter: configurations: add smoke test configuration
Copy over generic-ipv6 configuration to smoke-test, so later changes are
clearly visible.

References: PCF-1645
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:16 +00:00
Toon Caeyers
a2c02e0283
ci: cram: update expected output for mqttbroker
After integrating the mqttbroker, cram test expected output needs to be updated

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:23:15 +00:00
Toon Caeyers
69133839af
Revert "profiles: prpl: remove tr181-mqttbroker"
The tr181-mqttbroker has been introduced before, but it was decided to not include it for a prplos3.1 or prplos3.2 release.
Let's now enable it again as we want to include it in the next upcoming release.

This reverts commit eec456fa442b3d66b740631747bcc4a29607db77.

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:23:14 +00:00
Matthias Franck
d136c464ea
profiles: prpl: feed-prplos: enable tr181-mqttbroker
This bump includes all changes needed for enabling the tr181-mqttbroker:
- 04d7b205 ("mosquitto: import v2.0.18", 2024-04-16)
- e410991c ("mosquitto: Depend on libwebsockets4 (PCF-1642)", 2023-03-10)
- 70a55aa6 ("mosquitto: Add patch to add asynchronous connect function for mqtt v5.0 (PCF-1648)", 2024-04-16)
- 5c8a0cf9 ("prpl-configuration: register tr181-mqttbroker to USP bus", 2025-02-19)
- 99fc08d1 ("tr181-mqttbroker: bump to v0.1.2", 2025-02-24)

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:14 +00:00
Matthias Franck
fbcf15d79f
profiles: prpl: tr181-ethernet: bump to v1.24.1
Integrates:
eead855 ("Add NoARP parameter to Ethernet.Link.i", 2025-02-07)

References: PCF-1622

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:13 +00:00
Matthias Franck
f9ba172774
profiles: prpl: tr181-pcp: bump to v0.10.11
Integrates:
Debug: [UPnP-IGD] PCP interworking function is working even if Device.PCP.Client.1.UPnPIWF.Enable=0

Reference: PCF-1040

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:12 +00:00
Matthias Franck
ea905f5b49
profiles: prpl: miniupnpd-prpl: bump to gen_miniupnpd_2_3_3_v0.3.12
Problem: [UPnP-IGD] PCP interworking function is working even if Device.PCP.Client.1.UPnPIWF.Enable=0

Cause: Device.PCP.Client.1.UPnPIWF.Enable isn't supported

Solution: Add Device.PCP.Client.1.UPnPIWF.Enable support

Reference: PCF-1040

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:11 +00:00
Matthias Franck
fd44becfa9
dhcpv6s-manager: bump to v0.21.0
Integrates:
- 6b23df3 ("tr181-dhcpv6s: implement PassthroughClient to get Client option (PCF-1619)", 2025-01-15)
- 61c82a8 ("tr181-dhcpv6s: Update default dscp value to 0x30 (PCF-1619)", 2025-01-15)

References: PCF-1619

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:10 +00:00
Matthias Franck
d6d36f139d
profiles: prpl: bump mod-xpon-prpl to v1.0.7
Integrates:
- e561d1d ("Do not consider a template object having no instances as an error", 2025-01-09)
- 13bae84 ("Add doc to includes", 2025-01-09)
- 9cf8811 ("Check return value of all snprintf() calls", 2025-01-09)
- 8d66513 ("Improve error messages for errors in incoming notifications", 2025-01-09)

References: PPW-268

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:09 +00:00
Matthias Franck
9aaad920bd
ci: build: allow to bypass package integrity check with skip_integrity_check label
When we want to test development branches of components, we need to point to the gitrepo and branch/hash/version we want to checkout of the component(s).
The CI has a check to see if the checksum of the corresponding package is correctly set in the package makefiles.

With this change, one can set the "skip_integrity_check" label on a MR.
In this case, the integrity check is not performed and we can simply download and use the development branch of the gitrepo.
This allows us to make MRs on the fly for testing purposes. Without needing to calculcate the checksum every time.

References: PPW-408

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:08 +00:00
Petr Štetiar
0a8d6a573a
ci: 060-xpon-mock.t: install mod-xpon-prpl-mock from feed_prplos
mod-xpon-prpl-mock package has been moved into feed_prplos in commit
16ae6b3e7a52 ("profiles: prpl: merge remaining feeds into single
feed_prplos"), so lets fix the source directory location.

References: PCF-1554
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:07 +00:00
Petr Štetiar
5e7b3864fb
profiles: prpl: merge remaining feeds into single feed_prplos
For the time being we’ve accepted internal prplWare feed structure as
being used within SoftAtHome.

This feed structure doesn’t fit into the working group structure and
workflows within the prpl Foundation, so it was decided, that it should
be changed.

Following feeds were merged into feed_prplos:

 feed_board_configuration
 feed_debug
 feed_gmap
 feed_mcastd
 feed_net_core
 feed_net_hl_services
 feed_net_services
 feed_netmodel
 feed_opensource
 feed_peripheral
 feed_qos_firewall
 feed_tr69
 feed_usp

So lets adapt the feed configuration accordingly.

References: PPM-3113, PCF-1554
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:06 +00:00
Petr Štetiar
eb2ed8d3f1
profiles: prpl: merge feed_wifi_swl and feed_wifi_core into new feed_prplmesh
For the time being we’ve accepted internal prplWare feed structure as
being used within SoftAtHome.

This feed structure doesn’t fit into the working group structure and
workflows within the prpl Foundation, so it was decided, that it should
be changed.

pwhm and prplMesh are now part of one single feed_prplmesh, so lets
adapt the feed configuration accordingly.

References: PPM-3113, PCF-1554
Signed-off-by: Petr Štetiar <petr.stetiar@prplfoundation.org>
2025-07-31 15:23:05 +00:00
Houssem Dafdouf
6d880fa8bc
ci: cdrouter: fix error when enabling DUT SSID
Problem: Cannot set SSID during the configuration of the DUT

Cause: Starting from PWHM v6.34.1 we shouldn't use the terminating dot
when accessing SSIDReference and LowerLayers parameters.

Solution: Remove the termiantion dot when selecting SSID via the
LowerLayers reference.

Note: The previous version of the cdrouter-dut-configure-dyndns.sh was
based on PWHM version from prplOS 3.2 which is based on 6.34.0 with a
backport of only some PPWH/PPM tickets. The pwhm commit related to the
terminating dot change is not part of the list.

PWHM commit : b8706173c1240d8dabdd9816a49fd774b968c160

References: PPM-3069

Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2025-07-31 15:23:04 +00:00
Houssem Dafdouf
df3826d404
profiles: prpl: upstep pwhm to v7.6.3
The main purpose of this upstep is the integration of the Wifi7/MLO
feature.

Additional updates :

Feeds :

- Update libswlc to v5.30.2

CRAM tests :

- obuspa.t/ubus-datamodel-list.t : add new objects introduced by the
pwhm v7.x upstep

- 100-pwhm.t : update script to test MLO main link interface status

- 101-mlo.t : new script to test MLO deactivation

CDRouter updates (tri-band MLO prequesties) :

- Security mode is now set to WPA3-WPA2-Personal

- Add SAE in the expected key management mode list.

- Remove 'be' from the expected phy mode list on OSPv2. As it shouldn't
be broadcasted if MLO is not supported or when the access point is not
part of an MLD.
PWHM reference commit : 0627886f993c25b0de4ee628d9d07e7f67f01008

Closes: PPM-2984
References: PPW-228

Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2025-07-31 15:23:03 +00:00
Houssem Dafdouf
f8a3d4ca06
profiles: qca: hostapd: import MLO patches
* hostapd: fix crash during non-MLO to MLO config reload
 * hostapd: fix channel switch failure on 6GHz
 * hostapd: fix non-MLO bring-up using single driver context

Fixes: PPM-2984, PPM-3061, PPM-3062, PPM-3063

Signed-off-by: Houssem Dafdouf <houssem.dafdouf_ext@softathome.com>
2025-07-31 15:23:02 +00:00
Matthias Franck
4c14cc2335
ci: testbed/cdrouter: adapt getDebugInformation artifact collection
The getDebugInformation is now exporting an archive like debug-TARGET_all.tar.gz.
So let us adapt the CI accordingly so that we use this archive to get the debug information file.

Signed-off-by: Matthias Franck <matthias.franck@softathome.com>
2025-07-31 15:23:01 +00:00
Toon Caeyers
32b7742972
PROVISORY: ci: cram: Remove missing IncrementalResult parameter from expected results
This parameter is missing according to the cram test but when performing the same check manually on a board, the parameter is there.

We are removing the parameter from the test in order for the test to pass while we investigate the issue.

Issue: PPW-400 - X_PRPL-COM_DownloadResult.IncrementalResult missing
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:23:00 +00:00
Toon Caeyers
1bcd220c1f
PROVISORY: ci: cdrouter: Lower DynamicDNS.Server.{i}.CheckInterval to 30s
WORKAROUND: When the first check misses, the ddns script only rechecks after 60s,
    this can fall just outside the allowed range of the test.
    Lowering it to 30s should allow for the second check to still count.

Issue:PPW-282 - DynDNS 3.1 maintenance release CDRouter test fails
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
(cherry picked from commit de7bb3795ad55d21d94079bf699d15dde4d49d2d)
2025-07-31 15:22:59 +00:00
Toon Caeyers
dba1b9839f
ci: cram: build config add F2FS_FS_SECURITY option
libamxpv2.1.1 added handling of subprocess capabilities via libcap-ng. Commit d0cca925 in feed_amx introduces select options for the required options

References: PCF-1456, PCF-1411, PPW-74
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:58 +00:00
Toon Caeyers
2564497159
ci: cram: Update the post script crash check
ProcessFaults.LastUpgradeCount keeps the crash count, even after clearing the crashes. As the cram tests and the CDRouter tests use the same post script, it should be such a test that works in both cases.

cram tests have a simulated crash (setting LastUpgradeCount to 1). In CDRouter LastUpgradeCount should be 0. By checking the contents of ProcessFaults we know if there were any crashes with the added benefit of seeing what crashed.

The check of the ProcessFaults parameters was move to the ProcessFaults cram test

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
Co-Authored-By: Petr Štetiar <petr.stetiar@prplfoundation.org>
Co-Authored-By: Vincent Harle <vincent.harle@softathome.com>
2025-07-31 15:22:57 +00:00
Toon Caeyers
446d7f781a
ci: cram: Add new STP related config options
In tr181-bridging v2.8.17, support for spanning tree protocol (STP) was added.
This introduced a few new config options

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:56 +00:00
Toon Caeyers
69959da5ee
ci: cram: build config: remove some netlink config options
The lib_netlink-utils library was changed in v0.1.3 to no longer depend on libnetfilter-queue, libnetfilter-log and libnetfilter-conntrack as they use GPLv2 license.

Since these dependencies are now removed, the related config options  also need to be removed

Issue: Linking with GPL-2.0 licensed libnetfilter_* libraries,  PPW-193
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:55 +00:00
Toon Caeyers
1ff73dde51
ci: cram: Add missing POSIX ACLs for unprivileged containers
Cthulhu mainline-3.2 v0.1.0 adds missing dependencies to support unprivileged containers

Issue: PPW-296 - fix missing POSIX ACLs for unprivileged containers
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:54 +00:00
Toon Caeyers
9bc745e58d
ci: cram: Update expected ACL roles
* v0.6.23  of ssh-server adds a ACL file to the cwmpd direcory instead of cwmp. This add an additional role

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:53 +00:00
Toon Caeyers
7a5c83e801
ci: cram: Add netdev 64 bit stats option
* v1.11.13 of netdev sets the use of 64 bit statistics to y by default

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:52 +00:00
Toon Caeyers
a6ab898688
ci: cram: Add two now expected parameters to the DNS output
In v3.3.3 of tr181-dns two now parameters were added to the data model
* DomainExceptionsNumberOfEntries
* IPExceptionsNumberOfEntries

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:51 +00:00
Toon Caeyers
fb3dc37be7
ci: cram: Add default reboot reasons to expected output
In v1.0.0 of the reboot-service default reboot reasons were added

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:50 +00:00
Toon Caeyers
adc680cbc1
ci: cram: Update expected output of the Reboots datamodel
In v1.0.0 of the reboot-service multiple objects got renamed
* flush() to RemoveAllReboots()
* BootCounter to BootCount
* NumberOfReboots to RebootNumberOfEntries
* MaximumNumberOfReboots to MaxRebootEntries
* WatchdogRebootCounter to WatchdogBootCount
* Reboots.{i}.BootDate to Reboots.{i}.TimeStamp
* Reboot.{i} object is refactor according to BBF TR-181 2.18 which is defined like this:
     - Reboot.{i}.FirmwareUpdated
	 - Reboot.{i}.Cause
	 -  Reboot.{i}.Reason

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:49 +00:00
Toon Caeyers
c4cb888b92
ci: cram: Add DHCPv6Client Stats object
In v1.6.0 of tr181-dhcpv6client, it now implements statistics data model and populates it with data received from odhcp6c via ubus. This commit adds the new parameters to the expected output

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:48 +00:00
Toon Caeyers
b51d6ab7e2
ci: cram: Update expected DynamicDNS parameters
In v1.5.8 of tr181-DynamicDNS, extra parameters were added that allow different customizations. Required when using DSLite.

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:47 +00:00
Toon Caeyers
a0cd4a17b1
ci: cram: Update expected Cthulhu data model output
In v4.0.0 of cthulhu a Debug object was added to allow for keeping the overlayfs of a container mounted when it stops to help with debugging

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:46 +00:00
Toon Caeyers
b20a3db4c8
ci: cram: Update expected UserInterface parameters
In v0.15.8 of tr181-httpaccess the missing AvailableLanguages and CurrentLanguage tr181 parameters were added

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:45 +00:00
Toon Caeyers
2a1d044e50
ci: cram: Update expected UPnP parameters
* In v0.10.14 of tr181-upnp the the181capabilities object and parameters was implemented
* In v0.10.16 of tr181-upnp the AllowReserverAddr parameter was added to allow reserve addr creating a new parameter in the data-model
* In v0.10.17 of tr181-upnp the EnableIPv6 parameter was added to allow dynamic configuration of IPv6

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:44 +00:00
Toon Caeyers
6e3b4b250d
ci: cram: Update syslog expected parameters
In v1.6.7 of tr181-syslog a X_PRPL-COM_StructuredData parameter was added to support the ability to
log messages in structured-data format.

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:43 +00:00
Toon Caeyers
1fd2465892
ci: cram: Update expected SoftwareModules parameters
In v3.0.0 of timingila, these new parameters were added to support unprivileged containers as well as a CreationTime parameter

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:42 +00:00
Toon Caeyers
492df48546
ci: cram: Update expected IP-manager parameters
In ip-manager v1.47.8, the X_PRPL-COM_MTUMode parameter was added to support configuring the MTU for WiFi APs, Ethernet and Coax connections

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:41 +00:00
Toon Caeyers
37eb64976a
ci: cram: update Host stats parameters
In tr181-hosts v0.9.2 the datamodel was aligned to the tr181 datamodel

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:40 +00:00
Toon Caeyers
caec710b8f
ci: cram: Update expected DHCPv6Client parameters
In tr181-dhcpv6client v1.5.9 the X_PRPL-COM_DeviceConfig vendor prefix got simplified to X_PRPL-COM_Config

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:39 +00:00
Toon Caeyers
715787f13f
ci: cram: improve firewall levels test
* Rework the test to look more detailed into the firewall rules set on the system
* Switch to using ba-cli instead of ubus-cli

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:38 +00:00
Toon Caeyers
689516c200
ci: cram: Increase sleep after toggling the time
Allow a bit more time for the time plugin to toggle

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:37 +00:00
Toon Caeyers
c95f32c076
ci: cram: Add libacl config option
In feed_lcm v4.0.1, a dependency on libacl is added to add the functionality to have containers run with an unprivileged user.
A new user will be created for each container, and the ownership of the
layers will either be modified through idmap mounting the layers if
available, or by modifying the acl of the layers with posix acl.

Issue: LCM-740 - Support for unprivileged containers
Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:36 +00:00
Toon Caeyers
075e37e02d
ci: cram: Update expected time client alias
* tr181-time v2.7.8 updated the default name of the client to be capitalized to be in line with the default naming scheme.

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:35 +00:00
Toon Caeyers
87e298079d
ci: cram: Update expected config options
* tr181-upnp v0.11.0 introduces a new config token CONFIG_SAH_AMX_TR181_UPNP_MOD_UPNPADVERTISE_LIBUPNP as well as a dependency on libupnp

This version of tr181-upnp was integrated in feed_net_services v12.8.0

Signed-off-by: Toon Caeyers <toon.caeyers_ext@softathome.com>
2025-07-31 15:22:34 +00:00