all:
  hosts:
    ubuntu-noble:
      ansible_connection: ssh
      ansible_host: 81.163.193.178
      ansible_port: 22
      ansible_python_interpreter: auto
      ansible_user: zuul
      nodepool:
        az: nova
        cloud: regiocloud-a-ci
        external_id: 99af877a-9318-4698-a11e-1f668783a2e4
        host_id: cdf791707c4bac54583e0f8775902d81b0e389f3305f2abf87f6d7bf
        interface_ip: 81.163.193.178
        label: ubuntu-noble
        private_ipv4: 10.128.0.103
        private_ipv6: null
        provider: regiocloud-a
        public_ipv4: 81.163.193.178
        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/testbed/.zuul.yaml@main#195>'
      ansible_version: '8'
      attempts: 1
      branch: main
      build: ec5da5fea40b4dbc94e1dc7db1a3cdd2
      buildset: 1d5dc10ba1664b77a754c87158a97d28
      change: '2650'
      change_message: "chore(deps): update dependency gruntwork-io/terragrunt to v0.77.3\n\
        \nThis PR contains the following updates:\n\n| Package | Update | Change |\n\
        |---|---|---|\n| [gruntwork-io/terragrunt](https://redirect.github.com/gruntwork-io/terragrunt)\
        \ | minor | `v0.76.8` -> `v0.77.3` |\n\n---\n\n### Release Notes\n\n<details>\n\
        <summary>gruntwork-io/terragrunt (gruntwork-io/terragrunt)</summary>\n\n###\
        \ [`v0.77.3`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.3)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.2...v0.77.3)\n\
        \n#### \U0001F4AA\U0001F3FD  Enhancements\n\n##### Error Handling for Discovery\n\
        \nThe `find` and `list` commands now leverage improved error handling when\
        \ discovering configurations throughout Terragrunt projects.\n\nWhen configurations\
        \ require authentication due to usage of functionality like `get_aws_account_id()`,\
        \ have errors in their configurations or cycles between dependencies, the\
        \ commands will do their best to return valid results, and warn the user that\
        \ the results are incomplete due to suppressed errors or cut cycles.\n\nThis\
        \ should allow for usage of the `find` and `list` commands in more real-world\
        \ use-cases, which frequently require this kind of error handling.\n\n####\
        \ What's Changed\n\n-   feat: Adding error handling for discovery by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4098](https://redirect.github.com/gruntwork-io/terragrunt/pull/4098)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.2...v0.77.3\n\
        \n### [`v0.77.2`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.2)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.1...v0.77.2)\n\
        \n#### \u2728 New Features\n\nThe `backend` configuration block now supports\
        \ `assume_role_with_web_identity` for configuring the `backend` block of the\
        \ OpenTofu/Terraform `terraform` block.\n\nThis allows users separately authenticating\
        \ to backends with a different role to leverage role assumption with OIDC.\n\
        \nFor more information, see [the backend docs](https://terragrunt.gruntwork.io/docs/reference/config-blocks-and-attributes/#backend).\n\
        \n#### What's Changed\n\n-   feat: Adding assume_role_with_web_identity for\
        \ backend configs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4097](https://redirect.github.com/gruntwork-io/terragrunt/pull/4097)\n\
        -   chore: simplified processing of errors block by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4046](https://redirect.github.com/gruntwork-io/terragrunt/pull/4046)\n\
        -   build(deps): Updated google.golang.org/protobuf to 1.36.6 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4096](https://redirect.github.com/gruntwork-io/terragrunt/pull/4096)\n\
        -   build(deps): Updated github.com/charmbracelet/lipgloss to v1.1.0 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4096](https://redirect.github.com/gruntwork-io/terragrunt/pull/4096)\n\
        -   build(deps): Update github.com/gruntwork-io/terragrunt-engine-go to v0.0.13\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4096](https://redirect.github.com/gruntwork-io/terragrunt/pull/4096)\n\
        -   build(deps): Update github.com/urfave/cli/v2 to v2.27.6 by [@&#8203;denis256](https://redirect.github.com/denis256)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4096](https://redirect.github.com/gruntwork-io/terragrunt/pull/4096)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.1...v0.77.2\n\
        \n### [`v0.77.1`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.1)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.77.0...v0.77.1)\n\
        \n#### \u2728 New Features\n\n-   Improved error handling by adding a test\
        \ check for non-existent stack and unit paths, ensuring clearer messages when\
        \ expected files are missing.\n-   Added support for reading stack and values\
        \ files `read_terragrunt_config()` now handles both formats.\n\n#### What's\
        \ Changed\n\n-   feat: added support for reading stack configuration and values\
        \ files by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4085](https://redirect.github.com/gruntwork-io/terragrunt/pull/4085)\n\
        -   feat: enhanced stack validation with improved checks and error reporting\
        \ by [@&#8203;denis256](https://redirect.github.com/denis256) in [https://github.com/gruntwork-io/terragrunt/pull/4078](https://redirect.github.com/gruntwork-io/terragrunt/pull/4078)\n\
        \nValidation demo:\n\n![stack-validation-v2](https://redirect.github.com/user-attachments/assets/91468a9a-38f5-4140-af83-8ec119ed6f49)\n\
        \nRead config demo:\n\n![read_terragrunt_config-v2](https://redirect.github.com/user-attachments/assets/8a971c25-a7e4-4598-88ea-7066447e7a68)\n\
        \nStacks RFC: [https://github.com/gruntwork-io/terragrunt/issues/3313](https://redirect.github.com/gruntwork-io/terragrunt/issues/3313)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.77.0...v0.77.1\n\
        \n### [`v0.77.0`](https://redirect.github.com/gruntwork-io/terragrunt/releases/tag/v0.77.0)\n\
        \n[Compare Source](https://redirect.github.com/gruntwork-io/terragrunt/compare/v0.76.8...v0.77.0)\n\
        \n#### \U0001F6E0\uFE0F Breaking Changes\n\n##### Best Effort Parsing\n\n\
        Exported functions like `ParseConfig` and `ParseConfigString` now perform\
        \ best effort parsing instead of early returns. Consumers of Terragrunt as\
        \ a library should be aware of this change, as it can result in partially\
        \ parsed configurations being returned instead of `nil` when errors are encountered\
        \ during parsing. As a consumer of these functions, you are responsible for\
        \ checking the errors being returned, and handling the returned configuration\
        \ value accordingly.\n\nThese changes are being introduced to support greater\
        \ parsing flexibility for usage in the `find` and `list` command, which will\
        \ be able to handle partial parse failures while still returning valuable\
        \ information, along with the [Terragrunt LSP](https://redirect.github.com/gruntwork-io/terragrunt-ls),\
        \ which needs the same adjustments to parsing.\n\n##### Struct Field Alignment\n\
        \nThe `fieldalignment` [govet](https://golangci-lint.run/usage/linters/#govet)\
        \ lint has been introduced to the codebase, and all structs that had less\
        \ efficient struct field alignment have been updated to minimize their memory\
        \ footprint. If you are consuming Terragrunt as a library, you may have to\
        \ make changes to how you are leveraging exported structs from Terragrunt.\n\
        \nThe simplest way to avoid any breakage related to this change is to avoid\
        \ usage of unkeyed composite literals.\n\n```go\n\n### before\ntype Foo struct\
        \ {\n  BoolField bool\n  IntField int\n}\n\nf := Foo{false, 30}\n```\n\n```go\n\
        \n### after\ntype Foo struct {\n  IntField int\n  BoolField bool\n}\n\n###\
        \ Avoid unkeyed struct literals\nf := Foo{BoolField: false, IntField: 30}\n\
        \n### Or rearrange the values of your unkeyed struct literal\nf := Foo{30,\
        \ false}\n```\n\n##### Telemetry Environment Variable Name Changes\n\nThe\
        \ following environment variables now have new aliases:\n\n-   `TERRAGRUNT_TELEMETRY_TRACE_EXPORTER`\
        \ --> `TG_TELEMETRY_TRACE_EXPORTER`\n-   `TERRAGRUNT_TELEMETRY_TRACE_EXPORTER_HTTP_ENDPOINT`\
        \ --> `TG_TELEMETRY_TRACE_EXPORTER_HTTP_ENDPOINT`\n-   `TERRAGRUNT_TELEMETRY_TRACE_EXPORTER_INSECURE_ENDPOINT`\
        \ --> `TG_TELEMETRY_TRACE_EXPORTER_INSECURE_ENDPOINT`\n-   `TERRAGRUNT_TELEMETRY_METRIC_EXPORTER`\
        \ --> `TG_TELEMETRY_METRIC_EXPORTER`\n-   `TERRAGRUNT_TELEMETRY_METRIC_EXPORTER_INSECURE_ENDPOINT`\
        \ --> `TG_TELEMETRY_METRIC_EXPORTER_INSECURE_ENDPOINT`\n\nThese environment\
        \ variables have been renamed to align more closely with the rest of the changes\
        \ in the [CLI Redesign](https://redirect.github.com/gruntwork-io/terragrunt/issues/3445).\n\
        \nNote that the `TRACEPARENT` environment variable has *not* changed. This\
        \ environment variable is semi-standard in the OpenTelemetry space, so we've\
        \ preserved it.\n\nThis is not a breaking change with this release, but will\
        \ be in the future. As with all the environment variable renames that have\
        \ taken place during the CLI Redesign, both the legacy environment variable\
        \ and the new environment variable will be supported to give users time to\
        \ make requisite adjustments. If you would like to opt in to stricter behavior\
        \ that requires usage of the new environment variables, leverage the [terragrunt-prefix-env-vars](https://terragrunt.gruntwork.io/docs/reference/strict-mode/#terragrunt-prefix-env-vars)\
        \ strict control.\n\n#### \u2728 New Features\n\n##### Introduction of `backend\
        \ bootstrap` and `backend delete`\n\nThis release introduces two new commands\
        \ named [backend bootstrap](https://terragrunt.gruntwork.io/docs/reference/cli-options/#backend-bootstrap)\
        \ and [backend delete](https://terragrunt.gruntwork.io/docs/reference/cli-options/#backend-delete).\n\
        \nThese commands allow for manual control over the process by which Terragrunt\
        \ can manage backend state resources on behalf of users.\n\n##### `backend\
        \ bootstrap`\n\nThe [`backend bootstrap`](https://terragrunt.gruntwork.io/docs/reference/cli-options/#backend-bootstrap)\
        \ command allows users to explicitly bootstrap resources like S3 buckets,\
        \ GCS buckets, DynamoDB tables, etc. used to manage state for OpenTofu/Terraform.\n\
        \nIt is accompanied by a flag (`--backend-bootstrap`) which explicitly enables\
        \ this behavior by default before performing any operation that might require\
        \ backend resources (like the `run` command).\n\nThe introduction of this\
        \ command is part of the future deprecation of provisioning backend resources\
        \ by default when using Terragrunt. You can learn more about this in the [CLI\
        \ Redesign](https://redirect.github.com/gruntwork-io/terragrunt/issues/3445).\n\
        \n##### `backend delete`\n\nThe [`backend delete`](https://terragrunt.gruntwork.io/docs/reference/cli-options/#backend-delete)\
        \ command allows users to delete state resources relevant to one or more units\
        \ in remote state.\n\nTerragrunt performs two safety checks to mitigate the\
        \ risk of accidentally removing the wrong backend state resource:\n\n1.  By\
        \ default, Terragrunt will refuse to remove any backend state file if versioning\
        \ is not enabled for the backend S3 bucket or GCS bucket. To explicitly ignore\
        \ this safety check, users must provide the `--force` flag.\n2.  By default,\
        \ Terragrunt will prompt users to confirm their decision to remove a given\
        \ backend state file. To explicitly ignore this safety check, users must provide\
        \ the `--non-interactive` flag.\n\nThe introduction of this command is part\
        \ of a larger effort to provide users greater control over the full lifecycle\
        \ of backend state resources by Terragrunt. You can learn more about this\
        \ in the [CLI Redesign](https://redirect.github.com/gruntwork-io/terragrunt/issues/3445).\n\
        \n#### What's Changed\n\n-   feat: Adding best effort parsing by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4044](https://redirect.github.com/gruntwork-io/terragrunt/pull/4044)\n\
        -   feat: Implementation of backend commands:  `bootstrap`, `delete` by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4070](https://redirect.github.com/gruntwork-io/terragrunt/pull/4070)\n\
        -   feat: Backend delete prompt by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4091](https://redirect.github.com/gruntwork-io/terragrunt/pull/4091)\n\
        -   feat: Adding backend docs by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4087](https://redirect.github.com/gruntwork-io/terragrunt/pull/4087)\n\
        -   fix: Updating homepage title by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4081](https://redirect.github.com/gruntwork-io/terragrunt/pull/4081)\n\
        -   fix: Addressing stricter lint findings by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4090](https://redirect.github.com/gruntwork-io/terragrunt/pull/4090)\n\
        -   fix: Fixing visible flags by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4088](https://redirect.github.com/gruntwork-io/terragrunt/pull/4088)\n\
        -   fix: Renaming telemetry envs prefix `TERRAGRUNT_` with `TG_` by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4084](https://redirect.github.com/gruntwork-io/terragrunt/pull/4084)\n\
        -   fix: Fixing `backend delete` safety features by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4089](https://redirect.github.com/gruntwork-io/terragrunt/pull/4089)\n\
        -   fix: Avoiding duplicate description in flag names by [@&#8203;yhakbar](https://redirect.github.com/yhakbar)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4092](https://redirect.github.com/gruntwork-io/terragrunt/pull/4092)\n\
        -   fix: `terraform_binary` with `run version` command by [@&#8203;levkohimins](https://redirect.github.com/levkohimins)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4095](https://redirect.github.com/gruntwork-io/terragrunt/pull/4095)\n\
        -   build(deps-dev): bump nokogiri from 1.18.3 to 1.18.4 in /docs by [@&#8203;dependabot](https://redirect.github.com/dependabot)\
        \ in [https://github.com/gruntwork-io/terragrunt/pull/4069](https://redirect.github.com/gruntwork-io/terragrunt/pull/4069)\n\
        \n**Full Changelog**: https://github.com/gruntwork-io/terragrunt/compare/v0.76.8...v0.77.0\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/testbed).\n\
        <!--renovate-debug:eyJjcmVhdGVkSW5WZXIiOiIzOS4yMDcuMSIsInVwZGF0ZWRJblZlciI6IjM5LjIwNy4xIiwidGFyZ2V0QnJhbmNoIjoibWFpbiIsImxhYmVscyI6WyJyZW5vdmF0ZSJdfQ==-->\n"
      change_url: https://github.com/osism/testbed/pull/2650
      child_jobs: []
      commit_id: e5cc71d519cb066ac00023b0b5b68a4a690203e0
      event_id: 0a6f57c0-0e5a-11f0-982c-3fb0322742d7
      executor:
        hostname: 7d211f194f6a
        inventory_file: /var/lib/zuul/builds/ec5da5fea40b4dbc94e1dc7db1a3cdd2/ansible/inventory.yaml
        log_root: /var/lib/zuul/builds/ec5da5fea40b4dbc94e1dc7db1a3cdd2/work/logs
        result_data_file: /var/lib/zuul/builds/ec5da5fea40b4dbc94e1dc7db1a3cdd2/work/results.json
        src_root: /var/lib/zuul/builds/ec5da5fea40b4dbc94e1dc7db1a3cdd2/work/src
        work_root: /var/lib/zuul/builds/ec5da5fea40b4dbc94e1dc7db1a3cdd2/work
      items:
      - branch: main
        change: '2650'
        change_url: https://github.com/osism/testbed/pull/2650
        patchset: e5cc71d519cb066ac00023b0b5b68a4a690203e0
        project:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          name: osism/testbed
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      job: ansible-lint
      jobtags: []
      max_attempts: 3
      message: Y2hvcmUoZGVwcyk6IHVwZGF0ZSBkZXBlbmRlbmN5IGdydW50d29yay1pby90ZXJyYWdydW50IHRvIHYwLjc3LjMKClRoaXMgUFIgY29udGFpbnMgdGhlIGZvbGxvd2luZyB1cGRhdGVzOgoKfCBQYWNrYWdlIHwgVXBkYXRlIHwgQ2hhbmdlIHwKfC0tLXwtLS18LS0tfAp8IFtncnVudHdvcmstaW8vdGVycmFncnVudF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50KSB8IG1pbm9yIHwgYHYwLjc2LjhgIC0+IGB2MC43Ny4zYCB8CgotLS0KCiMjIyBSZWxlYXNlIE5vdGVzCgo8ZGV0YWlscz4KPHN1bW1hcnk+Z3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQgKGdydW50d29yay1pby90ZXJyYWdydW50KTwvc3VtbWFyeT4KCiMjIyBbYHYwLjc3LjNgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc3LjMpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjIuLi52MC43Ny4zKQoKIyMjIyDwn5Kq8J+PvSAgRW5oYW5jZW1lbnRzCgojIyMjIyBFcnJvciBIYW5kbGluZyBmb3IgRGlzY292ZXJ5CgpUaGUgYGZpbmRgIGFuZCBgbGlzdGAgY29tbWFuZHMgbm93IGxldmVyYWdlIGltcHJvdmVkIGVycm9yIGhhbmRsaW5nIHdoZW4gZGlzY292ZXJpbmcgY29uZmlndXJhdGlvbnMgdGhyb3VnaG91dCBUZXJyYWdydW50IHByb2plY3RzLgoKV2hlbiBjb25maWd1cmF0aW9ucyByZXF1aXJlIGF1dGhlbnRpY2F0aW9uIGR1ZSB0byB1c2FnZSBvZiBmdW5jdGlvbmFsaXR5IGxpa2UgYGdldF9hd3NfYWNjb3VudF9pZCgpYCwgaGF2ZSBlcnJvcnMgaW4gdGhlaXIgY29uZmlndXJhdGlvbnMgb3IgY3ljbGVzIGJldHdlZW4gZGVwZW5kZW5jaWVzLCB0aGUgY29tbWFuZHMgd2lsbCBkbyB0aGVpciBiZXN0IHRvIHJldHVybiB2YWxpZCByZXN1bHRzLCBhbmQgd2FybiB0aGUgdXNlciB0aGF0IHRoZSByZXN1bHRzIGFyZSBpbmNvbXBsZXRlIGR1ZSB0byBzdXBwcmVzc2VkIGVycm9ycyBvciBjdXQgY3ljbGVzLgoKVGhpcyBzaG91bGQgYWxsb3cgZm9yIHVzYWdlIG9mIHRoZSBgZmluZGAgYW5kIGBsaXN0YCBjb21tYW5kcyBpbiBtb3JlIHJlYWwtd29ybGQgdXNlLWNhc2VzLCB3aGljaCBmcmVxdWVudGx5IHJlcXVpcmUgdGhpcyBraW5kIG9mIGVycm9yIGhhbmRsaW5nLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IEFkZGluZyBlcnJvciBoYW5kbGluZyBmb3IgZGlzY292ZXJ5IGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5OCkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzcuMi4uLnYwLjc3LjMKCiMjIyBbYHYwLjc3LjJgXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcmVsZWFzZXMvdGFnL3YwLjc3LjIpCgpbQ29tcGFyZSBTb3VyY2VdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjEuLi52MC43Ny4yKQoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgpUaGUgYGJhY2tlbmRgIGNvbmZpZ3VyYXRpb24gYmxvY2sgbm93IHN1cHBvcnRzIGBhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eWAgZm9yIGNvbmZpZ3VyaW5nIHRoZSBgYmFja2VuZGAgYmxvY2sgb2YgdGhlIE9wZW5Ub2Z1L1RlcnJhZm9ybSBgdGVycmFmb3JtYCBibG9jay4KClRoaXMgYWxsb3dzIHVzZXJzIHNlcGFyYXRlbHkgYXV0aGVudGljYXRpbmcgdG8gYmFja2VuZHMgd2l0aCBhIGRpZmZlcmVudCByb2xlIHRvIGxldmVyYWdlIHJvbGUgYXNzdW1wdGlvbiB3aXRoIE9JREMuCgpGb3IgbW9yZSBpbmZvcm1hdGlvbiwgc2VlIFt0aGUgYmFja2VuZCBkb2NzXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NvbmZpZy1ibG9ja3MtYW5kLWF0dHJpYnV0ZXMvI2JhY2tlbmQpLgoKIyMjIyBXaGF0J3MgQ2hhbmdlZAoKLSAgIGZlYXQ6IEFkZGluZyBhc3N1bWVfcm9sZV93aXRoX3dlYl9pZGVudGl0eSBmb3IgYmFja2VuZCBjb25maWdzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5N10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5NykKLSAgIGNob3JlOiBzaW1wbGlmaWVkIHByb2Nlc3Npbmcgb2YgZXJyb3JzIGJsb2NrIGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQ2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQ2KQotICAgYnVpbGQoZGVwcyk6IFVwZGF0ZWQgZ29vZ2xlLmdvbGFuZy5vcmcvcHJvdG9idWYgdG8gMS4zNi42IGJ5IFtAJiM4MjAzO2RlbmlzMjU2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZGVuaXMyNTYpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDk2XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDk2KQotICAgYnVpbGQoZGVwcyk6IFVwZGF0ZWQgZ2l0aHViLmNvbS9jaGFybWJyYWNlbGV0L2xpcGdsb3NzIHRvIHYxLjEuMCBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5NikKLSAgIGJ1aWxkKGRlcHMpOiBVcGRhdGUgZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC1lbmdpbmUtZ28gdG8gdjAuMC4xMyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5NikKLSAgIGJ1aWxkKGRlcHMpOiBVcGRhdGUgZ2l0aHViLmNvbS91cmZhdmUvY2xpL3YyIHRvIHYyLjI3LjYgYnkgW0AmIzgyMDM7ZGVuaXMyNTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZW5pczI1NikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwOTZdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwOTYpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjEuLi52MC43Ny4yCgojIyMgW2B2MC43Ny4xYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ny4xKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ny4wLi4udjAuNzcuMSkKCiMjIyMg4pyoIE5ldyBGZWF0dXJlcwoKLSAgIEltcHJvdmVkIGVycm9yIGhhbmRsaW5nIGJ5IGFkZGluZyBhIHRlc3QgY2hlY2sgZm9yIG5vbi1leGlzdGVudCBzdGFjayBhbmQgdW5pdCBwYXRocywgZW5zdXJpbmcgY2xlYXJlciBtZXNzYWdlcyB3aGVuIGV4cGVjdGVkIGZpbGVzIGFyZSBtaXNzaW5nLgotICAgQWRkZWQgc3VwcG9ydCBmb3IgcmVhZGluZyBzdGFjayBhbmQgdmFsdWVzIGZpbGVzIGByZWFkX3RlcnJhZ3J1bnRfY29uZmlnKClgIG5vdyBoYW5kbGVzIGJvdGggZm9ybWF0cy4KCiMjIyMgV2hhdCdzIENoYW5nZWQKCi0gICBmZWF0OiBhZGRlZCBzdXBwb3J0IGZvciByZWFkaW5nIHN0YWNrIGNvbmZpZ3VyYXRpb24gYW5kIHZhbHVlcyBmaWxlcyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4NV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4NSkKLSAgIGZlYXQ6IGVuaGFuY2VkIHN0YWNrIHZhbGlkYXRpb24gd2l0aCBpbXByb3ZlZCBjaGVja3MgYW5kIGVycm9yIHJlcG9ydGluZyBieSBbQCYjODIwMztkZW5pczI1Nl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2RlbmlzMjU2KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA3OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA3OCkKClZhbGlkYXRpb24gZGVtbzoKCiFbc3RhY2stdmFsaWRhdGlvbi12Ml0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3VzZXItYXR0YWNobWVudHMvYXNzZXRzLzkxNDY4YTlhLTM4ZjUtNDE0MC1hZjgzLThlYzExOWVkNmY0OSkKClJlYWQgY29uZmlnIGRlbW86CgohW3JlYWRfdGVycmFncnVudF9jb25maWctdjJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS91c2VyLWF0dGFjaG1lbnRzL2Fzc2V0cy84YTk3MWMyNS1hN2U0LTQ1OTgtODhlYS03MDY2NDQ3ZTdhNjgpCgpTdGFja3MgUkZDOiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zMzEzXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvaXNzdWVzLzMzMTMpCgoqKkZ1bGwgQ2hhbmdlbG9nKio6IGh0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9jb21wYXJlL3YwLjc3LjAuLi52MC43Ny4xCgojIyMgW2B2MC43Ny4wYF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3JlbGVhc2VzL3RhZy92MC43Ny4wKQoKW0NvbXBhcmUgU291cmNlXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvY29tcGFyZS92MC43Ni44Li4udjAuNzcuMCkKCiMjIyMg8J+boO+4jyBCcmVha2luZyBDaGFuZ2VzCgojIyMjIyBCZXN0IEVmZm9ydCBQYXJzaW5nCgpFeHBvcnRlZCBmdW5jdGlvbnMgbGlrZSBgUGFyc2VDb25maWdgIGFuZCBgUGFyc2VDb25maWdTdHJpbmdgIG5vdyBwZXJmb3JtIGJlc3QgZWZmb3J0IHBhcnNpbmcgaW5zdGVhZCBvZiBlYXJseSByZXR1cm5zLiBDb25zdW1lcnMgb2YgVGVycmFncnVudCBhcyBhIGxpYnJhcnkgc2hvdWxkIGJlIGF3YXJlIG9mIHRoaXMgY2hhbmdlLCBhcyBpdCBjYW4gcmVzdWx0IGluIHBhcnRpYWxseSBwYXJzZWQgY29uZmlndXJhdGlvbnMgYmVpbmcgcmV0dXJuZWQgaW5zdGVhZCBvZiBgbmlsYCB3aGVuIGVycm9ycyBhcmUgZW5jb3VudGVyZWQgZHVyaW5nIHBhcnNpbmcuIEFzIGEgY29uc3VtZXIgb2YgdGhlc2UgZnVuY3Rpb25zLCB5b3UgYXJlIHJlc3BvbnNpYmxlIGZvciBjaGVja2luZyB0aGUgZXJyb3JzIGJlaW5nIHJldHVybmVkLCBhbmQgaGFuZGxpbmcgdGhlIHJldHVybmVkIGNvbmZpZ3VyYXRpb24gdmFsdWUgYWNjb3JkaW5nbHkuCgpUaGVzZSBjaGFuZ2VzIGFyZSBiZWluZyBpbnRyb2R1Y2VkIHRvIHN1cHBvcnQgZ3JlYXRlciBwYXJzaW5nIGZsZXhpYmlsaXR5IGZvciB1c2FnZSBpbiB0aGUgYGZpbmRgIGFuZCBgbGlzdGAgY29tbWFuZCwgd2hpY2ggd2lsbCBiZSBhYmxlIHRvIGhhbmRsZSBwYXJ0aWFsIHBhcnNlIGZhaWx1cmVzIHdoaWxlIHN0aWxsIHJldHVybmluZyB2YWx1YWJsZSBpbmZvcm1hdGlvbiwgYWxvbmcgd2l0aCB0aGUgW1RlcnJhZ3J1bnQgTFNQXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQtbHMpLCB3aGljaCBuZWVkcyB0aGUgc2FtZSBhZGp1c3RtZW50cyB0byBwYXJzaW5nLgoKIyMjIyMgU3RydWN0IEZpZWxkIEFsaWdubWVudAoKVGhlIGBmaWVsZGFsaWdubWVudGAgW2dvdmV0XShodHRwczovL2dvbGFuZ2NpLWxpbnQucnVuL3VzYWdlL2xpbnRlcnMvI2dvdmV0KSBsaW50IGhhcyBiZWVuIGludHJvZHVjZWQgdG8gdGhlIGNvZGViYXNlLCBhbmQgYWxsIHN0cnVjdHMgdGhhdCBoYWQgbGVzcyBlZmZpY2llbnQgc3RydWN0IGZpZWxkIGFsaWdubWVudCBoYXZlIGJlZW4gdXBkYXRlZCB0byBtaW5pbWl6ZSB0aGVpciBtZW1vcnkgZm9vdHByaW50LiBJZiB5b3UgYXJlIGNvbnN1bWluZyBUZXJyYWdydW50IGFzIGEgbGlicmFyeSwgeW91IG1heSBoYXZlIHRvIG1ha2UgY2hhbmdlcyB0byBob3cgeW91IGFyZSBsZXZlcmFnaW5nIGV4cG9ydGVkIHN0cnVjdHMgZnJvbSBUZXJyYWdydW50LgoKVGhlIHNpbXBsZXN0IHdheSB0byBhdm9pZCBhbnkgYnJlYWthZ2UgcmVsYXRlZCB0byB0aGlzIGNoYW5nZSBpcyB0byBhdm9pZCB1c2FnZSBvZiB1bmtleWVkIGNvbXBvc2l0ZSBsaXRlcmFscy4KCmBgYGdvCgojIyMgYmVmb3JlCnR5cGUgRm9vIHN0cnVjdCB7CiAgQm9vbEZpZWxkIGJvb2wKICBJbnRGaWVsZCBpbnQKfQoKZiA6PSBGb297ZmFsc2UsIDMwfQpgYGAKCmBgYGdvCgojIyMgYWZ0ZXIKdHlwZSBGb28gc3RydWN0IHsKICBJbnRGaWVsZCBpbnQKICBCb29sRmllbGQgYm9vbAp9CgojIyMgQXZvaWQgdW5rZXllZCBzdHJ1Y3QgbGl0ZXJhbHMKZiA6PSBGb297Qm9vbEZpZWxkOiBmYWxzZSwgSW50RmllbGQ6IDMwfQoKIyMjIE9yIHJlYXJyYW5nZSB0aGUgdmFsdWVzIG9mIHlvdXIgdW5rZXllZCBzdHJ1Y3QgbGl0ZXJhbApmIDo9IEZvb3szMCwgZmFsc2V9CmBgYAoKIyMjIyMgVGVsZW1ldHJ5IEVudmlyb25tZW50IFZhcmlhYmxlIE5hbWUgQ2hhbmdlcwoKVGhlIGZvbGxvd2luZyBlbnZpcm9ubWVudCB2YXJpYWJsZXMgbm93IGhhdmUgbmV3IGFsaWFzZXM6CgotICAgYFRFUlJBR1JVTlRfVEVMRU1FVFJZX1RSQUNFX0VYUE9SVEVSYCAtLT4gYFRHX1RFTEVNRVRSWV9UUkFDRV9FWFBPUlRFUmAKLSAgIGBURVJSQUdSVU5UX1RFTEVNRVRSWV9UUkFDRV9FWFBPUlRFUl9IVFRQX0VORFBPSU5UYCAtLT4gYFRHX1RFTEVNRVRSWV9UUkFDRV9FWFBPUlRFUl9IVFRQX0VORFBPSU5UYAotICAgYFRFUlJBR1JVTlRfVEVMRU1FVFJZX1RSQUNFX0VYUE9SVEVSX0lOU0VDVVJFX0VORFBPSU5UYCAtLT4gYFRHX1RFTEVNRVRSWV9UUkFDRV9FWFBPUlRFUl9JTlNFQ1VSRV9FTkRQT0lOVGAKLSAgIGBURVJSQUdSVU5UX1RFTEVNRVRSWV9NRVRSSUNfRVhQT1JURVJgIC0tPiBgVEdfVEVMRU1FVFJZX01FVFJJQ19FWFBPUlRFUmAKLSAgIGBURVJSQUdSVU5UX1RFTEVNRVRSWV9NRVRSSUNfRVhQT1JURVJfSU5TRUNVUkVfRU5EUE9JTlRgIC0tPiBgVEdfVEVMRU1FVFJZX01FVFJJQ19FWFBPUlRFUl9JTlNFQ1VSRV9FTkRQT0lOVGAKClRoZXNlIGVudmlyb25tZW50IHZhcmlhYmxlcyBoYXZlIGJlZW4gcmVuYW1lZCB0byBhbGlnbiBtb3JlIGNsb3NlbHkgd2l0aCB0aGUgcmVzdCBvZiB0aGUgY2hhbmdlcyBpbiB0aGUgW0NMSSBSZWRlc2lnbl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2lzc3Vlcy8zNDQ1KS4KCk5vdGUgdGhhdCB0aGUgYFRSQUNFUEFSRU5UYCBlbnZpcm9ubWVudCB2YXJpYWJsZSBoYXMgKm5vdCogY2hhbmdlZC4gVGhpcyBlbnZpcm9ubWVudCB2YXJpYWJsZSBpcyBzZW1pLXN0YW5kYXJkIGluIHRoZSBPcGVuVGVsZW1ldHJ5IHNwYWNlLCBzbyB3ZSd2ZSBwcmVzZXJ2ZWQgaXQuCgpUaGlzIGlzIG5vdCBhIGJyZWFraW5nIGNoYW5nZSB3aXRoIHRoaXMgcmVsZWFzZSwgYnV0IHdpbGwgYmUgaW4gdGhlIGZ1dHVyZS4gQXMgd2l0aCBhbGwgdGhlIGVudmlyb25tZW50IHZhcmlhYmxlIHJlbmFtZXMgdGhhdCBoYXZlIHRha2VuIHBsYWNlIGR1cmluZyB0aGUgQ0xJIFJlZGVzaWduLCBib3RoIHRoZSBsZWdhY3kgZW52aXJvbm1lbnQgdmFyaWFibGUgYW5kIHRoZSBuZXcgZW52aXJvbm1lbnQgdmFyaWFibGUgd2lsbCBiZSBzdXBwb3J0ZWQgdG8gZ2l2ZSB1c2VycyB0aW1lIHRvIG1ha2UgcmVxdWlzaXRlIGFkanVzdG1lbnRzLiBJZiB5b3Ugd291bGQgbGlrZSB0byBvcHQgaW4gdG8gc3RyaWN0ZXIgYmVoYXZpb3IgdGhhdCByZXF1aXJlcyB1c2FnZSBvZiB0aGUgbmV3IGVudmlyb25tZW50IHZhcmlhYmxlcywgbGV2ZXJhZ2UgdGhlIFt0ZXJyYWdydW50LXByZWZpeC1lbnYtdmFyc10oaHR0cHM6Ly90ZXJyYWdydW50LmdydW50d29yay5pby9kb2NzL3JlZmVyZW5jZS9zdHJpY3QtbW9kZS8jdGVycmFncnVudC1wcmVmaXgtZW52LXZhcnMpIHN0cmljdCBjb250cm9sLgoKIyMjIyDinKggTmV3IEZlYXR1cmVzCgojIyMjIyBJbnRyb2R1Y3Rpb24gb2YgYGJhY2tlbmQgYm9vdHN0cmFwYCBhbmQgYGJhY2tlbmQgZGVsZXRlYAoKVGhpcyByZWxlYXNlIGludHJvZHVjZXMgdHdvIG5ldyBjb21tYW5kcyBuYW1lZCBbYmFja2VuZCBib290c3RyYXBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpLW9wdGlvbnMvI2JhY2tlbmQtYm9vdHN0cmFwKSBhbmQgW2JhY2tlbmQgZGVsZXRlXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS1vcHRpb25zLyNiYWNrZW5kLWRlbGV0ZSkuCgpUaGVzZSBjb21tYW5kcyBhbGxvdyBmb3IgbWFudWFsIGNvbnRyb2wgb3ZlciB0aGUgcHJvY2VzcyBieSB3aGljaCBUZXJyYWdydW50IGNhbiBtYW5hZ2UgYmFja2VuZCBzdGF0ZSByZXNvdXJjZXMgb24gYmVoYWxmIG9mIHVzZXJzLgoKIyMjIyMgYGJhY2tlbmQgYm9vdHN0cmFwYAoKVGhlIFtgYmFja2VuZCBib290c3RyYXBgXShodHRwczovL3RlcnJhZ3J1bnQuZ3J1bnR3b3JrLmlvL2RvY3MvcmVmZXJlbmNlL2NsaS1vcHRpb25zLyNiYWNrZW5kLWJvb3RzdHJhcCkgY29tbWFuZCBhbGxvd3MgdXNlcnMgdG8gZXhwbGljaXRseSBib290c3RyYXAgcmVzb3VyY2VzIGxpa2UgUzMgYnVja2V0cywgR0NTIGJ1Y2tldHMsIER5bmFtb0RCIHRhYmxlcywgZXRjLiB1c2VkIHRvIG1hbmFnZSBzdGF0ZSBmb3IgT3BlblRvZnUvVGVycmFmb3JtLgoKSXQgaXMgYWNjb21wYW5pZWQgYnkgYSBmbGFnIChgLS1iYWNrZW5kLWJvb3RzdHJhcGApIHdoaWNoIGV4cGxpY2l0bHkgZW5hYmxlcyB0aGlzIGJlaGF2aW9yIGJ5IGRlZmF1bHQgYmVmb3JlIHBlcmZvcm1pbmcgYW55IG9wZXJhdGlvbiB0aGF0IG1pZ2h0IHJlcXVpcmUgYmFja2VuZCByZXNvdXJjZXMgKGxpa2UgdGhlIGBydW5gIGNvbW1hbmQpLgoKVGhlIGludHJvZHVjdGlvbiBvZiB0aGlzIGNvbW1hbmQgaXMgcGFydCBvZiB0aGUgZnV0dXJlIGRlcHJlY2F0aW9uIG9mIHByb3Zpc2lvbmluZyBiYWNrZW5kIHJlc291cmNlcyBieSBkZWZhdWx0IHdoZW4gdXNpbmcgVGVycmFncnVudC4gWW91IGNhbiBsZWFybiBtb3JlIGFib3V0IHRoaXMgaW4gdGhlIFtDTEkgUmVkZXNpZ25dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzQ0NSkuCgojIyMjIyBgYmFja2VuZCBkZWxldGVgCgpUaGUgW2BiYWNrZW5kIGRlbGV0ZWBdKGh0dHBzOi8vdGVycmFncnVudC5ncnVudHdvcmsuaW8vZG9jcy9yZWZlcmVuY2UvY2xpLW9wdGlvbnMvI2JhY2tlbmQtZGVsZXRlKSBjb21tYW5kIGFsbG93cyB1c2VycyB0byBkZWxldGUgc3RhdGUgcmVzb3VyY2VzIHJlbGV2YW50IHRvIG9uZSBvciBtb3JlIHVuaXRzIGluIHJlbW90ZSBzdGF0ZS4KClRlcnJhZ3J1bnQgcGVyZm9ybXMgdHdvIHNhZmV0eSBjaGVja3MgdG8gbWl0aWdhdGUgdGhlIHJpc2sgb2YgYWNjaWRlbnRhbGx5IHJlbW92aW5nIHRoZSB3cm9uZyBiYWNrZW5kIHN0YXRlIHJlc291cmNlOgoKMS4gIEJ5IGRlZmF1bHQsIFRlcnJhZ3J1bnQgd2lsbCByZWZ1c2UgdG8gcmVtb3ZlIGFueSBiYWNrZW5kIHN0YXRlIGZpbGUgaWYgdmVyc2lvbmluZyBpcyBub3QgZW5hYmxlZCBmb3IgdGhlIGJhY2tlbmQgUzMgYnVja2V0IG9yIEdDUyBidWNrZXQuIFRvIGV4cGxpY2l0bHkgaWdub3JlIHRoaXMgc2FmZXR5IGNoZWNrLCB1c2VycyBtdXN0IHByb3ZpZGUgdGhlIGAtLWZvcmNlYCBmbGFnLgoyLiAgQnkgZGVmYXVsdCwgVGVycmFncnVudCB3aWxsIHByb21wdCB1c2VycyB0byBjb25maXJtIHRoZWlyIGRlY2lzaW9uIHRvIHJlbW92ZSBhIGdpdmVuIGJhY2tlbmQgc3RhdGUgZmlsZS4gVG8gZXhwbGljaXRseSBpZ25vcmUgdGhpcyBzYWZldHkgY2hlY2ssIHVzZXJzIG11c3QgcHJvdmlkZSB0aGUgYC0tbm9uLWludGVyYWN0aXZlYCBmbGFnLgoKVGhlIGludHJvZHVjdGlvbiBvZiB0aGlzIGNvbW1hbmQgaXMgcGFydCBvZiBhIGxhcmdlciBlZmZvcnQgdG8gcHJvdmlkZSB1c2VycyBncmVhdGVyIGNvbnRyb2wgb3ZlciB0aGUgZnVsbCBsaWZlY3ljbGUgb2YgYmFja2VuZCBzdGF0ZSByZXNvdXJjZXMgYnkgVGVycmFncnVudC4gWW91IGNhbiBsZWFybiBtb3JlIGFib3V0IHRoaXMgaW4gdGhlIFtDTEkgUmVkZXNpZ25dKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9pc3N1ZXMvMzQ0NSkuCgojIyMjIFdoYXQncyBDaGFuZ2VkCgotICAgZmVhdDogQWRkaW5nIGJlc3QgZWZmb3J0IHBhcnNpbmcgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQ0XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDQ0KQotICAgZmVhdDogSW1wbGVtZW50YXRpb24gb2YgYmFja2VuZCBjb21tYW5kczogIGBib290c3RyYXBgLCBgZGVsZXRlYCBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA3MF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA3MCkKLSAgIGZlYXQ6IEJhY2tlbmQgZGVsZXRlIHByb21wdCBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5MV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA5MSkKLSAgIGZlYXQ6IEFkZGluZyBiYWNrZW5kIGRvY3MgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDg3XShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDg3KQotICAgZml4OiBVcGRhdGluZyBob21lcGFnZSB0aXRsZSBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwODFdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwODEpCi0gICBmaXg6IEFkZHJlc3Npbmcgc3RyaWN0ZXIgbGludCBmaW5kaW5ncyBieSBbQCYjODIwMzt5aGFrYmFyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20veWhha2JhcikgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwOTBdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwOTApCi0gICBmaXg6IEZpeGluZyB2aXNpYmxlIGZsYWdzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4OF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4OCkKLSAgIGZpeDogUmVuYW1pbmcgdGVsZW1ldHJ5IGVudnMgcHJlZml4IGBURVJSQUdSVU5UX2Agd2l0aCBgVEdfYCBieSBbQCYjODIwMztsZXZrb2hpbWluc10oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2xldmtvaGltaW5zKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4NF0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4NCkKLSAgIGZpeDogRml4aW5nIGBiYWNrZW5kIGRlbGV0ZWAgc2FmZXR5IGZlYXR1cmVzIGJ5IFtAJiM4MjAzO3loYWtiYXJdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS95aGFrYmFyKSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA4OSkKLSAgIGZpeDogQXZvaWRpbmcgZHVwbGljYXRlIGRlc2NyaXB0aW9uIGluIGZsYWcgbmFtZXMgYnkgW0AmIzgyMDM7eWhha2Jhcl0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL3loYWtiYXIpIGluIFtodHRwczovL2dpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDkyXShodHRwczovL3JlZGlyZWN0LmdpdGh1Yi5jb20vZ3J1bnR3b3JrLWlvL3RlcnJhZ3J1bnQvcHVsbC80MDkyKQotICAgZml4OiBgdGVycmFmb3JtX2JpbmFyeWAgd2l0aCBgcnVuIHZlcnNpb25gIGNvbW1hbmQgYnkgW0AmIzgyMDM7bGV2a29oaW1pbnNdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9sZXZrb2hpbWlucykgaW4gW2h0dHBzOi8vZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwOTVdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9ncnVudHdvcmstaW8vdGVycmFncnVudC9wdWxsLzQwOTUpCi0gICBidWlsZChkZXBzLWRldik6IGJ1bXAgbm9rb2dpcmkgZnJvbSAxLjE4LjMgdG8gMS4xOC40IGluIC9kb2NzIGJ5IFtAJiM4MjAzO2RlcGVuZGFib3RdKGh0dHBzOi8vcmVkaXJlY3QuZ2l0aHViLmNvbS9kZXBlbmRhYm90KSBpbiBbaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA2OV0oaHR0cHM6Ly9yZWRpcmVjdC5naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L3B1bGwvNDA2OSkKCioqRnVsbCBDaGFuZ2Vsb2cqKjogaHR0cHM6Ly9naXRodWIuY29tL2dydW50d29yay1pby90ZXJyYWdydW50L2NvbXBhcmUvdjAuNzYuOC4uLnYwLjc3LjAKCjwvZGV0YWlscz4KCi0tLQoKIyMjIENvbmZpZ3VyYXRpb24KCvCfk4UgKipTY2hlZHVsZSoqOiBCcmFuY2ggY3JlYXRpb24gLSBBdCBhbnkgdGltZSAobm8gc2NoZWR1bGUgZGVmaW5lZCksIEF1dG9tZXJnZSAtIEF0IGFueSB0aW1lIChubyBzY2hlZHVsZSBkZWZpbmVkKS4KCvCfmqYgKipBdXRvbWVyZ2UqKjogRGlzYWJsZWQgYnkgY29uZmlnLiBQbGVhc2UgbWVyZ2UgdGhpcyBtYW51YWxseSBvbmNlIHlvdSBhcmUgc2F0aXNmaWVkLgoK4pm7ICoqUmViYXNpbmcqKjogV2hlbmV2ZXIgUFIgYmVjb21lcyBjb25mbGljdGVkLCBvciB5b3UgdGljayB0aGUgcmViYXNlL3JldHJ5IGNoZWNrYm94LgoK8J+UlSAqKklnbm9yZSoqOiBDbG9zZSB0aGlzIFBSIGFuZCB5b3Ugd29uJ3QgYmUgcmVtaW5kZWQgYWJvdXQgdGhpcyB1cGRhdGUgYWdhaW4uCgotLS0KCiAtIFsgXSA8IS0tIHJlYmFzZS1jaGVjayAtLT5JZiB5b3Ugd2FudCB0byByZWJhc2UvcmV0cnkgdGhpcyBQUiwgY2hlY2sgdGhpcyBib3gKCi0tLQoKVGhpcyBQUiB3YXMgZ2VuZXJhdGVkIGJ5IFtNZW5kIFJlbm92YXRlXShodHRwczovL21lbmQuaW8vcmVub3ZhdGUvKS4gVmlldyB0aGUgW3JlcG9zaXRvcnkgam9iIGxvZ10oaHR0cHM6Ly9kZXZlbG9wZXIubWVuZC5pby9naXRodWIvb3Npc20vdGVzdGJlZCkuCjwhLS1yZW5vdmF0ZS1kZWJ1ZzpleUpqY21WaGRHVmtTVzVXWlhJaU9pSXpPUzR5TURjdU1TSXNJblZ3WkdGMFpXUkpibFpsY2lJNklqTTVMakl3Tnk0eElpd2lkR0Z5WjJWMFFuSmhibU5vSWpvaWJXRnBiaUlzSW14aFltVnNjeUk2V3lKeVpXNXZkbUYwWlNKZGZRPT0tLT4K
      patchset: e5cc71d519cb066ac00023b0b5b68a4a690203e0
      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: f4b6fd9a1705fe2891122bf2563527cfe56b40d1
          untrusted/project_0/github.com/osism/zuul-jobs:
            canonical_name: github.com/osism/zuul-jobs
            checkout: main
            commit: c212ef9fff456ceede260bdfaaf903f6e2d2313a
          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: f4b6fd9a1705fe2891122bf2563527cfe56b40d1
        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/testbed
        name: osism/testbed
        short_name: testbed
        src_dir: src/github.com/osism/testbed
      projects:
        github.com/osism/testbed:
          canonical_hostname: github.com
          canonical_name: github.com/osism/testbed
          checkout: main
          checkout_description: zuul branch
          commit: 11599d6839ae537e40d6e30f9ff5e727526217c9
          name: osism/testbed
          required: false
          short_name: testbed
          src_dir: src/github.com/osism/testbed
      ref: refs/pull/2650/head
      resources: {}
      tenant: osism
      timeout: 1800
      voting: true
