# STDOUT: ---v---v---v---v---v--- ansible-playbook 2.9.27 config file = /etc/ansible/ansible.cfg configured module search path = ['/home/jenkins/.ansible/plugins/modules', '/usr/share/ansible/plugins/modules'] ansible python module location = /opt/ansible-2.9/lib/python3.9/site-packages/ansible executable location = /opt/ansible-2.9/bin/ansible-playbook python version = 3.9.18 (main, Sep 7 2023, 00:00:00) [GCC 11.4.1 20230605 (Red Hat 11.4.1-2)] Using /etc/ansible/ansible.cfg as config file Skipping callback 'actionable', as we already have a stdout callback. Skipping callback 'counter_enabled', as we already have a stdout callback. Skipping callback 'debug', as we already have a stdout callback. Skipping callback 'dense', as we already have a stdout callback. Skipping callback 'dense', as we already have a stdout callback. Skipping callback 'full_skip', as we already have a stdout callback. Skipping callback 'json', as we already have a stdout callback. Skipping callback 'minimal', as we already have a stdout callback. Skipping callback 'null', as we already have a stdout callback. Skipping callback 'oneline', as we already have a stdout callback. Skipping callback 'selective', as we already have a stdout callback. Skipping callback 'skippy', as we already have a stdout callback. Skipping callback 'stderr', as we already have a stdout callback. Skipping callback 'unixy', as we already have a stdout callback. Skipping callback 'yaml', as we already have a stdout callback. PLAYBOOK: tests_default_nm.yml ************************************************* 2 plays in /WORKDIR/git-route_typemv6fs8x1/tests/tests_default_nm.yml PLAY [Run playbook 'tests_default.yml' with nm as provider] ******************** TASK [Gathering Facts] ********************************************************* task path: /WORKDIR/git-route_typemv6fs8x1/tests/tests_default_nm.yml:3 Wednesday 10 January 2024 18:47:16 +0000 (0:00:00.012) 0:00:00.012 ***** ok: [sut] META: ran handlers TASK [Include the task 'el_repo_setup.yml'] ************************************ task path: /WORKDIR/git-route_typemv6fs8x1/tests/tests_default_nm.yml:6 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.718) 0:00:00.730 ***** included: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml for sut TASK [Gather the minimum subset of ansible_facts required by the network role test] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:3 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.010) 0:00:00.741 ***** ok: [sut] TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:19 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.374) 0:00:01.116 ***** ok: [sut] => { "changed": false, "stat": { "exists": false } } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:24 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.267) 0:00:01.383 ***** ok: [sut] => { "ansible_facts": { "__network_is_ostree": false }, "changed": false } TASK [Fix CentOS6 Base repo] *************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:28 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.019) 0:00:01.403 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Include the task 'enable_epel.yml'] ************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:53 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.017) 0:00:01.420 ***** included: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml for sut TASK [Create EPEL 8] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:8 Wednesday 10 January 2024 18:47:17 +0000 (0:00:00.030) 0:00:01.451 ***** ok: [sut] => { "attempts": 1, "changed": false, "cmd": [ "rpm", "-iv", "https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm" ], "rc": 0 } STDOUT: skipped, since /etc/yum.repos.d/epel.repo exists TASK [Install yum-utils package] *********************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:24 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.252) 0:00:01.703 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 7] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:30 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.011) 0:00:01.714 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 8] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:35 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.014) 0:00:01.729 ***** ok: [sut] => { "changed": false, "cmd": [ "dnf", "config-manager", "--set-enabled", "epel" ], "delta": "0:00:00.251864", "end": "2024-01-10 18:47:18.505790", "rc": 0, "start": "2024-01-10 18:47:18.253926" } TASK [Enable EPEL 6] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:40 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.470) 0:00:02.199 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Set network provider to 'nm'] ******************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tests_default_nm.yml:8 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.023) 0:00:02.222 ***** ok: [sut] => { "ansible_facts": { "network_provider": "nm" }, "changed": false } META: ran handlers META: ran handlers PLAY [Test executing the role with default parameters] ************************* META: ran handlers TASK [linux-system-roles.network : Ensure ansible_facts used by role] ********** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:4 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.011) 0:00:02.234 ***** included: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml for sut TASK [linux-system-roles.network : Ensure ansible_facts used by role are present] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:3 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.062) 0:00:02.297 ***** skipping: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [linux-system-roles.network : Check if system is ostree] ****************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:13 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.010) 0:00:02.307 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Set flag to indicate system is ostree] ****** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:18 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.010) 0:00:02.318 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Check which services are running] *********** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:22 Wednesday 10 January 2024 18:47:18 +0000 (0:00:00.009) 0:00:02.327 ***** ok: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [linux-system-roles.network : Check which packages are installed] ********* task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:27 Wednesday 10 January 2024 18:47:20 +0000 (0:00:01.654) 0:00:03.982 ***** ok: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [linux-system-roles.network : Print network provider] ********************* task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:7 Wednesday 10 January 2024 18:47:21 +0000 (0:00:01.528) 0:00:05.510 ***** ok: [sut] => {} MSG: Using network provider: nm TASK [linux-system-roles.network : Abort applying the network state configuration if using the `network_state` variable with the initscripts provider] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:11 Wednesday 10 January 2024 18:47:21 +0000 (0:00:00.040) 0:00:05.550 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Abort applying the network state configuration if the system version of the managed host is below 8] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:19 Wednesday 10 January 2024 18:47:21 +0000 (0:00:00.039) 0:00:05.590 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Install packages] *************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:30 Wednesday 10 January 2024 18:47:21 +0000 (0:00:00.023) 0:00:05.614 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Install NetworkManager and nmstate when using network_state variable] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:40 Wednesday 10 January 2024 18:47:21 +0000 (0:00:00.057) 0:00:05.671 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Install python3-libnmstate when using network_state variable] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:55 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.022) 0:00:05.694 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Restart NetworkManager due to wireless or team interfaces] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:71 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.025) 0:00:05.720 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Enable and start NetworkManager] ************ task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:85 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.032) 0:00:05.752 ***** ok: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [linux-system-roles.network : Enable and start wpa_supplicant] ************ task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:96 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.524) 0:00:06.277 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Enable network service] ********************* task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:105 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.048) 0:00:06.325 ***** skipping: [sut] => { "censored": "the output has been hidden due to the fact that 'no_log: true' was specified for this result", "changed": false } TASK [linux-system-roles.network : Ensure initscripts network file dependency is present] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:113 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.022) 0:00:06.348 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Configure networking connection profiles] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:122 Wednesday 10 January 2024 18:47:22 +0000 (0:00:00.022) 0:00:06.370 ***** ok: [sut] => { "_invocation": { "module_args": { "__debug_flags": "", "__header": "#\n# Ansible managed\n#\n# system_role:network\n", "connections": [], "force_state_change": false, "ignore_errors": false, "provider": "nm" } }, "changed": false } STDERR: TASK [linux-system-roles.network : Configure networking state] ***************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:134 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.470) 0:00:06.840 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [linux-system-roles.network : Show stderr messages for the network_connections] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:140 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.022) 0:00:06.863 ***** ok: [sut] => { "__network_connections_result.stderr_lines": [ "" ] } TASK [linux-system-roles.network : Show debug messages for the network_connections] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:144 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.046) 0:00:06.909 ***** ok: [sut] => { "__network_connections_result": { "_invocation": { "module_args": { "__debug_flags": "", "__header": "#\n# Ansible managed\n#\n# system_role:network\n", "connections": [], "force_state_change": false, "ignore_errors": false, "provider": "nm" } }, "changed": false, "failed": false, "stderr": "\n", "stderr_lines": [ "" ] } } TASK [linux-system-roles.network : Show debug messages for the network_state] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:149 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.026) 0:00:06.935 ***** skipping: [sut] => {} TASK [linux-system-roles.network : Re-test connectivity] *********************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:155 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.022) 0:00:06.957 ***** ok: [sut] => { "changed": false, "ping": "pong" } TASK [Include the task 'el_repo_setup.yml'] ************************************ task path: /WORKDIR/git-route_typemv6fs8x1/tests/tests_default.yml:9 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.245) 0:00:07.203 ***** included: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml for sut TASK [Gather the minimum subset of ansible_facts required by the network role test] *** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:3 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.034) 0:00:07.238 ***** ok: [sut] TASK [Check if system is ostree] *********************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:19 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.344) 0:00:07.583 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Set flag to indicate system is ostree] *********************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:24 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.021) 0:00:07.605 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Fix CentOS6 Base repo] *************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:28 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.020) 0:00:07.625 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Include the task 'enable_epel.yml'] ************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:53 Wednesday 10 January 2024 18:47:23 +0000 (0:00:00.022) 0:00:07.648 ***** included: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml for sut TASK [Create EPEL 8] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:8 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.036) 0:00:07.685 ***** ok: [sut] => { "attempts": 1, "changed": false, "cmd": [ "rpm", "-iv", "https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm" ], "rc": 0 } STDOUT: skipped, since /etc/yum.repos.d/epel.repo exists TASK [Install yum-utils package] *********************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:24 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.201) 0:00:07.887 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 7] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:30 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.022) 0:00:07.909 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Enable EPEL 8] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:35 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.046) 0:00:07.956 ***** ok: [sut] => { "changed": false, "cmd": [ "dnf", "config-manager", "--set-enabled", "epel" ], "delta": "0:00:00.255225", "end": "2024-01-10 18:47:24.716764", "rc": 0, "start": "2024-01-10 18:47:24.461539" } TASK [Enable EPEL 6] *********************************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:40 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.463) 0:00:08.420 ***** skipping: [sut] => { "changed": false, "skip_reason": "Conditional result was False" } TASK [Test warning and info logs] ********************************************** task path: /WORKDIR/git-route_typemv6fs8x1/tests/tests_default.yml:11 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.022) 0:00:08.442 ***** ok: [sut] => { "changed": false } MSG: All assertions passed META: ran handlers META: ran handlers PLAY RECAP ********************************************************************* sut : ok=24 changed=0 unreachable=0 failed=0 skipped=24 rescued=0 ignored=0 Wednesday 10 January 2024 18:47:24 +0000 (0:00:00.010) 0:00:08.452 ***** =============================================================================== linux-system-roles.network : Check which services are running ----------- 1.65s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:22 linux-system-roles.network : Check which packages are installed --------- 1.53s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/set_facts.yml:27 Gathering Facts --------------------------------------------------------- 0.72s /WORKDIR/git-route_typemv6fs8x1/tests/tests_default_nm.yml:3 ------------------ linux-system-roles.network : Enable and start NetworkManager ------------ 0.52s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:85 Enable EPEL 8 ----------------------------------------------------------- 0.47s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:35 ---------------- linux-system-roles.network : Configure networking connection profiles --- 0.47s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:122 Enable EPEL 8 ----------------------------------------------------------- 0.46s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:35 ---------------- Gather the minimum subset of ansible_facts required by the network role test --- 0.37s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:3 --------------- Gather the minimum subset of ansible_facts required by the network role test --- 0.34s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:3 --------------- Check if system is ostree ----------------------------------------------- 0.27s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/el_repo_setup.yml:19 -------------- Create EPEL 8 ----------------------------------------------------------- 0.25s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:8 ----------------- linux-system-roles.network : Re-test connectivity ----------------------- 0.25s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:155 Create EPEL 8 ----------------------------------------------------------- 0.20s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:8 ----------------- linux-system-roles.network : Ensure ansible_facts used by role ---------- 0.06s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:4 linux-system-roles.network : Install packages --------------------------- 0.06s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:30 linux-system-roles.network : Enable and start wpa_supplicant ------------ 0.05s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:96 Enable EPEL 7 ----------------------------------------------------------- 0.05s /WORKDIR/git-route_typemv6fs8x1/tests/tasks/enable_epel.yml:30 ---------------- linux-system-roles.network : Show stderr messages for the network_connections --- 0.05s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:140 linux-system-roles.network : Print network provider --------------------- 0.04s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:7 linux-system-roles.network : Abort applying the network state configuration if using the `network_state` variable with the initscripts provider --- 0.04s /WORKDIR/git-route_typemv6fs8x1/tests/roles/linux-system-roles.network/tasks/main.yml:11 ---^---^---^---^---^--- # STDERR: ---v---v---v---v---v--- [WARNING]: Consider using the dnf module rather than running 'dnf'. If you need to use command because dnf is insufficient you can add 'warn: false' to this command task or set 'command_warnings=False' in ansible.cfg to get rid of this message. ---^---^---^---^---^---