all:
  hosts:
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 81.163.192.203
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: e191759a-3b25-4ab0-ba45-b65714ba43c1
        host_id: 0d3d02185f810c959252bd1d303ec55040bf5bb0b401cceef814c3a7
        interface_ip: 81.163.192.203
        label: ubuntu-noble
        private_ipv4: 10.128.0.99
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.192.203
        public_ipv6: ''
        region: null
        slot: null
  vars:
    zuul:
      _inheritance_path:
      - '<Job base branches: None source: osism/zuul-config/zuul.d/jobs.yaml@main#2>'
      - '<Job ansible-lint branches: None source: osism/zuul-jobs/.zuul.yaml@main#7>'
      - '<Job ansible-lint branches: None source: osism/cfg-cookiecutter/.zuul.yaml@main#82>'
      ansible_version: '8'
      attempts: 1
      branch: main
      build: 3e6c7eda591140cf8b7ad810bed866e3
      buildset: 1e932f4a9bcb445dbeac68f0ca180f24
      change: '733'
      change_message: "chore(deps): update ghcr.io/astral-sh/uv docker tag to v0.7.2\n\
        \nThis PR contains the following updates:\n\n| Package | Type | Update | Change\
        \ |\n|---|---|---|---|\n| [ghcr.io/astral-sh/uv](https://redirect.github.com/astral-sh/uv)\
        \ | final | minor | `0.6.16` -> `0.7.2` |\n\n---\n\n### Release Notes\n\n\
        <details>\n<summary>astral-sh/uv (ghcr.io/astral-sh/uv)</summary>\n\n### [`v0.7.2`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#072)\n\
        \n[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.7.1...0.7.2)\n\
        \n##### Enhancements\n\n-   Improve trace log for retryable errors ([#&#8203;13228](https://redirect.github.com/astral-sh/uv/pull/13228))\n\
        -   Use \"error\" instead of \"warning\" for self-update message ([#&#8203;13229](https://redirect.github.com/astral-sh/uv/pull/13229))\n\
        -   Error when `uv version` is used with project-specific flags but no project\
        \ is found ([#&#8203;13203](https://redirect.github.com/astral-sh/uv/pull/13203))\n\
        \n##### Bug fixes\n\n-   Fix incorrect virtual environment invalidation for\
        \ pre-release Python versions ([#&#8203;13234](https://redirect.github.com/astral-sh/uv/pull/13234))\n\
        -   Fix patching of `clang` in managed Python sysconfig ([#&#8203;13237](https://redirect.github.com/astral-sh/uv/pull/13237))\n\
        -   Respect `--project` in `uv version` ([#&#8203;13230](https://redirect.github.com/astral-sh/uv/pull/13230))\n\
        \n### [`v0.7.1`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#071)\n\
        \n[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.7.0...0.7.1)\n\
        \n##### Enhancement\n\n-   Add support for BLAKE2b-256 ([#&#8203;13204](https://redirect.github.com/astral-sh/uv/pull/13204))\n\
        \n##### Bugfix\n\n-   Revert fix handling of authentication when encountering\
        \ redirects ([#&#8203;13215](https://redirect.github.com/astral-sh/uv/pull/13215))\n\
        \n### [`v0.7.0`](https://redirect.github.com/astral-sh/uv/blob/HEAD/CHANGELOG.md#070)\n\
        \n[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.6.17...0.7.0)\n\
        \nThis release contains various changes that improve correctness and user\
        \ experience, but could break some workflows; many changes have been marked\
        \ as breaking out of an abundance of caution. We expect most users to be able\
        \ to upgrade without making changes.\n\n##### Breaking changes\n\n-   **Update\
        \ `uv version` to display and update project versions ([#&#8203;12349](https://redirect.github.com/astral-sh/uv/pull/12349))**\n\
        \n    Previously, `uv version` displayed uv's version. Now, `uv version` will\
        \ display or update the project's version. This interface was [heavily requested](https://redirect.github.com/astral-sh/uv/issues/6298)\
        \ and, after much consideration, we decided that transitioning the top-level\
        \ command was the best option.\n\n    Here's a brief example:\n\n    ```console\n\
        \    $ uv init example\n    Initialized project `example` at `./example`\n\
        \    $ cd example\n    $ uv version\n    example 0.1.0\n    $ uv version --bump\
        \ major\n    example 0.1.0 => 1.0.0\n    $ uv version --short\n    1.0.0\n\
        \    ```\n\n    If used outside of a project, uv will fallback to showing\
        \ its own version still:\n\n    ```console\n    $ uv version\n    warning:\
        \ failed to read project: No `pyproject.toml` found in current directory or\
        \ any parent directory\n      running `uv self version` for compatibility\
        \ with old `uv version` command.\n      this fallback will be removed soon,\
        \ pass `--preview` to make this an error.\n\n    uv 0.7.0 (4433f41c9 2025-04-29)\n\
        \    ```\n\n    As described in the warning, `--preview` can be used to error\
        \ instead:\n\n    ```console\n    $ uv version --preview\n    error: No `pyproject.toml`\
        \ found in current directory or any parent directory\n    ```\n\n    The previous\
        \ functionality of `uv version` was moved to `uv self version`.\n-   **Avoid\
        \ fallback to subsequent indexes on authentication failure ([#&#8203;12805](https://redirect.github.com/astral-sh/uv/pull/12805))**\n\
        \n    When using the `first-index` strategy (the default), uv will stop searching\
        \ indexes for a package once it is found on a single index. Previously, uv\
        \ considered a package as \"missing\" from an index during authentication\
        \ failures, such as an HTTP 401 or HTTP 403 (normally, missing packages are\
        \ represented by an HTTP 404). This behavior was motivated by unusual responses\
        \ from some package indexes, but reduces the safety of uv's index strategy\
        \ when authentication fails. Now, uv will consider an authentication failure\
        \ as a stop-point when searching for a package across indexes. The `index.ignore-error-codes`\
        \ option can be used to recover the existing behavior, e.g.:\n\n    ```toml\n\
        \    [[tool.uv.index]]\n    name = \"pytorch\"\n    url = \"https://download.pytorch.org/whl/cpu\"\
        \n    ignore-error-codes = [401, 403]\n    ```\n\n    Since PyTorch's indexes\
        \ always return a HTTP 403 for missing packages, uv special-cases indexes\
        \ on the `pytorch.org` domain to ignore that error code by default.\n-   **Require\
        \ the command in `uvx <name>` to be available in the Python environment ([#&#8203;11603](https://redirect.github.com/astral-sh/uv/pull/11603))**\n\
        \n    Previously, `uvx` would attempt to execute a command even if it was\
        \ not provided by a Python package. For example, if we presume `foo` is an\
        \ empty Python package which provides no command, `uvx foo` would invoke the\
        \ `foo` command on the `PATH` (if present). Now, uv will error early if the\
        \ `foo` executable is not provided by the requested Python package. This check\
        \ is not enforced when `--from` is used, so patterns like `uvx --from foo\
        \ bash -c \"...\"` are still valid. uv also still allows `uvx foo` where the\
        \ `foo` executable is provided by a dependency of `foo` instead of `foo` itself,\
        \ as this is fairly common for packages which depend on a dedicated package\
        \ for their command-line interface.\n-   **Use index URL instead of package\
        \ URL for keyring credential lookups ([#&#8203;12651](https://redirect.github.com/astral-sh/uv/pull/12651))**\n\
        \n    When determining credentials for querying a package URL, uv previously\
        \ sent the full URL to the `keyring` command. However, some keyring plugins\
        \ expect to receive the *index URL* (which is usually a parent of the package\
        \ URL). Now, uv requests credentials for the index URL instead. This behavior\
        \ matches `pip`.\n-   **Remove `--version` from subcommands ([#&#8203;13108](https://redirect.github.com/astral-sh/uv/pull/13108))**\n\
        \n    Previously, uv allowed the `--version` flag on arbitrary subcommands,\
        \ e.g., `uv run --version`. However, the `--version` flag is useful for other\
        \ operations since uv is a package manager. Consequently, we've removed the\
        \ `--version` flag from subcommands \u2014 it is only available as `uv --version`.\n\
        -   **Omit Python 3.7 downloads from managed versions ([#&#8203;13022](https://redirect.github.com/astral-sh/uv/pull/13022))**\n\
        \n    Python 3.7 is EOL and not formally supported by uv; however, Python\
        \ 3.7 was previously available for download on a subset of platforms.\n- \
        \  **Reject non-PEP 751 TOML files in install, compile, and export commands\
        \ ([#&#8203;13120](https://redirect.github.com/astral-sh/uv/pull/13120), [#&#8203;13119](https://redirect.github.com/astral-sh/uv/pull/13119))**\n\
        \n    Previously, uv treated arbitrary `.toml` files passed to commands (e.g.,\
        \ `uv pip install -r foo.toml` or `uv pip compile -o foo.toml`) as `requirements.txt`-formatted\
        \ files. Now, uv will error instead. If using PEP 751 lockfiles, use the standardized\
        \ format for custom names instead, e.g., `pylock.foo.toml`.\n-   **Ignore\
        \ arbitrary Python requests in version files ([#&#8203;12909](https://redirect.github.com/astral-sh/uv/pull/12909))**\n\
        \n    uv allows arbitrary strings to be used for Python version requests,\
        \ in which they are treated as an executable name to search for in the `PATH`.\
        \ However, using this form of request in `.python-version` files is non-standard\
        \ and conflicts with `pyenv-virtualenv` which writes environment names to\
        \ `.python-version` files. In this release, uv will now ignore requests that\
        \ are arbitrary strings when found in `.python-version` files.\n-   **Error\
        \ on unknown dependency object specifiers ([12811](https://redirect.github.com/astral-sh/uv/pull/12811))**\n\
        \n    The `[dependency-groups]` entries can include \"object specifiers\"\
        , e.g. `set-phasers-to = ...` in:\n\n    ```toml\n    [dependency-groups]\n\
        \    foo = [\"pyparsing\"]\n    bar = [{set-phasers-to = \"stun\"}]\n    ```\n\
        \n    However, the only current spec-compliant object specifier is `include-group`.\
        \ Previously, uv would ignore unknown object specifiers. Now, uv will error.\n\
        -   **Make `--frozen` and `--no-sources` conflicting options ([#&#8203;12671](https://redirect.github.com/astral-sh/uv/pull/12671))**\n\
        \n    Using `--no-sources` always requires a new resolution and `--frozen`\
        \ will always fail when used with it. Now, this conflict is encoded in the\
        \ CLI options for clarity.\n-   **Treat empty `UV_PYTHON_INSTALL_DIR` and\
        \ `UV_TOOL_DIR` as unset ([#&#8203;12907](https://redirect.github.com/astral-sh/uv/pull/12907),\
        \ [#&#8203;12905](https://redirect.github.com/astral-sh/uv/pull/12905))**\n\
        \n    Previously, these variables were treated as set to the current working\
        \ directory when set to an empty string. Now, uv will ignore these variables\
        \ when empty. This matches uv's behavior for other environment variables which\
        \ configure directories.\n\n##### Enhancements\n\n-   Disallow mixing requirements\
        \ across PyTorch indexes ([#&#8203;13179](https://redirect.github.com/astral-sh/uv/pull/13179))\n\
        -   Add optional managed Python archive download cache ([#&#8203;12175](https://redirect.github.com/astral-sh/uv/pull/12175))\n\
        -   Add `poetry-core` as a `uv init` build backend option ([#&#8203;12781](https://redirect.github.com/astral-sh/uv/pull/12781))\n\
        -   Show tag hints when failing to find a compatible wheel in `pylock.toml`\
        \ ([#&#8203;13136](https://redirect.github.com/astral-sh/uv/pull/13136))\n\
        -   Report Python versions in `pyvenv.cfg` version mismatch ([#&#8203;13027](https://redirect.github.com/astral-sh/uv/pull/13027))\n\
        \n##### Bug fixes\n\n-   Avoid erroring on omitted wheel-only packages in\
        \ `pylock.toml` ([#&#8203;13132](https://redirect.github.com/astral-sh/uv/pull/13132))\n\
        -   Fix display name for `uvx --version` ([#&#8203;13109](https://redirect.github.com/astral-sh/uv/pull/13109))\n\
        -   Restore handling of authentication when encountering redirects ([#&#8203;13050](https://redirect.github.com/astral-sh/uv/pull/13050))\n\
        -   Respect build options (`--no-binary` et al) in `pylock.toml` ([#&#8203;13134](https://redirect.github.com/astral-sh/uv/pull/13134))\n\
        -   Use `upload-time` rather than `upload_time` in `uv.lock` ([#&#8203;13176](https://redirect.github.com/astral-sh/uv/pull/13176))\n\
        \n##### Documentation\n\n-   Changed `fish` completions append `>>` to overwrite\
        \ `>` ([#&#8203;13130](https://redirect.github.com/astral-sh/uv/pull/13130))\n\
        -   Add `pylock.toml` mentions where relevant ([#&#8203;13115](https://redirect.github.com/astral-sh/uv/pull/13115))\n\
        -   Add ROCm example to the PyTorch guide ([#&#8203;13200](https://redirect.github.com/astral-sh/uv/pull/13200))\n\
        -   Upgrade PyTorch guide to CUDA 12.8 and PyTorch 2.7 ([#&#8203;13199](https://redirect.github.com/astral-sh/uv/pull/13199))\n\
        \n### [`v0.6.17`](https://redirect.github.com/astral-sh/uv/releases/tag/0.6.17)\n\
        \n[Compare Source](https://redirect.github.com/astral-sh/uv/compare/0.6.16...0.6.17)\n\
        \n##### Release Notes\n\n##### Preview features\n\n-   Add PyTorch v2.7.0\
        \ to GPU backend ([#&#8203;13072](https://redirect.github.com/astral-sh/uv/pull/13072))\n\
        \n##### Bug fixes\n\n-   Avoid panic for invalid Python versions ([#&#8203;13077](https://redirect.github.com/astral-sh/uv/pull/13077))\n\
        -   Block scripts from overwriting `python` ([#&#8203;13051](https://redirect.github.com/astral-sh/uv/pull/13051))\n\
        -   Check distribution names to handle invalid redirects ([#&#8203;12917](https://redirect.github.com/astral-sh/uv/pull/12917))\n\
        -   Check for mismatched package and distribution names on resolver thread\
        \ ([#&#8203;13088](https://redirect.github.com/astral-sh/uv/pull/13088))\n\
        -   Fix panic with invalid last character in PEP 508 name ([#&#8203;13105](https://redirect.github.com/astral-sh/uv/pull/13105))\n\
        -   Reject `requires-python` even if not listed on the index page ([#&#8203;13086](https://redirect.github.com/astral-sh/uv/pull/13086))\n\
        \n##### Install uv 0.6.17\n\n##### Install prebuilt binaries via shell script\n\
        \n```sh\ncurl --proto '=https' --tlsv1.2 -LsSf https://github.com/astral-sh/uv/releases/download/0.6.17/uv-installer.sh\
        \ | sh\n```\n\n##### Install prebuilt binaries via powershell script\n\n```sh\n\
        powershell -ExecutionPolicy Bypass -c \"irm https://github.com/astral-sh/uv/releases/download/0.6.17/uv-installer.ps1\
        \ | iex\"\n```\n\n##### Download uv 0.6.17\n\n|  File  | Platform | Checksum\
        \ |\n|--------|----------|----------|\n| [uv-aarch64-apple-darwin.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-apple-darwin.tar.gz)\
        \ | Apple Silicon macOS | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-apple-darwin.tar.gz.sha256)\
        \ |\n| [uv-x86\\_64-apple-darwin.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-apple-darwin.tar.gz) | Intel macOS | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-apple-darwin.tar.gz.sha256) |\n| [uv-aarch64-pc-windows-msvc.zip](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-pc-windows-msvc.zip)\
        \ | ARM64 Windows | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-pc-windows-msvc.zip.sha256)\
        \ |\n| [uv-i686-pc-windows-msvc.zip](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-i686-pc-windows-msvc.zip)\
        \ | x86 Windows | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-i686-pc-windows-msvc.zip.sha256)\
        \ |\n| [uv-x86\\_64-pc-windows-msvc.zip](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-pc-windows-msvc.zip) | x64 Windows | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-pc-windows-msvc.zip.sha256) |\n| [uv-aarch64-unknown-linux-gnu.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-unknown-linux-gnu.tar.gz)\
        \ | ARM64 Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-unknown-linux-gnu.tar.gz.sha256)\
        \ |\n| [uv-i686-unknown-linux-gnu.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-i686-unknown-linux-gnu.tar.gz)\
        \ | x86 Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-i686-unknown-linux-gnu.tar.gz.sha256)\
        \ |\n| [uv-powerpc64-unknown-linux-gnu.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-powerpc64-unknown-linux-gnu.tar.gz)\
        \ | PPC64 Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-powerpc64-unknown-linux-gnu.tar.gz.sha256)\
        \ |\n| [uv-powerpc64le-unknown-linux-gnu.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-powerpc64le-unknown-linux-gnu.tar.gz)\
        \ | PPC64LE Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-powerpc64le-unknown-linux-gnu.tar.gz.sha256)\
        \ |\n| [uv-s390x-unknown-linux-gnu.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-s390x-unknown-linux-gnu.tar.gz)\
        \ | S390x Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-s390x-unknown-linux-gnu.tar.gz.sha256)\
        \ |\n| [uv-x86\\_64-unknown-linux-gnu.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-unknown-linux-gnu.tar.gz) | x64 Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-unknown-linux-gnu.tar.gz.sha256) |\n| [uv-armv7-unknown-linux-gnueabihf.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-armv7-unknown-linux-gnueabihf.tar.gz)\
        \ | ARMv7 Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-armv7-unknown-linux-gnueabihf.tar.gz.sha256)\
        \ |\n| [uv-aarch64-unknown-linux-musl.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-unknown-linux-musl.tar.gz)\
        \ | ARM64 MUSL Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-aarch64-unknown-linux-musl.tar.gz.sha256)\
        \ |\n| [uv-i686-unknown-linux-musl.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-i686-unknown-linux-musl.tar.gz)\
        \ | x86 MUSL Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-i686-unknown-linux-musl.tar.gz.sha256)\
        \ |\n| [uv-x86\\_64-unknown-linux-musl.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-unknown-linux-musl.tar.gz) | x64 MUSL Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-x86\\\
        _64-unknown-linux-musl.tar.gz.sha256) |\n| [uv-arm-unknown-linux-musleabihf.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-arm-unknown-linux-musleabihf.tar.gz)\
        \ | ARMv6 MUSL Linux (Hardfloat) | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-arm-unknown-linux-musleabihf.tar.gz.sha256)\
        \ |\n| [uv-armv7-unknown-linux-musleabihf.tar.gz](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-armv7-unknown-linux-musleabihf.tar.gz)\
        \ | ARMv7 MUSL Linux | [checksum](https://redirect.github.com/astral-sh/uv/releases/download/0.6.17/uv-armv7-unknown-linux-musleabihf.tar.gz.sha256)\
        \ |\n\n</details>\n\n---\n\n### Configuration\n\n\U0001F4C5 **Schedule**:\
        \ Branch creation - At any time (no schedule defined), Automerge - At any\
        \ time (no schedule defined).\n\n\U0001F6A6 **Automerge**: Disabled by config.\
        \ Please merge this manually once you are satisfied.\n\n\u267B **Rebasing**:\
        \ Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.\n\
        \n\U0001F515 **Ignore**: Close this PR and you won't be reminded about this\
        \ update again.\n\n---\n\n - [ ] <!-- rebase-check -->If you want to rebase/retry\
        \ this PR, check this box\n\n---\n\nThis PR was generated by [Mend Renovate](https://mend.io/renovate/).\
        \ View the [repository job log](https://developer.mend.io/github/osism/cfg-cookiecutter).\n\
        <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yNjQuMCIsInVwZGF0ZWRJblZlciI6IjM5LjI2NC4wIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/cfg-cookiecutter/pull/733
      child_jobs: []
      commit_id: 3ad9002173039ff8ab771fd3600cf227fcbefc50
      event_id: 9035b2c0-2848-11f0-99c1-2e2ea8207285
      executor:
        hostname: 7d211f194f6a
        inventory_file: /var/lib/zuul/builds/3e6c7eda591140cf8b7ad810bed866e3/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/3e6c7eda591140cf8b7ad810bed866e3/work/logs
        result_data_file: /var/lib/zuul/builds/3e6c7eda591140cf8b7ad810bed866e3/work/results.json
        src_root: /var/lib/zuul/builds/3e6c7eda591140cf8b7ad810bed866e3/work/src
        work_root: /var/lib/zuul/builds/3e6c7eda591140cf8b7ad810bed866e3/work
      items:
      - branch: main
        change: '733'
        change_url: https://github.com/osism/cfg-cookiecutter/pull/733
        patchset: 3ad9002173039ff8ab771fd3600cf227fcbefc50
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/cfg-cookiecutter
          name: osism/cfg-cookiecutter
          short_name: cfg-cookiecutter
          src_dir: src/github.com/osism/cfg-cookiecutter
      job: ansible-lint
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBnaGNyLmlvL2FzdHJhbC1zaC91diBkb2NrZXIgdGFnIHRvIHYwLjcuMgoKVGhpcyBQUiBjb250YWlucyB0aGUgZm9sbG93aW5nIHVwZGF0ZXM6Cgp8IFBhY2thZ2UgfCBUeXBlIHwgVXBkYXRlIHwgQ2hhbmdlIHwKfC0tLXwtLS18LS0tfC0tLXwKfCBbZ2hjci5pby9hc3RyYWwtc2gvdXZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYpIHwgZmluYWwgfCBtaW5vciB8IGAwLjYuMTZgIC0+IGAwLjcuMmAgfAoKLS0tCgojIyMgUmVsZWFzZSBOb3RlcwoKPGRldGFpbHM+CjxzdW1tYXJ5PmFzdHJhbC1zaC91diAoZ2hjci5pby9hc3RyYWwtc2gvdXYpPC9zdW1tYXJ5PgoKIyMjIFtgdjAuNy4yYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzA3MikKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuNy4xLi4uMC43LjIpCgojIyMjIyBFbmhhbmNlbWVudHMKCi0gICBJbXByb3ZlIHRyYWNlIGxvZyBmb3IgcmV0cnlhYmxlIGVycm9ycyAoWyMmIzgyMDM7MTMyMjhdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzIyOCkpCi0gICBVc2UgImVycm9yIiBpbnN0ZWFkIG9mICJ3YXJuaW5nIiBmb3Igc2VsZi11cGRhdGUgbWVzc2FnZSAoWyMmIzgyMDM7MTMyMjldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzIyOSkpCi0gICBFcnJvciB3aGVuIGB1diB2ZXJzaW9uYCBpcyB1c2VkIHdpdGggcHJvamVjdC1zcGVjaWZpYyBmbGFncyBidXQgbm8gcHJvamVjdCBpcyBmb3VuZCAoWyMmIzgyMDM7MTMyMDNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzIwMykpCgojIyMjIyBCdWcgZml4ZXMKCi0gICBGaXggaW5jb3JyZWN0IHZpcnR1YWwgZW52aXJvbm1lbnQgaW52YWxpZGF0aW9uIGZvciBwcmUtcmVsZWFzZSBQeXRob24gdmVyc2lvbnMgKFsjJiM4MjAzOzEzMjM0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMyMzQpKQotICAgRml4IHBhdGNoaW5nIG9mIGBjbGFuZ2AgaW4gbWFuYWdlZCBQeXRob24gc3lzY29uZmlnIChbIyYjODIwMzsxMzIzN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMjM3KSkKLSAgIFJlc3BlY3QgYC0tcHJvamVjdGAgaW4gYHV2IHZlcnNpb25gIChbIyYjODIwMzsxMzIzMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMjMwKSkKCiMjIyBbYHYwLjcuMWBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvYmxvYi9IRUFEL0NIQU5HRUxPRy5tZCMwNzEpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjcuMC4uLjAuNy4xKQoKIyMjIyMgRW5oYW5jZW1lbnQKCi0gICBBZGQgc3VwcG9ydCBmb3IgQkxBS0UyYi0yNTYgKFsjJiM4MjAzOzEzMjA0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMyMDQpKQoKIyMjIyMgQnVnZml4CgotICAgUmV2ZXJ0IGZpeCBoYW5kbGluZyBvZiBhdXRoZW50aWNhdGlvbiB3aGVuIGVuY291bnRlcmluZyByZWRpcmVjdHMgKFsjJiM4MjAzOzEzMjE1XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMyMTUpKQoKIyMjIFtgdjAuNy4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9ibG9iL0hFQUQvQ0hBTkdFTE9HLm1kIzA3MCkKCltDb21wYXJlIFNvdXJjZV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9jb21wYXJlLzAuNi4xNy4uLjAuNy4wKQoKVGhpcyByZWxlYXNlIGNvbnRhaW5zIHZhcmlvdXMgY2hhbmdlcyB0aGF0IGltcHJvdmUgY29ycmVjdG5lc3MgYW5kIHVzZXIgZXhwZXJpZW5jZSwgYnV0IGNvdWxkIGJyZWFrIHNvbWUgd29ya2Zsb3dzOyBtYW55IGNoYW5nZXMgaGF2ZSBiZWVuIG1hcmtlZCBhcyBicmVha2luZyBvdXQgb2YgYW4gYWJ1bmRhbmNlIG9mIGNhdXRpb24uIFdlIGV4cGVjdCBtb3N0IHVzZXJzIHRvIGJlIGFibGUgdG8gdXBncmFkZSB3aXRob3V0IG1ha2luZyBjaGFuZ2VzLgoKIyMjIyMgQnJlYWtpbmcgY2hhbmdlcwoKLSAgICoqVXBkYXRlIGB1diB2ZXJzaW9uYCB0byBkaXNwbGF5IGFuZCB1cGRhdGUgcHJvamVjdCB2ZXJzaW9ucyAoWyMmIzgyMDM7MTIzNDldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMjM0OSkpKioKCiAgICBQcmV2aW91c2x5LCBgdXYgdmVyc2lvbmAgZGlzcGxheWVkIHV2J3MgdmVyc2lvbi4gTm93LCBgdXYgdmVyc2lvbmAgd2lsbCBkaXNwbGF5IG9yIHVwZGF0ZSB0aGUgcHJvamVjdCdzIHZlcnNpb24uIFRoaXMgaW50ZXJmYWNlIHdhcyBbaGVhdmlseSByZXF1ZXN0ZWRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvaXNzdWVzLzYyOTgpIGFuZCwgYWZ0ZXIgbXVjaCBjb25zaWRlcmF0aW9uLCB3ZSBkZWNpZGVkIHRoYXQgdHJhbnNpdGlvbmluZyB0aGUgdG9wLWxldmVsIGNvbW1hbmQgd2FzIHRoZSBiZXN0IG9wdGlvbi4KCiAgICBIZXJlJ3MgYSBicmllZiBleGFtcGxlOgoKICAgIGBgYGNvbnNvbGUKICAgICQgdXYgaW5pdCBleGFtcGxlCiAgICBJbml0aWFsaXplZCBwcm9qZWN0IGBleGFtcGxlYCBhdCBgLi9leGFtcGxlYAogICAgJCBjZCBleGFtcGxlCiAgICAkIHV2IHZlcnNpb24KICAgIGV4YW1wbGUgMC4xLjAKICAgICQgdXYgdmVyc2lvbiAtLWJ1bXAgbWFqb3IKICAgIGV4YW1wbGUgMC4xLjAgPT4gMS4wLjAKICAgICQgdXYgdmVyc2lvbiAtLXNob3J0CiAgICAxLjAuMAogICAgYGBgCgogICAgSWYgdXNlZCBvdXRzaWRlIG9mIGEgcHJvamVjdCwgdXYgd2lsbCBmYWxsYmFjayB0byBzaG93aW5nIGl0cyBvd24gdmVyc2lvbiBzdGlsbDoKCiAgICBgYGBjb25zb2xlCiAgICAkIHV2IHZlcnNpb24KICAgIHdhcm5pbmc6IGZhaWxlZCB0byByZWFkIHByb2plY3Q6IE5vIGBweXByb2plY3QudG9tbGAgZm91bmQgaW4gY3VycmVudCBkaXJlY3Rvcnkgb3IgYW55IHBhcmVudCBkaXJlY3RvcnkKICAgICAgcnVubmluZyBgdXYgc2VsZiB2ZXJzaW9uYCBmb3IgY29tcGF0aWJpbGl0eSB3aXRoIG9sZCBgdXYgdmVyc2lvbmAgY29tbWFuZC4KICAgICAgdGhpcyBmYWxsYmFjayB3aWxsIGJlIHJlbW92ZWQgc29vbiwgcGFzcyBgLS1wcmV2aWV3YCB0byBtYWtlIHRoaXMgYW4gZXJyb3IuCgogICAgdXYgMC43LjAgKDQ0MzNmNDFjOSAyMDI1LTA0LTI5KQogICAgYGBgCgogICAgQXMgZGVzY3JpYmVkIGluIHRoZSB3YXJuaW5nLCBgLS1wcmV2aWV3YCBjYW4gYmUgdXNlZCB0byBlcnJvciBpbnN0ZWFkOgoKICAgIGBgYGNvbnNvbGUKICAgICQgdXYgdmVyc2lvbiAtLXByZXZpZXcKICAgIGVycm9yOiBObyBgcHlwcm9qZWN0LnRvbWxgIGZvdW5kIGluIGN1cnJlbnQgZGlyZWN0b3J5IG9yIGFueSBwYXJlbnQgZGlyZWN0b3J5CiAgICBgYGAKCiAgICBUaGUgcHJldmlvdXMgZnVuY3Rpb25hbGl0eSBvZiBgdXYgdmVyc2lvbmAgd2FzIG1vdmVkIHRvIGB1diBzZWxmIHZlcnNpb25gLgotICAgKipBdm9pZCBmYWxsYmFjayB0byBzdWJzZXF1ZW50IGluZGV4ZXMgb24gYXV0aGVudGljYXRpb24gZmFpbHVyZSAoWyMmIzgyMDM7MTI4MDVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMjgwNSkpKioKCiAgICBXaGVuIHVzaW5nIHRoZSBgZmlyc3QtaW5kZXhgIHN0cmF0ZWd5ICh0aGUgZGVmYXVsdCksIHV2IHdpbGwgc3RvcCBzZWFyY2hpbmcgaW5kZXhlcyBmb3IgYSBwYWNrYWdlIG9uY2UgaXQgaXMgZm91bmQgb24gYSBzaW5nbGUgaW5kZXguIFByZXZpb3VzbHksIHV2IGNvbnNpZGVyZWQgYSBwYWNrYWdlIGFzICJtaXNzaW5nIiBmcm9tIGFuIGluZGV4IGR1cmluZyBhdXRoZW50aWNhdGlvbiBmYWlsdXJlcywgc3VjaCBhcyBhbiBIVFRQIDQwMSBvciBIVFRQIDQwMyAobm9ybWFsbHksIG1pc3NpbmcgcGFja2FnZXMgYXJlIHJlcHJlc2VudGVkIGJ5IGFuIEhUVFAgNDA0KS4gVGhpcyBiZWhhdmlvciB3YXMgbW90aXZhdGVkIGJ5IHVudXN1YWwgcmVzcG9uc2VzIGZyb20gc29tZSBwYWNrYWdlIGluZGV4ZXMsIGJ1dCByZWR1Y2VzIHRoZSBzYWZldHkgb2YgdXYncyBpbmRleCBzdHJhdGVneSB3aGVuIGF1dGhlbnRpY2F0aW9uIGZhaWxzLiBOb3csIHV2IHdpbGwgY29uc2lkZXIgYW4gYXV0aGVudGljYXRpb24gZmFpbHVyZSBhcyBhIHN0b3AtcG9pbnQgd2hlbiBzZWFyY2hpbmcgZm9yIGEgcGFja2FnZSBhY3Jvc3MgaW5kZXhlcy4gVGhlIGBpbmRleC5pZ25vcmUtZXJyb3ItY29kZXNgIG9wdGlvbiBjYW4gYmUgdXNlZCB0byByZWNvdmVyIHRoZSBleGlzdGluZyBiZWhhdmlvciwgZS5nLjoKCiAgICBgYGB0b21sCiAgICBbW3Rvb2wudXYuaW5kZXhdXQogICAgbmFtZSA9ICJweXRvcmNoIgogICAgdXJsID0gImh0dHBzOi8vZG93bmxvYWQucHl0b3JjaC5vcmcvd2hsL2NwdSIKICAgIGlnbm9yZS1lcnJvci1jb2RlcyA9IFs0MDEsIDQwM10KICAgIGBgYAoKICAgIFNpbmNlIFB5VG9yY2gncyBpbmRleGVzIGFsd2F5cyByZXR1cm4gYSBIVFRQIDQwMyBmb3IgbWlzc2luZyBwYWNrYWdlcywgdXYgc3BlY2lhbC1jYXNlcyBpbmRleGVzIG9uIHRoZSBgcHl0b3JjaC5vcmdgIGRvbWFpbiB0byBpZ25vcmUgdGhhdCBlcnJvciBjb2RlIGJ5IGRlZmF1bHQuCi0gICAqKlJlcXVpcmUgdGhlIGNvbW1hbmQgaW4gYHV2eCA8bmFtZT5gIHRvIGJlIGF2YWlsYWJsZSBpbiB0aGUgUHl0aG9uIGVudmlyb25tZW50IChbIyYjODIwMzsxMTYwM10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzExNjAzKSkqKgoKICAgIFByZXZpb3VzbHksIGB1dnhgIHdvdWxkIGF0dGVtcHQgdG8gZXhlY3V0ZSBhIGNvbW1hbmQgZXZlbiBpZiBpdCB3YXMgbm90IHByb3ZpZGVkIGJ5IGEgUHl0aG9uIHBhY2thZ2UuIEZvciBleGFtcGxlLCBpZiB3ZSBwcmVzdW1lIGBmb29gIGlzIGFuIGVtcHR5IFB5dGhvbiBwYWNrYWdlIHdoaWNoIHByb3ZpZGVzIG5vIGNvbW1hbmQsIGB1dnggZm9vYCB3b3VsZCBpbnZva2UgdGhlIGBmb29gIGNvbW1hbmQgb24gdGhlIGBQQVRIYCAoaWYgcHJlc2VudCkuIE5vdywgdXYgd2lsbCBlcnJvciBlYXJseSBpZiB0aGUgYGZvb2AgZXhlY3V0YWJsZSBpcyBub3QgcHJvdmlkZWQgYnkgdGhlIHJlcXVlc3RlZCBQeXRob24gcGFja2FnZS4gVGhpcyBjaGVjayBpcyBub3QgZW5mb3JjZWQgd2hlbiBgLS1mcm9tYCBpcyB1c2VkLCBzbyBwYXR0ZXJucyBsaWtlIGB1dnggLS1mcm9tIGZvbyBiYXNoIC1jICIuLi4iYCBhcmUgc3RpbGwgdmFsaWQuIHV2IGFsc28gc3RpbGwgYWxsb3dzIGB1dnggZm9vYCB3aGVyZSB0aGUgYGZvb2AgZXhlY3V0YWJsZSBpcyBwcm92aWRlZCBieSBhIGRlcGVuZGVuY3kgb2YgYGZvb2AgaW5zdGVhZCBvZiBgZm9vYCBpdHNlbGYsIGFzIHRoaXMgaXMgZmFpcmx5IGNvbW1vbiBmb3IgcGFja2FnZXMgd2hpY2ggZGVwZW5kIG9uIGEgZGVkaWNhdGVkIHBhY2thZ2UgZm9yIHRoZWlyIGNvbW1hbmQtbGluZSBpbnRlcmZhY2UuCi0gICAqKlVzZSBpbmRleCBVUkwgaW5zdGVhZCBvZiBwYWNrYWdlIFVSTCBmb3Iga2V5cmluZyBjcmVkZW50aWFsIGxvb2t1cHMgKFsjJiM4MjAzOzEyNjUxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTI2NTEpKSoqCgogICAgV2hlbiBkZXRlcm1pbmluZyBjcmVkZW50aWFscyBmb3IgcXVlcnlpbmcgYSBwYWNrYWdlIFVSTCwgdXYgcHJldmlvdXNseSBzZW50IHRoZSBmdWxsIFVSTCB0byB0aGUgYGtleXJpbmdgIGNvbW1hbmQuIEhvd2V2ZXIsIHNvbWUga2V5cmluZyBwbHVnaW5zIGV4cGVjdCB0byByZWNlaXZlIHRoZSAqaW5kZXggVVJMKiAod2hpY2ggaXMgdXN1YWxseSBhIHBhcmVudCBvZiB0aGUgcGFja2FnZSBVUkwpLiBOb3csIHV2IHJlcXVlc3RzIGNyZWRlbnRpYWxzIGZvciB0aGUgaW5kZXggVVJMIGluc3RlYWQuIFRoaXMgYmVoYXZpb3IgbWF0Y2hlcyBgcGlwYC4KLSAgICoqUmVtb3ZlIGAtLXZlcnNpb25gIGZyb20gc3ViY29tbWFuZHMgKFsjJiM4MjAzOzEzMTA4XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMxMDgpKSoqCgogICAgUHJldmlvdXNseSwgdXYgYWxsb3dlZCB0aGUgYC0tdmVyc2lvbmAgZmxhZyBvbiBhcmJpdHJhcnkgc3ViY29tbWFuZHMsIGUuZy4sIGB1diBydW4gLS12ZXJzaW9uYC4gSG93ZXZlciwgdGhlIGAtLXZlcnNpb25gIGZsYWcgaXMgdXNlZnVsIGZvciBvdGhlciBvcGVyYXRpb25zIHNpbmNlIHV2IGlzIGEgcGFja2FnZSBtYW5hZ2VyLiBDb25zZXF1ZW50bHksIHdlJ3ZlIHJlbW92ZWQgdGhlIGAtLXZlcnNpb25gIGZsYWcgZnJvbSBzdWJjb21tYW5kcyDigJQgaXQgaXMgb25seSBhdmFpbGFibGUgYXMgYHV2IC0tdmVyc2lvbmAuCi0gICAqKk9taXQgUHl0aG9uIDMuNyBkb3dubG9hZHMgZnJvbSBtYW5hZ2VkIHZlcnNpb25zIChbIyYjODIwMzsxMzAyMl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMDIyKSkqKgoKICAgIFB5dGhvbiAzLjcgaXMgRU9MIGFuZCBub3QgZm9ybWFsbHkgc3VwcG9ydGVkIGJ5IHV2OyBob3dldmVyLCBQeXRob24gMy43IHdhcyBwcmV2aW91c2x5IGF2YWlsYWJsZSBmb3IgZG93bmxvYWQgb24gYSBzdWJzZXQgb2YgcGxhdGZvcm1zLgotICAgKipSZWplY3Qgbm9uLVBFUCA3NTEgVE9NTCBmaWxlcyBpbiBpbnN0YWxsLCBjb21waWxlLCBhbmQgZXhwb3J0IGNvbW1hbmRzIChbIyYjODIwMzsxMzEyMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMTIwKSwgWyMmIzgyMDM7MTMxMTldKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzExOSkpKioKCiAgICBQcmV2aW91c2x5LCB1diB0cmVhdGVkIGFyYml0cmFyeSBgLnRvbWxgIGZpbGVzIHBhc3NlZCB0byBjb21tYW5kcyAoZS5nLiwgYHV2IHBpcCBpbnN0YWxsIC1yIGZvby50b21sYCBvciBgdXYgcGlwIGNvbXBpbGUgLW8gZm9vLnRvbWxgKSBhcyBgcmVxdWlyZW1lbnRzLnR4dGAtZm9ybWF0dGVkIGZpbGVzLiBOb3csIHV2IHdpbGwgZXJyb3IgaW5zdGVhZC4gSWYgdXNpbmcgUEVQIDc1MSBsb2NrZmlsZXMsIHVzZSB0aGUgc3RhbmRhcmRpemVkIGZvcm1hdCBmb3IgY3VzdG9tIG5hbWVzIGluc3RlYWQsIGUuZy4sIGBweWxvY2suZm9vLnRvbWxgLgotICAgKipJZ25vcmUgYXJiaXRyYXJ5IFB5dGhvbiByZXF1ZXN0cyBpbiB2ZXJzaW9uIGZpbGVzIChbIyYjODIwMzsxMjkwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEyOTA5KSkqKgoKICAgIHV2IGFsbG93cyBhcmJpdHJhcnkgc3RyaW5ncyB0byBiZSB1c2VkIGZvciBQeXRob24gdmVyc2lvbiByZXF1ZXN0cywgaW4gd2hpY2ggdGhleSBhcmUgdHJlYXRlZCBhcyBhbiBleGVjdXRhYmxlIG5hbWUgdG8gc2VhcmNoIGZvciBpbiB0aGUgYFBBVEhgLiBIb3dldmVyLCB1c2luZyB0aGlzIGZvcm0gb2YgcmVxdWVzdCBpbiBgLnB5dGhvbi12ZXJzaW9uYCBmaWxlcyBpcyBub24tc3RhbmRhcmQgYW5kIGNvbmZsaWN0cyB3aXRoIGBweWVudi12aXJ0dWFsZW52YCB3aGljaCB3cml0ZXMgZW52aXJvbm1lbnQgbmFtZXMgdG8gYC5weXRob24tdmVyc2lvbmAgZmlsZXMuIEluIHRoaXMgcmVsZWFzZSwgdXYgd2lsbCBub3cgaWdub3JlIHJlcXVlc3RzIHRoYXQgYXJlIGFyYml0cmFyeSBzdHJpbmdzIHdoZW4gZm91bmQgaW4gYC5weXRob24tdmVyc2lvbmAgZmlsZXMuCi0gICAqKkVycm9yIG9uIHVua25vd24gZGVwZW5kZW5jeSBvYmplY3Qgc3BlY2lmaWVycyAoWzEyODExXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTI4MTEpKSoqCgogICAgVGhlIGBbZGVwZW5kZW5jeS1ncm91cHNdYCBlbnRyaWVzIGNhbiBpbmNsdWRlICJvYmplY3Qgc3BlY2lmaWVycyIsIGUuZy4gYHNldC1waGFzZXJzLXRvID0gLi4uYCBpbjoKCiAgICBgYGB0b21sCiAgICBbZGVwZW5kZW5jeS1ncm91cHNdCiAgICBmb28gPSBbInB5cGFyc2luZyJdCiAgICBiYXIgPSBbe3NldC1waGFzZXJzLXRvID0gInN0dW4ifV0KICAgIGBgYAoKICAgIEhvd2V2ZXIsIHRoZSBvbmx5IGN1cnJlbnQgc3BlYy1jb21wbGlhbnQgb2JqZWN0IHNwZWNpZmllciBpcyBgaW5jbHVkZS1ncm91cGAuIFByZXZpb3VzbHksIHV2IHdvdWxkIGlnbm9yZSB1bmtub3duIG9iamVjdCBzcGVjaWZpZXJzLiBOb3csIHV2IHdpbGwgZXJyb3IuCi0gICAqKk1ha2UgYC0tZnJvemVuYCBhbmQgYC0tbm8tc291cmNlc2AgY29uZmxpY3Rpbmcgb3B0aW9ucyAoWyMmIzgyMDM7MTI2NzFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMjY3MSkpKioKCiAgICBVc2luZyBgLS1uby1zb3VyY2VzYCBhbHdheXMgcmVxdWlyZXMgYSBuZXcgcmVzb2x1dGlvbiBhbmQgYC0tZnJvemVuYCB3aWxsIGFsd2F5cyBmYWlsIHdoZW4gdXNlZCB3aXRoIGl0LiBOb3csIHRoaXMgY29uZmxpY3QgaXMgZW5jb2RlZCBpbiB0aGUgQ0xJIG9wdGlvbnMgZm9yIGNsYXJpdHkuCi0gICAqKlRyZWF0IGVtcHR5IGBVVl9QWVRIT05fSU5TVEFMTF9ESVJgIGFuZCBgVVZfVE9PTF9ESVJgIGFzIHVuc2V0IChbIyYjODIwMzsxMjkwN10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEyOTA3KSwgWyMmIzgyMDM7MTI5MDVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMjkwNSkpKioKCiAgICBQcmV2aW91c2x5LCB0aGVzZSB2YXJpYWJsZXMgd2VyZSB0cmVhdGVkIGFzIHNldCB0byB0aGUgY3VycmVudCB3b3JraW5nIGRpcmVjdG9yeSB3aGVuIHNldCB0byBhbiBlbXB0eSBzdHJpbmcuIE5vdywgdXYgd2lsbCBpZ25vcmUgdGhlc2UgdmFyaWFibGVzIHdoZW4gZW1wdHkuIFRoaXMgbWF0Y2hlcyB1didzIGJlaGF2aW9yIGZvciBvdGhlciBlbnZpcm9ubWVudCB2YXJpYWJsZXMgd2hpY2ggY29uZmlndXJlIGRpcmVjdG9yaWVzLgoKIyMjIyMgRW5oYW5jZW1lbnRzCgotICAgRGlzYWxsb3cgbWl4aW5nIHJlcXVpcmVtZW50cyBhY3Jvc3MgUHlUb3JjaCBpbmRleGVzIChbIyYjODIwMzsxMzE3OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMTc5KSkKLSAgIEFkZCBvcHRpb25hbCBtYW5hZ2VkIFB5dGhvbiBhcmNoaXZlIGRvd25sb2FkIGNhY2hlIChbIyYjODIwMzsxMjE3NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEyMTc1KSkKLSAgIEFkZCBgcG9ldHJ5LWNvcmVgIGFzIGEgYHV2IGluaXRgIGJ1aWxkIGJhY2tlbmQgb3B0aW9uIChbIyYjODIwMzsxMjc4MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEyNzgxKSkKLSAgIFNob3cgdGFnIGhpbnRzIHdoZW4gZmFpbGluZyB0byBmaW5kIGEgY29tcGF0aWJsZSB3aGVlbCBpbiBgcHlsb2NrLnRvbWxgIChbIyYjODIwMzsxMzEzNl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMTM2KSkKLSAgIFJlcG9ydCBQeXRob24gdmVyc2lvbnMgaW4gYHB5dmVudi5jZmdgIHZlcnNpb24gbWlzbWF0Y2ggKFsjJiM4MjAzOzEzMDI3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMwMjcpKQoKIyMjIyMgQnVnIGZpeGVzCgotICAgQXZvaWQgZXJyb3Jpbmcgb24gb21pdHRlZCB3aGVlbC1vbmx5IHBhY2thZ2VzIGluIGBweWxvY2sudG9tbGAgKFsjJiM4MjAzOzEzMTMyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMxMzIpKQotICAgRml4IGRpc3BsYXkgbmFtZSBmb3IgYHV2eCAtLXZlcnNpb25gIChbIyYjODIwMzsxMzEwOV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMTA5KSkKLSAgIFJlc3RvcmUgaGFuZGxpbmcgb2YgYXV0aGVudGljYXRpb24gd2hlbiBlbmNvdW50ZXJpbmcgcmVkaXJlY3RzIChbIyYjODIwMzsxMzA1MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMDUwKSkKLSAgIFJlc3BlY3QgYnVpbGQgb3B0aW9ucyAoYC0tbm8tYmluYXJ5YCBldCBhbCkgaW4gYHB5bG9jay50b21sYCAoWyMmIzgyMDM7MTMxMzRdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzEzNCkpCi0gICBVc2UgYHVwbG9hZC10aW1lYCByYXRoZXIgdGhhbiBgdXBsb2FkX3RpbWVgIGluIGB1di5sb2NrYCAoWyMmIzgyMDM7MTMxNzZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzE3NikpCgojIyMjIyBEb2N1bWVudGF0aW9uCgotICAgQ2hhbmdlZCBgZmlzaGAgY29tcGxldGlvbnMgYXBwZW5kIGA+PmAgdG8gb3ZlcndyaXRlIGA+YCAoWyMmIzgyMDM7MTMxMzBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzEzMCkpCi0gICBBZGQgYHB5bG9jay50b21sYCBtZW50aW9ucyB3aGVyZSByZWxldmFudCAoWyMmIzgyMDM7MTMxMTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzExNSkpCi0gICBBZGQgUk9DbSBleGFtcGxlIHRvIHRoZSBQeVRvcmNoIGd1aWRlIChbIyYjODIwMzsxMzIwMF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMjAwKSkKLSAgIFVwZ3JhZGUgUHlUb3JjaCBndWlkZSB0byBDVURBIDEyLjggYW5kIFB5VG9yY2ggMi43IChbIyYjODIwMzsxMzE5OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMTk5KSkKCiMjIyBbYHYwLjYuMTdgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL3RhZy8wLjYuMTcpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvY29tcGFyZS8wLjYuMTYuLi4wLjYuMTcpCgojIyMjIyBSZWxlYXNlIE5vdGVzCgojIyMjIyBQcmV2aWV3IGZlYXR1cmVzCgotICAgQWRkIFB5VG9yY2ggdjIuNy4wIHRvIEdQVSBiYWNrZW5kIChbIyYjODIwMzsxMzA3Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMDcyKSkKCiMjIyMjIEJ1ZyBmaXhlcwoKLSAgIEF2b2lkIHBhbmljIGZvciBpbnZhbGlkIFB5dGhvbiB2ZXJzaW9ucyAoWyMmIzgyMDM7MTMwNzddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMzA3NykpCi0gICBCbG9jayBzY3JpcHRzIGZyb20gb3ZlcndyaXRpbmcgYHB5dGhvbmAgKFsjJiM4MjAzOzEzMDUxXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMwNTEpKQotICAgQ2hlY2sgZGlzdHJpYnV0aW9uIG5hbWVzIHRvIGhhbmRsZSBpbnZhbGlkIHJlZGlyZWN0cyAoWyMmIzgyMDM7MTI5MTddKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcHVsbC8xMjkxNykpCi0gICBDaGVjayBmb3IgbWlzbWF0Y2hlZCBwYWNrYWdlIGFuZCBkaXN0cmlidXRpb24gbmFtZXMgb24gcmVzb2x2ZXIgdGhyZWFkIChbIyYjODIwMzsxMzA4OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMDg4KSkKLSAgIEZpeCBwYW5pYyB3aXRoIGludmFsaWQgbGFzdCBjaGFyYWN0ZXIgaW4gUEVQIDUwOCBuYW1lIChbIyYjODIwMzsxMzEwNV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9wdWxsLzEzMTA1KSkKLSAgIFJlamVjdCBgcmVxdWlyZXMtcHl0aG9uYCBldmVuIGlmIG5vdCBsaXN0ZWQgb24gdGhlIGluZGV4IHBhZ2UgKFsjJiM4MjAzOzEzMDg2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3B1bGwvMTMwODYpKQoKIyMjIyMgSW5zdGFsbCB1diAwLjYuMTcKCiMjIyMjIEluc3RhbGwgcHJlYnVpbHQgYmluYXJpZXMgdmlhIHNoZWxsIHNjcmlwdAoKYGBgc2gKY3VybCAtLXByb3RvICc9aHR0cHMnIC0tdGxzdjEuMiAtTHNTZiBodHRwczovL2dpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di1pbnN0YWxsZXIuc2ggfCBzaApgYGAKCiMjIyMjIEluc3RhbGwgcHJlYnVpbHQgYmluYXJpZXMgdmlhIHBvd2Vyc2hlbGwgc2NyaXB0CgpgYGBzaApwb3dlcnNoZWxsIC1FeGVjdXRpb25Qb2xpY3kgQnlwYXNzIC1jICJpcm0gaHR0cHM6Ly9naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtaW5zdGFsbGVyLnBzMSB8IGlleCIKYGBgCgojIyMjIyBEb3dubG9hZCB1diAwLjYuMTcKCnwgIEZpbGUgIHwgUGxhdGZvcm0gfCBDaGVja3N1bSB8CnwtLS0tLS0tLXwtLS0tLS0tLS0tfC0tLS0tLS0tLS18CnwgW3V2LWFhcmNoNjQtYXBwbGUtZGFyd2luLnRhci5nel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYWFyY2g2NC1hcHBsZS1kYXJ3aW4udGFyLmd6KSB8IEFwcGxlIFNpbGljb24gbWFjT1MgfCBbY2hlY2tzdW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LWFhcmNoNjQtYXBwbGUtZGFyd2luLnRhci5nei5zaGEyNTYpIHwKfCBbdXYteDg2XF82NC1hcHBsZS1kYXJ3aW4udGFyLmd6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di14ODZcXzY0LWFwcGxlLWRhcndpbi50YXIuZ3opIHwgSW50ZWwgbWFjT1MgfCBbY2hlY2tzdW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LXg4NlxfNjQtYXBwbGUtZGFyd2luLnRhci5nei5zaGEyNTYpIHwKfCBbdXYtYWFyY2g2NC1wYy13aW5kb3dzLW1zdmMuemlwXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di1hYXJjaDY0LXBjLXdpbmRvd3MtbXN2Yy56aXApIHwgQVJNNjQgV2luZG93cyB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYWFyY2g2NC1wYy13aW5kb3dzLW1zdmMuemlwLnNoYTI1NikgfAp8IFt1di1pNjg2LXBjLXdpbmRvd3MtbXN2Yy56aXBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LWk2ODYtcGMtd2luZG93cy1tc3ZjLnppcCkgfCB4ODYgV2luZG93cyB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtaTY4Ni1wYy13aW5kb3dzLW1zdmMuemlwLnNoYTI1NikgfAp8IFt1di14ODZcXzY0LXBjLXdpbmRvd3MtbXN2Yy56aXBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LXg4NlxfNjQtcGMtd2luZG93cy1tc3ZjLnppcCkgfCB4NjQgV2luZG93cyB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYteDg2XF82NC1wYy13aW5kb3dzLW1zdmMuemlwLnNoYTI1NikgfAp8IFt1di1hYXJjaDY0LXVua25vd24tbGludXgtZ251LnRhci5nel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYWFyY2g2NC11bmtub3duLWxpbnV4LWdudS50YXIuZ3opIHwgQVJNNjQgTGludXggfCBbY2hlY2tzdW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LWFhcmNoNjQtdW5rbm93bi1saW51eC1nbnUudGFyLmd6LnNoYTI1NikgfAp8IFt1di1pNjg2LXVua25vd24tbGludXgtZ251LnRhci5nel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtaTY4Ni11bmtub3duLWxpbnV4LWdudS50YXIuZ3opIHwgeDg2IExpbnV4IHwgW2NoZWNrc3VtXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di1pNjg2LXVua25vd24tbGludXgtZ251LnRhci5nei5zaGEyNTYpIHwKfCBbdXYtcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251LnRhci5nel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251LnRhci5neikgfCBQUEM2NCBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtcG93ZXJwYzY0LXVua25vd24tbGludXgtZ251LnRhci5nei5zaGEyNTYpIHwKfCBbdXYtcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUudGFyLmd6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di1wb3dlcnBjNjRsZS11bmtub3duLWxpbnV4LWdudS50YXIuZ3opIHwgUFBDNjRMRSBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtcG93ZXJwYzY0bGUtdW5rbm93bi1saW51eC1nbnUudGFyLmd6LnNoYTI1NikgfAp8IFt1di1zMzkweC11bmtub3duLWxpbnV4LWdudS50YXIuZ3pdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LXMzOTB4LXVua25vd24tbGludXgtZ251LnRhci5neikgfCBTMzkweCBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtczM5MHgtdW5rbm93bi1saW51eC1nbnUudGFyLmd6LnNoYTI1NikgfAp8IFt1di14ODZcXzY0LXVua25vd24tbGludXgtZ251LnRhci5nel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYteDg2XF82NC11bmtub3duLWxpbnV4LWdudS50YXIuZ3opIHwgeDY0IExpbnV4IHwgW2NoZWNrc3VtXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di14ODZcXzY0LXVua25vd24tbGludXgtZ251LnRhci5nei5zaGEyNTYpIHwKfCBbdXYtYXJtdjctdW5rbm93bi1saW51eC1nbnVlYWJpaGYudGFyLmd6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di1hcm12Ny11bmtub3duLWxpbnV4LWdudWVhYmloZi50YXIuZ3opIHwgQVJNdjcgTGludXggfCBbY2hlY2tzdW1dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LWFybXY3LXVua25vd24tbGludXgtZ251ZWFiaWhmLnRhci5nei5zaGEyNTYpIHwKfCBbdXYtYWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wudGFyLmd6XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vYXN0cmFsLXNoL3V2L3JlbGVhc2VzL2Rvd25sb2FkLzAuNi4xNy91di1hYXJjaDY0LXVua25vd24tbGludXgtbXVzbC50YXIuZ3opIHwgQVJNNjQgTVVTTCBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYWFyY2g2NC11bmtub3duLWxpbnV4LW11c2wudGFyLmd6LnNoYTI1NikgfAp8IFt1di1pNjg2LXVua25vd24tbGludXgtbXVzbC50YXIuZ3pdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LWk2ODYtdW5rbm93bi1saW51eC1tdXNsLnRhci5neikgfCB4ODYgTVVTTCBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtaTY4Ni11bmtub3duLWxpbnV4LW11c2wudGFyLmd6LnNoYTI1NikgfAp8IFt1di14ODZcXzY0LXVua25vd24tbGludXgtbXVzbC50YXIuZ3pdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LXg4NlxfNjQtdW5rbm93bi1saW51eC1tdXNsLnRhci5neikgfCB4NjQgTVVTTCBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYteDg2XF82NC11bmtub3duLWxpbnV4LW11c2wudGFyLmd6LnNoYTI1NikgfAp8IFt1di1hcm0tdW5rbm93bi1saW51eC1tdXNsZWFiaWhmLnRhci5nel0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYXJtLXVua25vd24tbGludXgtbXVzbGVhYmloZi50YXIuZ3opIHwgQVJNdjYgTVVTTCBMaW51eCAoSGFyZGZsb2F0KSB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYXJtLXVua25vd24tbGludXgtbXVzbGVhYmloZi50YXIuZ3ouc2hhMjU2KSB8CnwgW3V2LWFybXY3LXVua25vd24tbGludXgtbXVzbGVhYmloZi50YXIuZ3pdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9hc3RyYWwtc2gvdXYvcmVsZWFzZXMvZG93bmxvYWQvMC42LjE3L3V2LWFybXY3LXVua25vd24tbGludXgtbXVzbGVhYmloZi50YXIuZ3opIHwgQVJNdjcgTVVTTCBMaW51eCB8IFtjaGVja3N1bV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2FzdHJhbC1zaC91di9yZWxlYXNlcy9kb3dubG9hZC8wLjYuMTcvdXYtYXJtdjctdW5rbm93bi1saW51eC1tdXNsZWFiaWhmLnRhci5nei5zaGEyNTYpIHwKCjwvZGV0YWlscz4KCi0tLQoKIyMjIENvbmZpZ3VyYXRpb24KCvCfk4UgKipTY2hlZHVsZSoqOiBCcmFuY2ggY3JlYXRpb24gLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCksIEF1dG9tZXJnZSAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKS4KCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhpcyB1cGRhdGUgYWdhaW4uCgotLS0KCiAtIFsgXSA8IS0tIHJlYmFzZS1jaGVjayAtLT5JZiB5b3Ugd2FudCB0byByZWJhc2UvcmV0cnkgdGhpcyBQUiwgY2hlY2sgdGhpcyBib3gKCi0tLQoKVGhpcyBQUiB3YXMgZ2VuZXJhdGVkIGJ5IFtNZW5kIFJlbm92YXRlXShodHRwczovL21lbmQuaW8vcmVub3ZhdGUvKS4gVmlldyB0aGUgW3JlcG9zaXRvcnkgam9iIGxvZ10oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9naXRodWIvb3Npc20vY2ZnLWNvb2tpZWN1dHRlcikuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSXpPUzR5TmpRdU1DSXNJblZ3WkdGMFpXUkpibFpsY2lJNklqTTVMakkyTkM0d0lpd2lkR0Z5WjJWMFFuSmhibU5vSWpvaWJXRnBiaUlzSW14aFltVnNjeUk2V3lKeVpXNXZkbUYwWlNKZGZRPT0tLT4K
      patchset: 3ad9002173039ff8ab771fd3600cf227fcbefc50
      pipeline: check
      playbook_context:
        playbook_projects:
          trusted/project_0/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: fa94074a33c2a4b1ff3eaadb063e1f29046bf671
          trusted/project_1/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 34ae850a7303da5bb21907d41439ae6afbc1fe3e
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: f7abfe5b7dfd12b80bc14a21a9dbf0711aea1f3b
          untrusted/project_1/github.com/osism/zuul-config:
            canonical_name: github.com/osism/zuul-config
            checkout: main
            commit: fa94074a33c2a4b1ff3eaadb063e1f29046bf671
          untrusted/project_2/opendev.org/zuul/zuul-jobs:
            canonical_name: opendev.org/zuul/zuul-jobs
            checkout: master
            commit: 34ae850a7303da5bb21907d41439ae6afbc1fe3e
        playbooks:
        - path: untrusted/project_0/github.com/osism/zuul-jobs/playbooks/ansible-lint/run.yaml
          roles:
          - checkout: main
            checkout_description: playbook branch
            link_name: ansible/playbook_0/role_0/zuul-jobs
            link_target: untrusted/project_0/github.com/osism/zuul-jobs
            role_path: ansible/playbook_0/role_0/zuul-jobs/roles
          - checkout: main
            checkout_description: zuul branch
            link_name: ansible/playbook_0/role_1/zuul-config
            link_target: untrusted/project_1/github.com/osism/zuul-config
            role_path: ansible/playbook_0/role_1/zuul-config/roles
          - checkout: master
            checkout_description: project default branch
            link_name: ansible/playbook_0/role_2/zuul-jobs
            link_target: untrusted/project_2/opendev.org/zuul/zuul-jobs
            role_path: ansible/playbook_0/role_2/zuul-jobs/roles
      post_review: false
      project:
        canonical_hostname: github.com
        canonical_name: github.com/osism/cfg-cookiecutter
        name: osism/cfg-cookiecutter
        short_name: cfg-cookiecutter
        src_dir: src/github.com/osism/cfg-cookiecutter
      projects:
        github.com/osism/cfg-cookiecutter:
          canonical_hostname: github.com
          canonical_name: github.com/osism/cfg-cookiecutter
          checkout: main
          checkout_description: zuul branch
          commit: 5ac0eee7a8817bac01ac5c97e9d8557d3f267cd8
          name: osism/cfg-cookiecutter
          required: false
          short_name: cfg-cookiecutter
          src_dir: src/github.com/osism/cfg-cookiecutter
      ref: refs/pull/733/head
      resources: {}
      tenant: osism
      timeout: 1800
      voting: true
