2026-06-17 20:40:24.307375 | Job console starting 2026-06-17 20:40:24.321147 | Updating git repos 2026-06-17 20:40:24.441104 | Cloning repos into workspace 2026-06-17 20:40:24.502818 | Restoring repo states 2026-06-17 20:40:24.520291 | Merging changes 2026-06-17 20:40:25.775386 | Checking out repos 2026-06-17 20:40:25.852382 | Preparing playbooks 2026-06-17 20:40:29.269357 | Running Ansible setup 2026-06-17 20:40:33.702768 | PRE-RUN START: [trusted : github.com/vexxhost/zuul-config/playbooks/base/pre.yaml@main] 2026-06-17 20:40:34.332655 | 2026-06-17 20:40:34.332992 | PLAY [localhost] 2026-06-17 20:40:34.340468 | 2026-06-17 20:40:34.340538 | TASK [Gathering Facts] 2026-06-17 20:40:35.166933 | localhost | ok 2026-06-17 20:40:35.175954 | 2026-06-17 20:40:35.176104 | TASK [Setup log path fact] 2026-06-17 20:40:35.195391 | localhost | ok 2026-06-17 20:40:35.208226 | 2026-06-17 20:40:35.208336 | TASK [set-zuul-log-path-fact : Set log path for a build] 2026-06-17 20:40:35.236883 | localhost | ok 2026-06-17 20:40:35.246232 | 2026-06-17 20:40:35.246353 | TASK [emit-job-header : Print job information] 2026-06-17 20:40:35.288864 | # Job Information 2026-06-17 20:40:35.289107 | Ansible Version: 2.16.18 2026-06-17 20:40:35.289158 | Job: pre-commit 2026-06-17 20:40:35.289190 | Pipeline: check 2026-06-17 20:40:35.289218 | Executor: 2d72f0692154 2026-06-17 20:40:35.289246 | Triggered by: https://github.com/vexxhost/ansible-collection-kubernetes/pull/285 2026-06-17 20:40:35.289277 | Event ID: ade49340-6a8c-11f1-9331-ca890a4b8b58 2026-06-17 20:40:35.293368 | 2026-06-17 20:40:35.293458 | LOOP [emit-job-header : Print node information] 2026-06-17 20:40:35.395608 | localhost | ok: 2026-06-17 20:40:35.395800 | localhost | # Node Information 2026-06-17 20:40:35.395840 | localhost | Inventory Hostname: ubuntu-noble 2026-06-17 20:40:35.395871 | localhost | Hostname: np0000181661 2026-06-17 20:40:35.395900 | localhost | Username: zuul 2026-06-17 20:40:35.395931 | localhost | Distro: Ubuntu 24.04 2026-06-17 20:40:35.395959 | localhost | Provider: yul1 2026-06-17 20:40:35.395986 | localhost | Region: ca-ymq-1 2026-06-17 20:40:35.396013 | localhost | Label: ubuntu-noble 2026-06-17 20:40:35.396039 | localhost | Product Name: OpenStack Nova 2026-06-17 20:40:35.396066 | localhost | Interface IP: 199.204.45.22 2026-06-17 20:40:35.412002 | 2026-06-17 20:40:35.412095 | TASK [log-inventory : Ensure Zuul Ansible directory exists] 2026-06-17 20:40:36.377615 | localhost -> localhost | changed 2026-06-17 20:40:36.385784 | 2026-06-17 20:40:36.385873 | TASK [log-inventory : Copy ansible inventory to logs dir] 2026-06-17 20:40:37.291410 | localhost -> localhost | changed 2026-06-17 20:40:37.300841 | 2026-06-17 20:40:37.300918 | PLAY [all] 2026-06-17 20:40:37.308958 | 2026-06-17 20:40:37.309041 | TASK [add-build-sshkey : Check to see if ssh key was already created for this build] 2026-06-17 20:40:39.155492 | ubuntu-noble -> localhost | ok 2026-06-17 20:40:39.162656 | 2026-06-17 20:40:39.162718 | TASK [add-build-sshkey : Create a new key in workspace based on build UUID] 2026-06-17 20:40:39.195345 | ubuntu-noble | ok 2026-06-17 20:40:39.212949 | ubuntu-noble | included: /var/lib/zuul/builds/4bd728436b19407b961329df8625337f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey/tasks/create-key-and-replace.yaml 2026-06-17 20:40:39.220007 | 2026-06-17 20:40:39.220082 | TASK [add-build-sshkey : Create Temp SSH key] 2026-06-17 20:40:40.201480 | ubuntu-noble -> localhost | Generating public/private rsa key pair. 2026-06-17 20:40:40.201664 | ubuntu-noble -> localhost | Your identification has been saved in /var/lib/zuul/builds/4bd728436b19407b961329df8625337f/work/4bd728436b19407b961329df8625337f_id_rsa 2026-06-17 20:40:40.201706 | ubuntu-noble -> localhost | Your public key has been saved in /var/lib/zuul/builds/4bd728436b19407b961329df8625337f/work/4bd728436b19407b961329df8625337f_id_rsa.pub 2026-06-17 20:40:40.201738 | ubuntu-noble -> localhost | The key fingerprint is: 2026-06-17 20:40:40.201768 | ubuntu-noble -> localhost | SHA256:thTirYGCO/3HIvlM308uyKo4VXVjaT/vbgnRMzuj4Y0 zuul-build-sshkey 2026-06-17 20:40:40.201809 | ubuntu-noble -> localhost | The key's randomart image is: 2026-06-17 20:40:40.201838 | ubuntu-noble -> localhost | +---[RSA 3072]----+ 2026-06-17 20:40:40.201872 | ubuntu-noble -> localhost | | . | 2026-06-17 20:40:40.201902 | ubuntu-noble -> localhost | | . * | 2026-06-17 20:40:40.201930 | ubuntu-noble -> localhost | | ..+.o . | 2026-06-17 20:40:40.201958 | ubuntu-noble -> localhost | | . .o o .+ + | 2026-06-17 20:40:40.201985 | ubuntu-noble -> localhost | |. ... o S + + | 2026-06-17 20:40:40.202073 | ubuntu-noble -> localhost | | o.. = .o = | 2026-06-17 20:40:40.202105 | ubuntu-noble -> localhost | |o....o.....B + | 2026-06-17 20:40:40.202134 | ubuntu-noble -> localhost | |.oo+..=..oE = | 2026-06-17 20:40:40.202164 | ubuntu-noble -> localhost | |...+=+. .ooo. | 2026-06-17 20:40:40.202193 | ubuntu-noble -> localhost | +----[SHA256]-----+ 2026-06-17 20:40:40.202256 | ubuntu-noble -> localhost | ok: Runtime: 0:00:00.538131 2026-06-17 20:40:40.208828 | 2026-06-17 20:40:40.208895 | TASK [add-build-sshkey : Remote setup ssh keys (linux)] 2026-06-17 20:40:40.242348 | ubuntu-noble | ok 2026-06-17 20:40:40.253270 | ubuntu-noble | included: /var/lib/zuul/builds/4bd728436b19407b961329df8625337f/trusted/project_1/opendev.org/zuul/zuul-jobs/roles/add-build-sshkey/tasks/remote-linux.yaml 2026-06-17 20:40:40.261468 | 2026-06-17 20:40:40.261545 | TASK [add-build-sshkey : Remove previously added zuul-build-sshkey] 2026-06-17 20:40:40.295962 | ubuntu-noble | skipping: Conditional result was False 2026-06-17 20:40:40.308048 | 2026-06-17 20:40:40.308123 | TASK [add-build-sshkey : Enable access via build key on all nodes] 2026-06-17 20:40:40.866961 | ubuntu-noble | changed 2026-06-17 20:40:40.872804 | 2026-06-17 20:40:40.872915 | TASK [add-build-sshkey : Make sure user has a .ssh] 2026-06-17 20:40:41.092322 | ubuntu-noble | ok 2026-06-17 20:40:41.098173 | 2026-06-17 20:40:41.098254 | TASK [add-build-sshkey : Install build private key as SSH key on all nodes] 2026-06-17 20:40:41.665400 | ubuntu-noble | changed 2026-06-17 20:40:41.672468 | 2026-06-17 20:40:41.672577 | TASK [add-build-sshkey : Install build public key as SSH key on all nodes] 2026-06-17 20:40:42.241855 | ubuntu-noble | changed 2026-06-17 20:40:42.267402 | 2026-06-17 20:40:42.267586 | TASK [add-build-sshkey : Remote setup ssh keys (windows)] 2026-06-17 20:40:42.297501 | ubuntu-noble | skipping: Conditional result was False 2026-06-17 20:40:42.314314 | 2026-06-17 20:40:42.314499 | TASK [remove-zuul-sshkey : Remove master key from local agent] 2026-06-17 20:40:43.017473 | ubuntu-noble -> localhost | changed 2026-06-17 20:40:43.031714 | 2026-06-17 20:40:43.031827 | TASK [add-build-sshkey : Add back temp key] 2026-06-17 20:40:43.339837 | ubuntu-noble -> localhost | Identity added: /var/lib/zuul/builds/4bd728436b19407b961329df8625337f/work/4bd728436b19407b961329df8625337f_id_rsa (zuul-build-sshkey) 2026-06-17 20:40:43.340028 | ubuntu-noble -> localhost | ok: Runtime: 0:00:00.014979 2026-06-17 20:40:43.347428 | 2026-06-17 20:40:43.347491 | TASK [add-build-sshkey : Verify we can still SSH to all nodes] 2026-06-17 20:40:43.719576 | ubuntu-noble | ok 2026-06-17 20:40:43.725163 | 2026-06-17 20:40:43.725263 | TASK [add-build-sshkey : Verify we can still SSH to all nodes (windows)] 2026-06-17 20:40:43.751197 | ubuntu-noble | skipping: Conditional result was False 2026-06-17 20:40:43.768684 | 2026-06-17 20:40:43.768859 | TASK [prepare-workspace : Start zuul_console daemon.] 2026-06-17 20:40:44.126218 | ubuntu-noble | ok 2026-06-17 20:40:44.282029 | 2026-06-17 20:40:44.282188 | TASK [prepare-workspace : Synchronize src repos to workspace directory.] 2026-06-17 20:40:45.307803 | ubuntu-noble | Output suppressed because no_log was given 2026-06-17 20:40:45.318829 | 2026-06-17 20:40:45.318923 | LOOP [ensure-output-dirs : Empty Zuul Output directories by removing them] 2026-06-17 20:40:45.544192 | ubuntu-noble | ok: "logs" 2026-06-17 20:40:45.658975 | ubuntu-noble | ok: All items complete 2026-06-17 20:40:45.659210 | 2026-06-17 20:40:45.741140 | ubuntu-noble | ok: "artifacts" 2026-06-17 20:40:45.946531 | ubuntu-noble | ok: "docs" 2026-06-17 20:40:45.964488 | 2026-06-17 20:40:45.964645 | LOOP [ensure-output-dirs : Ensure Zuul Output directories exist] 2026-06-17 20:40:46.188058 | ubuntu-noble | changed: "logs" 2026-06-17 20:40:46.389803 | ubuntu-noble | changed: "artifacts" 2026-06-17 20:40:46.597141 | ubuntu-noble | changed: "docs" 2026-06-17 20:40:46.730459 | 2026-06-17 20:40:46.730568 | PLAY RECAP 2026-06-17 20:40:46.730617 | localhost | ok: 6 changed: 2 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2026-06-17 20:40:46.730654 | ubuntu-noble | ok: 15 changed: 8 unreachable: 0 failed: 0 skipped: 3 rescued: 0 ignored: 0 2026-06-17 20:40:46.730688 | 2026-06-17 20:40:46.882491 | PRE-RUN END RESULT_NORMAL: [trusted : github.com/vexxhost/zuul-config/playbooks/base/pre.yaml@main] 2026-06-17 20:40:46.885975 | PRE-RUN START: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/pre-commit/pre.yaml@main] 2026-06-17 20:40:47.527982 | 2026-06-17 20:40:47.528124 | PLAY [all] 2026-06-17 20:40:47.542254 | 2026-06-17 20:40:47.542384 | TASK [setup-uv : Extract archive] 2026-06-17 20:40:50.029639 | ubuntu-noble | changed 2026-06-17 20:40:50.290728 | 2026-06-17 20:40:50.290960 | TASK [setup-uv : Print version] 2026-06-17 20:40:50.664014 | ubuntu-noble | uv 0.8.13 2026-06-17 20:40:51.130527 | ubuntu-noble | ok: Runtime: 0:00:00.014488 2026-06-17 20:40:51.151595 | 2026-06-17 20:40:51.151683 | PLAY RECAP 2026-06-17 20:40:51.151728 | ubuntu-noble | ok: 2 changed: 2 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2026-06-17 20:40:51.151753 | 2026-06-17 20:40:51.268007 | PRE-RUN END RESULT_NORMAL: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/pre-commit/pre.yaml@main] 2026-06-17 20:40:51.278447 | RUN START: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/pre-commit/run.yaml@main] 2026-06-17 20:40:51.920778 | 2026-06-17 20:40:52.262985 | PLAY [all] 2026-06-17 20:40:52.284896 | 2026-06-17 20:40:52.285182 | TASK [Run "pre-commit"] 2026-06-17 20:40:53.095773 | ubuntu-noble | Downloading virtualenv (4.3MiB) 2026-06-17 20:40:53.179941 | ubuntu-noble | Downloading virtualenv 2026-06-17 20:40:53.193186 | ubuntu-noble | Installed 10 packages in 12ms 2026-06-17 20:40:53.553501 | ubuntu-noble | [INFO] Initializing environment for https://github.com/pre-commit/pre-commit-hooks. 2026-06-17 20:40:54.109481 | ubuntu-noble | [WARNING] repo `https://github.com/pre-commit/pre-commit-hooks` uses deprecated stage names (commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pre-commit/pre-commit-hooks` will fix this. if it does not -- consider reporting an issue to that repo. 2026-06-17 20:40:54.114537 | ubuntu-noble | [INFO] Initializing environment for https://github.com/psf/black. 2026-06-17 20:40:54.757356 | ubuntu-noble | [INFO] Initializing environment for https://github.com/pycqa/flake8. 2026-06-17 20:40:55.160275 | ubuntu-noble | [INFO] Initializing environment for https://github.com/pycqa/isort. 2026-06-17 20:40:55.634008 | ubuntu-noble | [WARNING] repo `https://github.com/pycqa/isort` uses deprecated stage names (commit, merge-commit, push) which will be removed in a future version. Hint: often `pre-commit autoupdate --repo https://github.com/pycqa/isort` will fix this. if it does not -- consider reporting an issue to that repo. 2026-06-17 20:40:55.635121 | ubuntu-noble | [INFO] Initializing environment for https://github.com/adrienverge/yamllint.git. 2026-06-17 20:40:56.052410 | ubuntu-noble | [INFO] Initializing environment for https://github.com/ansible/ansible-lint.git. 2026-06-17 20:40:56.613234 | ubuntu-noble | [INFO] Initializing environment for https://github.com/ansible/ansible-lint.git:ansible-core>=2.16.0. 2026-06-17 20:40:57.163090 | ubuntu-noble | [INFO] Installing environment for https://github.com/pre-commit/pre-commit-hooks. 2026-06-17 20:40:57.163156 | ubuntu-noble | [INFO] Once installed this environment will be reused. 2026-06-17 20:40:57.163170 | ubuntu-noble | [INFO] This may take a few minutes... 2026-06-17 20:41:01.276450 | ubuntu-noble | [INFO] Installing environment for https://github.com/psf/black. 2026-06-17 20:41:01.276539 | ubuntu-noble | [INFO] Once installed this environment will be reused. 2026-06-17 20:41:01.276550 | ubuntu-noble | [INFO] This may take a few minutes... 2026-06-17 20:41:06.369343 | ubuntu-noble | [INFO] Installing environment for https://github.com/pycqa/flake8. 2026-06-17 20:41:06.369430 | ubuntu-noble | [INFO] Once installed this environment will be reused. 2026-06-17 20:41:06.369441 | ubuntu-noble | [INFO] This may take a few minutes... 2026-06-17 20:41:09.913709 | ubuntu-noble | [INFO] Installing environment for https://github.com/pycqa/isort. 2026-06-17 20:41:09.913801 | ubuntu-noble | [INFO] Once installed this environment will be reused. 2026-06-17 20:41:09.913812 | ubuntu-noble | [INFO] This may take a few minutes... 2026-06-17 20:41:12.787373 | ubuntu-noble | [INFO] Installing environment for https://github.com/adrienverge/yamllint.git. 2026-06-17 20:41:12.787471 | ubuntu-noble | [INFO] Once installed this environment will be reused. 2026-06-17 20:41:12.787493 | ubuntu-noble | [INFO] This may take a few minutes... 2026-06-17 20:41:16.215316 | ubuntu-noble | [INFO] Installing environment for https://github.com/ansible/ansible-lint.git. 2026-06-17 20:41:16.215443 | ubuntu-noble | [INFO] Once installed this environment will be reused. 2026-06-17 20:41:16.215463 | ubuntu-noble | [INFO] This may take a few minutes... 2026-06-17 20:41:28.612696 | ubuntu-noble | fix end of files.........................................................Passed 2026-06-17 20:41:28.686929 | ubuntu-noble | trim trailing whitespace.................................................Passed 2026-06-17 20:41:29.057146 | ubuntu-noble | black....................................................................Passed 2026-06-17 20:41:29.314426 | ubuntu-noble | flake8...................................................................Passed 2026-06-17 20:41:29.455879 | ubuntu-noble | isort....................................................................Passed 2026-06-17 20:41:29.793661 | ubuntu-noble | yamllint.................................................................Passed 2026-06-17 20:42:48.012491 | ubuntu-noble | Ansible-lint.............................................................Passed 2026-06-17 20:42:48.469359 | ubuntu-noble | ok: Runtime: 0:01:55.373282 2026-06-17 20:42:48.471757 | 2026-06-17 20:42:48.471826 | PLAY RECAP 2026-06-17 20:42:48.471934 | ubuntu-noble | ok: 1 changed: 1 unreachable: 0 failed: 0 skipped: 0 rescued: 0 ignored: 0 2026-06-17 20:42:48.471976 | 2026-06-17 20:42:48.593589 | RUN END RESULT_NORMAL: [untrusted : github.com/vexxhost/zuul-jobs/playbooks/pre-commit/run.yaml@main] 2026-06-17 20:42:48.596100 | POST-RUN START: [trusted : github.com/vexxhost/zuul-config/playbooks/base/post.yaml@main] 2026-06-17 20:42:49.213523 | 2026-06-17 20:42:49.213676 | PLAY [all] 2026-06-17 20:42:49.228342 | 2026-06-17 20:42:49.228518 | TASK [fetch-output : Set log path for multiple nodes] 2026-06-17 20:42:49.273857 | ubuntu-noble | skipping: Conditional result was False 2026-06-17 20:42:49.283795 | 2026-06-17 20:42:49.283927 | TASK [fetch-output : Set log path for single node] 2026-06-17 20:42:49.327775 | ubuntu-noble | ok 2026-06-17 20:42:49.332861 | 2026-06-17 20:42:49.332928 | LOOP [fetch-output : Ensure local output dirs] 2026-06-17 20:42:49.716547 | ubuntu-noble -> localhost | ok: "/var/lib/zuul/builds/4bd728436b19407b961329df8625337f/work/logs" 2026-06-17 20:42:50.528260 | ubuntu-noble -> localhost | changed: "/var/lib/zuul/builds/4bd728436b19407b961329df8625337f/work/artifacts" 2026-06-17 20:42:50.732192 | ubuntu-noble -> localhost | changed: "/var/lib/zuul/builds/4bd728436b19407b961329df8625337f/work/docs" 2026-06-17 20:42:50.749230 | 2026-06-17 20:42:50.749357 | LOOP [fetch-output : Collect logs, artifacts and docs] 2026-06-17 20:42:58.995895 | ubuntu-noble | changed: .d..t...... ./ 2026-06-17 20:42:58.996114 | ubuntu-noble | changed: All items complete 2026-06-17 20:42:58.996143 | 2026-06-17 20:42:59.467375 | ubuntu-noble | changed: .d..t...... ./ 2026-06-17 20:42:59.937974 | ubuntu-noble | changed: .d..t...... ./ 2026-06-17 20:42:59.960911 | 2026-06-17 20:42:59.961038 | LOOP [merge-output-to-logs : Move artifacts and docs to logs dir] 2026-06-17 20:43:00.379257 | ubuntu-noble -> localhost | ok: Item: artifacts Runtime: 0:00:00.008017 2026-06-17 20:43:00.720849 | ubuntu-noble -> localhost | ok: Item: docs Runtime: 0:00:00.007859 2026-06-17 20:43:00.741806 | 2026-06-17 20:43:00.741915 | PLAY [all] 2026-06-17 20:43:00.748365 | 2026-06-17 20:43:00.748427 | TASK [remove-build-sshkey : Remove the build SSH key from all nodes] 2026-06-17 20:43:01.233722 | ubuntu-noble | changed 2026-06-17 20:43:01.242683 | 2026-06-17 20:43:01.242818 | PLAY RECAP 2026-06-17 20:43:01.242877 | ubuntu-noble | ok: 5 changed: 4 unreachable: 0 failed: 0 skipped: 1 rescued: 0 ignored: 0 2026-06-17 20:43:01.242908 | 2026-06-17 20:43:01.403451 | POST-RUN END RESULT_NORMAL: [trusted : github.com/vexxhost/zuul-config/playbooks/base/post.yaml@main] 2026-06-17 20:43:01.405815 | POST-RUN START: [trusted : github.com/vexxhost/zuul-config/playbooks/base/post-logs.yaml@main] 2026-06-17 20:43:01.982577 | 2026-06-17 20:43:01.982701 | PLAY [localhost] 2026-06-17 20:43:01.993214 | 2026-06-17 20:43:01.993307 | TASK [Generate Zuul manifest] 2026-06-17 20:43:02.014473 | localhost | ok 2026-06-17 20:43:02.031413 | 2026-06-17 20:43:02.031516 | TASK [generate-zuul-manifest : Generate Zuul manifest] 2026-06-17 20:43:02.419426 | localhost | changed 2026-06-17 20:43:02.429977 | 2026-06-17 20:43:02.430060 | TASK [generate-zuul-manifest : Return Zuul manifest URL to Zuul] 2026-06-17 20:43:02.766026 | localhost | ok 2026-06-17 20:43:02.776809 | 2026-06-17 20:43:02.776936 | TASK [Upload logs] 2026-06-17 20:43:02.799145 | localhost | ok 2026-06-17 20:43:02.865338 | 2026-06-17 20:43:02.865499 | TASK [Set zuul-log-path fact] 2026-06-17 20:43:02.885656 | localhost | ok 2026-06-17 20:43:02.897277 | 2026-06-17 20:43:02.897358 | TASK [set-zuul-log-path-fact : Set log path for a build] 2026-06-17 20:43:02.929158 | localhost | ok 2026-06-17 20:43:02.938616 | 2026-06-17 20:43:02.938707 | TASK [upload-logs : Create log directories] 2026-06-17 20:43:03.477861 | localhost | changed 2026-06-17 20:43:03.483240 | 2026-06-17 20:43:03.483333 | TASK [upload-logs : Ensure logs are readable before uploading] 2026-06-17 20:43:04.610872 | localhost -> localhost | ok: Runtime: 0:00:00.005354 2026-06-17 20:43:04.617662 | 2026-06-17 20:43:04.617739 | TASK [upload-logs : Upload logs to log server] 2026-06-17 20:43:05.913644 | localhost | Output suppressed because no_log was given 2026-06-17 20:43:05.918086 | 2026-06-17 20:43:05.918155 | LOOP [upload-logs : Compress console log and json output] 2026-06-17 20:43:05.964280 | localhost | skipping: Conditional result was False 2026-06-17 20:43:05.971260 | localhost | skipping: Conditional result was False 2026-06-17 20:43:05.977245 | 2026-06-17 20:43:05.977376 | LOOP [upload-logs : Upload compressed console log and json output] 2026-06-17 20:43:06.024533 | localhost | skipping: Conditional result was False 2026-06-17 20:43:06.025170 | 2026-06-17 20:43:06.028813 | localhost | skipping: Conditional result was False 2026-06-17 20:43:06.045064 | 2026-06-17 20:43:06.045242 | LOOP [upload-logs : Upload console log and json output]